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