# Algorithm Assignment - Java

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

(Node).

b. Define a data structure to represent the queue containing unexplored nodes

(fringe).

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

banks respectively.

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

heuristic h.

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

generated).

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.

Taidot: Algoritmi, Java

Tietoa työnantajasta:
( 0 arvostelua ) Saudi Arabia

Projektin tunnus: #8652821

## 6 freelanceria on tarjonnut keskimäärin %project_bid_stats_avg_sub_26% %project_currencyDetails_sign_sub_27% tähän työhön

spencerb

I have a degree in computer engineering from CMU and 10 years experience programming Java professionally. This is a pretty typical 2nd year college assignment, so I'd have no problem doing it. It's just kind of long, Lisää

\$150 USD 5 päivässä
(17 arvostelua)
5.2
ig149

java expert here, I have done many alorithim tasks for shortest path etc and I can do your task with all the requirements written.

\$140 USD 3 päivässä
(39 arvostelua)
4.9
josemontenegro13

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

\$100 USD 3 päivässä
(15 arvostelua)
3.7
ophirdj

This is easy for me. I implemented A* many times in different languages. Award me the contract for a guaranteed result

\$170 USD 1 päivässä
(3 arvostelua)
3.1
bilelkhalsi

Hi, I'm a software engineer at iptech group. I'm specialized in java/j2ee and android . I hope my profile meet your needs. best regards. Bilel khalsi

\$222 USD 3 päivässä
(1 arvostelu)
0.8
JeffersonRich

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.

\$155 USD 7 päivässä
(0 arvostelua)
0.0