Computer implemented machine learning method and system
First Claim
1. A computer implemented learning method comprising the steps of:
- (a) providing a computer with an indirectly executable program including;
a first instruction that points to and designates machine code stored in a memory as data;
a second instruction that points to and designates machine code stored in a memory as directly executable code;
a third instruction that alters machine code pointed to by the first instruction; and
a fourth instruction that executes machine code pointed to by the second instruction; and
(b) controlling the computer to execute the program which performs the steps of;
(b1) creating and storing a machine code entity including a directly executable instruction in a memory, said directly executable instruction causing the processor to execute, as a next instruction, an instruction other than an instruction which directly follows said directly executable instruction in the entity;
(b2) executing the second instruction to point to the entity;
(b3) executing the fourth instruction using input data to produce a result;
(b4) evaluating the result using a learning algorithm;
(b5) executing the first instruction to point to the entity;
(b6) executing the third instruction to alter the entity using an alteration algorithm to include a different directly executable instruction; and
(b7) repeating steps (b3) to (b6) until an end criterion is reached.
0 Assignments
0 Petitions
Accused Products
Abstract
One or more machine code entities such as functions are created which represent solutions to a problem and are directly executable by a computer. The programs are created and altered by a program in a higher level language such as "C" which is not directly executable, but requires translation into executable machine code through compilation, interpretation, translation, etc. The entities are initially created as an integer array that can be altered by the program as data, and are executed by the program by recasting a pointer to the array as a function type. The entities are evaluated by executing them with training data as inputs, and calculating fitnesses based on a predetermined criterion. The entities are then altered based on their fitnesses using a machine learning algorithm by recasting the pointer to the array as a data (e.g. integer) type. This process is iteratively repeated until an end criterion is reached. The entities evolve in such a manner as to improve their fitness, and one entity is ultimately produced which represents an optimal solution to the problem. Each entity includes a plurality of directly executable machine code instructions, a header, a footer, and a return instruction. The instructions include branch instructions which enable subroutines, leaf functions, external function calls, recursion, and loops. The system can be implemented on an integrated circuit chip, with the entities stored in high speed memory in a central processing unit.
-
Citations
202 Claims
-
1. A computer implemented learning method comprising the steps of:
-
(a) providing a computer with an indirectly executable program including; a first instruction that points to and designates machine code stored in a memory as data; a second instruction that points to and designates machine code stored in a memory as directly executable code; a third instruction that alters machine code pointed to by the first instruction; and a fourth instruction that executes machine code pointed to by the second instruction; and (b) controlling the computer to execute the program which performs the steps of; (b1) creating and storing a machine code entity including a directly executable instruction in a memory, said directly executable instruction causing the processor to execute, as a next instruction, an instruction other than an instruction which directly follows said directly executable instruction in the entity; (b2) executing the second instruction to point to the entity; (b3) executing the fourth instruction using input data to produce a result; (b4) evaluating the result using a learning algorithm; (b5) executing the first instruction to point to the entity; (b6) executing the third instruction to alter the entity using an alteration algorithm to include a different directly executable instruction; and (b7) repeating steps (b3) to (b6) until an end criterion is reached. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46)
-
-
47. A computer learning system comprising:
-
a memory for storing an indirectly executable computer program including; a first instruction that points to and designates machine code stored in the memory as data; a second instruction that points to and designates machine code stored in the memory as directly executable machine code; a third instruction that alters machine code pointed to by the first instruction; and a fourth instruction that executes machine code pointed to by the second instruction; and a processor for executing the program; the processor, memory and program operating in combination for performing the steps of; (a) creating and storing a machine code entity including a directly executable instruction in the memory, said directly executable instruction causing the processor to execute, as a next instruction, an instruction other than an instruction which directly follows said directly executable instruction in the entity; (b) executing the second instruction to point to the entity; (c) executing the fourth instruction using input data to produce a result; (d) evaluating the result using a learning algorithm; (e) executing the first instruction to point to the entity; (f) executing the third instruction to alter the entity using an alteration algorithm to include a different directly executable instruction; and (g) repeating steps (b) to (f) until an end criterion is reached. - View Dependent Claims (48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95)
-
-
96. computer implemented learning method using a digital computer which includes a processor and a memory, comprising the steps of:
-
(a) selecting a directly executable instruction which includes run time data; (b) determining a binary number which represents the directly executable instruction to the processor; (c) selecting a location in the memory; (d) creating a directly executable machine code entity which includes the binary number; (e) storing the entity as data in said location; (f) providing an indirectly executable instruction which causes the processor to directly execute machine code stored in said location; (g) controlling the processor to process the indirectly executable instruction, resulting in the processor directly executing the entity as including the directly executable instruction; (h) altering the entity as data such that the binary number is changed to represent a different directly executable machine code program instruction to the processor; and (i) repeating steps (c) to (h) until an end criterion is reached. - View Dependent Claims (97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166)
-
-
167. A method of creating and executing machine code using a digital computer which includes a processor and a memory, comprising the steps of:
-
(a) selecting a directly executable instruction which causes the processor to execute, as a next instruction, an instruction other than an instruction which directly follows said directly executable instruction; (b) determining a binary number which represents the directly executable instruction to the processor; (c) selecting a location in the memory; (d) creating a directly executable machine code entity which includes the binary number; (e) storing the entity as data in said location; (f) providing an indirectly executable instruction which causes the processor to directly execute machine code stored in said location; and (g) controlling the processor to process the indirectly executable instruction, resulting in the processor directly executing the entity as including the directly executable instruction. - View Dependent Claims (168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200)
-
-
201. A Turing complete computer implemented learning method comprising the steps of:
-
(a) providing a Turing complete computer with an indirectly executable program including; a first instruction that points to and designates machine code stored in a memory as data; a second instruction that points to and designates machine code stored in a memory as directly executable code; a third instruction that alters machine code pointed to by the first instruction; and a fourth instruction that executes machine code pointed to by the second instruction; and (b) controlling the computer to execute the program which performs the steps of; (b1) creating and storing a machine code entity including a directly executable instruction which includes run time data in a memory; (b2) executing the second instruction to point to the entity; (b3) executing the fourth instruction using input data to produce a result; (b4) evaluating the result; (b5) executing the first instruction to point to the entity; (b6) executing the third instruction to alter the entity to include a different directly executable instruction; and (b7) repeating steps (b3) to (b6) until an end criterion is reached.
-
-
202. A computer implemented learning method comprising the steps of:
-
(a) providing a computer with an indirectly executable program including; a first instruction that points to and designates machine code stored in a memory as data; a second instruction that points to and designates machine code stored in a memory as directly executable code; a third instruction that alters machine code pointed to by the first instruction; and a fourth instruction that executes machine code pointed to by the second instruction; and (b) controlling the computer to execute the program which performs the steps of; (b1) creating and storing a machine code entity including a directly executable instruction in a memory, said directly executable instruction causing the processor to execute an instruction other than a next instruction which directly follows said directly executable instruction in the entity; (b2) executing the second instruction to point to the entity; (b3) executing the fourth instruction using input data to produce a result; (b4) evaluating the result using a learning algorithm; (b5) making a copy of the entity; (b6) executing the first instruction to point to the copy of the entity; (b7) executing the third instruction to alter the copy of the entity using an alteration algorithm to include a different directly executable instruction; and (b8) repeating steps (b3) to (b7) until an end criterion is reached.
-
Specification