예제 #1
0
    #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:
예제 #2
0
        # 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
예제 #3
0
# 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()})
예제 #4
0
        {
            "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)]
                    )
                )
            )
        )