- Jinyung Hong
- Eunsom Jeon
- Yongbaek Cho
- Jaehyuk Choi
We apply the variants of MM including MMε and Factional MM (fMM(p)) to solve the POSITION SEARCH problems in Pacman domain.
- Jinyung Hong : I developed MM and MMε. I participated in writing the introduction and technical approach in our report.
- Eunsom Jeon : I developed fMM and heuristics. I participated in writing the technical approach heuristics, the results and discussion, and conclusion in our report.
- Yongbaek Cho : I experimented with algorithms and analyzed it. I created tables and graphs participated in writing the Results and discussion in our report.
- Jaehyuk Choi : Analyzed conventional heuristics on MM's behavior and developed customized one for better performance of MM. Contributed to algorithm design, introduction, and technical approach so that how the combined MM impletments the variants of MM.
- Python 2
python pacman.py -l [Maze] -p SearchAgent -a fn=[search_algorithm],heuristic=[Heuristic],useEpsilon=[useEpsilon],useFractional=[useFractional],p=[pValue]
-
Maze (Required) : {Tiny, Small, Medium, Big}
-
search_algorithm (Required) : {bfs, dfs, astar, ucs, bis}
- bfs = breadthFirstSearch
- dfs = depthFirstSearch
- astar = aStarSearch
- ucs = uniformCostSearch
- bis = bidirectionalSearch
-
Heuristic (Optional) :
- default: nullHeuristic,
- {manhattanHeuristic, octileDistance, cosineDistance, digonalDistance, customizedHeuristic, mazeHeuristic}
-
useEpsilon (Optional) :
- default : False
- {True, False}
-
useFractional (Optional) :
- default : False
- {True, False}
-
pValue1 (Optional) :
- default : 0.5
- [0, 1]
1 The meaning of pValue:
- pValue = 0.5 -> MM
- pValue = 0 -> reverse A*
- pValue = 1 -> Forward A*
Example)
- MM0 (MM Without heuristic)
python pacman.py -l tinyMaze -p SearchAgent -a fn=bis
- MM With manhattan heuristic
python pacman.py -l tinyMaze -p SearchAgent -a fn=bis,heuristic=manhattanHeuristic
- MMε without heuristic
python pacman.py -l smallMaze -p SearchAgent -a fn=bis,useEpsilon=True
- MMε with manhattan heuristic
python pacman.py -l smallMaze -p SearchAgent -a fn=bis,heuristic=manhattanHeuristic,useEpsilon=True
- Fractional MM without heuristic
python pacman.py -l smallMaze -p SearchAgent -a fn=bis,useFractional=True,p=0.8
- Fractional MM with manhattan heuristic
python pacman.py -l tinyMaze -p SearchAgent -a fn=bis,heuristic=manhattanHeuristic,useFractional=True,p=0.3
- AIMA examples
- Video AAAI Presentation - MM: Bidirectional Search That Is Guaranteed to Meet in the Middle
- Paper Bidirectional Search That Is Guaranteed to Meet in the Middle
- Paper Extended Abstract: An Improved Priority Function for Bidirectional Heuristic Search
- Paper A Brief History and Recent Achievements in Bidirectional Search