Non-linear genetic process for use with plural co-evolving populations
First Claim
1. In a parallel processing computer system having at least one processor, a memory, and a plurality of populations of programs of various sizes and structures and wherein more than one program can be executed simultaneously, a group of parallel processes for problem solving wherein more than one parallel process of said group of parallel processes can be performed simultaneously, each parallel process of said group of parallel processes comprising the steps of:
- (i) designating one of said plurality of populations as the evolving population wherein the remaining populations of said plurality of populations are designated co-evolving environmental populations;
(ii) iterating a series of steps, said series of steps including;
a) assigning a fitness value to a program of said evolving population and associating said fitness value with a corresponding program, said fitness value indicative of the relative fitness of said corresponding program in relation to said co-evolving environmental populations;
b) selecting at least one program from said evolving population using selection criteria, said selection criteria based on said fitness value associated with each said program, said selection criteria preferring each said program having a relatively high associated fitness value over each said program having a relatively low associated fitness value;
c) choosing and performing an operation, wherein said chosen operation is one of the operations of crossover or reproduction;
d) creating, if said operation is crossover, at least one new program by crossover using a group of programs from said evolving population, said group of programs comprising said selected program and at least one other program from said evolving population, such that any new program created by crossover comprises at least a portion of said selected program and at least a portion of said other program, said new program capable of differing in size and structure from said selected program and said other program;
e) reproducing, if said chosen operation is reproduction, said selected program in said evolving population, such that said selected program remains unchanged; and
f) adding said new program to said evolving population; and
(iii) terminating when a solution is found.
1 Assignment
0 Petitions
Accused Products
Abstract
A non-linear genetic process for problem solving using co-evolving populations of entities is disclosed. The iterative process of the present invention operates on a plurality of populations of problem solving entities. First, an activated entity in one of the plurality of populations (evolving population) performs, producing a result. The result is assigned a value and the value is associated with the producing entity. The value assigned is computed relative to the performance of the entity in a population different from the evolving population (one of the environmental populations). Next, entities having relatively high associated values are selected from the evolving population. The selected entities perform either crossover or fitness proportionate reproduction. In addition, other operations such as mutation, permutation, define building blocks and editing may be used. Next, the newly created entities are added to the evolving population. Finally, one of the environmental populations switch roles with the evolving population and the process repeats for the new evolving population and the new environmental populations.
139 Citations
45 Claims
-
1. In a parallel processing computer system having at least one processor, a memory, and a plurality of populations of programs of various sizes and structures and wherein more than one program can be executed simultaneously, a group of parallel processes for problem solving wherein more than one parallel process of said group of parallel processes can be performed simultaneously, each parallel process of said group of parallel processes comprising the steps of:
-
(i) designating one of said plurality of populations as the evolving population wherein the remaining populations of said plurality of populations are designated co-evolving environmental populations; (ii) iterating a series of steps, said series of steps including; a) assigning a fitness value to a program of said evolving population and associating said fitness value with a corresponding program, said fitness value indicative of the relative fitness of said corresponding program in relation to said co-evolving environmental populations; b) selecting at least one program from said evolving population using selection criteria, said selection criteria based on said fitness value associated with each said program, said selection criteria preferring each said program having a relatively high associated fitness value over each said program having a relatively low associated fitness value; c) choosing and performing an operation, wherein said chosen operation is one of the operations of crossover or reproduction; d) creating, if said operation is crossover, at least one new program by crossover using a group of programs from said evolving population, said group of programs comprising said selected program and at least one other program from said evolving population, such that any new program created by crossover comprises at least a portion of said selected program and at least a portion of said other program, said new program capable of differing in size and structure from said selected program and said other program; e) reproducing, if said chosen operation is reproduction, said selected program in said evolving population, such that said selected program remains unchanged; and f) adding said new program to said evolving population; and (iii) terminating when a solution is found. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer system for problem solving comprising:
-
memory means for storing a plurality of populations of programs of various sizes and structures, each said program being a hierarchical arrangement of functions and arguments; processing means coupled to said memory means for retrieving said programs stored in said memory means, said processing means executing instructions determined by said retrieved programs; means for designating one of said plurality of populations as the evolving population wherein the remaining populations of said plurality of populations are designated as co-evolving environmental populations; means for assigning a fitness value to a program of said evolving population and associating said fitness value with a corresponding program, said fitness value indicative of the relative fitness of said corresponding program in relation to said co-evolving environmental populations; means for selecting at least one program from said evolving population using selection criteria, said selection criteria based on said fitness value associated with each said program, said selection criteria preferring each said program having a relatively high associated fitness value over each said program having a relatively low associated fitness value; means for choosing and performing an operation, wherein said chosen operation is one of the operations of crossover or reproduction; means for creating, if said operation is crossover, at least one new program by crossover using a group of programs from said evolving population, said group of programs comprising said selected program and at least one other program from said evolving population, such that any new program created by crossover comprises at least a portion of said selected program and at least a portion of said other program, said new program capable of differing in size and structure from said selected program and said other program; means for reproducing, if said chosen operation is reproduction, said selected program in said evolving population, such that said selected program remains unchanged; means for adding said new program to said evolving population; and means for terminating when a solution is found. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. In a computer system having at least one processor, a memory, and a plurality of populations of programs of various sizes and structures, a process for problem solving comprising the steps of:
-
(i) designating one of said plurality of populations as the evolving population wherein the remaining populations of said plurality of populations are designated co-evolving environmental populations; (ii) iterating a series of steps, said series of steps including; a) assigning a fitness value to a program of said evolving population and associating said fitness value with a corresponding program, said fitness value indicative of the relative fitness of said corresponding program in relation to said co-evolving environmental populations; b) selecting at least one program from said evolving population using selection criteria, said selection criteria based on said fitness value associated with each said program, said selection criteria preferring each said program having a relatively high associated fitness value over each said program having a relatively low associated fitness value; c) choosing and performing an operation, wherein said chosen operation is one of the operations of crossover or reproduction; d) creating, if said operation is crossover, at least one new program by crossover using a group of programs from said evolving population, said group of programs comprising said selected program and at least one other program from said evolving population, such that any new program created by crossover comprises at least a portion of said selected program and at least a portion of said other program, said new program capable of differing in size and structure from said selected program and said other program; e) reproducing, if said chosen operation is reproduction, said selected program in said evolving population, such that said selected program remains unchanged; and f) adding said new program to said evolving population; and (iii) terminating when a solution is found. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45)
-
Specification