This approach combines aspects of optimization, graph theory, mathematical programming, artificial intelligence, and shape and graph grammars. While traditional optimization is typically used to find the best values for dimensions and parameters within an already detailed design, topology optimization can be used earlier in the design process to determine a configuration of constitutive elements. Configuring components can be tedious given the abundance and variety of component types and the pressures imposed by shorter design cycles. Such topological problems are prevalent in engineering design. Examples include the design of sheet metal components, the location and connection of roadways, and the choice and connection of processors in a chemical plant.