8.2 Application to ISPO
9.1.2 Some implementational aspects
At this point we outline some implementational details of our Algorithm9.
MIP solvers
As MIP solver or LP solver for the SLDP(WE0)s and the SLDP-LP(WE0)s one can choose between ILOG CPLEX and SCIP. By default we use CPLEX because it leads to shorter computation times. An advantage of CPLEX is that if once an SLDP-LP(WE0) is generated we can keep it in memory and only have to update the objective coefficients the next time we have to solve an SLDP-LP(WE0). Moreover we use the possibility to perform so-called warm starts in the simplex algorithm.
Warm starts
The constraints of the SLDP-LP(WE0) and SLDP(WE0) are independent from the fixed price trajectories, only the coefficients of the objective differ. So every optimal basis of an SLDP-LP(WE0) is also feasible for the SLDP-LP(WE˜)s withWE˜ 6=WE0 at the other nodes of the tree.
When solving an SLDP-LP(WE0) we let CPLEX start the primal simplex with the optimal basis of an already solved SLDP-LP(WE0) – if available. For detailed information about the simplex algorithm we refer the reader to [Van07].
Additional Bounding
As soon as a primal bound for ISPO is found, we hand over this primal bound to the MIP solver. The MIP-solver uses this bound in its internal Branch&Bound approach to prune branches which can not lead to a better solution.
Algorithm 10ISPO-DOM
Require: single supply revenuesa¯e→tb,s,n∀b∈B, s∈S, n∈N,∀t∈Tfor the considered scenarioe Ensure:set of non-dominated ordered price trajectoriesTe
1:initTe=∅ 2:initdomt=true 3:for alli= 1, . . . ,|T|do 4: sett=ti
5: inittdomt0=true 6: initt0domt=true 7: ifdomt=truethen
8: continue
9: end if
10: for allj=i+ 1, . . . ,|T|do 11: sett0=tj
12: ifdomt0=truethen
13: continue
14: end if
15: for allb∈Bdo 16: for alls∈Sdo
17: for alln∈Ndo
18: if¯aeib,s,n→t>¯aeib,s,n→t0then
19: t0domt=false
20: else
21: if¯aeib,s,n→t<¯aeib,s,n→t0then
22: tdomt0=false
23: end if
24: end if
25: iftdomt0=t0domt=falsethen
26: goto39
27: end if
28: end for
29: end for
30: end for
31: iftdomt0then 32: setdomt0 =true 33: else
34: ift0domtthen 35: setdomt=true
36: end if
37: end if
38: end for
39: ifdomt=falsethen 40: setTe=Te∪ {t}
41: end if 42:end for
Algorithm 11ISPO-DFS
Require: depth/scenario indexj
width/indexiof ordered price trajectories boundsΓ (e→te)for alle∈E,te∈Te set of mapsWEj−1forEj−1:={ei|i < j}
current global upper boundz∗
Ensure:possibly updated boundsΓ (e→te)and/or updated primal boundz∗ 1:WEj=WEj−1∪ {ej→teji }
2:compute the (mixed) relaxed wait-and-see solutionΓˆ WEj
6:try to improve the dual bound by 7:Γˆ
18: solve the SLDP(WEj)→optimal objective valuez∗
SLDP
Require: set of mapsWEjof price trajectories fixed to scenarios dual boundˆΓ
WEj
for the given set of maps dual boundsΓ (e→t)for each single mape→tinWEj Ensure:possibly improved dual boundΓˆ
WEj
based on the LP-relaxed wait-and-see solution possibly improved dual boundsΓ (eo→teo)foro≤j
1:for allo= 1, . . . , jdo
2: ifSLDP-LP({eo→teo})not solved until nowthen
3: solve SLDP-LP({eo→teo})→optimal objective function valuez∗SLDP-LP({
eo→teo})
Algorithm 13ISPO-ECB
Require: set of mapsWEjof price trajectories fixed to scenarios dual boundˆΓ
WEj
for the given set of maps current depth/scenario indexj
Ensure:possibly improved dual boundΓˆ WEj
based on the single-supply-relaxed extended wait-and-see solution
1:solve SLDP-CB(WEj) 2:ifz∗
Require: set of mapsWEjof price trajectories fixed to scenarios dual boundˆΓ
WEj
for the given set of maps current depth/scenario indexj
Ensure:possibly improved dual boundΓˆ WEj
based on the LP-relaxed extended wait-and-see solution 1:solve SLDP-LP
We compare different settings for ISPO-BAB in terms of the applied dual bounds. We performed ISPO-BAB for all 166instances from our test-setI6test, see AppendixE.
For these tests we first abandon dominance checks, Algorithm10. We compare differ-ent combinations of combinatorial bounds CB, extended combinatorial bounds ECB, LP bounds LPB and extended LP bounds ELPB. Additionally we applied dominance
“DOM” in terms of the price trajectories to reduce the size of our Branch&Bound tree a priori. In Figure9.1we see how many leaves of the tree can not be pruned by applying the given combinations of bounds.
In many cases the number of remaining leaves can be much reduced by applying the extended combinatorial bounds against the case where only combinatorial bounds are used (from averagely 1.96% to 1.32%). If we use combinatorial bounds together with LP bounds or extended LP bounds there are averagely only 0.89% or 0.80% leaves remaining. Combining combinatorial bounds, extended combinatorial bounds and LP bounds together yields averagely 0,68% remaining leaves. If we replace in this case the LP bounds by extended LP bounds we can reduce the number of remaining leaves averagely to 0.65%.
We depict the improvements by additionally applying dominance in terms of using combinatorial, extended combinatorial and extended LP bounds in Figure9.2. We see how strong we can reduce the number of remaining leaves in the tree “not pruned by dom.” by applying dominance checks for the price trajectories a priori – averagely to 1.68 percents. While the number of remaining leaves in the Branch&Bound tree – or to be solved SLDP(WE)s – only reduces about averagely 0.18 percents “diff ILPs” and
0 2 4 6 8 10 12 14
percentage remaining leaves
instance CB
CB+ECB
CB+LPB CB+ELPB
CB+ECB+LPB CB+ECB+ELPB
Figure 9.1: ISPO-BAB – percentage of non-pruned leaves applying different bounds
0 5 10 15 20 25
percentage
instance not pruned by dom.
diff ECBs diff ELPBs
diff ILPs
Figure 9.2: ISPO-BAB – Applying dominance for the price trajectories
the number of to be solved extended combinatorial bounds “diff ECBs” to 0.44 percents we get averagely about 4.33 percents extended LP bounds “diff ELPBs” fewer to solve by applying dominance checks for price trajectories.
Now we want to concentrate our attention on the computation time of ISPO-BAB in terms of using different dual bounds. For every instance from the setI6test for the stated bounds the average computation time at the leaves is depicted in Figure9.3. If we neglect the scaling Figure9.3looks like Figure9.1. Roughly speaking the figures il-lustrate a typical property of Branch&Bound algorithms: the worse the dual bounds the higher the computation times. In average we get 54,31 seconds for just using combi-natorial bounds, 40.33 seconds for additionally using extended combicombi-natorial bounds, 38.21 seconds for combinatorial and LP bounds, 38.36 for the combination of combi-natorial bounds and extended LP bounds, 32.83 seconds by combining combicombi-natorial, extended combinatorial and LP bounds and 34.19 seconds for using combinatorial, extended combinatorial and extended LP bounds.
Averagely 0.03% fewer ILPs have to be solved by applying ELPBs instead of LPBs.
If we add dominance in the last case we can reduce the runtime averagely to 21.73 seconds.
0 50 100 150 200 250 300
computation time (s)
instance CB
CB+ECB CB+LPB
CB+ELPB CB+ECB+LPB CB+ECB+ELPB
DOM+CB+ECB+ELPB
Figure 9.3: ISPO-BAB – solving time applying different bounds