130 likes | 302 Views
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.
E N D
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 • Characterize structure of an optimal solution. • Define value of optimal solution recursively. • Compute optimal solution values either top-down with caching or bottom-up in a table. • Construct an optimal solution from computed values. We’ll apply the above steps to our problem.
Optimal Substructure • Optimal solution to distribute N users amongst K servers contain optimal solution to distribute i users amongst j servers (i ≤ N and j ≤ K) 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)
Recursive Solution • cost[i, j] = Optimal ISP Cost of distributing i users amongst j servers • We want cost[N,K]. This gives a recursive algorithm and solves the problem.
Example • Start by evaluating cost(n,1) where n = 0,1 … NSince k=1 there is no choice of servers • Thereafter evaluate cost(n,2) where n = 0,1 … N
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
Example • Eventually evaluating cost(N,K) gives optimized cost of deploying multicast group • Runtime O(K.N2) and space complexity O(K.N)
Thank You! Questions