Download Dynamic Programming

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

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

Weber problem wikipedia , lookup

Multiple-criteria decision analysis wikipedia , lookup

Transcript
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

0in
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