• Keine Ergebnisse gefunden

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∀bB, sS, nN,∀tTfor 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 allbBdo 16: for allsSdo

17: for allnNdo

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Γ (ete)for alleE,teTe set of mapsWEj−1forEj−1:={ei|i < j}

current global upper boundz

Ensure:possibly updated boundsΓ (ete)and/or updated primal boundz 1:WEj=WEj−1∪ {ejteji }

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Γ (et)for each single mapetinWEj Ensure:possibly improved dual boundΓˆ

WEj

based on the LP-relaxed wait-and-see solution possibly improved dual boundsΓ (eoteo)foroj

1:for allo= 1, . . . , jdo

2: ifSLDP-LP({eoteo})not solved until nowthen

3: solve SLDP-LP({eoteo})optimal objective function valuezSLDP-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