Discussion
6. DISCUSSION
Recognizing that two designs are the same is difficult because designs that differ very slightly are often still considered the “same”, even though they are not strictly identical. Slight differences can arise when design objects have real-valued attributes.2 The designs shown below, for example, differ only in that the stairs are punctured in slightly different locations.
Figure 7.28: Comparison of solutions with stair punctured in slightly different locations.
To consider these two designs the same, we must define equivalence relations. Two designs might be the same, for example, if their edges are the same; two edges might be the same if their endpoints are within a specified ε of each other. Defining these equivalence relations is a nontriv-ial knowledge engineering problem, though even simple relations will improve program perfor-mance.
Given how difficult it is to recognize equivalent designs, it is tempting to look for equivalent suggestions instead: If a suggestion is proposed that is the same as one in a design’s derivation history, assume the design is equivalent to a predecessor and prune the suggestion.3 We tried this simple lookbehind mechanism and found that it did cut down on extraneous nonminimal solutions. In general, however, such a lookbehind mechanism is not a good idea because (1) defin-ing equivalence for suggestions is just as difficult as for designs, and (2) the design context in
which the second suggestion is proposed may be genuinely different, and pruning the suggestion may cause a solution to be missed. (See experiment 5 in Section 7.6 for lookbehind results.)
7.4.2 Limiting Iteration
Being able to recognize when search has returned to a previously generated design is suffi-cient to guarantee termination if the design space is finite. With real-valued attributes, however, the design space is infinite. Two methods ensure that a system such as TAC terminates its search of such a space: discretizing and bounding the space, or employing an iteration limit.
The space of designs can be discretized at design equivalence-testing time, for example, by defining equivalence relations, as suggested earlier, for real-valued design object attributes. The space also can be discretized at design generation time by discretizing the design operators. A design element to be added at a particular location can be centered on the nearest point in a predefined grid, for example.
The space of designs can be bounded by placing bounds on design object attributes and by insisting that operators keep attribute values within those bounds. The square footage for a design could be bounded, for example, by specifying that it not change by more than a given amount.
Discretizing and bounding a space of designs will ensure termination. In lieu of both of these, however, nontermination may be a problem. In the current version of TAC, the design space is bounded, but not discretized. TAC’s set of operators bound the space by never changing the foot-print of a design, but do not discretize the space. They position design elements on currently exist-ing edges in the design. If intervenexist-ing operators do not change the edges in a design, subsequent positioning or repositioning of design elements will occur at the same locations. Under these cir-cumstances the space appears discretized, but intervening operators can change the edges in a design. TAC’s equivalence testing also does not discretize the space: two designs are the same if their edges are identical and if their design elements have identical types, sizes, and locations.
Because TAC’s search is bounded but not discretized, it relies on an iteration limit to guarantee termination.4
Two examples below show designs that had to rely on an iteration limit because the combina-tions of add, remove, move, and puncture operators modified edges in such a way that the designs varied slightly from previously generated designs. As a result, TAC did not recognize the designs as duplicates and continued with its repair cycles.
4. An iteration limit also may be pragmatic when searching a finite, but very large space.
Figure 7.29: Two designs stopped at iteration limit with sequential control structure.
Long modification sequences proved more of an issue for the sequential control structure than for the other two control structures. This situation arises because, without pruning of conflicting suggestions, more modifications are carried out and those modifications change the size and loca-tion of a design’s edges. As menloca-tioned above, without equivalence relaloca-tions that discretize edge sizes and locations, very similar designs will not be regarded as the same, and TAC will continue repairing each of them. When the sequential control structure can take advantage of synergies in an optimal goal order, long modification sequences and possible nontermination are not issues because the edge-changing modifications are not carried out.