**7.3. Modifications involving additional memory**

*Added Modification to Initialization for Z = Zo*:

Copy = False (where Copy indicates whether a copy is made of the arrays indicated in the modification below).

A*dded Modification of the Inner Loop for all Z*:

Each time Case (2) yields a new value of Znext (after checking for both k′ and k″ for Z = Zo) record a copy of ne, the set K and arrays N<sup>k</sup> ,Ek , MinCostA(k), k ∈K and the arrays L(i),

<sup>2</sup> As before, we adopt the convention whereby the loop is bypassed if v<sup>3</sup> = 1 but will be executed on the iteration where v: = v + 1 results in v = v<sup>3</sup> .

MinCostB(i), MinCostC(i), i∈ N (writing over any previous copy). Let Copy = True if such a copy is made. (As remarked earlier, it is not necessary to keep track of the E<sup>k</sup> array.)

*Added Modification for the Preliminary Loop*

If Copy = False, execute the Preliminary Loop. Otherwise, if Copy = True, instead of executing the Preliminary Loop read the copies of the saved arrays into the active form of these arrays, followed by setting s = s2(v<sup>2</sup> ) and Copy = False. (The Inner Loop immediately follows this modification.)

The complete C(Z) Algorithm that incorporates all of these changes is shown in the Appendix for convenience.
