* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Dynamic Programming
Computational electromagnetics wikipedia , lookup
Inverse problem wikipedia , lookup
Computational complexity theory wikipedia , lookup
Knapsack problem wikipedia , lookup
Simplex algorithm wikipedia , lookup
Genetic algorithm wikipedia , lookup
Travelling salesman problem wikipedia , lookup
Multi-objective optimization wikipedia , lookup
Mathematical optimization wikipedia , lookup
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 topdown 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].
c (n.b)
if k =1
1
cos t[n,k]
min (cos t[n i,k 1],c [i.b]) if k > 1.
k
0in
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
K0
0
0
1
1
2
2
3
3
K1
Servers
Cost Function
K0
C0(x) = x
K1
C1(x) = x/2
K2
C2(x) = x/4
K2
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
K0
K1
0
0
0
1
1
1/2
2
2
2/2
3
3
3/2
Servers
Cost Function
K0
C0(x) = x
K1
C1(x) = x/2
K2
C2(x) = x/4
K2
Example
Eventually evaluating cost(N,K) gives optimized
cost of deploying multicast group
Runtime O(K.N2) and space complexity O(K.N)
K0
K1
K2
0
0
0
0
1
1
1/2
1/4
2
2
2/2
2/4
3
3
3/2
3/4
Servers
Cost Function
K0
C0(x) = x
K1
C1(x) = x/2
K2
C2(x) = x/4
Thank You!
Questions