-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.py
78 lines (62 loc) · 1.74 KB
/
main.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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# -*- coding: utf-8 -*-
"""
Created on Wed Aug 03 16:50:33 2016
@author: Zhan
"""
import Input
import decisionRule
import rALP
import time
import simulation
import CustomizeDemand
import gene
#from guppy import hpy
firstCaseInReSolve=1
secondCaseInReSolve=2
reductionALP=0
demander = CustomizeDemand.CustomizeDemand(2)
first = 1
if first == 1:#Decision Rule Approch + Gene Rounding
decisionSolver = decisionRule.decisionRule()
#decisionSolver.echoInput()
#decisionSolver.echoVal()
decisionSolver.inputDemand(demander)
decisionSolver.addVar()
decisionSolver.addOpt()
decisionSolver.addConstr()
decisionSolver.solve()
#decisionSolver.echoOpt()
simulator = simulation.simulation(decisionSolver,demander)
'''
realDemand = {}
for i in range(0,3):
realDemand[i] = demander.sim()
opt = gene.gene(decisionSolver,simulator)
opt.initX()
opt.setSTD(realDemand)
opt.evolve()
'''
simulator.initX()
print simulator.run(1000)
#print simulator.bookLimRun(100,opt.X)
elif first == 0:#reduction of Approximate Linear Programming
reduction = rALP.rALP(demander.reader)
reduction.construct()
reduction.addVar()
reduction.addOpt()
reduction.addConstr()
reduction.solve()
elif first == 2:#Gene Algorithm
decisionSolver = decisionRule.decisionRule()
decisionSolver.inputDemand(demander)
decisionSolver.x = {}
simulator = simulation.simulation(decisionSolver,demander)
realDemand = {}
for i in range(0,100):
realDemand[i] = demander.sim()
opt = gene.gene(decisionSolver,simulator)
opt.zeroX()
opt.setSTD(realDemand)
opt.evolve()
#simulator.run(1000)
print simulator.bookLimRun(100,opt.X)