From 7d089f5042c2471c8381d95be12fab1db78d3760 Mon Sep 17 00:00:00 2001 From: wouter Date: Thu, 4 Jun 2020 11:27:52 +0200 Subject: [PATCH] #19 fix AgentFactory and factory_floor_complex.yaml which I guessed was the correct definition file --- examples/AgentFactory.py | 18 ++++----- examples/configs/factory_floor_complex.yaml | 41 ++++++++++++++++++--- 2 files changed, 44 insertions(+), 15 deletions(-) diff --git a/examples/AgentFactory.py b/examples/AgentFactory.py index 46ef1f0..2941b61 100644 --- a/examples/AgentFactory.py +++ b/examples/AgentFactory.py @@ -1,31 +1,31 @@ from aiagents.AgentFactory import createAgent -from mock import Mock +from unittest.mock import Mock from aienvs.FactoryFloor.FactoryFloor import FactoryFloor from aienvs.utils import getParameters import sys import os - def main(): """ - Demo how to construct agents + Demo how to construct complex agents """ - configName = "configs/agentconfig.yaml" + configName = "configs/factory_floor_complex.yaml" dirname = os.path.dirname(__file__) filename = os.path.join(dirname, configName) - parameters=getParameters(filename) + parameters = getParameters(filename) env = FactoryFloor(parameters['environment']) obs = env.reset() - complexAgent = createAgent(env, parameters['agents']) + complexAgent = createAgent(env.action_space, env.observation_space, parameters['agents']) print(complexAgent) - print(complexAgent._agentSubcomponents) - print(complexAgent._agentSubcomponents[2]._agentSubcomponents) + sub = complexAgent._agentSubcomponents[0] + subsub = sub._agentSubcomponents + print(subsub) + if __name__ == "__main__": main() - diff --git a/examples/configs/factory_floor_complex.yaml b/examples/configs/factory_floor_complex.yaml index 627118b..4df25ba 100644 --- a/examples/configs/factory_floor_complex.yaml +++ b/examples/configs/factory_floor_complex.yaml @@ -1,10 +1,25 @@ +aliases: + - &BasicComplexAgent aiagents.multi.BasicComplexAgent.BasicComplexAgent + - &MctsAgent aiagents.single.mcts.MctsAgent.MctsAgent + - &RandomAgent aiagents.single.RandomAgent.RandomAgent + - &FactoryFloorAgent aiagents.single.FactoryFloorAgent.FactoryFloorAgent + +config: + - &RobotAgent aiagents.single.mcts.MctsAgent.MctsAgent + #- &RobotAgent aiagents.single.FactoryFloorAgent.FactoryFloorAgent + # - &RobotAgent aiagents.single.RandomAgent.RandomAgent + - &timeLimit 6 + - &explorationConstant 10 + - &samplingLimit 20 + + parameters: # Common hyperparameters seed: null environment: steps: 4 - robots: [[0,0],[3,3]] # initial robot positions + robots: [{'id':robot1,'pos':[0,0]},{'id':robot2,'pos':[3,3]}] # initial robot positions tasks: [[1,0],[2,3]] # initial task positions P_action_succeed: {'LEFT':1.0, 'RIGHT':1.0, 'ACT':1.0, 'UP':1.0, 'DOWN':1.0} P_task_appears: 0.0 # P(new task appears in step) @@ -15,8 +30,22 @@ parameters: '....', '..9.'] agents: - iterationLimit: 500 - #timeLimit: 30 - treeParameters: - explorationConstant: 10000 - samplingLimit: 20 + class: *BasicComplexAgent + parameters: {} + subAgentList: + - class: *BasicComplexAgent + id: "robots" + parameters: + treeAgent: + class: *RandomAgent + id: "robots" + parameters: {} + rolloutAgent: + class: *RandomAgent + id: "robots" + parameters: {} + timeLimit: *timeLimit + treeParameters: + explorationConstant: *explorationConstant + samplingLimit: *samplingLimit +