-
Notifications
You must be signed in to change notification settings - Fork 0
/
casestudy.py
54 lines (40 loc) · 1.16 KB
/
casestudy.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import traffic as tr
import json
Ns = [1000, 2000, 4000, 8000, 16000, 32000, 64000]
# Ns = [1000, 2000]
Ms = [10, 20, 50]
eps = 0.01
dual_cons = []
mip_cons = []
opt = []
for N in Ns:
for M in Ms:
print(f"Parameters: {N} {M}\n")
para = tr.TrafficPara(N, M, 0.01, 17)
model_dual = tr.TrafficDual(para)
model_dual.optimize()
dual_cons.append([N, M, model_dual.checkAbsConstraint()])
model_mip = tr.TrafficMIP(para, maxseconds=1000)
mip_cons.append([N, M, model_mip.checkAbsConstraint()])
q = model_dual.objective_value
qs = model_mip.model.objective_value
opt.append([N, M, tr.optimality(q, qs)])
data = {
"mip_cons" : mip_cons,
"dual_cons" : dual_cons,
"opt" : opt
}
with open('lists.json', 'w') as file:
# Write the data into the file using json.dump()
json.dump(data, file)
with open('lists.json', 'r') as file:
# Load the data from the file using json.load()
data = json.load(file)
# Access the lists from the loaded data
list1 = data['mip_cons']
list2 = data['dual_cons']
list3 = data['opt']
# Print the lists
print(list1)
print(list2)
print(list3)