Software for self-programming
First Claim
1. A method of operating a machine that includes:
- memory for storing data;
a processor connected for accessing data stored in the memory; and
parameter data stored in the memory;
the parameter data including;
number data indicating a number of iterations M, where M is two or more; and
a generated value data item that can be accessed using data indicating one of two or more possible input values to obtain one of two or more possible generated values;
the method comprising operating the processor to perform a sequence of iterations, the processor, in performing each iteration in the sequence;
obtaining input data for the iteration;
the iteration'"'"'s input data indicating one of the possible input values;
using the iteration'"'"'s input data to obtain control data for the iteration;
the iteration'"'"'s control data indicating one of a set of control values including a first control value and a second control value;
if the iteration'"'"'s control data indicate the first control value;
incrementing count data indicating a number of iterations since an iteration that obtained control data indicating the second control value;
if the incremented count data indicate a number less than M, accessing the generated value data item using the iteration'"'"'s input data to obtain generated data for iteration;
the iteration'"'"'s generated data indicating one of the possible generated values; and
if the incremented count data indicate a number equal to M, randomly obtaining generated data for the iteration;
the iteration'"'"'s generated data indicating one of the possible generated values; and
if the iteration'"'"'s control data indicate the second control value, storing generated value data in the generated value data item;
the generated value data indicating the value of the generated data of a first set of at least one preceding iteration in the sequence;
the generated value data being stored so that the processor can obtain data indicating the generated value of each iteration in the first set by accessing the memory using data indicating the value of the iteration'"'"'s input data.
0 Assignments
0 Petitions
Accused Products
Abstract
In self-programming, an iteration uses data indicating parameters. Some parameters can be used to obtain an input value. Another parameter can be a match value that can be used with an input value to obtain control data indicating whether to perform a learning response. Another parameter could include a stack that temporarily stores a generated value from each of a number of preceding iterations in which a learning response was not performed. Another parameter could include learned values stored from the stack during a learning response. Some parameters can be numbers: a number of iterations from which generated values are stored during a learning response; a number of unsuccessful iterations after which values are generated randomly; or a number of iterations during which values are generated randomly. A parameter can indicate whether learned values are cleared before a self-programming session. Some parameters can indicate how images are presented to a user. A software product can include a storage medium with instruction data indicating instructions a processor can execute to perform self-programming. The storage medium can also have default parameter data. The processor can provide a graphical user interface allowing a user to provide or modify parameters, so that a user can experiment to obtain optimal parameters.
-
Citations
25 Claims
-
1. A method of operating a machine that includes:
-
memory for storing data; a processor connected for accessing data stored in the memory; and parameter data stored in the memory;
the parameter data including;number data indicating a number of iterations M, where M is two or more; and a generated value data item that can be accessed using data indicating one of two or more possible input values to obtain one of two or more possible generated values; the method comprising operating the processor to perform a sequence of iterations, the processor, in performing each iteration in the sequence; obtaining input data for the iteration;
the iteration'"'"'s input data indicating one of the possible input values;using the iteration'"'"'s input data to obtain control data for the iteration;
the iteration'"'"'s control data indicating one of a set of control values including a first control value and a second control value;if the iteration'"'"'s control data indicate the first control value; incrementing count data indicating a number of iterations since an iteration that obtained control data indicating the second control value; if the incremented count data indicate a number less than M, accessing the generated value data item using the iteration'"'"'s input data to obtain generated data for iteration;
the iteration'"'"'s generated data indicating one of the possible generated values; andif the incremented count data indicate a number equal to M, randomly obtaining generated data for the iteration;
the iteration'"'"'s generated data indicating one of the possible generated values; andif the iteration'"'"'s control data indicate the second control value, storing generated value data in the generated value data item;
the generated value data indicating the value of the generated data of a first set of at least one preceding iteration in the sequence;
the generated value data being stored so that the processor can obtain data indicating the generated value of each iteration in the first set by accessing the memory using data indicating the value of the iteration'"'"'s input data. - View Dependent Claims (2, 3, 4)
-
-
5. An article of manufacture for use in a machine that includes:
-
memory for storing data; a storage medium access device that can access data stored on a storage medium; a processor connected to access data stored by the memory and connected to receive data from the storage medium access device; parameter data stored in the memory;
the parameter data including;number data indicating a number of iterations M, where M is two or more; and a generated value data item that can be accessed using data indicating one of two or more possible input values to obtain one of two or more possible generated values; the article comprising; a storage medium that can store data so that the stored data can be accessed by the storage medium access device when the article is used in the machine; and instruction data stored on the storage medium;
the instruction data indicating instructions the processor can execute when the article is used in the machine;the processor, in executing the instructions, performing a sequence of iterations;
the processor, in performing each iteration;obtaining input data for the iteration;
the iteration'"'"'s input data indicating one of the possible input values;using the iteration'"'"'s input data to obtain control data for the iteration;
the iteration'"'"'s control data indicating one of a set of control values including a first control value and a second control value;if the iteration'"'"'s control data indicate the first control value; incrementing count data indicating a number of iterations since an iteration that obtained control data indicating the second control value; if the incremented count data indicate a number less than M, accessing the generated value data item using the iteration'"'"'s input data to obtain, generated data for the iteration;
the iteration'"'"'s generated data indicating one of the possible generated values; andif the incremented count data indicate a number equal to M, randomly obtaining generated data for the iteration;
the iteration'"'"'s generated data indicating one of the possible generated values; andif the iteration'"'"'s control data indicate the second control value, storing generated value data in the generated value data item;
the generated value data indicating the value of the generated data of a first set of at least one preceding iteration in the sequence;
the generated value data being stored so that the processor can obtain data indicating the generated value of each iteration in the first set by accessing the memory using data indicating the value of the iteration'"'"'s input data. - View Dependent Claims (6, 7)
-
-
8. A machine comprising:
-
memory for storing data; a processor connected to access data stored by the memory; and data stored in the memory;
the stored data comprising;instruction data indicating instructions the processor can execute; and parameter data including; number data indicating a number of iterations M, where M is two or more; and a generated value data item that can be accessed using data indicating one of two or more possible input values to obtain one of two or more possible generated values; the processor, in executing the instructions, performing a sequence of iterations;
the processor, in performing each iteration;obtaining input data for the iteration;
the iteration'"'"'s input data indicating one of the possible input values;using the iteration'"'"'s input data to obtain control data for the iteration;
the iteration'"'"'s control data indicating one of a set of control values including a first control value and a second control value;if the iteration'"'"'s control data indicate the first control value; incrementing count data indicating a number of iterations since an iteration that obtained control data indicating the second control value; if the incremented count data indicate a number less than M, accessing the generated value data item using the iteration'"'"'s input data to obtain generated data for the iteration;
the iteration'"'"'s generated data indicating one of the possible generated values; andif the incremented count data indicate a number equal to M, randomly obtaining generated data for the iteration;
the iteration'"'"'s generated data indicating one of the possible generated values; andif the iteration'"'"'s control data indicate the second control value, storing generated value data in the generated value data item;
the generated value data indicating the value of the generated data of a first set of at least one preceding iteration in the sequence;
the generated value data being stored so that the processor can obtain data indicating the generated value of each iteration in the first set by accessing the memory using data indicating the value of the iteration'"'"'s input data. - View Dependent Claims (9, 10)
-
-
11. A method of operating a machine that includes:
-
memory for storing data; a processor connected to access the data stored by the memory; and data stored by the memory;
the stored data comprising;instruction data indicating instructions the processor can execute; and parameter data including; number data indicating a number of iterations M, where M is two or more; and a generated value data item that can be accessed using data indicating one of two or more possible input values to obtain one of two or more possible generated values; the processor performing the method by executing the instructions; the method comprising a sequence of iterations;
the processor, in performing each iteration;obtaining input data for the iteration;
the iteration'"'"'s input data indicating one of the possible input values;using the iteration'"'"'s input data to obtain control data for the iteration;
the iteration'"'"'s control data indicating one of a set of control values including a first control value and a second control value;if the iteration'"'"'s control data indicate the first control value; incrementing count data indicating a number of iterations since an iteration that obtained control data indicating the second control value; if the incremented count data indicate a number less than M, accessing the generated value data item using the iteration'"'"'s input data to obtain generated data for the iteration;
the iteration'"'"'s generated data indicating one of the possible generated values; andif the incremented count data indicate a number equal to M, randomly obtaining generated data for the iteration;
the iteration'"'"'s generated data indicating one of the possible generated values; andif the iteration'"'"'s control data indicate the second control value, storing generated value data in the generated value data item;
the generated value data indicating the value of the generated data of a first set of at least one preceding iteration in the sequence;
the generated value data being stored so that the processor can obtain data indicating the generated value of each iteration in the first set by accessing the memory using data indicating the value of the iteration'"'"'s input data. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A method of operating a machine that includes:
-
memory for storing data; a processor connected for accessing data stored in the memory; and parameter data stored in the memory;
the parameter data indicating;an array of values; for each of two or more possible input values, one of a set of two or more possible move values;
at least two of the set of possible move values each indicating a change of position within the array of values; anda first number of iterations M, where M is two or more; the method comprising; operating the processor to obtain an initial starting position within the array of values; operating the processor to perform a sequence of iterations;
the sequence including a first iteration and at least one following iteration, each following iteration having an immediately preceding iteration in the sequence;
each iteration in the sequence having a starting position and an ending position;
the first iteration'"'"'s starting position being the initial starting position;
the starting position of each following iteration being the ending position of the immediately preceding iteration;
each starting position and each ending position including two or more values in the array;
the processor, in performing each iteration in the sequence;obtaining input data indicating one of the possible input values based on the values in the iteration'"'"'s starting position within the array of values; using the input data to obtain control data;
the control data indicating one of a set of control values;
the set of control values including a first control value and a second control value;if the control data indicate the first control value; incrementing first count data indicating a number of iterations since an iteration in which the control data indicated the second control value; obtaining move data indicating one of the set of possible move values that indicates a change of position within the array of values;
the move data indicating a change of position from the iteration'"'"'s starting position to the iteration'"'"'s ending position within the array of values;
the processor, in obtaining move data;if the incremented first count data indicate a number less than M, using the input data to obtain move data indicating the possible move value for the input value indicated by the input data; and if the incremented first count data indicate a number equal to M, randomly obtaining move data indicating one of the possible move values that indicates a change of position; and using the move data to obtain the iteration'"'"'s ending position; and if the control data indicate the second control value, updating the parameter data to indicate the value of the move data of each of a set of at least one preceding iteration in the sequence so that the processor can use data indicating the input value indicated by the input data of each preceding iteration in the set to obtain move data indicating the possible move value obtained by the preceding iteration. - View Dependent Claims (24)
-
-
25. A machine-implemented method comprising:
-
storing first parameter data indicating a first number of iterations M and second parameter data indicating a second number of iterations N, where M and N are each two or more; a first sequence of iterations, each iteration in the first sequence comprising; obtaining input data indicating one of two or more possible input values; using the input data to obtain control data;
the control data indicating one of a set of control values;
the set of control values including a first control value and a second control value;if the control data indicate the first control value; incrementing first count data indicating a number of iterations since an iteration in which the control data indicated the second control value; if the first count data indicate a number less than M, using the input data to obtain generated data indicating one of two or more possible generated values; and if the first count data indicate a number equal to M, randomly obtaining generated data indicating one of the possible generated values and ending the first sequence of iterations; if the control data indicates the second control value, storing generated value data indicating the value of the generated data of at least one preceding iteration in the first sequence so that the stored generated value data for each preceding iteration can be accessed using data indicating the value of the preceding iteration'"'"'s input data and ending the first sequence of iterations; and if the first sequence of iterations ends before the control data indicate the second control value, a second sequence of iterations, each iteration in the second sequence comprising; obtaining input data indicating one of the possible input values; using the input data to obtain control data;
the control data indicating one of a set of control values;
the set of control values including a first control value and a second control value;if the control data indicate the first control value; incrementing second count data indicating a number of iterations since the second sequence began; randomly obtaining generated data indicating one of the possible generated values; and if the second count data indicate N iterations, ending the second sequence of iterations; and if the control data indicate the second control value, storing generated value data indicating the value of the generated data of at least one preceding iteration in the sequence so that the stored generated value data for each preceding iteration can be accessed using data indicating the value of the preceding iteration'"'"'s input data.
-
Specification