In this section we build the NTP model for a sample brick structure in detail.
In order to build the physical model, first we find the center of mass of all
bricks (circles) and the center of the areas of contact between bricks (crosses),
as shown on fig. 2.7. Each brick generates a force (
and each area of contact, a joint (
From the layout we generate a graph that represents the connectivity of the
structure (fig. 2.8).
We consider initially what the situation is for the first load alone (F1).
This force is originated by the mass of brick number one, and so it points downwards,
its magnitude being equal to the weight of a Lego brick of width six (
= 0.4 g is the per-unit weight of our Lego bricks, and G
the earth's gravitational constant). According to equation 2.1, the
capacity of each joint with respect to this particular load is the magnitude
of the load, multiplied by the torque's arm and divided by the capacity of the
joint (table 2.4). The value of the sign is 1 if the rotation is
clockwise and -1 if counterclockwise.
With the true values2.4 for
the capacities of all joints
in the example are far greater than the light forces generated by this small
structure. To illustrate distribution of force we use fictitious values for
the constants. Assuming
the capacities of joints
relative to load F1 are respectively 1,
to the network flow problem (and solution) on fig. 2.9. Each edge
was labelled with the capacity and (parenthesized) a solution.
The solution to this flow problem could have been obtained by a maximum flow
algorithm. A greedy solver would reduce now the network, computing a ``remaining
capacity'' for each joint (table 2.5
For the multicommodity solver, all forces are considered simultaneously. The
capacities of each joint become boundary conditions on a multicommodity network
flow problem. For example, we can write down the equation for joint number two
by generating a table of all forces and their relative weights for this particular
joint (table 2.7
a solution to this problem is a set of four flows , each one transporting a magnitude of one from the origin of each force (Fioriginates at bi in our example) into the sink G, that also satisfies five boundary equations, analogous to eq. 2.7, one per joint. A multicommodity flow algorithm searches the space of all possible flows, using linear programming techniques, looking for such a solution.
Finally, using the embedded solver would mean that the genotype pre-specifies
a unique direction of flow, and a weight for all joints, as in table 2.8