1. Implementation of A* using Graph-Search
The aim of this project is to design and implement the A* searching technique using
Graph-Search strategy. These steps should be followed:
a. Define an adequate data structure to represent each state during the search
b. Define a data structure to represent the queue containing unexplored nodes
c. Write the java function to explore the state space.
2. Problem tests and evaluation
Consider the Farmer Puzzle problem; in this puzzle a Farmer, Wolf, Goat and Cabbage
arrive at a river and wish to cross. There is a boat but it can transport the farmer (only
he can row!) and at most one other object at a time. How can the farmer plan to move
his entourage from the East bank to the West bank? An additional problem is that if ever
the wolf and goat, or goat and cabbage, are left alone then one eats the other!
There are four actions in this puzzle:
Farmer goes alone (ga)
Farmer takes wolf (tw)
Farmer takes goat (tg)
Farmer takes cabbage (tc).
a. We must represent each state of the puzzle; i.e. which side of the river each of the
Farmer, Wolf, Goat and Cabbage is on. Suppose we use a 4 element list [F, W, G, C]
to represent the state and use the constants e and w to represent the east and west
i. What state is represented by the list [e, e, w, w]?
ii. What are the start and goal states of the puzzle?
iii. What are the unsafe states?
iv. Draw the state space (hint: the unsafe states are not represented in
the state space).
v. Assume that the cost of each action is 1, suggest an admissible
b. Solve the farmer puzzle problem using your code: display the expanded nodes, the
path solution and its cost (GUI displaying these results is appreciable).
c. Test your program on the 8-puzle problem (the initial and goal states are randomly
d. Analyze and compare your results on different heuristics (Manhattan distance,
misplaced tiles, and Gashing heuristic).
NB: The assessment of the project is based on:
The provided report describing and discussing the implementation and different
used heuristics and analyzing the obtained results.
The demonstration showing your code and its execution on some problem tests.
6 freelanceria on tarjonnut keskimäärin %project_bid_stats_avg_sub_26% %project_currencyDetails_sign_sub_27% tähän työhön
Computer science student in his last year. Plenty of experience solving algorithmic problems using a wide variety of programming languages including java. I have implemented a* search before
I have worked in NLP for the last two years. I really broke through in understanding when I started using Multi Dimensional Vectors to represent the Multivariate Equations.