Patent ID: 7873587
Filing Date: 2011-01-18
Classification: G06F,G06N

Abstract:
1. A computer readable medium having stored thereon a method of creating a program to cause a computer to perform a first task having a first goal and for performing the same, the method comprising: receiving input data pertaining to a number of other tasks each being different from the first task and each having a goal different from the first goal; specifying a first instruction set and a second instruction set, the first instruction set having a first collection of instructions and the second instruction set having a second collection of instructions, in which the first collection of instructions is different from the second collection of instructions; automatically constructing two or more subprograms based on the received input data and using the first instruction set and the second instruction set such that one subprogram is constructed using only an instruction or instructions in the first instruction set and another subprogram is constructed using only an instruction or instructions in the second instruction set; selecting one or more of the automatically constructed subprograms so as to obtain an available subprogram or subprograms, in which said input data includes information pertaining to a first example and a second example in which each example represents a particular situation having respective inputs associated therewith and in which said automatically constructing includes learning from the first example and the second example such that a composition of an instruction or instructions from the first instruction set is discovered which is utilized to construct said one subprogram in accordance with the first example and such that a composition of an instruction or instructions from the second instruction set is discovered which is utilized to construct said another subprogram in accordance with the second example, creating said program to perform said first task based on the available subprogram or subprograms; and applying said program to cause said computer to perform said first task so that as the first task is performed, the available subprogram or subprograms are executed on different inputs than those associated with the respective example or examples, in which said number of other tasks includes a first other task having a first other goal different than said first goal and a second other task different than said first task and said first other task and having a goal different than said first goal and said first other goal, and in which said first example represents a particular situation of said first other task and said second example represents a particular situation of said second other task, in which the learning from the first example includes discovering a composition of instructions from the first instruction set by searching a first plurality of candidate programs each having a different composition of instructions and in which the learning from the second example includes discovering a composition of instructions from the second instruction set by searching a second plurality of candidate programs each having a different composition of instructions, and in which said searching of the first plurality of candidate programs includes testing a plurality of said first plurality of candidate programs on said first example and selecting a respective candidate program that performs in a satisfactory manner on said first example and in which said searching of the second plurality of candidate programs includes testing a plurality of said second plurality of candidate programs on said second example and selecting a respective candidate program that performs in a satisfactory manner on said second example.