added yosh loop to test case
This commit is contained in:
parent
2a3f6c7fc6
commit
e3d9b2e36e
@ -1,4 +1,6 @@
|
||||
# content of example.py
|
||||
from pulp import LpProblem, LpVariable, LpMinimize, LpStatus, lpSum
|
||||
|
||||
def func(x):
|
||||
return x + 1
|
||||
|
||||
@ -8,4 +10,51 @@ def test_pass():
|
||||
|
||||
|
||||
def test_failure():
|
||||
assert func(3) == 5
|
||||
assert func(3) == 5
|
||||
|
||||
def yosh_loop():
|
||||
Items = [1,2,3,4,5]
|
||||
tif = {
|
||||
1: 0.2,
|
||||
2: 0.5,
|
||||
3: 0.3,
|
||||
4: 0.8,
|
||||
5: 0.1
|
||||
}
|
||||
iif = {
|
||||
1: 0.09,
|
||||
2: 0.2,
|
||||
3: 0.113,
|
||||
4: 0.3,
|
||||
5: 0.1
|
||||
}
|
||||
drift = 0.0
|
||||
drift_limit = 0.2
|
||||
iif_target = 0.5
|
||||
tif_target = 0.9
|
||||
item_vars = LpVariable.dicts("Item", Items, cat="Binary")
|
||||
|
||||
while drift <= drift_limit:
|
||||
prob = LpProblem("tif_tcc_test", LpMinimize)
|
||||
prob += lpSum([(tif[i] + iif[i]) * item_vars[i] for i in Items]), "TifTccSum"
|
||||
prob += lpSum([item_vars[i] for i in Items]) == 3, "TotalItems"
|
||||
prob += lpSum([tif[i] * item_vars[i] for i in Items]) >= tif_target - (tif_target * drift), 'TifMin'
|
||||
prob += lpSum([tif[i] * item_vars[i] for i in Items]) <= tif_target + (tif_target * drift), 'TifMax'
|
||||
prob += lpSum([iif[i] * item_vars[i] for i in Items]) >= iif_target - (iif_target * drift), 'TccMin'
|
||||
prob += lpSum([iif[i] * item_vars[i] for i in Items]) <= iif_target + (iif_target * drift), 'TccMax'
|
||||
|
||||
prob.solve()
|
||||
|
||||
if LpStatus[prob.status] == "Infeasible":
|
||||
for v in prob.variables():
|
||||
print(v.name, "=", v.varValue)
|
||||
|
||||
drift += 0.02
|
||||
else:
|
||||
for v in prob.variables():
|
||||
print(v.name, "=", v.varValue)
|
||||
break
|
||||
|
||||
def test_solver():
|
||||
print(yosh_loop())
|
||||
assert yosh_loop() == 'Solved'
|
||||
|
Loading…
x
Reference in New Issue
Block a user