It just dawned on me watching an airplane fly, imagining a system that could design itself, in the sense that it would adjust its shape to account for, e.g., aerodynamics, you would need to first unpack the state space of possible configurations for the object. This is not the same as a goal-oriented state space algorithm, since you’re not looking for a known end state (e.g., a particular configuration), but are instead trying to unpack the set of possible configurations. Then, you would traverse that unpacked state space, optimizing for some variable, finding the orientation that minimizes / maximizes or otherwise best satisfies the constraints you have in mind.
In a previous article, I introduced a Monte Carlo optimization algorithm, that I now realize can be tweaked to perform exactly this type of state space unpacking function:
1. Evaluate some large number of possibilities using a Monte Carlo seed function;
2. Cluster the resultant possibilities, and for simplicity, let’s assume each possible outcome is represented as some vector;
3. Then, run the Monte Carlo seed function again;
4. Among the new outcome vectors, find the ones that are not within delta of the previous round, and allocate more capacity to those seed values, possibly all of the capacity (by definition, these outcomes are novel in the context of the known state space);
5. Repeat this process for some preset number of iterations, or until you no longer find novel outcomes.