Method of and apparatus for generating program
First Claim
1. An apparatus for generating a program, comprising:
- program storing means for storing a plurality of programs each composed of an arrangement of basic instructions of plural types required to generate output data with respect to given input data of given types;
energy value storing means for storing data indicative of an energy value indicative of the quality level of each of the programs;
a computer for executing each of the programs until a predetermined condition is satisfied;
input data imparting means for giving said input data to said computer when the computer executes each of the programs;
energy value setting means for setting an energy value to increment or decrement the energy value corresponding to each of the programs which is stored in said energy value storing means depending on the degree with which the output data generated by each of the programs executed by said computer and reference output data predetermined with respect to said input data agree with each other;
selecting means for copying or eliminating each of the programs depending on the magnitude of the energy value stored in said energy storing means and storing a plurality of programs generated by copying or eliminating each of the programs into said program storing means, after the execution of each of the programs by said computer is finished;
crossing means for crossing the programs stored in said program storing means with a predetermined probability; and
mutating means for mutating the programs stored in said program storing means with a predetermined probability;
said energy value setting means having means for setting the energy value corresponding to each of the programs so as to increment the energy value when the agreement between the generated output data and the reference output data increases;
said computer, said selecting means, said crossing means, and said mutating means having respective means for repeatedly executing each of the programs, copying or eliminating each of the programs, crossing the programs, and mutating each of the programs to generate a program for generating output data with respect to the input data with a high degree of agreement with said reference output data, in said programs stored in said program storing means.
1 Assignment
0 Petitions
Accused Products
Abstract
A plurality of programs are generated which are each composed of an arrangement of basic instructions of plural types required to generate output data with respect to given input data of given types. Each of the programs is executed with a computer until a predetermined condition is satisfied, and the input data is given to the computer. Output data generated with respect to the input data when each of the programs is executed is compared with reference output data predetermined with respect to the input data, and an energy value indicative of the quality level of each of the programs is incremented or decremented such that the energy value is greater as the degree with which the generated output data and the reference output data agree with each other is higher. Each of the programs is copied or eliminated depending on the magnitude of the energy value after the execution of each of the programs by the computer is finished, and the programs are crossed and mutated with a predetermined probability. The above steps of executing, incrementing or decrementing, copying or eliminating, crossing, and mutating are repeated to generate a program for generating output data with respect to the input data with a high degree of agreement with the reference output data.
18 Citations
32 Claims
-
1. An apparatus for generating a program, comprising:
-
program storing means for storing a plurality of programs each composed of an arrangement of basic instructions of plural types required to generate output data with respect to given input data of given types; energy value storing means for storing data indicative of an energy value indicative of the quality level of each of the programs; a computer for executing each of the programs until a predetermined condition is satisfied; input data imparting means for giving said input data to said computer when the computer executes each of the programs; energy value setting means for setting an energy value to increment or decrement the energy value corresponding to each of the programs which is stored in said energy value storing means depending on the degree with which the output data generated by each of the programs executed by said computer and reference output data predetermined with respect to said input data agree with each other; selecting means for copying or eliminating each of the programs depending on the magnitude of the energy value stored in said energy storing means and storing a plurality of programs generated by copying or eliminating each of the programs into said program storing means, after the execution of each of the programs by said computer is finished; crossing means for crossing the programs stored in said program storing means with a predetermined probability; and mutating means for mutating the programs stored in said program storing means with a predetermined probability; said energy value setting means having means for setting the energy value corresponding to each of the programs so as to increment the energy value when the agreement between the generated output data and the reference output data increases; said computer, said selecting means, said crossing means, and said mutating means having respective means for repeatedly executing each of the programs, copying or eliminating each of the programs, crossing the programs, and mutating each of the programs to generate a program for generating output data with respect to the input data with a high degree of agreement with said reference output data, in said programs stored in said program storing means. - View Dependent Claims (2, 3, 4)
-
-
5. A method of generating a program, comprising the steps of:
-
generating a plurality of programs each composed of an arrangement of basic instructions of plural types required to generate output data with respect to given input data of given types; executing each of the programs with a computer until a predetermined condition is satisfied and giving the input data to said computer; comparing output data generated with respect to the input data when each of the programs is executed, with reference output data predetermined with respect to said input data, and incrementing or decrementing an energy value indicative of the quality level of each of the programs such that the energy value is greater as the agreement between the generated output data and the reference output data increases; copying or eliminating each of the programs depending on the magnitude of the energy value after the execution of each of the programs by said computer is finished; crossing the programs with a predetermined probability; and mutating the programs with a predetermined probability; said steps of executing, incrementing or decrementing, copying or eliminating, crossing, and mutating being repeated to generate a program for generating output data with respect to the input data with a high degree of agreement with said reference output data. - View Dependent Claims (6, 7, 8, 18)
-
-
9. An apparatus for generating a program, comprising:
-
program storing means for storing a plurality of programs each composed of an arrangement of basic instructions of plural types required to generate output data with respect to given input data of given types; energy value storing means for storing data indicative of an energy value indicative of the quality level of each of the programs; a computer for executing each of the programs until a predetermined condition is satisfied; input data imparting means for giving said input data to said computer when the computer executes each of the programs; energy value setting means for setting an energy value to increment or decrement the energy value corresponding to each of the programs which is stored in said energy value storing means depending on the degree with which the output data generated by each of the programs executed by said computer and reference output data predetermined with respect to said input data agree with each other; selecting means for copying or eliminating each of the programs depending on the magnitude of the energy value stored in said energy storing means and storing a plurality of programs generated by copying or eliminating each of the programs into said program storing means, after the execution of each of the programs by said computer is finished; crossing means for crossing the programs stored in said program storing means with a predetermined probability; and mutating means for mutating the programs stored in said program storing means with a predetermined probability; said energy value setting means having means for setting the energy value corresponding to each of the programs so as to increment the energy value when the agreement between the generated output data and the reference output data increases; said computer, said selecting means, said crossing means, and said mutating means having respective means for repeatedly executing each of the programs, copying or eliminating each of the programs, crossing the programs, and mutating each of the programs to generate a program for generating output data with respect to the input data with a high degree of agreement with said reference output data, in said programs stored in said program storing means; said basic instructions include an input data reading instruction for reading the input data and a processing completion instruction for indicating the generation of the output data, said computer comprising means for executing said processing completion instruction a number of times depending on said energy value at the time of starting to execute each of the programs when each of the programs is executed, said input data imparting means comprising means for giving new input data to said computer each time said processing completion instruction is executed when each of the programs is executed by said computer. - View Dependent Claims (10, 11, 12)
-
-
13. An apparatus for generating a program, comprising:
-
program storing means for storing a plurality of programs each composed of an arrangement of basic instructions of plural types required to generate output data with respect to given input data of given types; energy value storing means for storing data indicative of an energy value indicative of the quality level of each of the programs; a computer for executing each of the programs until a predetermined condition is satisfied; input data imparting means for giving said input data to said computer when the computer executes each of the programs; energy value setting means for setting an energy value to increment or decrement the energy value corresponding to each of the programs which is stored in said energy value storing means depending on the degree with which the output data generated by each of the programs executed by said computer and reference output data predetermined with respect to said input data agree with each other; selecting means for copying or eliminating each of the programs depending on the magnitude of the energy value stored in said energy storing means and storing a plurality of programs generated by copying or eliminating each of the programs into said program storing means, after the execution of each of the programs by said computer is finished; crossing means for crossing the programs stored in said program storing means with a predetermined probability; and mutating means for mutating the programs stored in said program storing means with a predetermined probability; said energy value setting means having means for setting the energy value corresponding to each of the programs so as to increment the energy value when the agreement between the generated output data and the reference output data increases; said computer, said selecting means, said crossing means, and said mutating means having respective means for repeatedly executing each of the programs, copying or eliminating each of the programs, crossing the programs, and mutating each of the programs to generate a program for generating output data with respect to the input data with a high degree of agreement with said reference output data, in said programs stored in said program storing means; said crossing means and said mutating means comprise respective means for crossing the programs and mutating the programs, respectively, when the number of programs copied by said selecting means reaches at least a predetermined number. - View Dependent Claims (14, 15, 16)
-
-
17. An apparatus for generating a program, comprising:
-
program storing means for storing a plurality of programs each composed of an arrangement of basic instructions of plural types required to generate output data with respect to given input data of given types; energy value storing means for storing data indicative of an energy value indicative of the quality level of each of the programs; a computer for executing each of the programs until a predetermined condition is satisfied; input data imparting means for giving said input data to said computer when the computer executes each of the programs; energy value setting means for setting an energy value to increment or decrement the energy value corresponding to each of the programs which is stored in said energy value storing means depending on the degree with which the output data generated by each of the programs executed by said computer and reference output data predetermined with respect to said input data agree with each other; selecting means for copying or eliminating each of the programs depending on the magnitude of the energy value stored in said energy storing means and storing a plurality of programs generated by copying or eliminating each of the programs into said program storing means, after the execution of each of the programs by said computer is finished; crossing means for crossing the programs stored in said program storing means with a predetermined probability. mutating means for mutating the programs stored in said program storing means with a predetermined probability; and address data storing means for storing address data representing an address of at least one of the basic instructions of each of the programs stored in said program storing means; said energy value setting means having means for setting the energy value corresponding to each of the programs so as to increment the energy value when the agreement between the generated output data and the reference output data increases; said computer, said selecting means, said crossing means, and said mutating means having respective means for repeatedly executing each of the programs, copying or eliminating each of the programs, crossing the programs, and mutating each of the programs to generate a program for generating output data with respect to the input data with a high degree of agreement with said reference output data, in said programs stored in said program storing means; said basic instructions including a jump instruction for shifting the execution of the program to the basic instruction at the address represented by the address data stored in said address data storing means when each of the programs is executed by said computer; said selecting means comprising means for copying or eliminating the address data stored in said address data storing means in association with each of said programs when each of said programs is copied or eliminated; said crossing means comprising means for crossing the address data stored in said address data storing means with a predetermined probability in association with the programs when the programs are crossed; said mutating means comprising means for mutating the address data stored in said address data storing means with a predetermined probability in association with each of said programs when each of said programs is mutated. - View Dependent Claims (19, 20)
-
-
21. A method of generating a program, comprising the steps of:
-
generating a plurality of programs each composed of an arrangement of basic instructions of plural types required to generate output data with respect to given input data of given types; executing each of the programs with a computer until a predetermined condition is satisfied and giving the input data to said computer; comparing output data generated with respect to the input data when each of the programs is executed, with reference output data predetermined with respect to said input data, and incrementing or decrementing an energy value indicative of the quality level of each of the programs such that the energy value is greater as the agreement between the generated output data and the reference output data increases; copying or eliminating each of the programs depending on the magnitude of the energy value after the execution of each of the programs by said computer is finished; crossing the programs with a predetermined probability; and mutating the programs with a predetermined probability; said steps of executing, incrementing or decrementing, copying or eliminating, crossing, and mutating being repeated to generate a program for generating output data with respect to the input data with a high degree of agreement with said reference output data; said basic instructions include an input data reading instruction for reading the input data and a processing completion instruction for indicating the generation of the output data, said steps of executing and giving comprising the steps of executing said processing completion instruction a number of times depending on said energy value at the time of starting to executing each of the programs when each of the programs is executed, and giving new input data to said computer each time said processing completion instruction is executed. - View Dependent Claims (22, 23, 24)
-
-
25. A method of generating a program, comprising the steps of:
-
generating a plurality of programs each composed of an arrangement of basic instructions of plural types required to generate output data with respect to given input data of given types; executing each of the programs with a computer until a predetermined condition is satisfied and giving the input data to said computer; comparing output data generated with respect to the input data when each of the programs is executed, with reference output data predetermined with respect to said input data, and incrementing or decrementing an energy value indicative of the quality level of each of the programs such that the energy value is greater as the agreement between the generated output data and the reference output data increases; copying or eliminating each of the programs depending on the magnitude of the energy value after the execution of each of the programs by said computer is finished; crossing the programs with a predetermined probability; and mutating the programs with a predetermined probability; said steps of executing, incrementing or decrementing, copying or eliminating, crossing, and mutating being repeated to generate a program for generating output data with respect to the input data with a high degree of agreement with said reference output data; said steps of crossing and mutating comprising the step of crossing the programs and mutating the programs, respectively, when the number of copied programs reaches at least a predetermined number. - View Dependent Claims (26, 27, 28)
-
-
29. A method of generating a program, comprising the steps of:
-
generating a plurality of programs each composed of an arrangement of basic instructions of plural types required to generate output data with respect to given input data of given types; executing each of the programs with a computer until a predetermined condition is satisfied and giving the input data to said computer; comparing output data generated with respect to the input data when each of the programs is executed, with reference output data predetermined with respect to said input data, and incrementing or decrementing an energy value indicative of the quality level of each of the programs such that the energy value is greater as the agreement between the generated output data and the reference output data increases; copying or eliminating each of the programs depending on the magnitude of the energy value after the execution of each of the programs by said computer is finished; crossing the programs with a predetermined probability; and mutating the programs with a predetermined probability; said steps of executing, incrementing or decrementing, copying or eliminating, crossing, and mutating being repeated to generate a program for generating output data with respect to the input data with a high degree of agreement with said reference output data; said step of generating comprising the step of establishing position data representing a position of at least one of the basic instructions of each of the programs in association with each of the programs; said basic instructions including a jump instruction for shifting the execution of the program to the basic instruction at the position represented by the position data established in said step of establishing when each of the programs is executed by said computer; said step of selecting comprising the step of copying or eliminating the position data in association with each of said programs when each of said programs is copied or eliminated; said step of crossing comprising the step of crossing the position data with a predetermined probability in association with the programs when the programs are crossed; said step of mutating comprising the step of mutating the position data with a predetermined probability in association with each of said programs when each of said programs is mutated. - View Dependent Claims (30, 31, 32)
-
Specification