0% found this document useful (0 votes)
4 views

Dynamic Programming (1)

Uploaded by

Youssef Ebrahim
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views

Dynamic Programming (1)

Uploaded by

Youssef Ebrahim
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 16

Dynamic Programming

• Is a powerful design technique that can be


used to solve problems of a computational
nature
• Is typically applied to optimization
problems
• Note:- Programming in these term refers to a
tabular method.
Dynamic Programming
• Problem:
– The Palmia country is divided by a river into the north and south
bank. There are N towns on both the north and south bank.
Each town on the north bank has its unique friend town on the
south bank. No two towns have the same friend. Each pair of
friend towns would like to have a ship line connecting them.
They applied for permission to the government. Because it is
often foggy on the river the government decided to prohibit
intersection of ship lines (if two lines intersect there is a high
probability of ship crash).
Dynamic Programming
• Problem (in mathematical terms)
– There exists a sequences a1,, a2,… an and
b1,,b2,… bn such that
as < aj if s<j
bs < bj if s<j
for each s, there exists a s’ such that as and bs’ connected.
- Find the maximum value m such that there exist x1 <x2<x3 <… xm.
m<=n such that
- bx0’ < bx1’<bx2’<…. bxm’
Dynamic Programming
• Example Problem

a: 2 4 9 10 15 17
22

b: 2 3 4 6 8 12 17
Dynamic Programming
• Example Problem

a: 2 4 9 10 15 17
22

b: 2 3 4 6 8 12 17
Dynamic Programming
• Simple Brute Force Algorithm
• Pick all possible sets of routes.
• Check if selection of routes is valid
Dynamic Programming
• Simple Brute Force Algorithm
(Analysis)
• Pick all possible sets of routes. …. O(2n) possible routes
• Check if selection of routes is valid… O(n) time to check
• In total will take O(2n * n) time.
• EXPONENTIAL TIME = SLOW!!!!!
Dynamic Programming
• Elegant Solution
• Let c(i,j) be the maximum possible routes
using the first i sequences in a, and j
sequences in b.
• We notice that c(I,j) is connected to c(i-1,j),
c(i,j-1) and c(i-1,j-1).
Dynamic Programming

RULE 1 of Dynamic Programing


Dynamic Programming

We notice that if a[i] = b[j] (connected), then we can use them in our solution and
optimal solution becomes c[i-1,j-1]+1(because we just used a new route).
In all other cases, we just consider the case where we do not use b[j] (i.e c[i,j-1])
or we do not use a[i] (i.e c[i-1,j]
Dynamic Programming
Dynamic Programming
Dynamic Programming
Dynamic Programming

RULE 2 of Dynamic Programing


Dynamic Programming
Dynamic Programming
RULE 3 of Dynamic Programing

You might also like