Title: OPIM 915
1OPIM 915
2Initialize
1
1
Unmark all nodes in N Mark node s
pred(1) 0 next 1order(next) 1 LIST 1
LIST
3Select a node i in LIST
1
1
1
In depth first search, i is the last node in LIST
LIST
1
4If node i is incident to an admissible arc
2
4
2
8
2
1
1
5
7
1
1
Select an admissible arc (i,j)
Mark Node j pred(j) i
Next Next 1 order(j) next add j to
LIST
9
3
6
LIST
1
2
1
2
next
5Select the last node on LIST
2
4
2
8
2
2
1
1
5
7
1
1
1
9
3
6
Node 2 gets selected
LIST
1
2
1
2
next
6If node i is incident to an admissible arc
2
4
4
3
2
8
2
2
1
1
5
7
1
1
1
Select an admissible arc (i,j)
Mark Node j pred(j) i
Next Next 1 order(j) next add j to
LIST
9
3
6
LIST
1
2
4
1
2
3
next
7Select
2
4
4
4
3
2
8
2
2
2
1
1
5
7
1
1
1
Select the last node on LIST
9
3
6
LIST
1
2
4
1
2
3
next
8If node i is incident to an admissible arc
2
4
4
4
3
2
8
2
2
2
8
4
1
1
5
7
1
1
1
Select an admissible arc (i,j)
Mark Node j pred(j) i
Next Next 1 order(j) next add j to
LIST
9
3
6
LIST
1
2
4
8
1
2
3
4
next
9Select
2
4
4
4
3
2
8
2
2
2
8
4
8
1
1
5
7
1
1
1
Select the last node on LIST
9
3
6
LIST
1
2
4
8
1
2
3
4
next
10If node i is not incident to an admissible arc
2
4
4
4
3
2
8
2
2
2
8
4
8
8
1
1
5
7
1
1
1
Delete node i from LIST
9
3
6
LIST
1
2
4
8
1
2
3
4
next
11Select
2
4
4
4
4
3
2
8
2
2
2
8
4
8
8
1
1
5
7
1
1
1
Select the last node on LIST
9
3
6
LIST
1
2
4
8
1
2
3
4
next
12If node i is incident to an admissible arc
2
4
4
4
4
3
2
8
2
2
2
8
4
8
8
5
1
1
5
7
1
1
1
5
Select an admissible arc (i,j)
Mark Node j pred(j) i
Next Next 1 order(j) next add j to
LIST
9
3
6
LIST
1
2
4
8
5
1
2
3
4
5
next
13Select
2
4
4
4
4
4
3
2
8
2
2
2
8
4
8
8
5
1
1
5
7
1
1
1
5
5
Select the last node on LIST
9
3
6
LIST
1
2
4
8
5
1
2
3
4
5
next
14If node i is incident to an admissible arc
2
4
4
4
4
4
3
2
8
2
2
2
8
4
8
8
5
1
1
5
7
1
1
1
5
5
Select an admissible arc (i,j)
Mark Node j pred(j) i
Next Next 1 order(j) next add j to
LIST
9
3
6
6
6
LIST
1
2
4
8
5
6
1
2
3
4
5
6
next
15Select the last node on LIST
2
4
4
4
4
4
3
2
8
2
2
2
8
4
8
8
5
1
1
5
7
1
1
1
5
5
5
Select node 6
9
3
6
6
6
6
LIST
1
2
4
8
5
6
1
2
3
4
5
6
next
16If node i is incident to an admissible arc
2
4
4
4
4
4
3
2
8
2
2
2
8
4
8
8
5
1
1
5
7
1
1
1
5
5
5
Select an admissible arc (i,j)
Mark Node j pred(j) i
Next Next 1 order(j) next add j to
LIST
9
9
3
6
6
6
7
6
LIST
1
2
4
8
5
6
9
1
2
3
4
5
6
7
next
17Select the last node on LIST
2
4
4
4
4
4
3
2
8
2
2
2
8
4
8
8
5
1
1
5
7
1
1
1
5
5
5
Select node 9
9
9
9
3
6
6
6
6
7
6
LIST
1
2
4
8
5
6
9
1
2
3
4
5
6
7
next
18If node i is incident to an admissible arc
2
4
4
4
4
4
3
2
8
2
2
2
8
4
8
8
5
8
1
1
5
7
1
1
1
5
5
5
7
Select an admissible arc (i,j)
Mark Node j pred(j) i
Next Next 1 order(j) next add j to
LIST
9
9
9
3
6
6
6
6
7
6
LIST
1
2
4
8
5
6
9
7
1
2
3
4
5
6
7
8
next
19Select the last node on LIST
2
4
4
4
4
4
3
2
8
2
2
2
8
4
8
8
5
8
1
1
5
7
1
1
1
5
5
5
7
7
Select node 7
9
9
9
9
3
6
6
6
6
7
6
LIST
1
2
4
8
5
6
9
7
1
2
3
4
5
6
7
8
next
20If node i is not incident to an admissible arc
2
4
4
4
4
4
3
2
8
2
2
2
8
4
8
8
5
8
1
1
5
7
1
1
1
5
5
5
7
7
7
Delete node 7 from LIST
9
9
9
9
3
6
6
6
6
7
6
LIST
1
2
4
8
5
6
9
7
1
2
3
4
5
6
7
8
next
21Select node 9
2
4
4
4
4
4
3
2
8
2
2
2
8
4
8
8
5
8
1
1
5
7
1
1
1
5
5
5
7
7
7
But node 9 is not incident to an admissible arc.
Delete node 9 from LIST
9
9
9
9
9
9
3
6
6
6
6
7
6
LIST
1
2
4
8
5
6
9
7
1
2
3
4
5
6
7
8
next
22Select node 6
2
4
4
4
4
4
3
2
8
2
2
2
8
4
8
8
5
8
1
1
5
7
1
1
1
5
5
5
7
7
7
But node 6 is not incident to an admissible arc.
Delete node 6 from LIST
9
9
9
9
9
9
3
6
6
6
6
6
6
7
6
LIST
1
2
4
8
5
6
9
7
1
2
3
4
5
6
7
8
next
23Select node 5
2
4
4
4
4
4
3
2
8
2
2
2
8
4
8
8
5
8
1
1
5
7
1
1
1
5
5
5
7
7
7
5
5
But node 5 is not incident to an admissible arc.
Delete node 5 from LIST
9
9
9
9
9
9
3
6
6
6
6
6
6
7
6
LIST
1
2
4
8
5
6
9
7
1
2
3
4
5
6
7
8
next
24Select node 4
2
4
4
4
4
4
4
4
3
2
8
2
2
2
8
4
8
8
5
8
1
1
5
7
1
1
1
5
5
5
7
7
7
5
5
But node 4 is not incident to an admissible arc.
Delete node 4 from LIST
9
9
9
9
9
9
3
6
6
6
6
6
6
7
6
LIST
1
2
4
8
5
6
9
7
1
2
3
4
5
6
7
8
next
25Select node 2
2
4
4
4
4
4
4
4
3
2
8
2
2
2
8
4
8
8
2
2
5
8
1
1
5
7
1
1
1
5
5
5
7
7
7
5
5
But node 2 is not incident to an admissible arc.
Delete node 2 from LIST
9
9
9
9
9
9
3
6
6
6
6
6
6
7
6
LIST
1
2
4
8
5
6
9
7
1
2
3
4
5
6
7
8
next
26Select node 1
2
4
4
4
4
4
4
4
3
2
8
2
2
2
8
4
8
8
2
2
5
8
1
1
5
7
1
1
1
5
5
5
7
7
7
5
5
1
Select an admissible arc (i,j)
Mark Node j pred(j) i
Next Next 1 order(j) next add j to
LIST
9
9
9
9
9
9
3
6
6
6
6
6
6
3
7
9
6
LIST
1
2
4
8
5
6
9
7
3
1
2
3
4
5
6
7
8
9
next
27Select node 3
2
4
4
4
4
4
4
4
3
2
8
2
2
2
8
4
8
8
2
2
5
8
1
1
5
7
1
1
1
5
5
5
7
7
7
5
5
1
1
But node 3 is not incident to an admissible arc.
Delete node 3 from LIST
9
9
9
9
9
9
3
6
6
6
6
6
6
3
3
3
7
9
6
LIST
1
2
4
8
5
6
9
7
3
1
2
3
4
5
6
7
8
9
next
28Select node 1
2
4
4
4
4
4
4
4
3
2
8
2
2
2
8
4
8
8
2
2
5
8
1
1
5
7
1
1
1
5
5
5
7
7
7
5
5
1
1
1
1
But node 1 is not incident to an admissible arc.
Delete node 1 from LIST
9
9
9
9
9
9
3
6
6
6
6
6
6
3
3
3
7
9
6
LIST
1
2
4
8
5
6
9
7
3
1
2
3
4
5
6
7
8
9
next
29LIST is empty
2
4
4
4
4
4
4
4
3
2
8
2
2
2
8
4
8
8
2
2
5
8
1
1
5
7
1
1
1
5
5
5
7
7
7
5
5
1
1
1
1
The algorithm ends!
9
9
9
9
9
9
3
6
6
6
6
6
6
3
3
3
7
9
6
LIST
1
2
4
8
5
6
9
7
3
1
2
3
4
5
6
7
8
9
next
30The depth first search tree
Note that each induced subtree has consecutively
labeled nodes