Search
Prostředí kuimaze2.SearchProblem budete využívat v úlohách, kde jde o nalezení nejkratší cesty v bludišti. Je použito v nepovinné úloze 01-easy_search a v první povinné úloze 03-search.
kuimaze2.SearchProblem
01-easy_search
03-search
Po vytvoření instance třídy SearchProblem (viz Použití) můžete využívat následující metody:
SearchProblem
env.get_start()
State
env.get_goals()
env.is_goal(state)
True
state
env.get_actions(state)
Action
env.get_transition_result(state, action)
(new_state, transition_cost)
action
env.render()
help(env.render)
Prostředí se typicky používá následujícím způsobem:
>>> from kuimaze2 import SearchProblem, Map
>>> MAP = "S...G" >>> env = SearchProblem(Map.from_string(MAP))
>>> env = SearchProblem(Map.from_string(MAP), graphics=True)
>>> start = env.get_start() # start State >>> start State(r=0, c=0) >>> goals = env.get_goals() # set of goal States >>> goals {State(r=0, c=4)}
>>> actions = env.get_actions(start) >>> actions [<Action.UP: 0>, <Action.RIGHT: 1>, <Action.DOWN: 2>, <Action.LEFT: 3>] >>> next_state, cost = env.get_transition_result(start, actions[0]) >>> next_state State(r=0, c=0) # It is not possible to go UP from the start state, so stay in place >>> cost 1 # Although you stayed in place, the action costs you 1 unit >>> env.get_transition_result(start, actions[1]) # ... but it should be possible to go RIGHT (State(r=0, c=1), 1) # And yes, it is, we moved.
K aktualizaci grafického znázornění prostředí (pokud bylo vytvořeno pomocí env = SearchProblem(…, graphics=True)), použijte:
env = SearchProblem(…, graphics=True)
render()
help(SearchProblem.render)