×

Method and system for constructing cognitive programs

  • US 7,437,335 B2
  • Filed: 11/23/2005
  • Issued: 10/14/2008
  • Est. Priority Date: 12/07/2004
  • Status: Active Grant
First Claim
Patent Images

1. A method of creating a program embodied in a computer readable memory to cause a computer to perform a first task of achieving a first constraint or a first set of constraints when run on an input or inputs taken from a class of inputs, the method comprising:

  • performing two or more times an operation comprising,(i) receiving input data pertaining to a respective other task of achieving a respective other constraint or other set of constraints when run on inputs taken from a respective other class of inputs, in which the respective other constraint or other set of constraints is different from the first constraint or the first set of constraints, and different from the previous respective other constraints or other sets of constraints, and in which said input data includes a number of examples of the respective other task in which each example is a particular input in the class of inputs for the respective other task, and in which said input data further includes information pertaining to a respective fitness function which indicates how well a respective example or examples are solved for the respective other task and in which said respective fitness function is different from the respective fitness function for each previous other task;

    (ii) obtaining a respective instruction set having a respective collection of instruction(s), function(s), procedure(s) and/or module(s);

    (iii) automatically obtaining a respective subprogram by learning from the number of examples in the received input data that is acceptable in accordance with the respective fitness function for the respective other task, in which the learning for obtaining a respective subprogram includes obtaining two candidate subprograms each different from the other and each composed from the instruction(s), function(s), procedure(s), and/or module(s) in the respective instruction set, determining how well each of the two candidate subprograms perform the respective other task when run on one or more of the number of examples of the respective other task by use of the respective fitness function associated with the respective other task, in which the respective fitness function is different from each previous fitness function, determining which one of the two candidate subprograms performs better according to the respective fitness function, determining if the better candidate subprogram performs acceptably and if the better candidate subprogram is determined to perform acceptably selecting the better candidate subprogram as an obtained subprogram;

    (iv) adding the respective obtained subprogram to a storage library and associating a respective name operable to invoke the stored respective program, and adding the name to previously obtained instruction(s), function(s), procedure(s), and/or module(s) available for inclusion in the respective instruction set or sets; and

    obtaining another instruction set having a respective collection of instruction(s), function(s), procedure(s), and/or module(s) including one or more of the respective names, in which the another instruction set is different from each of the previously obtained respective instruction sets; and

    creating said program to perform said first task composed from the instruction(s), function(s), procedure(s), and/or module(s) in the another instruction set so that the program contains the name or names of one or more of the respective automatically obtained subprograms each having been determined to perform one of the other tasks acceptably which is different from the first task by use of the respective fitness function associated with the respective other task when run on one or more of the number of examples.

View all claims
  • 0 Assignments
Timeline View
Assignment View
    ×
    ×