Skip to content

Julow/N-puzzle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

N-PUZZLE, Oct-Nov 2015

A* pathfinder. (group project)
Grade (tbd/100) (tbd/125)*

Team: jaguillo / ngoguey.

Goals:
  • Implement an A* algorithm.
  • Implement 3 admissibles heuristics.
  • Reach the 'snail solution' as 'goal solution' (see below)
  • Handle any puzzle size without crashing.
  • Grid loader (from file) and generator.
  • Ouput some data from the solving phase.
  • Solve an 8-puzzle in less than 5 seconds.
Recommended bonuses:
  • Use approriate containers for A*.
  • Provide an uniform-cost search.
  • Provide a greedy search.
Our work:
  • Opportunity to write our libftui(TODO: LINK!) (80% of our project), providing an high-level UI for this project and the next ones.
  • Opportunity to use OCaml in a real project, for the first time.
  • Disjoint Pattern Databases Heuristic(see below), allowing us to solve any 15-puzzles in less than 5 seconds.
  • Careful study of graph traversal algorithms.
  • IDA* implementation. (as extra)
  • Database for linear conflict results

Install

curl -O http://www.lua.org/ftp/lua-5.3.1.tar.gz &&
tar -zxf lua-5.3.1.tar.gz &&
cd lua-5.3.1 &&
make linux &&
make test &&
sudo make install &&
cd .. &&
rm -rf lua-5.3.1.tar.gz lua-5.3.1

Useful links:

Pattern databases:
N-puzzle solvability:
Misc:

Snail solutions:

representations

Disjoint Pattern Databases:

Symmetries.png

Linear conflict database:

Linear_conflict.png
algo_and_heuristic_decl.png

Sample: Manhattan < Linear Conflict < Database 555 ~= Database 663

console_sample.png

*
- A grade of 85 was required to validate the project.
- A maximum grade of 125 was reachable.
- Second sessions are organised for failed projects.

About

OCaml A* algorithm, C++/Lua UI (group project)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published