mirror of
https://github.com/ANL-CEEESA/RELOG.git
synced 2025-12-06 23:58:51 -06:00
Fix expansion cost breakdown
This commit is contained in:
@@ -1,4 +1,8 @@
|
|||||||
# Version 0.3 (June 25, 2020)
|
# Vertion 0.3.1 (July 17, 2020)
|
||||||
|
|
||||||
|
- Fix expansion cost breakdown
|
||||||
|
|
||||||
|
# Version 0.3.0 (June 25, 2020)
|
||||||
|
|
||||||
- Track emissions and energy (transportation and plants)
|
- Track emissions and energy (transportation and plants)
|
||||||
- Minor changes to input file format:
|
- Minor changes to input file format:
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
name = "RELOG"
|
name = "RELOG"
|
||||||
uuid = "a2afcdf7-cf04-4913-85f9-c0d81ddf2008"
|
uuid = "a2afcdf7-cf04-4913-85f9-c0d81ddf2008"
|
||||||
authors = ["Alinson S Xavier <axavier@anl.gov>"]
|
authors = ["Alinson S Xavier <axavier@anl.gov>"]
|
||||||
version = "0.3.0"
|
version = "0.3.1"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
Cbc = "9961bab8-2fa3-5c5a-9d89-47fab24efd76"
|
Cbc = "9961bab8-2fa3-5c5a-9d89-47fab24efd76"
|
||||||
|
|||||||
@@ -15,16 +15,16 @@
|
|||||||
216672.818
|
216672.818
|
||||||
],
|
],
|
||||||
"Transportation ($)": [
|
"Transportation ($)": [
|
||||||
714499.2748313101,
|
714499.27483131,
|
||||||
714499.2748313101
|
714499.27483131
|
||||||
],
|
],
|
||||||
"Disposal ($)": [
|
"Disposal ($)": [
|
||||||
-20.0,
|
-20.0,
|
||||||
-20.0
|
-20.0
|
||||||
],
|
],
|
||||||
"Total ($)": [
|
"Total ($)": [
|
||||||
935782.0928313101,
|
939896.86883131,
|
||||||
935396.8688313101
|
931282.09283131
|
||||||
],
|
],
|
||||||
"Fixed operating ($)": [
|
"Fixed operating ($)": [
|
||||||
130.0,
|
130.0,
|
||||||
@@ -35,8 +35,8 @@
|
|||||||
0.0
|
0.0
|
||||||
],
|
],
|
||||||
"Expansion ($)": [
|
"Expansion ($)": [
|
||||||
0.0,
|
4114.776,
|
||||||
4114.776
|
0.0
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"Plants": {
|
"Plants": {
|
||||||
@@ -119,8 +119,8 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"Expansion cost ($)": [
|
"Expansion cost ($)": [
|
||||||
0.0,
|
750.0,
|
||||||
750.0
|
0.0
|
||||||
],
|
],
|
||||||
"Longitude (deg)": 0.0,
|
"Longitude (deg)": 0.0,
|
||||||
"Energy (GJ)": [
|
"Energy (GJ)": [
|
||||||
@@ -207,16 +207,16 @@
|
|||||||
"C3": {
|
"C3": {
|
||||||
"Distance (km)": 8889.75,
|
"Distance (km)": 8889.75,
|
||||||
"Amount (tonne)": [
|
"Amount (tonne)": [
|
||||||
212.97,
|
212.97000000000003,
|
||||||
212.97
|
212.97000000000003
|
||||||
],
|
],
|
||||||
"Transportation energy (J)": [
|
"Transportation energy (J)": [
|
||||||
227190.00689999998,
|
227190.00690000004,
|
||||||
208257.506325
|
208257.50632500005
|
||||||
],
|
],
|
||||||
"Transportation cost ($)": [
|
"Transportation cost ($)": [
|
||||||
28398.7508625,
|
28398.750862500005,
|
||||||
28398.7508625
|
28398.750862500005
|
||||||
],
|
],
|
||||||
"Longitude (deg)": 76.0,
|
"Longitude (deg)": 76.0,
|
||||||
"Variable operating cost ($)": [
|
"Variable operating cost ($)": [
|
||||||
@@ -226,74 +226,74 @@
|
|||||||
"Latitude (deg)": 84.0,
|
"Latitude (deg)": 84.0,
|
||||||
"Emissions (tonne)": {
|
"Emissions (tonne)": {
|
||||||
"CH4": [
|
"CH4": [
|
||||||
0.63891,
|
0.6389100000000001,
|
||||||
0.42594
|
0.42594000000000004
|
||||||
],
|
],
|
||||||
"CO2": [
|
"CO2": [
|
||||||
11.07444,
|
11.074440000000001,
|
||||||
10.6485
|
10.648500000000002
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"C7": {
|
"C7": {
|
||||||
"Distance (km)": 8526.39,
|
"Distance (km)": 8526.39,
|
||||||
"Amount (tonne)": [
|
"Amount (tonne)": [
|
||||||
246.61999999999998,
|
246.62,
|
||||||
246.61999999999998
|
246.62
|
||||||
],
|
],
|
||||||
"Transportation energy (J)": [
|
"Transportation energy (J)": [
|
||||||
252333.39621599994,
|
252333.396216,
|
||||||
231305.61319799995
|
231305.613198
|
||||||
],
|
],
|
||||||
"Transportation cost ($)": [
|
"Transportation cost ($)": [
|
||||||
31541.674526999996,
|
31541.674527,
|
||||||
31541.674526999996
|
31541.674527
|
||||||
],
|
],
|
||||||
"Longitude (deg)": 83.0,
|
"Longitude (deg)": 83.0,
|
||||||
"Variable operating cost ($)": [
|
"Variable operating cost ($)": [
|
||||||
7398.599999999999,
|
7398.6,
|
||||||
7398.599999999999
|
7398.6
|
||||||
],
|
],
|
||||||
"Latitude (deg)": 30.0,
|
"Latitude (deg)": 30.0,
|
||||||
"Emissions (tonne)": {
|
"Emissions (tonne)": {
|
||||||
"CH4": [
|
"CH4": [
|
||||||
0.73986,
|
0.7398600000000001,
|
||||||
0.49323999999999996
|
0.49324
|
||||||
],
|
],
|
||||||
"CO2": [
|
"CO2": [
|
||||||
12.824239999999998,
|
12.82424,
|
||||||
12.331
|
12.331000000000001
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"C5": {
|
"C5": {
|
||||||
"Distance (km)": 9148.52,
|
"Distance (km)": 9148.52,
|
||||||
"Amount (tonne)": [
|
"Amount (tonne)": [
|
||||||
510.33,
|
510.3299999999999,
|
||||||
510.33
|
510.3299999999999
|
||||||
],
|
],
|
||||||
"Transportation energy (J)": [
|
"Transportation energy (J)": [
|
||||||
560251.705392,
|
560251.7053919999,
|
||||||
513564.06327600003
|
513564.0632759999
|
||||||
],
|
],
|
||||||
"Transportation cost ($)": [
|
"Transportation cost ($)": [
|
||||||
70031.463174,
|
70031.46317399999,
|
||||||
70031.463174
|
70031.46317399999
|
||||||
],
|
],
|
||||||
"Longitude (deg)": 92.0,
|
"Longitude (deg)": 92.0,
|
||||||
"Variable operating cost ($)": [
|
"Variable operating cost ($)": [
|
||||||
15309.9,
|
15309.899999999998,
|
||||||
15309.9
|
15309.899999999998
|
||||||
],
|
],
|
||||||
"Latitude (deg)": 32.0,
|
"Latitude (deg)": 32.0,
|
||||||
"Emissions (tonne)": {
|
"Emissions (tonne)": {
|
||||||
"CH4": [
|
"CH4": [
|
||||||
1.53099,
|
1.5309899999999999,
|
||||||
1.02066
|
1.02066
|
||||||
],
|
],
|
||||||
"CO2": [
|
"CO2": [
|
||||||
26.537159999999997,
|
26.537159999999997,
|
||||||
25.5165
|
25.516499999999997
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -333,7 +333,7 @@
|
|||||||
},
|
},
|
||||||
"L2": {
|
"L2": {
|
||||||
"Opening cost ($)": [
|
"Opening cost ($)": [
|
||||||
1000.0,
|
999.9999999999999,
|
||||||
0.0
|
0.0
|
||||||
],
|
],
|
||||||
"Emissions (tonne)": {
|
"Emissions (tonne)": {
|
||||||
@@ -347,8 +347,8 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"Expansion cost ($)": [
|
"Expansion cost ($)": [
|
||||||
0.0,
|
3364.7759999999994,
|
||||||
3364.776
|
0.0
|
||||||
],
|
],
|
||||||
"Longitude (deg)": 0.5,
|
"Longitude (deg)": 0.5,
|
||||||
"Energy (GJ)": [
|
"Energy (GJ)": [
|
||||||
@@ -357,8 +357,8 @@
|
|||||||
],
|
],
|
||||||
"Total output": {
|
"Total output": {
|
||||||
"P2": [
|
"P2": [
|
||||||
747.7280000000001,
|
747.728,
|
||||||
747.7280000000001
|
747.728
|
||||||
],
|
],
|
||||||
"P3": [
|
"P3": [
|
||||||
1869.32,
|
1869.32,
|
||||||
@@ -366,8 +366,8 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"Capacity (tonne)": [
|
"Capacity (tonne)": [
|
||||||
3738.64,
|
3738.6399999999994,
|
||||||
3738.64
|
3738.6399999999994
|
||||||
],
|
],
|
||||||
"Latitude (deg)": 0.5,
|
"Latitude (deg)": 0.5,
|
||||||
"Output": {
|
"Output": {
|
||||||
@@ -377,8 +377,8 @@
|
|||||||
"L4": {
|
"L4": {
|
||||||
"Distance (km)": 43.35,
|
"Distance (km)": 43.35,
|
||||||
"Amount (tonne)": [
|
"Amount (tonne)": [
|
||||||
747.7280000000001,
|
747.728,
|
||||||
747.7280000000001
|
747.728
|
||||||
],
|
],
|
||||||
"Longitude (deg)": 0.2,
|
"Longitude (deg)": 0.2,
|
||||||
"Latitude (deg)": 0.75
|
"Latitude (deg)": 0.75
|
||||||
@@ -635,7 +635,7 @@
|
|||||||
"F2": {
|
"F2": {
|
||||||
"L4": {
|
"L4": {
|
||||||
"Opening cost ($)": [
|
"Opening cost ($)": [
|
||||||
3000.0,
|
2999.9999999999995,
|
||||||
0.0
|
0.0
|
||||||
],
|
],
|
||||||
"Emissions (tonne)": {},
|
"Emissions (tonne)": {},
|
||||||
@@ -695,8 +695,8 @@
|
|||||||
"Dispose": {}
|
"Dispose": {}
|
||||||
},
|
},
|
||||||
"Total input (tonne)": [
|
"Total input (tonne)": [
|
||||||
946.7280000000001,
|
946.728,
|
||||||
946.7280000000001
|
946.728
|
||||||
],
|
],
|
||||||
"Fixed operating cost ($)": [
|
"Fixed operating cost ($)": [
|
||||||
50.0,
|
50.0,
|
||||||
@@ -729,21 +729,21 @@
|
|||||||
"L2": {
|
"L2": {
|
||||||
"Distance (km)": 43.35,
|
"Distance (km)": 43.35,
|
||||||
"Amount (tonne)": [
|
"Amount (tonne)": [
|
||||||
747.7280000000001,
|
747.728,
|
||||||
747.7280000000001
|
747.728
|
||||||
],
|
],
|
||||||
"Transportation energy (J)": [
|
"Transportation energy (J)": [
|
||||||
0.0,
|
0.0,
|
||||||
0.0
|
0.0
|
||||||
],
|
],
|
||||||
"Transportation cost ($)": [
|
"Transportation cost ($)": [
|
||||||
648.2801760000001,
|
648.280176,
|
||||||
648.2801760000001
|
648.280176
|
||||||
],
|
],
|
||||||
"Longitude (deg)": 0.5,
|
"Longitude (deg)": 0.5,
|
||||||
"Variable operating cost ($)": [
|
"Variable operating cost ($)": [
|
||||||
37386.4,
|
37386.399999999994,
|
||||||
37386.4
|
37386.399999999994
|
||||||
],
|
],
|
||||||
"Latitude (deg)": 0.5,
|
"Latitude (deg)": 0.5,
|
||||||
"Emissions (tonne)": {}
|
"Emissions (tonne)": {}
|
||||||
|
|||||||
@@ -1,53 +1,11 @@
|
|||||||
Gurobi Optimizer version 9.0.0 build v9.0.0rc2 (linux64)
|
[ Info: Reading s1.json...
|
||||||
Optimize a model with 124 rows, 141 columns and 400 nonzeros
|
[ Info: Building graph...
|
||||||
Model fingerprint: 0x46af87f0
|
[ Info: 2 time periods
|
||||||
Variable types: 117 continuous, 24 integer (24 binary)
|
[ Info: 6 process nodes
|
||||||
Coefficient statistics:
|
[ Info: 8 shipping nodes (plant)
|
||||||
Matrix range [5e-02, 2e+04]
|
[ Info: 10 shipping nodes (collection)
|
||||||
Objective range [9e-01, 3e+03]
|
[ Info: 38 arcs
|
||||||
Bounds range [1e+00, 1e+08]
|
[ Info: Building optimization model...
|
||||||
RHS range [3e+01, 2e+04]
|
[ Info: Optimizing MILP...
|
||||||
Presolve removed 98 rows and 107 columns
|
[ Info: Re-optimizing with integer variables fixed...
|
||||||
Presolve time: 0.00s
|
[ Info: Extracting solution...
|
||||||
Presolved: 26 rows, 34 columns, 74 nonzeros
|
|
||||||
Variable types: 28 continuous, 6 integer (6 binary)
|
|
||||||
|
|
||||||
Root relaxation: objective 1.870636e+06, 10 iterations, 0.00 seconds
|
|
||||||
|
|
||||||
Nodes | Current Node | Objective Bounds | Work
|
|
||||||
Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time
|
|
||||||
|
|
||||||
0 0 1870636.06 0 2 - 1870636.06 - - 0s
|
|
||||||
H 0 0 1871178.9617 1870636.06 0.03% - 0s
|
|
||||||
|
|
||||||
Explored 1 nodes (10 simplex iterations) in 0.00 seconds
|
|
||||||
Thread count was 8 (of 80 available processors)
|
|
||||||
|
|
||||||
Solution count 1: 1.87118e+06
|
|
||||||
|
|
||||||
Optimal solution found (tolerance 1.00e-02)
|
|
||||||
Best objective 1.871178961663e+06, best bound 1.870636062997e+06, gap 0.0290%
|
|
||||||
Gurobi Optimizer version 9.0.0 build v9.0.0rc2 (linux64)
|
|
||||||
Optimize a model with 124 rows, 141 columns and 400 nonzeros
|
|
||||||
Model fingerprint: 0x133a97e7
|
|
||||||
Coefficient statistics:
|
|
||||||
Matrix range [5e-02, 2e+04]
|
|
||||||
Objective range [9e-01, 3e+03]
|
|
||||||
Bounds range [1e+00, 1e+08]
|
|
||||||
RHS range [3e+01, 2e+04]
|
|
||||||
Presolve removed 115 rows and 110 columns
|
|
||||||
Presolve time: 0.00s
|
|
||||||
Presolved: 9 rows, 31 columns, 94 nonzeros
|
|
||||||
|
|
||||||
Iteration Objective Primal Inf. Dual Inf. Time
|
|
||||||
0 1.0296026e+06 1.950922e+03 0.000000e+00 0s
|
|
||||||
7 1.8711790e+06 0.000000e+00 0.000000e+00 0s
|
|
||||||
|
|
||||||
Solved in 7 iterations and 0.00 seconds
|
|
||||||
Optimal objective 1.871178962e+06
|
|
||||||
Reading s1.json...
|
|
||||||
Building graph...
|
|
||||||
Building optimization model...
|
|
||||||
Optimizing MILP...
|
|
||||||
Re-optimizing with integer variables fixed...
|
|
||||||
Extracting solution...
|
|
||||||
|
|||||||
10
src/model.jl
10
src/model.jl
@@ -304,11 +304,13 @@ function get_solution(model::ManufacturingModel)
|
|||||||
JuMP.value(vars.expansion[process_node, t]) *
|
JuMP.value(vars.expansion[process_node, t]) *
|
||||||
slope_fix_oper_cost(plant, t)
|
slope_fix_oper_cost(plant, t)
|
||||||
for t in 1:T],
|
for t in 1:T],
|
||||||
"Expansion cost (\$)" => [JuMP.value(vars.expansion[process_node, t]) *
|
"Expansion cost (\$)" => [(if t == 1
|
||||||
(if t < T
|
slope_open(plant, t) * JuMP.value(vars.expansion[process_node, t])
|
||||||
slope_open(plant, t) - slope_open(plant, t + 1)
|
|
||||||
else
|
else
|
||||||
slope_open(plant, t)
|
slope_open(plant, t) * (
|
||||||
|
JuMP.value(vars.expansion[process_node, t]) -
|
||||||
|
JuMP.value(vars.expansion[process_node, t - 1])
|
||||||
|
)
|
||||||
end)
|
end)
|
||||||
for t in 1:T],
|
for t in 1:T],
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user