Search
You will program the A* algorithm in order to search through the given state space.
Program an A* algorithm that finds the optimal path to the desired end state. If there is no optimal path, the returned value should be None. You should use the maze environment kuimaze.InfEasyMaze. For fulfilling the task, you need to select and implement a heuristic function. The impact of selecting different functions is well explained in link.
None
kuimaze.InfEasyMaze
This task will teach you about:
agent.py
pip3 install gym numpy sudo apt-get install python3-pil.imagetk
For mac and windows users, the python3-pil.imagetk won't work. You need to use the following command instead:
pip3 install pillow
All the methods and functions in kuimaze_search.zip are documented in the subfolder /kuimaze_doc/ or available at this link.
/kuimaze_doc/
The ZIP file contains the file easy_example.py. This file serves as a tutorial to the environment as seen on this code snippet with the basic functions:
easy_example.py
import kuimaze # package import MAP = 'maps/normal/normal9.bmp' env = kuimaze.InfEasyMaze(map_image=MAP) # create the environment observation = self.environment.reset() # returns start_pos, goal_pos positions_with_costs = env.expand(position) # returns [(pos, cost)] list
Implement your agent in the file agent.py as the class BaseAgent.
BaseAgent
The final agent must have the following methods:
__init__
environmnent
find_path
The evaluation splits into two:
Algorithm quality:
Code quality:
The date for submission is visible in the Upload system.
* Upload a ZIP archive with the module agent.py and any other possible modules you created to the Upload system. All the files must to be in the archive's root folder! The archive cannot contain any other folders!
Possible final screenshot: