0% found this document useful (0 votes)
103 views4 pages

אלגוריתמים- הרצאה 4 - Dynamic Programming

The document discusses algorithms for solving problems using dynamic programming. It covers the Fibonacci series, binomial coefficients, matrix chain multiplication, and calculating world series odds. Dynamic programming approaches optimize problems by breaking them down into overlapping subproblems and storing results to avoid recomputing them. Matrix chain multiplication is used as an example, with a dynamic programming solution that runs in O(n^3) time.

Uploaded by

Ron
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
103 views4 pages

אלגוריתמים- הרצאה 4 - Dynamic Programming

The document discusses algorithms for solving problems using dynamic programming. It covers the Fibonacci series, binomial coefficients, matrix chain multiplication, and calculating world series odds. Dynamic programming approaches optimize problems by breaking them down into overlapping subproblems and storing results to avoid recomputing them. Matrix chain multiplication is used as an example, with a dynamic programming solution that runs in O(n^3) time.

Uploaded by

Ron
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

1

Algorithms
Dana Shapira
Lesson #4: Dynamic programming
2
Fibonacci Series
F(0)=0
F(1)=1
F(n)=F(n-1)+F(n-2)
Write a Divide and Conquer Algorithm!
What is its running time?
3
Binomial Coefficients
Recursive equation:
Write a Divide and Conquer
Algorithm!
What is its running time?
( )
| |
=
|

\
!
! !
n
n
k k n k
| | | | | |
= +
| | |

\ \ \
1 1
1
n n n
k k k
4
Dynamic Programming Approach
to Optimization Problems
1. Characterize structure of an optimal solution.
2. Recursively define value of an optimal solution.
3. Compute value of an optimal solution in bottom-up
fashion.
4. Construct an optimal solution from computed
information.
5
World Series Odds
Two teams A and B play to see who is the first to win
n games. In world series games n=4.
Assumption: A and B are equally competent, each has
a 50% chance to win any particular game.
P(i,j) - the probability that A needs i extra games
to win and B needs j extra games to win.
6
World Series Odds
P(0,j)=1 j>0
P(i,0)=0 i>0
P(i,j)= P(i-1,j)+ P(i,j-1) i>0 and j>0
7
Recursive Solution
P(i,j){
if i=0 return 1
elseif j=0 return 0
else return P(i-1,j)+ P(i,j-1)
}
What is its running time?
8
Dynamic Programming
P(n,m){
for(i=0; i n; i++)
T[0,i] = 1
for(j=1; j m; j++)
T[j,0] = 0
for(i=1; i n; i++)
for(j=1; j m; j++)
T[i,j]= T[i-1,j]+ T[i,j-1];
return T[n,m]
}
0
2
1
0
3
1
4
4 3 2
1
0
0
0
1/16
1/4
1/8
1/2
1/2
7/8
1
3/4 15/16
1 1
What is its running time?
1
0
9
Matrix Chain Multiplication
-Problem:
Given n matrices M
1
,M
2
,,M
n
, compute the product
M
1
M
2
M
3
M
n
, where M
i
has dimension d
i-1
x d
i
, for i = 1,,n.
-objective
compute M
1
,M
2
,,M
n
with the minimum number of scalar
multiplications.
-Given matrices A with dimension p x q and B with
dimension q x r, multiplication AB takes pqr scalar
multiplications
10
-Problem: Parenthesize the product M
1
M
2
M
n
in a way
to minimize the number of scalar multiplications.
-Example: M
1
--- 2 x 5
M
2
--- 5 x 3
M
3
--- 3 x 4
M
1
(M
2
M
3
) --- 60 + 40 = 100 multiplications
(M
1
M
2
)M
3
--- 30 + 24 = 54 multiplications
Matrix Chain Multiplication
11
Matrix Chain Multiplication
Let m(i,j) be the number of multiplications
performed using optimal parenthesis of
M
i
M
i+1
M
j-1
M
j
.

=

<

j i-1 k
k<j
0
( , )
min{m(i,k) + m(k+1,j)+d d d }
i
i j
m i j
i j
12
Matrix Chain Multiplication
MUL(i,j){
if (i= =j) return 0;
else{
x
for k=i to j-1
y MUL(i,k)+MUL(k+1,j)+d
i-1
d
k
d
j
if y<x {
x y
S(i,j) k
}
}
}
What is its running time?
13
Recursive Running Time
( ) ( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( ) ( ) ( )
1
1
1
1
2
1
2
1
2 1
1 2 2
1 2 1 1
3 1 1 3 1 3 2 3
n
k
n
k
n
k
k
T n T k T n k
T n T k n
T n T k n
T n T n T n
T n T n T n T n T n k

=
= + +
= +
= +
= +
= + > > > >

14
Dynamic Programming

=

<

j i-1 k
k<j
0
( , )
min{m(i,k) + m(k+1,j)+d d d }
i
i j
m i j
i j
m
1 2 3
1 0 30 54
2 0 60
3 0
-Example: M
1
--- 2 x 5
M
2
--- 5 x 3
M
3
--- 3 x 4
S 1 2 3
1 1 2
2 2
3
15
Matrix Chain Multiplication
MUL(n){
for (i=1;i n;i++) m[i,i]=0;
for (diff=1;diff n-1;diff++){
for (i=1;i n-diff;i++){
j i+diff
x
for (k=i;k j-1;k++)
y m[i,k]+m[k+1,j]+d
i-1
d
k
d
j
if y<x {
x y
S(i,j) k
}
m[i,j]=x;
}
}

You might also like