Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import pulp
- import numpy as np
- import pandas as pd
- prob = pulp.LpProblem("max_latency_gain", pulp.LpMaximize)
- V = 100 # nb_videos
- E = 10 # nb_endpoints
- R = 100 # nb_requests
- C = 10 # nb_cache_servers
- X = 100 # cache Serveur Capacity
- # Problem Data
- R = np.zeros([V,C])
- Ld = np.zeros(E)
- L = np.zeros([C,E])
- S = np.zeros(V)
- def var_array(pattern):
- """Creates a two-dimension array of variables created by function pattern(i, j).
- The array is transformed into an np.array.
- """
- array = [
- [
- pattern(i, j)
- for j in range(V)
- ] for i in range(C)
- ]
- return np.array(array)
- # Optimization Variable
- m = var_array(lambda i, j: pulp.LpVariable("m_%d_%d" % (i, j), 0, 3))
- # Objective function
- prob += sum([ sum([ sum([ R[j][e]*(Ld[e] - L[i][e]*m[i][j]) for j in range(V)]) for i in range(C)]) for e in range(E)])
- # Constraints
- for i in range(C):
- prob += sum([ S[j]*m[i][j] for j in range(V)]) <= X # Cache Serveur Capacity
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement