Lecture 10 The Label Correcting Algorithm Label Correcting
Lecture 10 The Label Correcting Algorithm
Label Correcting Algorithm
An Example 2 4 2 3 Initialize d(1) : = 0; d(j) : = for j 1 0 6 1 5 3 -4 7 -2 2 4 3 3 3 1 3 6 In next slides: the number inside the node will be d(j). Violating arcs will be in thick lines.
An Example 2 3 3 Generic Step An arc (i, j) is violating if d(j) > d(i) + cij. 6 0 3 3 1 -2 3 2 4 -4 3 Pick a violating arc (i, j) and replace d(j) by d(i) + cij.
An Example 2 3 3 Generic Step An arc (i, j) is violating if d(j) > d(i) + cij. 6 0 3 3 1 -2 6 3 2 4 -4 3 Pick a violating arc (i, j) and replace d(j) by d(i) + cij.
An Example 2 3 3 Generic Step An arc (i, j) is violating if d(j) > d(i) + cij. 6 0 3 3 1 -2 6 3 2 4 3 -4 3 Pick a violating arc (i, j) and replace d(j) by d(i) + cij.
An Example 2 5 3 3 Generic Step An arc (i, j) is violating if d(j) > d(i) + cij. 6 0 3 3 1 -2 6 3 2 4 3 -4 3 Pick a violating arc (i, j) and replace d(j) by d(i) + cij.
An Example 2 5 3 3 Generic Step An arc (i, j) is violating if d(j) > d(i) + cij. 6 0 3 3 1 -2 6 4 3 2 4 3 -4 3 Pick a violating arc (i, j) and replace d(j) by d(i) + cij.
An Example 2 5 3 3 Generic Step An arc (i, j) is violating if d(j) > d(i) + cij. 6 0 3 3 1 -2 6 4 3 2 4 3 -4 3 6 Pick a violating arc (i, j) and replace d(j) by d(i) + cij.
An Example 2 5 3 3 Generic Step An arc (i, j) is violating if d(j) > d(i) + cij. 6 0 3 3 1 -2 6 4 3 2 4 3 2 -4 3 6 Pick a violating arc (i, j) and replace d(j) by d(i) + cij.
An Example 2 5 3 3 Generic Step An arc (i, j) is violating if d(j) > d(i) + cij. 6 0 3 3 1 -2 6 4 3 2 4 3 2 -4 9 3 6 Pick a violating arc (i, j) and replace d(j) by d(i) + cij.
An Example 2 5 3 3 Generic Step An arc (i, j) is violating if d(j) > d(i) + cij. 6 0 3 3 1 -2 6 4 3 2 4 3 2 -4 9 3 6 Pick a violating arc (i, j) and replace d(j) by d(i) + cij. No arc is violating The distance labels are optimal We now show the predecessor arcs.
Modified Label Correcting Algorithm
The Modified Label Correcting Algorithm 2 5 2 3 Initialize d(1) : = 0; d(j) : = for j 1 0 6 1 4 3 -4 7 -2 2 4 3 3 3 1 3 6 LIST : = {1} In next slides: the number inside the node will be d(j).
An Example 2 3 6 3 3 1 0 Generic Step Take a node i from LIST 3 LIST : = {{1} }1 }3, 2 2, 3 }4 } -2 6 3 2 4 3 -4 3 Update(i): for each arc (i, j) with d(j) > d(i) + cij replace d(j) by d(i) + cij.
An Example 2 3 6 3 3 1 0 -2 6 4 3 Take a node i from LIST 5 3 LIST : = {{1} } }4, 2 2, 3, 3 }5 3, 4 4} 2 4 3 -4 3 Update(i): for each arc (i, j) with d(j) > d(i) + cij replace d(j) by d(i) + cij.
An Example 2 3 6 3 3 1 0 -2 6 4 3 Take a node i from LIST 5 3 LIST : = { 4, 3, 5 4, }5 } 2 4 3 -4 3 Update(i): for each arc (i, j) with d(j) > d(i) + cij replace d(j) by d(i) + cij.
An Example 2 3 6 3 3 1 0 -2 6 4 3 Take a node i from LIST 5 3 LIST : = { 5, 4, 5 5 3, }6 4, }5 } 2 4 3 -4 3 6 Update(i): for each arc (i, j) with d(j) > d(i) + cij replace d(j) by d(i) + cij.
An Example 2 3 6 3 3 1 0 -2 6 4 3 Take a node i from LIST 5 3 LIST : = { 6 4, 5 5, 5 3, }6 4, }5 } 2 4 3 -4 3 6 Update(i): for each arc (i, j) with d(j) > d(i) + cij replace d(j) by d(i) + cij.
An Example 2 3 6 3 3 1 0 -2 6 4 3 Take a node i from LIST 5 3 LIST : = { 3, 4, }7 5 5, }6 3 5 6 4, }5 } 2 4 3 2 -4 9 3 6 Update(i): for each arc (i, j) with d(j) > d(i) + cij replace d(j) by d(i) + cij.
An Example 2 3 6 3 3 1 0 -2 6 4 3 Take a node i from LIST 5 3 LIST : = { 7 4, }7 5 5, }6 3 3, 5 6 4, }5 } 2 4 3 2 -4 9 3 6 Update(i): for each arc (i, j) with d(j) > d(i) + cij replace d(j) by d(i) + cij.
An Example 2 3 6 3 3 1 0 -2 6 4 3 Take a node i from LIST 5 3 LIST : = { }7 4, }7 5 5, 6 3 3, 5 6 4, }5 } 2 4 3 2 -4 9 3 6 Update(i): for each arc (i, j) with d(j) > d(i) + cij replace d(j) by d(i) + cij.
An Example 2 3 6 3 3 1 0 -2 6 4 3 LIST is empty. 5 3 LIST : = { }7 4, }7 5 5, 6 3 3, 5 6 4, }5 } 2 4 3 2 The distance labels are optimal Here are the predecessors -4 9 3 6
- Slides: 51