Our initial approach for solving NTP problems was a greedy algorithm: Forces
are analyzed one at a time. The push-relabel algorithm PRF by Cherkassky
and Goldberg [21] is used to find a valid flow. Once a flow
has been found it is fixed, and a remaining capacity for each joint (eq. 2.3)
is computed that will produce a reduced network that must support the next force.
A maximum flow is found for the second force with respect to the reduced network
and so on for all forces.
This simple algorithm misses solutions, yet is quick, and thus we preferred it for time reasons to the more sophisticated solvers. With the greedy model, some solutions might be missed; but the ones found are good -- so the structures evolve within the space of provable solutions, that is, those for which a greedy solution is found. This algorithm was particularly useful in the crane cases (sections 2.4, 2.6.3), where there is one special force, several orders of magnitude larger than the others. All experiments detailed here use this approach, except for the tree experiment (section 2.8) and EvoCAD (2.9), which employ the ``embedded solver'' explained below.