Documente Academic
Documente Profesional
Documente Cultură
James Tam
James Tam
Unweighted Graphs
A A B 1 C D 1 E 1 1 1 1 1 1 1 1 1 1 1 F G H I
B
C D E F G H
James Tam
James Tam
Los Angeles
Miami Houston
San Jose
James Tam
James Tam
James Tam
nodeQueue.enqueue (start);
James Tam
{
temp = nodeQueue.dequeue(); while ((done == false) && (temp.hasUnvisitedNeighbor()) { nextNeighbor = temp.getNextUnvistedNeighbor(); nextNeighbor.setVisited(true); nextNeighbor.setPathLength (temp.getPathLength() + 1); nextNeighbor.setPredecessor (temp); nodeQueue.enqueue (nextNeighbor); if (end.equals (nextNeighbor) == true) done = true;
}
} }
James Tam
James Tam
}
James Tam
Destination
Origin
James Tam
Destination
100
75
Origin
60
James Tam
Destination
100
75
Origin
60
James Tam
Destination 100
25
100
75
Origin
60
120
James Tam
Destination 100
25
100
75
Origin
60
120
James Tam
0.1
Local clubs
James Tam
Local malls
Hotel
X
2
X
Canopy tour Beaches
Hiking
Riding
X
Arenal volcano
0.1
Local clubs
James Tam
Local malls
Hotel
A0
4 1 2 5 8
2 3
B
10
2 4 1
Node
A B C D
Known
F F F F F F
Distance Predecessor
0 0 0 0 0 0 0
E
6
E F
James Tam
A0
4 1 2 5 8
2 3
B2
10
2 4 1
Node
A
Known
T F
F F F F F
Distance (from A)
0 2
1
Predecessor
0 A
0 A 0 0 0
D1
E
6
B
C D
G
E F G
James Tam
A0
4 1 2 5 8
2 3
B2
10
2 4 1
Node
A
Known
T F
F T F F F
Distance (from A)
0 2
3 1 3 9 5
Predecessor
0 A
D A D D D
C3
D1
E3
6
B
C D
F9
G5
E F G
James Tam
A0
4 1 2 5 8
2 3
B2
10
2 4 1
Node
A
Known
T T F T F F F
Distance (from A)
0 2 3 1 3 9 5
Predecessor
0 A D A D D D
C3
D1
E3
6
B C D E F G
F9
G5
James Tam
A0
4 1 2 5 8
2 3
B2
10
2 4 1
Node
A
Known
T T
T T F F F
Distance (from A)
0 2
3 1 3 8 5
Predecessor
0 A
D A D C D
C3
D1
E3
6
B
C D
F8
G5
E F G
James Tam
A0
4 1 2 5 8
2 3
B2
10
2 4 1
Node
A
Known
T T
T T T F F
Distance (from A)
0 2
3 1 3 8 5
Predecessor
0 A
D A D C D
C3
D1
E3
6
B
C D
F8
G5
E F G
James Tam
A0
4 1 2 5 8
2 3
B2
10
2 4 1
Node
A
Known
T T
T T T F T
Distance (from A)
0 2
3 1 3 6 5
Predecessor
0 A
D A D G D
C3
D1
E3
6
B
C D
F6
G5
E F G
James Tam
A0
4 1 2 5 8
2 3
B2
10
2 4 1
Node
A
Known
T T
T T T T T
Distance (from A)
0 2
3 1 3 6 5
Predecessor
0 A
D A D G D
C3
D1
E3
6
B
C D
F6
G5
E F G
James Tam
A0
4 1 2 5 8
2 3
B2
10
2 4 1
Node
A
Known
T T
T T T T T
Distance (from A)
0 2
3 1 3 6 5
Predecessor
0 A
D A D G D
C3
D1
E3
6
B
C D
F6
G5
E F G
James Tam
Distance
0
Predecessor
0 0 0 0 0 0 0
t[i].setPredecessor (null);
}
t [index of starting node].distance = 0; }
1 Just pick a distance value that will be greater than any existing distance in the graph
James Tam
James Tam
{
temp = toBeChecked.removeMinDistanceNode ();
E.W. Dijkstra
for (all nodes suc adjacent to temp which are contained in toBeChecked) { if (t [suc].getDistance () > (t [temp].getDistance () + distance from suc to temp)) { t [suc].setDistance (t[temp].getDistance () + distance from suc to temp)); t [suc].setPredecessor (temp); }
}
}
James Tam
for (all nodes suc adjacent to temp which are contained in toBeChecked)
{ : } : : : :
James Tam
$0.55
$0.30
$0.05
James Tam
What is a greedy algorithm and how Dijkstras algorithm is an example of a greedy approach.
James Tam
James Tam