Non-linear genetic process for data encoding and for solving problems using automatically defined functions
First Claim
1. In a computing system having at least one processor and at least one memory, a computer implemented process for solving a problem comprising the steps of:
- creating a population of programmatic entities having sub-entities, wherein at least one of said sub-entities is externally invocable and at least one of said programmatic entities in the population has at least one internally invocable sub-entity, said at least one externally invocable sub-entity including at least one invocation of an internally invocable sub-entity; and
evolving said population, including the step of executing the population of programmatic entities, wherein said at least one externally invocable sub-entity invokes said at least one internally invocable sub-entity to produce results and, wherein said step of evolving further includes the step of generating at least one new programmatic entity in response to the results.
2 Assignments
0 Petitions
Accused Products
Abstract
An apparatus and method for solving problems using automatic function definitions, for solving problems using recursion and for performing data encoding. The present invention includes an apparatus and process for creating a population and then evolving that population to generate a result. When solving problems using automatic function definition, the apparatus and process initially creates a population of entities. Each of said entities has sub-entities of 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. The population is then evolved to generate a solution to the problem. When using the process to solve problems using recursion, the entities in the population are constructed in such a manner as explicitly to represent the termination predicate, the base case and the non-base case of the recursion. Each entity has access to a name denoting that entity so as allow recursive references. The population is then evolved to generate a solution to the problem. When encoding a set of data values into a procedure capable of approximating those data values, the apparatus and process initially creates a population of entities. The population is then evolved to generate a solution to the problem.
223 Citations
61 Claims
-
1. In a computing system having at least one processor and at least one memory, a computer implemented process for solving a problem comprising the steps of:
-
creating a population of programmatic entities having sub-entities, wherein at least one of said sub-entities is externally invocable and at least one of said programmatic entities in the population has at least one internally invocable sub-entity, said at least one externally invocable sub-entity including at least one invocation of an internally invocable sub-entity; and evolving said population, including the step of executing the population of programmatic entities, wherein said at least one externally invocable sub-entity invokes said at least one internally invocable sub-entity to produce results and, wherein said step of evolving further includes the step of generating at least one new programmatic entity in response to the results. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 11, 12)
-
-
10. In computing system having at least one processor and at least one memory, a computer implemented process for problem solving using a population of programmatic entities, wherein each of said programmatic entities includes sub-entities, wherein at least one of said sub-entities is externally invocable and at least one of said programmatic entities in the population has at least one internally invocable sub-entity, said at least one externally invocable sub-entity including at least one invocation of an internally invocable sub-entity, said process comprising iterations of a series of steps, each iteration comprising the steps:
-
executing each said programmatic entity to produce a result; selecting at least one programmatic entity from said population using selection criteria, said selection criteria based on a fitness associated with each said programmatic entity, said selection criteria preferring each said programmatic entity having a relatively high associated fitness over each said programmatic entity having a relatively low associated fitness; choosing and performing an operation wherein each chosen operation is one of the operations of crossover or reproduction; retaining said selected programmatic entity such that said selected programmatic entity remains unchanged if said chosen operation is reproduction; creating at least one new programmatic entity by crossover using a group of programmatic entities if said chosen operation is crossover, said group of programmatic entities comprising said selected programmatic entity and at least another programmatic entity, wherein a portion of the selected programmatic entity and a portion of said at least another programmatic entity are designed, such that the new programmatic entity created by crossover comprises said portion of said selected programmatic entity other than said designed portion and said designated portion of said at least another programmatic entity, said new programmatic entity differing in size and shape from said selected programmatic entity and said at least another programmatic entity when the designated portion of said selected programmatic entity and said designated portion of said at least another programmatic entity differ in size and shape; and adding said new programmatic entity to said population. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. In a computing system having at least one processor and a memory, a computer implemented process for solving a problem comprising the steps of:
-
creating an initial population of programmatic entities having sub-entities, wherein at least one of said sub-entities produces a result upon execution and at least one of said programmatic entities in the population has at least one function defining sub-entity, said one of said at least one sub-entity capable of including at least one invocation of a function defining sub-entity; and evolving said population to generate a solution to said problem, wherein said step of evolving includes the step of executing each said programmatic entity to produce a result, wherein the function defining sub-entity is invoked by said one of the programmatic entities that produces results, such that the solution to said problem is derived from results produced by evolving said population. - View Dependent Claims (26, 27, 28, 29)
-
-
30. The process defined in claim wherein material comprises material provided to said function defining sub-entity.
-
31. A computing system for solving problems comprising a processor and a memory means coupled to said processor for storing a population of programmatic entities, wherein each of said programmatic entities is comprised of sub-entities, wherein at least one of said sub-entities is externally invocable and at least one of said programmatic entities in the population has at least one internally invocable sub-entity, said at least one externally invocable sub-entity including at least one invocation of an internally invocable sub-entity, said computing system further comprising:
-
means for executing each said programmatic entity to produce a result, said means for executing coupled to said memory means; means for selecting at least one programmatic entity from said population using selection criteria, said selection criteria based on a fitness associated with each said programmatic entity, said selection criteria preferring each said programmatic entity having a relatively high associated fitness over each said programmatic entity having a relatively low associated fitness, said means for selecting coupled to said memory means; means for choosing and performing an operation wherein each chosen operation is one of the operations of crossover or reproduction, said means for choosing and performing coupled to said memory means; means for creating at least one new programmatic entity by crossover using a group of programmatic entities if said chosen operation is crossover, said group of programmatic entities comprising said selected programmatic entity and at least another programmatic entity, wherein a portion of the selected programmatic entity and a portion of said at least another programmatic entity are designated, such that said new programmatic entity created by crossover comprises the portion of said selected programmatic entity other than said designated portion and said designated portion of said at least another programmatic entity, wherein said crossover operation is restrained such that said designated portion of said at least another programmatic entity in said new programmatic entity includes only those actions, material and references to internally invocable sub-entities that have been given a meaning by the other than the designated portion of said selected programmatic entity, said new programmatic entity differing in size and shape from said selected programmatic entity and said at least another programmatic entity when the designated portion of said selected programmatic entity and said designated portion of said at least another programmatic entity differ in size and shape, said means for creating coupled to said memory means; means for retaining said selected programmatic entity such that said selected programmatic entity remains unchanged if said chosen operation is reproduction, said means for retaining coupled to said memory means; means for adding said new programmatic entity to said population, said means for adding coupled to said memory means. - View Dependent Claims (32, 33, 34, 35, 36, 37, 38, 39, 40)
-
-
41. In a computing system having at least one processor and a memory, a computer implemented process for automatically encoding a set of data values into a procedure for at least approximating said set of data values, using a population of programmatic entities of various sizes and shapes, wherein each programmatic entity is a hierarchical arrangement of actions and material, said process comprising iterations of a series of steps which generate said procedure, each iteration comprising the steps:
-
executing each said programmatic entity to produce a result; selecting at least one programmatic entity from said population using selection criteria, said selection criteria based on a fitness associated with each said programmatic entity, said selection criteria preferring each said programmatic entity having a relatively high associated fitness over each said programmatic entity having a relatively low associated fitness; choosing and performing an operation wherein each chosen operation is one of the operations of crossover or reproduction; creating at least one new programmatic entity by crossover using a group of programmatic entities if said chosen operation is crossover, said group of programmatic entities comprising said selected programmatic entity and at least another programmatic entity, such that any new programmatic entity created by crossover comprises at least a portion of said selected programmatic entity and at least a portion of said at least another programmatic entity, said new programmatic entity differing in size and shape from said selected programmatic entity and said at least another programmatic entity when said at least a portion of said selected programmatic entity and said at least a portion of said at least another programmatic entity differ in size and shape; retaining said selected programmatic entity such that said selected programmatic entity remains unchanged if said chosen operation is reproduction; adding said new programmatic entity to said population. - View Dependent Claims (42, 43, 44, 45, 46, 47, 48, 49)
-
-
50. A computing system for automatically encoding a set of data values into a procedure for at least approximating said set of data values comprising a processor and a memory means coupled to said processor for storing a population of programmatic entities of various sizes and shapes, wherein each programmatic entity is a hierarchical arrangement of actions and material appropriate to the domain of data values, said computing system further comprising:
-
means for executing each said programmatic entity to produce a result by performing said hierarchical arrangement of functions, said means for executing coupled to said memory means; means for selecting at least one programmatic entity from said population using selection criteria, said selection criteria based on a fitness associated with each said programmatic entity, said selection criteria preferring each said programmatic entity having a relatively high associated fitness over each said programmatic entity having a relatively low associated fitness, said means for selecting coupled to said memory means; means for choosing and performing an operation wherein each chosen operation is one of the operations of crossover or reproduction, said means for choosing and performing coupled to said memory means; means for creating at least one new programmatic entity by crossover using a group of programmatic entities if said chosen operation is crossover, said group of programmatic entities comprising said selected programmatic entity and at least another programmatic entity, such that any new programmatic entity created by crossover comprises at least a portion of said selected programmatic entity and at least a portion of said at least another programmatic entity, said new programmatic entity differing in size and shape from said selected programmatic entity and said at least another programmatic entity when said at least a portion of said selected program and said at least a portion of said at least another program differ in size and shape, said means for creating coupled to said memory means; means for retaining said selected programmatic entity such that said selected programmatic entity remain unchanged if said chosen operation is reproduction, said means for retaining coupled to said memory means; means for adding said new programmatic entity to said population, said means for adding coupled to said memory means, wherein said computing system generates a computer program representing said data, such that said data is encoded.
-
-
51. In a computing system having at least one processor and at least one memory, a computer implemented process for solving a problem using a population of named programmatic entities of various sizes and shapes, wherein each programmatic entity has a hierarchical arrangement of actions and material, at least one programmatic entity containing at least one reference to itself by use of said name, said process comprising iterations of a series of steps, each iteration comprising the steps:
-
executing each said programmatic entity to produce a result, wherein at least one of the programmatic entities invokes itself recursively; selecting at least one programmatic entity from said population using selection criteria, said selection criteria based on a fitness associated with each said programmatic entity, said selection criteria preferring each said programmatic entity having a relatively high associated fitness over each said programmatic entity having a relatively low associated fitness; choosing and performing an operation wherein each chosen operation is one of the operations of crossover or reproduction; creating at least one new programmatic entity by crossover using a group of programmatic entities if said chosen operation is crossover, said group of programmatic entities comprising said selected programmatic entity and at least another programmatic entity, wherein a portion of the selected programmatic entity and a portion of said at least another programmatic entity are designated, such that the new programmatic entity created by crossover comprises said portion of said selected programmatic entity other than said designated portion and said designated portion of said at least another programmatic entity, said new programmatic entity differing in size and shape from said selected programmatic entity and said at least another programmatic entity when the designated portion of said selected programmatic entity and said designated portion of said at least another programmatic entity differ in size and shape; retaining said selected programmatic entity such that said selected programmatic entity remains unchanged if said chosen operation is reproduction; adding said new programmatic entity to said population. - View Dependent Claims (52, 53)
-
-
54. A computing system for solving a problem comprising at least one processor and at least one memory means coupled to said at least one processor for storing a population of named programmatic entities of various sizes and shapes, wherein each programmatic entity has a hierarchical arrangement of actions and material, said programmatic entity containing at least one reference to itself by use of a name, said computing system comprising:
-
means for executing each said programmatic entity to produce a result by performing said hierarchical arrangement of functions, wherein at least one programmatic entity invokes itself recursively, said means for executing coupled to said memory means; means for selecting at least one programmatic entity from said population using selection criteria, said selection criteria based on a fitness associated with each said programmatic entity, said selection criteria preferring each said programmatic entity having a relatively high associated fitness over each said programmatic entity having a relatively low associated fitness, said means for selecting coupled to said memory means; means for choosing and performing an operation wherein each chosen operation is one of the operations of crossover or reproduction, said means for choosing and performing coupled to said memory means; means for creating at least one new programmatic entity by crossover using a group of programmatic entities if said chosen operation is crossover, said group of programmatic entities comprising said selected programmatic entity and at least another programmatic entity, wherein a portion of the selected programmatic entity and a portion of said at least another programmatic entity are designated, such that the new programmatic entity created by crossover comprises said portion of said selected programmatic entity other than said designated portion and said designated portion of said at least another programmatic entity, said new programmatic entity differing in size and shape from said selected programmatic entity and said at least another programmatic entity when the designated portion of said selected programmatic entity and said designated portion of said at least another programmatic entity differ in size and shape; means for retaining said selected programmatic entity such that said selected programmatic entity remains unchanged if said chosen operation is reproduction, said means for retaining coupled to said memory means; means for adding said new programmatic entity to said population, said means for adding coupled to said memory means, wherein said computing system generates a computer program representing said data, such that said data is encoded.
-
-
55. In a computing system, a computer implemented process for solving an original problem comprising the stages of:
-
(a) decomposing said original problem into at least one subproblem; (b) finding at least one solution to said at least one subproblem; and (c) assembling said at least one solution to said at least one subproblem into a solution to said original problem; wherein stages (a)-(c) are implemented using a series of steps including creating a population of programmatic entities having sub-entities, wherein at least one of said sub-entities is externally invocable and at least one of said programmatic entities in the population has at least one internally invocable sub-entity, said at least one externally invocable sub-entity including at least one invocation of internally invocable sub-entities; and evolving said population, including the step of executing the programmatic entities, wherein said at least one externally invocable sub-entity performing said at least one invocation of at least one of said internally invocable sub-entities to produce results and, wherein said step of evolving further includes the step of generating at least one new programmatic entity in response to the results, such that at least one of the programmatic entities in said population is designated a solution to the problem. - View Dependent Claims (56, 57, 58, 59, 60, 61)
-
Specification