IP Library Granted Patent US 11,205,126
Granted Patent B1
US 11,205,126 · App. 16/903,901 · Granted Dec 21, 2021

Evolutionary programming techniques utilizing context indications

Inventor: Christopher James Hazard (Raleigh, NC)
Assignee: Diveplane Corporation
G06N3/126G06F8/77G06F21/62
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,205,126
App. No.
16/903,901
Granted
Dec 21, 2021
Kind
B1
Abstract

Techniques are provided for determining labels associated with first and second candidate code and whether those labels are compatible. 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.

Claims (62)

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 whether first candidate code and second candidate code are compatible for evolution based at least in part on a first label associated with functionality of the first candidate code and a second label associated with functionality of the second candidate code, wherein:

the first candidate code comprises a first action and a first context element;

the second candidate code comprises a second action and a second context element, wherein the second action is different from the first action;

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 the second candidate code, wherein the third candidate code differs from both the first candidate code and the second candidate code, and contains no more than a subset of code from each of the first candidate code and the second candidate code;

determining whether exit criteria are met based at least in part on a fitness test performed on the third candidate code;

when the exit criteria are met, providing the third candidate code as evolved code,

wherein evolving the third candidate code based on the first candidate code and the second candidate code comprises:

evolving a third, evolved action from the first action and the second action;

including in the third candidate code the third, evolved action; and

when the first context element and the second context element are identical, including in the first context element in the third candidate code.

2. The non-transitory computer readable medium of claim 1 , wherein:

wherein evolving the third candidate code based on the first candidate code and the second candidate code comprises:

when the first context element is different from the second context element, evolving a third, evolved context element from the first context element and the second context element; and

including in the third candidate code the third, evolved context element.

3. The non-transitory computer readable medium of claim 1 , wherein the process further comprises determining a resultant program based at least in part on the third candidate code; determining whether the exit criteria are met based at least in part on the resultant program; and if the exit criteria are met, providing the resultant program as an evolved program.

4. The non-transitory computer readable medium of claim 3 , wherein the process further comprises:

determining whether the second label does not occur in a first candidate executable program associated with the first candidate code; and

when the second label does not occur in the first candidate executable program, determining the resultant program based at least in part on the second candidate code.

5. The non-transitory computer readable medium of claim 3 , wherein the resultant program is executable and determining the resultant program comprises determining the resultant program based on the third candidate code and a first candidate executable program associated with the first candidate code.

6. The non-transitory computer readable medium of claim 3 , wherein determining whether the resultant program meets exit criteria comprises determining whether the resultant program meets exit criteria based at least in part on a fitness measure for the resultant program.

7. The non-transitory computer readable medium of claim 1 , wherein the process further comprises, when the first candidate code and the second candidate code are not compatible, evolving the third candidate code based at least in part on the first candidate code without the second candidate code.

8. The non-transitory computer readable medium of claim 1 , wherein determining whether the first label and the second label are compatible comprises determining a premetric based at least in part on the first label and the second label.

9. The non-transitory computer readable medium of claim 1 , wherein determining whether the first candidate code and the second candidate code are compatible comprises determining whether there is an exact match between the first label and the second label.

10. The non-transitory computer readable medium of claim 1 , wherein the first candidate code is associated with a first set of two or more labels and the second candidate code is associated with a second set of one or more labels, and determining whether the first candidate code and the second candidate code are compatible comprises determining whether the first set of two or more labels is compatible with the second set of one or more labels.

11. The non-transitory computer readable medium of claim 1 , wherein determining whether the first candidate code and the second candidate code are compatible comprises determining a measure of compatibility based on the first label, the second label, the first candidate code, and the second candidate code.

12. The non-transitory computer readable medium of claim 1 , wherein the process further comprises selecting the first label based at least in part on access control security associated with the second candidate code.

13. The non-transitory computer readable medium of claim 1 , wherein the first candidate code comprises one or more of a first training context-action pair and first candidate executable code.

14. A method comprising:

determining whether first candidate code and second candidate code are compatible for evolution based at least in part on functionalities of the first candidate code and the second candidate code, wherein:

the first candidate code comprises a first context element and a first action;

the second candidate code comprises a second context element and a second action, wherein the first context element differs from the second context element;

