Docstoc

Dynamic Programming

Document Sample
Dynamic Programming Powered By Docstoc
					  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

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:4
posted:5/4/2012
language:English
pages:13