Evolutionary programming techniques utilizing context indications
First Claim
Patent Images
1. A non-transitory computer readable medium storing instructions which, when executed by one or more computing devices, cause the one or more computing devices to perform a process of:
- determining a first label associated with functionality of first candidate code;
determining a second label associated with functionality of second candidate code;
determining whether the first candidate code and second candidate code are compatible for evolution based at least in part on the first label and the second label;
when the first candidate code and the second candidate code are determined to be compatible for evolution based at least in part on the first label and the second label, evolving third candidate code, using evolutionary programming techniques, based on the first candidate code and second candidate code, wherein the third candidate code differs from both the first candidate code and second candidate code, and contains no more than a subset of code from each of the first candidate code and the second candidate code;
performing a fitness test based at least in part on the third candidate code;
determining whether exit criteria are met based at least in part on the fitness test; and
when the exit criteria are met, providing the third candidate code as evolved code and causing execution of the evolved code,wherein;
the first candidate code comprises a first context-action pair comprising two or more first context elements;
the second candidate code comprises a second context-action pair comprising two or more second context elements; and
wherein evolving the third candidate code based on the first candidate code and second candidate code comprises;
when a first context element of the first one or more context elements is different from a corresponding second context element of the second one or more context elements, evolving a third, evolved context element from the first context element and the second context element;
including in the third candidate code the third, evolved context element.
5 Assignments
0 Petitions
Accused Products
Abstract
Techniques are provided for determining labels associated with first and second candidate code and whether those labels are compatible based at least in part on the labels. When the first candidate code and the second candidate code are compatible, third candidate code based is determined on the those two. When the third candidate code meets exit criteria the third candidate code is provided as evolved code. Some embodiments also include causing execution of the evolved code.
10 Citations
17 Claims
-
1. A non-transitory computer readable medium storing instructions which, when executed by one or more computing devices, cause the one or more computing devices to perform a process of:
-
determining a first label associated with functionality of first candidate code; determining a second label associated with functionality of second candidate code; determining whether the first candidate code and second candidate code are compatible for evolution based at least in part on the first label and the second label; when the first candidate code and the second candidate code are determined to be compatible for evolution based at least in part on the first label and the second label, evolving third candidate code, using evolutionary programming techniques, based on the first candidate code and second candidate code, wherein the third candidate code differs from both the first candidate code and second candidate code, and contains no more than a subset of code from each of the first candidate code and the second candidate code; performing a fitness test based at least in part on the third candidate code; determining whether exit criteria are met based at least in part on the fitness test; and when the exit criteria are met, providing the third candidate code as evolved code and causing execution of the evolved code, wherein; the first candidate code comprises a first context-action pair comprising two or more first context elements; the second candidate code comprises a second context-action pair comprising two or more second context elements; and wherein evolving the third candidate code based on the first candidate code and second candidate code comprises; when a first context element of the first one or more context elements is different from a corresponding second context element of the second one or more context elements, evolving a third, evolved context element from the first context element and the second context element; including in the third candidate code the third, evolved context element. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method comprising:
-
determining a first label associated with functionality of first candidate code; determining a second label associated with functionality of second candidate code; determining whether the first candidate code and second candidate code are compatible for evolution based at least in part on the first label and the second label; when the first candidate code and the second candidate code are determined to be compatible for evolution based at least in part on the first label and the second label, evolving third candidate code, using evolutionary programming techniques, based on the first candidate code and second candidate code, wherein the third candidate code differs from both the first candidate code and second candidate code, and contains no more than a subset of code from each of the first candidate code and the second candidate code; performing a fitness test based at least in part on the third candidate code; determining whether exit criteria are met based at least in part on the fitness test; and when the exit criteria are met, providing the third candidate code as evolved code and causing execution of the evolved code, wherein; the first candidate code comprises a first context-action pair comprising two or more first context elements; the second candidate code comprises a second context-action pair comprising two or more second context elements; and wherein evolving the third candidate code based on the first candidate code and second candidate code comprises; when a first context element of the first one or more context elements is different from a corresponding second context element of the second one or more context elements, evolving a third evolved context element from the first context element and the second context element; including in the third candidate code the third evolved context element, wherein the method is performed on one or more computing devices. - View Dependent Claims (14)
when the exit criteria are met, providing the resultant program as an evolved program.
-
-
15. A system for executing instructions, wherein said instructions are instructions which, when executed by one or more computing devices, cause performance of a process including:
-
determining a first label associated with functionality of first candidate code; determining a second label associated with functionality of second candidate code; determining whether the first candidate code and second candidate code are compatible for evolution based at least in part on the first label and the second label; when the first candidate code and the second candidate code are determined to be compatible for evolution based at least in part on the first label and the second label, evolving third candidate code, using evolutionary programming techniques, based on the first candidate code and second candidate code, wherein the third candidate code differs from both the first candidate code and second candidate code, and contains no more than a subset of code from each of the first candidate code and the second candidate code; performing a fitness test based at least in part on the third candidate code; determining whether exit criteria are met based at least in part on the fitness test; and when the exit criteria are met, providing the third candidate code as evolved code and causing execution of the evolved code, wherein; the first candidate code comprises a first context-action pair comprising two or more first context elements; the second candidate code comprises a second context-action pair comprising two or more second context elements; and wherein evolving the third candidate code based on the first candidate code and second candidate code comprises; when a first context element of the first one or more context elements is different from a corresponding second context element of the second one or more context elements evolving a third, evolved context element from the first context element and the second context element; including in the third candidate code the third, evolved context element. - View Dependent Claims (16, 17)
-
Specification