when the first candidate code and the second candidate code are determined to be compatible for evolution, evolving third candidate code, using evolutionary programming techniques, based on the first candidate code and the second candidate code, wherein the third candidate code differs from both the first candidate code and the second candidate code, and contains no more than a subset of code from each of the first candidate code and the second candidate code;

determining whether exit criteria are met based at least in part on a fitness test performed on the third candidate code wherein when the exit criteria are met, the third candidate code is provided as evolved code,

wherein evolving the third candidate code based on the first candidate code and the second candidate code comprises:

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;

when the first action and the second action are identical, including in the first action in the third candidate code,

wherein the method is performed on one or more computing devices.

15. The method of claim 14 , further comprising:

determining whether the functionality of the second candidate code occurs in a first candidate executable program associated with the first candidate code; and

when the functionality of the second candidate code does not occur in the first candidate executable program, determining a resultant program based at least in part on the second candidate code.

16. The method of claim 14 , further comprising,

determining a resultant program based at least in part on the third candidate code;

determining whether the exit criteria are met based at least in part on the resultant program; and

when the exit criteria are met, providing the resultant program as an evolved program.

17. A system for executing instructions comprising one or more computing devices, wherein said instructions are instructions which, when executed by the one or more computing devices, cause performance of a process including:

determining whether first candidate code and second candidate code are compatible for evolution based at least in part on functionalities of the first candidate code and the second candidate code, wherein:

the first candidate code comprises a first action and a first context element;

the second candidate code comprises a second action and a second context element, wherein the first action is different from the second action;

when the first candidate code and the second candidate code are determined to be compatible for evolution, evolving third candidate code, using evolutionary programming techniques, based on the first candidate code and the second candidate code, wherein the third candidate code differs from both the first candidate code and the second candidate code, and contains no more than a subset of code from each of the first candidate code and the second candidate code;

determining whether exit criteria are met based at least in part on a fitness test performed on the third candidate code, wherein when the exit criteria are met, the third candidate code is provided as evolved code,

wherein evolving the third candidate code based on the first candidate code and the second candidate code comprises:

evolving a third, evolved action from the first action and the second action:

including in the third candidate code the third, evolved action, and

when the first context element and the second context element are identical, including the first context element in the third candidate code.

18. The system of claim 17 , wherein:

wherein evolving the third candidate code based on the first candidate code and the second candidate code comprises:

when the first context element is different from the second context element, evolving a third, evolved context element from the first context element and the second context element; and

including in the third candidate code the third, evolved context element.

19. The system of claim 17 , wherein the first candidate code is associated with a first set of one or more labels and the second candidate code is associated with a second set of one or more labels, and determining whether the first candidate code and the second candidate code are compatible comprises determining whether the first set of one or more labels is compatible with the second set of one or more labels.

20. The system of claim 19 , wherein determining whether the first candidate code and the second candidate code are compatible comprises determining a measure of compatibility based on the first set of one or more labels, the second set of one or more labels, the first candidate code, and the second candidate code.

Assignments (6)
TERMINATION AND RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jan 22, 2025
From: WESTERN ALLIANCE BANK
To: HOWSO INCORPORATED
Reel/Frame 069988/0038 →
CHANGE OF NAME Recorded Sep 28, 2023
From: DIVEPLANE CORPORATION
To: HOWSO INCORPORATED
Reel/Frame 065081/0559 →
CHANGE OF NAME Recorded Sep 22, 2023
From: DIVEPLANE CORPORATION
To: HOWSO INCORPORATED
Reel/Frame 065021/0691 →
SECURITY INTEREST Recorded Jan 31, 2023
From: DIVEPLANE CORPORATION
To: WESTERN ALLIANCE BANK
Reel/Frame 062554/0106 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 2, 2020
From: HAZARD, CHRISTOPHER JAMES
To: HAZARDOUS SOFTWARE INC.
Reel/Frame 053105/0422 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 2, 2020
From: HAZARDOUS SOFTWARE INC.
To: DIVEPLANE CORPORATION
Reel/Frame 053105/0425 →
Continuity (2)
Continuation 16358217 · Mar 19, 2019
Continuation In Part 15724637 · Oct 4, 2017