US6058385A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Simultaneous evolution of the architecture of a multi-part program while solving a problem using architecture altering operations
Assignee: Individual
•
Filing: 1997-03-07
•
Granted: 2000-05-02
•
Expires: 2017-03-07
Abstract
Abstract An apparatus and method for solving problems where a population is created and evolved to generate a result. While solving the problem, the architecture of entities in the population are altered. Each of said entities may include internally and externally invoked sub-entities. The externally invoked sub-entities are capable of having actions, invocations of sub-entities which are invoked internally, and material. Also, each sub-entity which is invoked internally is capable of including actions, invocations of internally invocable sub-entities, material provided to the externally invocable sub-entity, and material.
Inventors
- 👤 John R. Koza
- 👤 David Andre
- 👤 Walter Alden Tackett
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-10-25 18:28
CPC Classifications
G; G06; G06N; G06N3/00; G06N3/12; G06N3/126
Claims Analysis
Total Claims: 32
Claim 1
Independent Claim
106 words
A computer-implemented process for solving a problem comprising the computer-implemented steps of: creating a population of programmatic entities; generating a solution to the problem, wherein the step of generating the solution comprises the computer-implemented steps of: selecting at least one entity from a population of programmatic entities using selection criteria that is based on fitness; choosing an operation that creates a new entity; if the chosen operation is an architecture altering operation, then performing the architecture altering operation to alter the architecture of said at least one entity of the population of programmatic entities; adding said new entity created by the chosen operation to the population.
Claim 2
Dependent Claim
106 words
A computer-implemented process for solving a problem comprising the computer-implemented steps of: creating a population of programmatic entities; generating a solution to the problem, wherein the step of generating the solution comprises the computer-implemented steps of: selecting at least one entity from a population of programmatic entities using selection criteria that is based on fitness; choosing an operation that creates a new entity; if the chosen operation is an architecture altering operation, then performing the architecture altering operation to alter the architecture of said at least one entity of the population of programmatic entities; adding said new entity created by the chosen operation to the population.
Claim 3
Dependent Claim
61 words
The process defined in claim 1 wherein the step of performing the architecture altering operation comprises the steps of: duplicating a portion of an internally invocable sub-entity from a programmatic entity in the population of programmatic entities to create a duplicated portion of the internally invocable sub-entity; and adding the duplicated portion of the internally invocable sub-entity to the programmatic entity.
Claim 4
Dependent Claim
52 words
The process defined in claim 1 wherein the step of performing the architecture altering operation comprises the steps of: duplicating an internally invocable sub-entity from a programmatic entity in the population of programmatic entities to create a duplicated internally invocable sub-entity; and adding the duplicated internally invocable sub-entity to the programmatic entity.
Claim 5
Dependent Claim
51 words
The process defined in claim 1 wherein the step of performing the architecture altering operation comprises the steps of: duplicating an argument of an internally invocable sub-entity from a programmatic entity in the population of programmatic entities to create a duplicated argument; and adding the duplicated argument to the programmatic entity.
Claim 6
Dependent Claim
33 words
The process defined in claim 1 wherein said step of performing the architecture altering comprises deleting a portion of an internally invocable sub-entity from a programmatic entity in the population of programmatic entities.
Claim 7
Dependent Claim
32 words
The process defined in claim 1 wherein said step of altering the architecture comprises the step of deleting an internally invocable sub-entity from a programmatic entity in the population of programmatic entities.
Claim 8
Dependent Claim
28 words
The process defined in claim 1 wherein the step of altering the architecture comprises the step of creating an internally invocable sub-entity from a portion of a sub-entity.
Claim 9
Dependent Claim
25 words
The process defined in claim 1 wherein the step of altering the architecture comprises the step of creating an argument for an internally invocable sub-entity.
Claim 10
Dependent Claim
243 words
In a system having a population of program entities of various sizes and shapes, wherein each program entity comprises a hierarchical arrangement of functions and terminals, wherein at least one of said functions in at least one of said program entities stores information by setting at least one memory variable, a process comprising iterations of a series of computer-implemented steps, each iteration comprising the computer-implemented steps of: executing program entities by performing each function in said hierarchical arrangement of functions and terminals, including executing said at least one of said functions in said at least one program entity to store information by setting said at least one memory variable; selecting said at least one program entity from said population using selection criteria that is based on fitness using selection criteria which tends to prefer program entities having a relatively good fitness over program entities with relatively poor fitness; choosing an operation that creates a new program entity; if said chosen operation is crossover, then selecting a group of at least two program entities from said population including said at least one program entity based on the fitness of said at least two program entities, and performing said crossover operation; if said chosen operation is not crossover, then selecting at least one program entity based on the fitness of said at least two program entities, and performing said chosen operation; and adding said new program entity created by said chosen operation to said population.
Claim 11
Dependent Claim
243 words
In a system having a population of program entities of various sizes and shapes, wherein each program entity comprises a hierarchical arrangement of functions and terminals, wherein at least one of said functions in at least one of said program entities stores information by setting at least one memory variable, a process comprising iterations of a series of computer-implemented steps, each iteration comprising the computer-implemented steps of: executing program entities by performing each function in said hierarchical arrangement of functions and terminals, including executing said at least one of said functions in said at least one program entity to store information by setting said at least one memory variable; selecting said at least one program entity from said population using selection criteria that is based on fitness using selection criteria which tends to prefer program entities having a relatively good fitness over program entities with relatively poor fitness; choosing an operation that creates a new program entity; if said chosen operation is crossover, then selecting a group of at least two program entities from said population including said at least one program entity based on the fitness of said at least two program entities, and performing said crossover operation; if said chosen operation is not crossover, then selecting at least one program entity based on the fitness of said at least two program entities, and performing said chosen operation; and adding said new program entity created by said chosen operation to said population.
Claim 12
Dependent Claim
242 words
In a system having a population of entities of various sizes and shapes, wherein each program entity comprises a hierarchical arrangement of functions and terminals, wherein at least one of said functions in at least one of said program entities accesses information stored in at least one memory variable, a process comprising iterations of a series of computer-implemented steps, each iteration comprising the computer-implemented steps of: executing program entities by performing each function in said hierarchical arrangement of functions and terminals, including executing said at least one of said functions in said at least one program entity to access information stored in at said at least one memory variable; selecting said at least one program entity from said population using selection criteria that is based on fitness using selection criteria which tends to prefer program entities having a relatively good fitness over program entities with relatively poor fitness; choosing an operation that creates a new program entity; if said chosen operation is crossover, then selecting a group of at least two program entities from said population including said at least one program entity based on the fitness of said at least two program entities, and performing said crossover operation; if said chosen operation is not crossover, then selecting at least one program entity based on the fitness of said at least two entities, and performing said chosen operation; and adding said new program entity created by said chosen operation to said population.
Claim 13
Dependent Claim
242 words
In a system having a population of entities of various sizes and shapes, wherein each program entity comprises a hierarchical arrangement of functions and terminals, wherein at least one of said functions in at least one of said program entities accesses information stored in at least one memory variable, a process comprising iterations of a series of computer-implemented steps, each iteration comprising the computer-implemented steps of: executing program entities by performing each function in said hierarchical arrangement of functions and terminals, including executing said at least one of said functions in said at least one program entity to access information stored in at said at least one memory variable; selecting said at least one program entity from said population using selection criteria that is based on fitness using selection criteria which tends to prefer program entities having a relatively good fitness over program entities with relatively poor fitness; choosing an operation that creates a new program entity; if said chosen operation is crossover, then selecting a group of at least two program entities from said population including said at least one program entity based on the fitness of said at least two program entities, and performing said crossover operation; if said chosen operation is not crossover, then selecting at least one program entity based on the fitness of said at least two entities, and performing said chosen operation; and adding said new program entity created by said chosen operation to said population.
Claim 14
Dependent Claim
246 words
In a system having a population of program entities of various sizes and shapes, wherein each program entity comprises a hierarchical arrangement of functions and terminals, wherein at least one of said functions in at least one of said program entities is an operation with side effects on the state of the system, a process comprising iterations of a series of computer-implemented steps, each iteration comprising the computer-implemented steps of: executing program entities by performing each function in said hierarchical arrangement of functions and terminals, including executing said at least one of said functions in said at least one program entity to cause the side effects on the state of the system; selecting said at least one program entity from said population using selection criteria that is based on fitness using selection criteria which tends to prefer program entities having a relatively good fitness over program entities with relatively poor fitness; choosing an operation that creates a new program entity; if said chosen operation is crossover, then selecting a group of at least two program entities from said population including said at least one program entity based on the fitness of said at least two program entities, and performing said crossover operation; if said chosen operation is not crossover, then selecting at least one program entity based on the fitness of said at least two program entities, and performing said chosen operation; and adding said new program entity created by said chosen operation to said population.
Claim 15
Dependent Claim
246 words
In a system having a population of program entities of various sizes and shapes, wherein each program entity comprises a hierarchical arrangement of functions and terminals, wherein at least one of said functions in at least one of said program entities is an operation with side effects on the state of the system, a process comprising iterations of a series of computer-implemented steps, each iteration comprising the computer-implemented steps of: executing program entities by performing each function in said hierarchical arrangement of functions and terminals, including executing said at least one of said functions in said at least one program entity to cause the side effects on the state of the system; selecting said at least one program entity from said population using selection criteria that is based on fitness using selection criteria which tends to prefer program entities having a relatively good fitness over program entities with relatively poor fitness; choosing an operation that creates a new program entity; if said chosen operation is crossover, then selecting a group of at least two program entities from said population including said at least one program entity based on the fitness of said at least two program entities, and performing said crossover operation; if said chosen operation is not crossover, then selecting at least one program entity based on the fitness of said at least two program entities, and performing said chosen operation; and adding said new program entity created by said chosen operation to said population.
Claim 16
Dependent Claim
223 words
In a system having a population of program entities of various sizes and shapes, wherein each program entity comprises a hierarchical arrangement of functions and terminals, wherein at least one of said functions in at least one of said program entities is a transcendental function, a process comprising iterations of a series of computer-implemented steps, each iteration comprising the computer-implemented steps of: executing program entities by performing each function in said hierarchical arrangement of functions and terminals, including executing said transcendental function in said at least one program entity; selecting said at least one program entity from said population using selection criteria that is based on fitness using selection criteria which tends to prefer program entities having a relatively good fitness over program entities with relatively poor fitness; choosing an operation that creates a new program entity; if said chosen operation is crossover, then selecting a group of at least two program entities from said population including said at least one program entity based on the fitness of said at least two program entities, and performing said crossover operation; if said chosen operation is not crossover, then selecting at least one program entity based on the fitness of said at least two program entities, and performing said chosen operation; and adding said new program entity created by said chosen operation to said population.
Claim 17
Dependent Claim
223 words
In a system having a population of program entities of various sizes and shapes, wherein each program entity comprises a hierarchical arrangement of functions and terminals, wherein at least one of said functions in at least one of said program entities is a transcendental function, a process comprising iterations of a series of computer-implemented steps, each iteration comprising the computer-implemented steps of: executing program entities by performing each function in said hierarchical arrangement of functions and terminals, including executing said transcendental function in said at least one program entity; selecting said at least one program entity from said population using selection criteria that is based on fitness using selection criteria which tends to prefer program entities having a relatively good fitness over program entities with relatively poor fitness; choosing an operation that creates a new program entity; if said chosen operation is crossover, then selecting a group of at least two program entities from said population including said at least one program entity based on the fitness of said at least two program entities, and performing said crossover operation; if said chosen operation is not crossover, then selecting at least one program entity based on the fitness of said at least two program entities, and performing said chosen operation; and adding said new program entity created by said chosen operation to said population.
Claim 18
Dependent Claim
275 words
In a system having a population of program entities of various sizes and shapes, wherein each program entity comprises a hierarchical arrangement of functions and terminals, wherein at least one of said functions in at least one of said program entities is modified to yield a value for values of its arguments that ordinarily would not yield a value that is acceptable as an input to another function, a process comprising iterations of a series of computer-implemented steps, each iteration comprising the computer-implemented steps of: executing program entities by performing each function in said hierarchical arrangement of functions and terminals, including executing said at least one of said functions in said at least one program entity to yield the value for values of its arguments that ordinarily would not yield a value that is acceptable as an input to another function; selecting said at least one program entity from said population using selection criteria that is based on fitness using selection criteria which tends to prefer program entities having a relatively good fitness over program entities with relatively poor fitness; choosing an operation that creates a new program entity; if said chosen operation is crossover, then selecting a group of at least two program entities from said population including said at least one program entity based on the fitness of said at least two program entities, and performing said crossover operation; if said chosen operation is not crossover, then selecting at least one program entity based on the fitness of said at least two program entities, and performing said chosen operation; and adding said new program entity created by said chosen operation to said population.
Claim 19
Dependent Claim
275 words
In a system having a population of program entities of various sizes and shapes, wherein each program entity comprises a hierarchical arrangement of functions and terminals, wherein at least one of said functions in at least one of said program entities is modified to yield a value for values of its arguments that ordinarily would not yield a value that is acceptable as an input to another function, a process comprising iterations of a series of computer-implemented steps, each iteration comprising the computer-implemented steps of: executing program entities by performing each function in said hierarchical arrangement of functions and terminals, including executing said at least one of said functions in said at least one program entity to yield the value for values of its arguments that ordinarily would not yield a value that is acceptable as an input to another function; selecting said at least one program entity from said population using selection criteria that is based on fitness using selection criteria which tends to prefer program entities having a relatively good fitness over program entities with relatively poor fitness; choosing an operation that creates a new program entity; if said chosen operation is crossover, then selecting a group of at least two program entities from said population including said at least one program entity based on the fitness of said at least two program entities, and performing said crossover operation; if said chosen operation is not crossover, then selecting at least one program entity based on the fitness of said at least two program entities, and performing said chosen operation; and adding said new program entity created by said chosen operation to said population.
Claim 20
Dependent Claim
233 words
In a system having a population of program entities of various sizes and shapes, wherein each program entity comprises a hierarchical arrangement of functions and terminals, wherein at least one of said functions in at least one of said program entities is yields a symbolic output, a process comprising iterations of a series of computer-implemented steps, each iteration comprising the computer-implemented steps of: executing program entities by performing each function in said hierarchical arrangement of functions and terminals, including executing said at least one of said functions in said at least one program entity to yield the symbolic output; selecting said at least one program entity from said population using selection criteria that is based on fitness using selection criteria which tends to prefer program entities having a relatively good fitness over program entities with relatively poor fitness; choosing an operation that creates a new program entity; if said chosen operation is crossover, then selecting a group of at least two program entities from said population including said at least one program entity based on the fitness of said at least two program entities, and performing said crossover operation; if said chosen operation is not crossover, then selecting at least one program entity based on the fitness of said at least two program entities, and performing said chosen operation; and adding said new program entity created by said chosen operation to said population.
Claim 21
Dependent Claim
233 words
In a system having a population of program entities of various sizes and shapes, wherein each program entity comprises a hierarchical arrangement of functions and terminals, wherein at least one of said functions in at least one of said program entities is yields a symbolic output, a process comprising iterations of a series of computer-implemented steps, each iteration comprising the computer-implemented steps of: executing program entities by performing each function in said hierarchical arrangement of functions and terminals, including executing said at least one of said functions in said at least one program entity to yield the symbolic output; selecting said at least one program entity from said population using selection criteria that is based on fitness using selection criteria which tends to prefer program entities having a relatively good fitness over program entities with relatively poor fitness; choosing an operation that creates a new program entity; if said chosen operation is crossover, then selecting a group of at least two program entities from said population including said at least one program entity based on the fitness of said at least two program entities, and performing said crossover operation; if said chosen operation is not crossover, then selecting at least one program entity based on the fitness of said at least two program entities, and performing said chosen operation; and adding said new program entity created by said chosen operation to said population.
Claim 22
Dependent Claim
245 words
In a system having a population of program entities of various sizes and shapes, wherein each program entity comprises a hierarchical arrangement of functions and terminals, wherein at least one of said functions in at least one of said program entities receives program segments as arguments and sequentially evaluates each of said segments, a process comprising iterations of a series of computer-implemented steps, each iteration comprising the computer-implemented steps of: executing program entities by performing each function in said hierarchical arrangement of functions and terminals, including executing said at least one of said functions in said at least one program entity to sequentially evaluate each of said segments received as arguments; selecting said at least one program entity from said population using selection criteria that is based on fitness using selection criteria which tends to prefer program entities having a relatively good fitness over program entities with relatively poor fitness; choosing an operation that creates a new program entity; if said chosen operation is crossover, then selecting a group of at least two program entities from said population including said at least one program entity based on the fitness of said at least two program entities, and performing said crossover operation; if said chosen operation is not crossover, then selecting at least one program entity based on the fitness of said at least two program entities, and performing said chosen operation; and adding said new program entity created by said chosen operation to said population.
Claim 23
Dependent Claim
245 words
In a system having a population of program entities of various sizes and shapes, wherein each program entity comprises a hierarchical arrangement of functions and terminals, wherein at least one of said functions in at least one of said program entities receives program segments as arguments and sequentially evaluates each of said segments, a process comprising iterations of a series of computer-implemented steps, each iteration comprising the computer-implemented steps of: executing program entities by performing each function in said hierarchical arrangement of functions and terminals, including executing said at least one of said functions in said at least one program entity to sequentially evaluate each of said segments received as arguments; selecting said at least one program entity from said population using selection criteria that is based on fitness using selection criteria which tends to prefer program entities having a relatively good fitness over program entities with relatively poor fitness; choosing an operation that creates a new program entity; if said chosen operation is crossover, then selecting a group of at least two program entities from said population including said at least one program entity based on the fitness of said at least two program entities, and performing said crossover operation; if said chosen operation is not crossover, then selecting at least one program entity based on the fitness of said at least two program entities, and performing said chosen operation; and adding said new program entity created by said chosen operation to said population.
Claim 24
Dependent Claim
244 words
In a system having a population of program entities of various sizes and shapes, wherein each program entity comprises a hierarchical arrangement of functions and terminals, wherein at least one of said functions in at least one of said program entities is an iterative function that performs steps until a condition is satisfied, a process comprising iterations of a series of computer-implemented steps, each iteration comprising the computer-implemented steps of: executing program entities by performing each function in said hierarchical arrangement of functions and terminals, including executing said at least one of said functions in said at least one program entity to iteratively perform steps until a condition is satisfied; selecting said at least one program entity from said population using selection criteria that is based on fitness using selection criteria which tends to prefer program entities having a relatively good fitness over program entities with relatively poor fitness; choosing an operation that creates a new program entity; if said chosen operation is crossover, then selecting a group of at least two program entities from said population including said at least one program entity based on the fitness of said at least two program entities, and performing said crossover operation; if said chosen operation is not crossover, then selecting at least one program entity based on the fitness of said at least two program entities, and performing said chosen operation; and adding said new program entity created by said chosen operation to said population.
Claim 25
Dependent Claim
244 words
In a system having a population of program entities of various sizes and shapes, wherein each program entity comprises a hierarchical arrangement of functions and terminals, wherein at least one of said functions in at least one of said program entities is an iterative function that performs steps until a condition is satisfied, a process comprising iterations of a series of computer-implemented steps, each iteration comprising the computer-implemented steps of: executing program entities by performing each function in said hierarchical arrangement of functions and terminals, including executing said at least one of said functions in said at least one program entity to iteratively perform steps until a condition is satisfied; selecting said at least one program entity from said population using selection criteria that is based on fitness using selection criteria which tends to prefer program entities having a relatively good fitness over program entities with relatively poor fitness; choosing an operation that creates a new program entity; if said chosen operation is crossover, then selecting a group of at least two program entities from said population including said at least one program entity based on the fitness of said at least two program entities, and performing said crossover operation; if said chosen operation is not crossover, then selecting at least one program entity based on the fitness of said at least two program entities, and performing said chosen operation; and adding said new program entity created by said chosen operation to said population.
Claim 26
Dependent Claim
205 words
In a system having a population of program entities of various sizes and shapes, wherein each program entity comprises a hierarchical arrangement of functions and terminals, a process comprising iterations of a series of computer-implemented steps, each iteration comprising the computer-implemented steps of: executing program entities by performing each function in said hierarchical arrangement of functions and terminals, wherein execution of one of the program entities produces a plurality of outputs; selecting said at least one program entity from said population using selection criteria that is based on fitness using selection criteria which tends to prefer program entities having a relatively good fitness over program entities with relatively poor fitness; choosing an operation that creates a new program entity; if said chosen operation is crossover, then selecting a group of at least two program entities from said population including said at least one program entity based on the fitness of said at least two program entities, and performing said crossover operation; if said chosen operation is not crossover, then selecting at least one program entity based on the fitness of said at least two program entities, and performing said chosen operation; and adding said new program entity created by said chosen operation to said population.
Claim 27
Dependent Claim
205 words
In a system having a population of program entities of various sizes and shapes, wherein each program entity comprises a hierarchical arrangement of functions and terminals, a process comprising iterations of a series of computer-implemented steps, each iteration comprising the computer-implemented steps of: executing program entities by performing each function in said hierarchical arrangement of functions and terminals, wherein execution of one of the program entities produces a plurality of outputs; selecting said at least one program entity from said population using selection criteria that is based on fitness using selection criteria which tends to prefer program entities having a relatively good fitness over program entities with relatively poor fitness; choosing an operation that creates a new program entity; if said chosen operation is crossover, then selecting a group of at least two program entities from said population including said at least one program entity based on the fitness of said at least two program entities, and performing said crossover operation; if said chosen operation is not crossover, then selecting at least one program entity based on the fitness of said at least two program entities, and performing said chosen operation; and adding said new program entity created by said chosen operation to said population.
Claim 28
Dependent Claim
137 words
A process for solving a problem using a parallel processing computer system having a population of various sizes and structures, said process comprising the step of performing a group of processes, wherein more than one process is performed simultaneously, each process of said group of processes comprising iterations of a series of computer-implemented steps, each iteration comprising the computer-implemented steps of: executing programmatic program entities; selecting said at least one program entity from said population using selection criteria that is based on fitness using selection criteria which tends to prefer program entities having a relatively good fitness over program entities with relatively poor fitness; performing an operation on at least one programmatic program entity selected from the population to create a new program entity; adding said new program entity created by said chosen operation to said population.
Claim 29
Dependent Claim
137 words
A process for solving a problem using a parallel processing computer system having a population of various sizes and structures, said process comprising the step of performing a group of processes, wherein more than one process is performed simultaneously, each process of said group of processes comprising iterations of a series of computer-implemented steps, each iteration comprising the computer-implemented steps of: executing programmatic program entities; selecting said at least one program entity from said population using selection criteria that is based on fitness using selection criteria which tends to prefer program entities having a relatively good fitness over program entities with relatively poor fitness; performing an operation on at least one programmatic program entity selected from the population to create a new program entity; adding said new program entity created by said chosen operation to said population.
Claim 30
Dependent Claim
17 words
The process defined in claim 18 wherein each of said parallel processes operate on a separate sub-population.
Claim 31
Dependent Claim
20 words
The process defined in claim 18 wherein said process further comprises the step of periodically intermixing sub-populations of said population.
Claim 32
Dependent Claim
43 words
The process defined in claim 18 wherein an initial population of programmatic program entities is created by randomly generating programmatic program entities of various sizes and structures, said programmatic program entities comprising hierarchical programming structures having functions and arguments available for the problem.
References Cited (Backward Citations)
US4479241A
Cited
US4697242A
Cited
US4675829A
Cited
US4821333A
Cited
US4881178A
Cited
US5222192A
Cited
US5390282A
Cited
US5557533A
Cited
US5581657A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2003-05-02 | 2003-11-01 | 2004-05-02 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2007-05-02 | 2007-11-01 | 2008-05-02 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2011-05-02 | 2011-11-01 | 2012-05-02 | $7700.00 | Window Closed / Lapsed |