Method and apparatus for automatic synthesis, placement and routing of complex structures
First Claim
1. In a system having at least one entity, wherein each entity comprises at least one constructing action, a system-implemented iterative process for creating a design of a structure that satisfies prespecified design goals, the iterative process comprising the iteration of a series of steps which comprises:
- executing at least one constructing action in the at least one entity to develop a structure comprising a plurality of components, the execution of the at least one constructing actions determining both the topological connections between components of the structure and the physical location of each of the components of the structure, ascertaining the degree to which the structure satisfies the prespecified design goals, selecting from among the at least one entity, wherein an entity that satisfies the prespecified design goals to a greater degree than another entity is preferred, creating at least one candidate entity by applying an operation to modify at least one of the selected entities.
1 Assignment
0 Petitions
Accused Products
Abstract
The present invention consists of a method and apparatus for the automatic creation of the topology, component sizing, placement, and routing of complex structures, such as electronic circuits or mechanical systems, to satisfy prespecified high-level design goals. The present invention uses a population of entities which are evolved over a series of generations by an iterative process involving the application of operations, such as mutation, crossover, reproduction, and architecture-altering operations. The individuals in the population are each developed, in a developmental process, into a structure that may potentially satisfy the design goals. The present invention also determines the placement of components within the developing structure and determining the routing of the connecting means (wires for electrical circuits) between the components. The behavior of the structures is evaluated in relation to the high-level design goals, and those structures more closely satisfying the design goals are evolved further until a structure is generated that either meets the prespecified design goal. In this manner, the topology, component sizing, placement, and routing of a complex structure may be obtained.
103 Citations
96 Claims
-
1. In a system having at least one entity, wherein each entity comprises at least one constructing action, a system-implemented iterative process for creating a design of a structure that satisfies prespecified design goals, the iterative process comprising the iteration of a series of steps which comprises:
-
executing at least one constructing action in the at least one entity to develop a structure comprising a plurality of components, the execution of the at least one constructing actions determining both the topological connections between components of the structure and the physical location of each of the components of the structure, ascertaining the degree to which the structure satisfies the prespecified design goals, selecting from among the at least one entity, wherein an entity that satisfies the prespecified design goals to a greater degree than another entity is preferred, creating at least one candidate entity by applying an operation to modify at least one of the selected entities. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31)
determining a size of a first component within the structure; and
adjusting positions of all other components in the structure to compensate for the size of the first component.
-
-
28. The process defined in claim 1 wherein ascertaining the degree to which an entity satisfies the prespecified design goals comprises considering parasitic effects between the components of said structure.
-
29. The process defined in claim 1 wherein ascertaining the degree to which an entity satisfies the prespecified design goals comprises considering the total area occupied by all the components of the structure.
-
30. The process defined in claim 1 wherein executing constructing actions comprises restraining execution of constructing actions to ensure components are physically located inside a prespecified area.
-
31. The process defined in claim 1 wherein the at least one entity comprises a population of entities, and further comprising:
-
dividing the population entities into a plurality of groups;
performing one or more operations of each iteration with respect to each entity in each group using a separate processing node.
-
-
32. An iterative computer-implemented process for creating a structural design that satisfies prespecified design goals, the process invoking iterations, each iteration comprising:
-
developing a structure by executing constructing actions in an entity to simultaneously specify a topological arrangement of components, component values and placement of components with respect to each other; and
determining behavior of the developed structure.
-
-
33. An apparatus, for creating a design of a structure that satisfies prespecified design goals, in a system having at least one entity, wherein each entity comprises at least one constructing action, the apparatus comprising:
-
means for executing at least one constructing action in the at least one entity to develop a structure comprising a plurality of components, the execution of the at least one constructing actions determining both the topological connections between components of the structure and the physical location of each of the components of the structure;
means for ascertaining the degree to which the structure satisfies the prespecified design goals;
means for selecting from among the at least one entity, wherein an entity that satisfies the prespecified design goals to a greater degree than another entity is preferred; and
means for creating at least one candidate entity by applying an operation to modify at least one of the selected entities. - View Dependent Claims (34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)
means for determining a size of a first component within the structure; and
means for adjusting positions of all other components in the structure to compensate for the size of the first component.
-
-
60. The apparatus defined in claim 33 wherein the means for ascertaining the degree to which an entity satisfies the prespecified design goals comprises means for considering parasitic effects between the components of said structure.
-
61. The apparatus defined in claim 33 wherein the means for ascertaining the degree to which an entity satisfies the prespecified design goals comprises means for considering the total area occupied by all the components of the structure.
-
62. The apparatus defined in claim 33 wherein the means for executing constructing actions comprises means for restraining execution of constructing actions to ensure components are physically located inside a prespecified area.
-
63. The apparatus defined in claim 33 wherein the at least one entity comprises a population of entities, and further comprising:
-
means for dividing the population entities into a plurality of groups; and
means for performing one or more operations of each iteration with respect to each entity in each group using a separate processing node.
-
-
64. An apparatus for creating a structural design that satisfies prespecified design goals, the apparatus comprising:
-
means for developing a structure by executing constructing actions in an entity to simultaneously specify a topological arrangement of components, component values and placement of components with respect to each other; and
means for determining behavior of the developed structure.
-
-
65. A machine-readable medium having stored thereon executable code which causes a machine to perform a method, for creating a design of a structure that satisfies prespecified design goals, in a system having at least one entity, wherein each entity comprises at least one constructing action, the method comprising:
-
executing at least one constructing action in the at least one entity to develop a structure comprising a plurality of components, the execution of the at least one constructing actions determining both the topological connections between components of the structure and the physical location of each of the components of the structure;
ascertaining the degree to which the structure satisfies the prespecified design goals;
selecting from among the at least one entity, wherein an entity that satisfies the prespecified design goals to a greater degree than another entity is preferred; and
creating at least one candidate entity by applying an operation to modify at least one of the selected entities. - View Dependent Claims (66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95)
determining a size of a first component within the structure; and
adjusting positions of all other components in the structure to compensate for the size of the first component.
-
-
92. The machine-readable medium defined in claim 65 wherein ascertaining the degree to which an entity satisfies the prespecified design goals comprises considering parasitic effects between the components of said structure.
-
93. The machine-readable medium defined in claim 65 wherein ascertaining the degree to which an entity satisfies the prespecified design goals comprises considering the total area occupied by all the components of the structure.
-
94. The machine-readable medium defined in claim 65 wherein executing constructing actions comprises restraining execution of constructing actions to ensure components are physically located inside a prespecified area.
-
95. The machine-readable medium defined in claim 65 wherein the at least one entity comprises a population of entities, and wherein the method further comprises:
-
dividing the population entities into a plurality of groups; and
performing one or more operations of each iteration with respect to each entity in each group using a separate processing node.
-
-
96. A machine-readable medium having stored thereon executable code which causes a machine to perform a method, for creating a structural design that satisfies prespecified design goals, the method comprising:
-
developing a structure by executing constructing actions in an entity to simultaneously specify a topological arrangement of components;
component values and placement of components with respect to each other; and
determining behavior of the developed structure.
-
Specification