# Dynamic Programming by dffhrtcv3

VIEWS: 4 PAGES: 13

• pg 1
```									  ROMaN: Revenue driven
Overlay Multicast Networking

Varun Khare
Agenda
 Problem Statement
 Dynamic Programming
 Application to ROMaN
Problem Statement
 Dedicated Server farm placed strategically over
the Internet
 ISP Cost: ISP charge for bandwidth consumption
at Server sites

ISP
Problem Statement
 Distribute users in a meaningful fashion:
» Optimize user delay performance OR
» Minimize the ISP cost of servicing the end-users

ISP
Origin
Problem Statement
 Given
» ISP charging function ci and
» available bandwidth Bi of all K servers deployed
 Find the user distribution ui at each server SRVi
for N users where each user consumes b
bandwidth, such that
» Σui = N;               ui . b ≤ Bi and
» Σci.(ui . b) the ISP cost of deploying group is
minimized
Dynamic Programming
 Dynamic Programming is an algorithm design technique for
optimization problems: often minimizing or maximizing.
 DP solves problems by combining solutions to subproblems.
 Idea: Subproblems are not independent.
» Subproblems may share subsubproblems,
» However, solution to one subproblem may not affect the solutions to other
subproblems of the same problem.
 DP reduces computation by
» Solving subproblems in a bottom-up fashion.
» Storing solution to a subproblem the first time it is solved.
» Looking up the solution when subproblem is encountered again.
 Key: determine structure of optimal solutions
Steps in Dynamic Programming
1. Characterize structure of an optimal solution.
2. Define value of optimal solution recursively.
3. Compute optimal solution values either top-
down with caching or bottom-up in a table.
4. Construct an optimal solution from computed
values.

We’ll apply the above steps to our problem.
Optimal Substructure
Let cost(n,k) = Cost of distributing n users amongst k servers
1. If k =1, then cost(n,1) = c1(n)
2. If k >1 then distribute
i users on k-1 servers        cost(n-i, k-1) +
n-i users on kth server       ck(i)

 Optimal solution to distribute N users amongst K
servers contain optimal solution to distribute i
users amongst j servers (i ≤ N and j ≤ K)
Recursive Solution
 cost[i, j] = Optimal ISP Cost of distributing i users
amongst j servers
 We want cost[N,K].
 (n.b)
c1                            if k =1

cost[n,k]  
min(cost[n  i,k 1],c [i.b]) if k > 1.

0in
k

This gives a recursive algorithm and solves the problem.

Example
 Start by evaluating cost(n,1) where n = 0,1 … N
Since k=1 there is no choice of servers
 Thereafter evaluate cost(n,2) where n = 0,1 … N

Servers   Cost Function
K0    K1     K2
0      0                    K0        C0(x) = x
1      1
K1        C1(x) = x/2
2      2
3      3                    K2        C2(x) = x/4
Example
cost(3,2) = min { cost(3,1) + C2(0) = 3
cost(2,1) + C2(1) = 2 + ½
cost(1,1) + C2(2) = 1 + 2/2
cost(0,1) + C2(3) = 0 + 3/2 }
= 3/2

Servers           Cost Function
K0       K1       K2
0      0        0                   K0                C0(x) = x
1      1        1/2
K1                C1(x) = x/2
2      2        2/2
3      3        3/2                 K2                C2(x) = x/4
Example
 Eventually evaluating cost(N,K) gives optimized
cost of deploying multicast group
 Runtime O(K.N2) and space complexity O(K.N)

Servers   Cost Function
K0    K1     K2
0      0     0      0       K0        C0(x) = x
1      1     1/2    1/4
K1        C1(x) = x/2
2      2     2/2    2/4
3      3     3/2    3/4     K2        C2(x) = x/4
Thank You!

Questions

```
To top