Genetic Programming Code Farming for Building Block Generation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing genetic programming systems face inefficiencies in generating generic computational building blocks, leading to redundant searches and reliance on human-coded blocks that can introduce bias, which hampers the development of artificial general intelligence.
Innovation Solution
The use of genetic programming to create generic computational building blocks through a process called 'code farming,' where a GP system generates and evolves program fragments that can serve as reusable building blocks for seeding initial populations, reducing redundant searches and minimizing human intervention.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If hand-coded building blocks are used to seed initial population, then the GP system can start with useful programs, but human bias is introduced and human intelligence is required
Solution Approach 1:
The GP system generates its own building blocks through automatic building block generation, eliminating the need for human-coded seeds. The system uses a fitness function to evaluate and select building blocks autonomously, allowing the GP process to self-service without human intervention while maintaining useful program generation
Solution Approach 2:
Building blocks are generated in advance through a preliminary GP process that creates a library of useful program fragments. These pre-generated building blocks are then stored and reused in subsequent GP runs, allowing the system to start with useful programs without requiring human coding for each new problem
2Reliability
If new building blocks are determined for each new GP instance, then the building block hypothesis is maintained, but computational resources are wasted through redundant searches
Solution Approach 1:
The system creates a universal library of building blocks that can be applied across multiple different GP instances and problems. Instead of generating new building blocks for each problem, the same library serves multiple functions and different problem domains, reducing redundant computational searches while maintaining the effectiveness of the building block approach
Solution Approach 2:
Successfully generated building blocks from one GP instance are copied and reused in subsequent GP instances. The system replicates useful program fragments and stores them in a library, allowing other problems to benefit from previously discovered building blocks without repeating the computational search process
Data Source
AI summary
A method evolves generic computational building blocks. The method initializes a parent population with randomly generated programs. The method also obtains a list of randomly generated test inputs. The method generates a target dataset that includes input-output pairs of randomly generated binary strings. The method also applies a fitness function to assign a fitness score to each program, based on the input-output pairs of the target dataset. The method grows a seed list by applying genetic operators to the programs, and selecting offspring that satisfy a novelty condition. The novelty condition is representative of an ability of a program to produce distinct and unique output for the list of randomly generated test inputs. The method iterates until a terminating condition has been satisfied. The terminating condition is representative of an ability of programs in the seed list to solve one or more genetic programming instances.

