#domain = MyDomain() # MyDomain(5,5) d = { 'name': 'Maze', 'entry': 'Maze', 'config': {}, 'rollout': { 'max_steps': 1000, 'max_framerate': 30, 'outcome_formatter': lambda o: f'{o.observation} - cost: {o.value.cost:.2f}' } } domain_type = load_registered_domain(d['entry']) while True: # Ask user input to select solver choice = int( input('\nChoose a solver:\n{solvers}\n'.format(solvers='\n'.join( ['0. Quit'] + [f'{i + 1}. {s["name"]}' for i, s in enumerate(solvers)])))) if choice == 0: # the user wants to quit break else: selected_solver = solvers[choice - 1] solver_type = selected_solver['entry'] # Test solver solution on domain print('==================== TEST SOLVER ====================') # Check if Random Walk selected or other if solver_type is None:
# Mountain Car Discrete {'name': 'Mountain car discrete', 'entry': 'GymDomain', 'config': {'gym_env': gym.make('MountainCar-v0')}, 'rollout': {'num_episodes': 3, 'max_steps': 200, 'max_framerate': 30, 'outcome_formatter': None}}, # Cart pole Discrete {'name': 'Cart Pole', 'entry': 'GymDomain', 'config': {'gym_env': gym.make('CartPole-v1')}, 'rollout': {'num_episodes': 3, 'max_steps': 200, 'max_framerate': 30, 'outcome_formatter': None}} ] # Load domains (filtering out badly installed ones) domains = map(lambda d: dict(d, entry=load_registered_domain(d['entry'])), try_domains) domains = list(filter(lambda d: d['entry'] is not None, domains)) while True: # Ask user input to select domain domain_choice = int(input('\nChoose a domain:\n{domains}\n'.format( domains='\n'.join([f'{i + 1}. {d["name"]}' for i, d in enumerate(domains)])))) # for learning to fly if domain_choice <=4: n_epochs = 500 epoch_size = 200 directions = 10 top_directions = 3 learning_rate = 0.02 policy_noise = 0.03
# Copyright (c) AIRBUS and its affiliates. # This source code is licensed under the MIT license found in the # LICENSE file in the root directory of this source tree. from pprint import pprint from skdecide.utils import ( get_registered_domains, get_registered_solvers, load_registered_domain, load_registered_solver, ) if __name__ == "__main__": print("\nAll registered domains:\n-----------------------") pprint({d: load_registered_domain(d) for d in get_registered_domains()}) print("\nAll registered solvers:\n-----------------------") pprint({s: load_registered_solver(s) for s in get_registered_solvers()})
{ "name": "Cart Pole", "entry": "GymDomain", "config": {"gym_env": gym.make("CartPole-v1")}, "rollout": { "num_episodes": 3, "max_steps": 200, "max_framerate": 30, "outcome_formatter": None, }, }, ] # Load domains (filtering out badly installed ones) domains = map( lambda d: dict(d, entry=load_registered_domain(d["entry"])), try_domains ) domains = list(filter(lambda d: d["entry"] is not None, domains)) while True: # Ask user input to select domain domain_choice = int( input( "\nChoose a domain:\n{domains}\n".format( domains="\n".join( [f'{i + 1}. {d["name"]}' for i, d in enumerate(domains)] ) ) ) )