Module 3 Dynamic Programming
Module 3 Dynamic Programming
Module 5
Knapsack Problem
Longest Common Subsequence
All Pair Shortest Path
Multistage Graph
Bellman Ford Algorithm
Travelling Salesman Problem
Flow shop Scheduling
Knapsack Problem
Item 1 2 3 4 5
Weight 3 4 2 5 1
Profit 15 4 8 10 3
And m = 12
Item 1 2 3 4 5
Weight 1 2 3 4 5
Profit 2 6 12 18 25
And m = 12
i/j 0 1 2 3 4 5 6 7 8 9 10 11 12
0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 2
2 0
3 0
4 0
5 0
20 Mr. Atul Haribhau Kachare 5/23/2025
Dynamic Programming Methodology
Solution: Final Solution will be
i/j 0 1 2 3 4 5 6 7 8 9 10 11 12
0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 2 2 2 2 2 2 2 2 2 2 2 2
2 0 2 6 8 8 8 8 8 8 8 8 8 8
3 0 2 6 12 14 18 20 20 20 20 20 20 20
4 0 2 6 12 18 20 24 30 32 36 38 38 38
5 0 2 6 12 18 25 27 31 37 43 45 49 55
21 Mr. Atul Haribhau Kachare 5/23/2025
Knapsack Problem
- Application
Construction and Scoring Test.
Finding least wasteful way to cut raw materials.
‘\0’ a b a a
‘\0’ 0 0 0 0 0
a 0
a 0
b 0
a 0
a 0
b 0
a 0
‘\0’ a b a a
‘\0’ 0 0 0 0 0
a 0 1
a 0
b 0
a 0
a 0
b 0
a 0
‘\0’ a b a a
‘\0’ 0 0 0 0 0
a 0 1 1
a 0
b 0
a 0
a 0
b 0
a 0
‘\0’ a b a a
‘\0’ 0 0 0 0 0
a 0 1 1 1
a 0
b 0
a 0
a 0
b 0
a 0
‘\0’ a b a a
‘\0’ 0 0 0 0 0
a 0 1 1 1 1
a 0
b 0
a 0
a 0
b 0
a 0
‘\0’ a b a a
‘\0’ 0 0 0 0 0
a 0 1 1 1 1
a 0 1 1 2 2
b 0
a 0
a 0
b 0
a 0
‘\0’ a b a a
‘\0’ 0 0 0 0 0
a 0 1 1 1 1
a 0 1 1 2 2
b 0 1 2 2 2
a 0
a 0
b 0
a 0
‘\0’ a b a a
‘\0’ 0 0 0 0 0
a 0 1 1 1 1
a 0 1 1 2 2
b 0 1 2 2 2
a 0 1 2 3 3
a 0
b 0
a 0
‘\0’ a b a a
‘\0’ 0 0 0 0 0
a 0 1 1 1 1
a 0 1 1 2 2
b 0 1 2 2 2
a 0 1 2 3 3
a 0 1 2 3 4
b 0 1 2 3 4
a 0 1 2 3 4
‘\0’ 0 0 0 0 0 0 0
A 0 1 1 1 1 1 1
C 0 1 1 2 2 2 2
B 0 1 2 2 2 3 3
A 0 1 2 2 3 3 3
E 0 1 2 2 3 3 4
D 0 1 2 2 3 3 4
‘\0’ 0 0 0 0 0 0 0 0 0 0
G 0 1 1 1 1 1 1 1 1 1
C 0 1 2 2 2 2 2 2 2 2
G 0 1 2 2 2 2 2 3 3 3
C 0 1 2 3 3 3 3 3 4 4
A 0 1 2 3 3 3 4 4 4 4
A 0 1 2 3 3 3 4 4 4 4
T 0 1 2 3 3 4 4 4 4 4
41 G
Mr. Atul Haribhau Kachare 0 1 2 3 3 4 4 5 5 5 5/23/2025
All Pair Shortest Path
The all-pair shortest path algorithm is also known as Floyd-Warshall algorithm is
used to find all pair shortest path problem from a given weighted graph.
As a result of this algorithm, it will generate a matrix, which will represent the
minimum distance from any node to all other nodes in the graph.
0 4 2 0 4 2 0 4 2
𝐴2 = 6 0 5 𝐴3 = 6 0 5
6 0 5 3 7 0 3 7 0
3 ∞ 0
A B C D E A B C D E
A 0 6 3 ∞ ∞ A 0 6 3 6 4
B 4 0 ∞ 1 ∞ B 4 0 7 1 8
C ∞ ∞ 0 5 1 𝐴𝐸 = C 10 6 0 3 1
D ∞ 3 ∞ 0 ∞ D 7 3 10 0 11
E ∞ ∞ ∞ 2 0 E 9 5 12 2 0
46 Mr. Atul Haribhau Kachare 5/23/2025
All Pair Shortest Path
1 2 3 4
1 0 8 ∞ 1
2 ∞ 0 1 ∞
𝐶𝑜𝑠𝑡 =
3 4 ∞ 0 ∞
4 ∞ 2 9 0
1 2 3 4 1 2 3 4
1 0 8 ∞ 1 1 0 8 9 1
2 ∞ 0 1 ∞ 2 ∞ 0 1 ∞
1 2 3 4 𝐴1 = 𝐴2 =
3 4 12 0 5 3 4 12 0 5
1 0 8 9 1 4 ∞ 2 9 0 4 ∞ 2 3 0
2 5 0 1 6 1 2 3 4
𝐴3 =
3 4 12 0 5 1 0 3 4 1
4 7 2 3 0 2 5 0 1 6
𝐴4 =
3 4 7 0 5
47 Mr. Atul Haribhau Kachare 5/23/2025
4 7 2 3 0
Multistage Graph
A multistage graph G = (V, E) is a directed graph in which vertices are partitioned
into k ≥ 2 disjoint sets 𝑣𝑖 where value of i is ranging from 1to k.
In addition, if (u, v) is an edge in a graph G then u 𝜖 𝑣𝑖 & the v 𝜖 𝑣𝑖+1 where i is
ranging from 1 to k.
The cardinality of set 𝑣1 and 𝑣𝑘 is equal to 1.
Let S & T be the vertices in 𝑣1 and 𝑣𝑘 respectively then S is called as Source Vertex
whereas T is called SinkVertex.
The cost of the graph from S to T is given by sum of cost of edges on the path from
S to T.
Multistage Graph 1 11 18
9
2 7 13
1 3 6 8
3 2
4 7
Using Forward Approach: 2
d(1, 8) = min { cost(1, 2) + d(2, 8), cost(1, 3) + d(3, 8), cost(1, 4) + d(4, 8)}
d(1, 8) = min { 1 + d(2, 8), 2 + d(3, 8), 3 + d(4, 8)} ………………...(1)
Multistage Graph 1 11 18
9
2 7 13
Using Forward Approach: 1 3 6 8
Now, we know that
d(5, 8) = cost (5, 8) = 18 3 2
d(6, 8) = cost (6, 8) = 13
d(7, 8) = cost (7, 8) = 2 4 7
2
Using above values in previous equations 2, 3, 4 we get
d(2, 8) = min { 4 + d(5, 8), 11 + d(6, 8)} = min { 4+ 18, 11+13} = min {22, 24} = 22
d(3, 8) = min { 9 + d(5, 8), 7 + d(6, 8)} = min { 9+ 18, 7+13} = min {27, 20} = 20
d(4, 8) = 2 + d(7, 8) = 2 + 2 = 4
PATH: 1→ 4 → 7 → 8
51 Mr. Atul Haribhau Kachare 5/23/2025
4
2 5
Multistage Graph 1 11 18
9
2 7 13
1 3 6 8
3 2
4 7
Using Backward Approach: 2
d(1, 8) = min { d(1, 5) + cost(5, 8), d(1, 6) + cost(6, 8), d(1, 7) + cost(7, 8)}
d(1, 8) = min { d(1, 5) + 18, d(1, 6) + 13, d(1, 7) + 2} ………….....(1)
Multistage Graph 1 11 18
9
2 7 13
Using Backward Approach: 1 3 6 8
Now, we know that
d(1, 2) = cost (1, 2) = 1 3 2
d(1, 3) = cost (1, 3) = 2
d(1, 4) = cost (1, 4) = 3 4 7
2
Using above values in previous equations 2, 3, 4 we get
d(1, 5) = min { d(1, 2) + 4, d(1, 3) + 9} = min { 1+ 4, 2+9} = min {5, 11} = 5
d(1, 6) = min { d(1, 2) + 11, d(1, 3) + 7} = min { 1+ 11, 2+7} = min {12, 9} = 9
d(1, 7) = d(1, 4) + 2 = 3 + 2 = 5
PATH: 1→ 4 → 7 → 8
53 Mr. Atul Haribhau Kachare 5/23/2025
2
1
Multistage Graph
7 2 4
1 3 5 7
8
6 12
4 6
4
Using Forward Approach:
d(1, 7) = min { cost(1, 2) + d(2, 7), cost(1, 3) + d(3, 7), cost(1, 4) + d(4, 7)}
d(1, 7) = min { 9 + d(2, 7), 7 + d(3, 7), 6 + d(4, 7)} ………………...(1)
7 2 4
Using Forward Approach: 1 3 5 7
Now, we know that 8
d(5, 7) = cost (5, 7) = 4 6 12
d(6, 7) = cost (6, 7) = 12
4 6
4
Using above values in previous equations 2, 3, 4 we get
d(2, 7) = 1 + d(5, 7) = 1+4 = 5
d(3, 7) = min { 2 + d(5, 7), 8 + d(6, 7)} = min { 2+ 4, 8+12} = min {6, 20} = 6
d(4, 7) = min { 8 + d(5, 7), 4 + d(6, 7)} = min { 8+ 4, 4+12} = min {12, 16} = 12
PATH: 1→ 3 → 5 → 7
7 2 4
1 3 5 7
8
6 12
4 6
4
Using Backward Approach:
d(1, 7) = min { d(1, 5) + cost(5, 7), d(1, 6) + cost(6, 7)}
d(1, 7) = min { d(1, 5) + 4, d(1, 6) + 12} …………………………….…..…...(1)
d(1, 5) = min { d(1, 2) + cost(2, 5), d(1, 3) + cost(3, 5), d(1, 4) + cost(4, 5)}
d(1, 5) = min { d(1, 2) + 1, d(1, 3) + 2, d(1, 4) + 8} ………………………….(2)
7 2 4
Using Backward Approach: 1 3 5 7
Now, we know that 8
d(1, 2) = cost (1, 2) = 9 6 12
d(1, 3) = cost (1, 3) = 7
d(1, 4) = cost (1, 4) = 6 4 6
4
Using above values in previous equations 2, 3 we get
d(1,5) = min{ d(1,2)+1, d(1,3)+2, d(1,4)+8} = min {9+1,7+2,6+8} = min {10,9,14} = 9
d(1, 6) = min { d(1, 3) + 8, d(1, 4) + 4} = min { 7+ 8, 6+4} = min {15, 10} = 10
PATH: 1→ 3 → 5 → 7
Distance
K
1 2 3 4 5 6 7
1 0 6 5 5 ∞ ∞ ∞
Distance
K
1 2 3 4 5 6 7
1 0 6 5 5 ∞ ∞ ∞
2 0 3 3 5 5 4 7
Distance
K
1 2 3 4 5 6 7
1 0 6 5 5 ∞ ∞ ∞
2 0 3 3 5 5 4 7
3 0 1 3 5 0 4 3
Distance
K
1 2 3 4 5 6 7
1 0 6 5 5 ∞ ∞ ∞
2 0 3 3 5 5 4 7
3 0 1 3 5 0 4 3
4 0 1 3 5 0 4 3
Distance
K
1 2 3 4 5 6 7
1 0 6 5 5 ∞ ∞ ∞
2 0 3 3 5 5 4 7
3 0 1 3 5 0 4 3
4 0 1 3 5 0 4 3
5 0 1 3 5 0 4 3
6 0 1 3 5 0 4 3
Distance
K
0 1 2 3 4
1 0 6 ∞ 7 ∞
2 0 6 4 7 2
3 0 2 4 7 2
4 0 2 4 7 -2
Distance
K
1 2 3 4 5
1 0 6 5 ∞ ∞
2 0 3 5 5 8
3 0 3 5 2 5
4 0 3 5 2 5
When S = ∅,
𝑔 2, ∅ = 𝐶21 = 5
𝑔 3, ∅ = 𝐶31 = 6
𝑔 4, ∅ = 𝐶41 = 8
When 𝑆 = 1,
𝑔 2, {3} = 𝐶23 + 𝑔 3, ∅ = 9 + 6 = 15
𝑔 2, {4} = 𝐶24 + 𝑔 4, ∅ = 10 + 8 = 18
𝑔 3, {2} = 𝐶32 + 𝑔 2, ∅ = 13 + 5 = 18
𝑔 3, {4} = 𝐶34 + 𝑔 4, ∅ = 12 + 8 = 20
𝑔 4, {2} = 𝐶42 + 𝑔 2, ∅ = 8 + 5 = 13
𝑔 4, {3} = 𝐶43 + 𝑔 3, ∅ = 9 + 6 = 15
71 Mr. Atul Haribhau Kachare 5/23/2025
Travelling Salesman Problem
0 10 15 20
𝐶𝑜𝑠𝑡 = 5 0 9 10
6 13 0 12
8 8 9 0
When 𝑆 = 2,
𝑔 2, {3,4} = min 𝐶23 + 𝑔 3, {4} , 𝐶24 + 𝑔 4, {3}
𝑔 2, {3,4} = min 9 + 20,10 + 15 = min 29,25 = 25
𝑔 3, {2,4} = min 𝐶32 + 𝑔 2, {4} , 𝐶34 + 𝑔 4, {2}
𝑔 3, {2,4} = min 13 + 18,12 + 13 = min 31,25 = 25
𝑔 4, {2,3} = min 𝐶42 + 𝑔 2, {3} , 𝐶43 + 𝑔 3, {2}
𝑔 4, {2,3} = min 8 + 15,9 + 18 = min 23,27 = 23
72 Mr. Atul Haribhau Kachare 5/23/2025
Travelling Salesman Problem
0 10 15 20
𝐶𝑜𝑠𝑡 = 5 0 9 10
6 13 0 12
8 8 9 0
When 𝑆 = 3,
𝑔 1, {2,3,4}
= min 𝐶12 + 𝑔 2, {3,4} , 𝐶13 + 𝑔 3, {2,4} , 𝐶14 + 𝑔 4, {2,3}
= min 10 + 25,15 + 25,20 + 23
= min 35,40,43
= 35
Path: 1→ 2 → 4 → 3 → 1
73 Mr. Atul Haribhau Kachare 5/23/2025
Travelling Salesman Problem
Analysis:
Using Brute Force Method: 𝑂 𝑛!
Using Dynamic Programming: 𝑂 2𝑛 𝑛2
Using Branch & Bound: Worst Case - 𝑂 𝑛!
When S = ∅,
𝑔 2, ∅ = 𝐶21 = 4
𝑔 3, ∅ = 𝐶31 = 1
𝑔 4, ∅ = 𝐶41 = 3
𝑒2 + 𝑎21 𝑖𝑓 𝑗 = 1
𝑓2 𝑗 = ൝
𝑚𝑖𝑛 𝑓2 𝑗 − 1 + 𝑎2𝑗 , 𝑓1 𝑗 − 1 + 𝑡1𝑗−1 + 𝑎2𝑗 𝑖𝑓 𝑗 ≥ 2
𝑓𝑜𝑝𝑡𝑖𝑚𝑎𝑙 = min 𝑓1 𝑗 + 𝑥1 , 𝑓2 𝑗 + 𝑥2
𝑓1 1 = 𝑒1 + 𝑎11 = 3 + 5 = 8
𝑓2 1 = 𝑒2 + 𝑎21 = 2 + 2 = 4
𝑓1 2 = min 𝑓1 1 + 𝑎12 , 𝑓2 1 + 𝑡22 + 𝑎12
𝑓1 2 = min 8 + 4, 4 + 1 + 4 = min 12, 9 = 9
𝑓2 2 = min 𝑓2 1 + 𝑎22 , 𝑓1 1 + 𝑡12 + 𝑎22
𝑓2 2 = min 4 + 3, 8 + 2 + 3 = min 7, 13 = 7
84 Mr. Atul Haribhau Kachare 5/23/2025
Assembly Line Scheduling
𝑓1 1 = 𝑒1 + 𝑎11 = 10 + 4 = 14
𝑓2 1 = 𝑒2 + 𝑎21 = 12 + 2 = 14
𝑓1 2 = min 𝑓1 1 + 𝑎12 , 𝑓2 1 + 𝑡22 + 𝑎12
𝑓1 2 = min 14 + 5, 14 + 9 + 5 = min 19, 28 = 19
𝑓2 2 = min 𝑓2 1 + 𝑎22 , 𝑓1 1 + 𝑡12 + 𝑎22
𝑓2 2 = min 14 + 10, 14 + 7 + 10 = min 24, 31 = 24
87 Mr. Atul Haribhau Kachare 5/23/2025
Assembly Line Scheduling
4 1 0 3 0 2 3 6
𝐴𝐷 = 2 0 1 4
∞ 5 3 0 3 1 0 3
90 Mr. Atul Haribhau Kachare 6 4 3 0 5/23/2025
Assembly Line Scheduling
𝑓1 1 = 𝑒1 + 𝑎11 = 3 + 6 = 9
𝑓2 1 = 𝑒2 + 𝑎21 = 2 + 5 = 7
𝑓1 2 = min 𝑓1 1 + 𝑎12 , 𝑓2 1 + 𝑡22 + 𝑎12
𝑓1 2 = min 9 + 3, 7 + 2 + 3 = min 12, 12 = 12
𝑓2 2 = min 𝑓2 1 + 𝑎22 , 𝑓1 1 + 𝑡12 + 𝑎22
𝑓2 2 = min 7 + 8, 9 + 7 + 8 = min 15, 24 = 15
91 Mr. Atul Haribhau Kachare 5/23/2025
Assembly Line Scheduling
Distance
K
0 1 2 3 4
1 0 ∞ ∞ 3 12
2 0 8 6 3 12
3 0 8 6 3 12
4 0 8 6 3 12