Evolutionary Code Optimization with Diploid Haploid Selection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Programmers face limitations in improving the realism of artificial-opponent systems due to time constraints, creativity, and knowledge, leading to restricted experimentation and innovation in developing new programmatic approaches.
Innovation Solution
The techniques involve evolutionary computer-based optimization methods, using genetic programming to combine and mutate candidate executable code sets based on fitness scores to produce resultant code with desired ploidy, allowing for simultaneous stability and experimentation, enabling the creation of new algorithmic breakthroughs.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If programmers manually develop new programmatic approaches step-by-step, then the improvements are limited by programmer time, creativity, and knowledge, but the process allows for careful design and debugging
Solution Approach 1:
The system enables self-service by allowing the evolutionary computation system to automatically generate, evaluate, and refine game-playing approaches without continuous human intervention. The system serves itself by autonomously exploring the solution space through genetic algorithms, automatically debugging through fitness evaluation, and continuously improving strategies based on performance feedback.
Solution Approach 2:
The patent replaces the mechanical system of manual programming with an automated evolutionary computation system. Instead of programmers manually writing and debugging code step-by-step, the system uses genetic algorithms to automatically evolve executable code through selection, crossover, and mutation operations, substituting human cognitive processes with computational automation.
2Adaptability or versatility
If programmers manually experiment with different approaches, then creativity and knowledge are utilized, but time constraints limit the extent of experimentation
Solution Approach 1:
The system performs preliminary action by pre-generating large populations of diverse candidate solutions before formal evaluation begins. The evolutionary system pre-explores the solution space by creating varied genetic programs with different structures and strategies, so that when evaluation starts, there is already a broad range of experimented approaches ready for assessment and selection.
Solution Approach 2:
The system applies dynamics by making the experimentation process adaptive and evolving over time. The population of candidate solutions dynamically changes through generations, with the system adapting its exploration based on fitness feedback. The range of experimentation expands automatically as the system discovers new strategies and combines them through crossover operations.
3Productivity
If evolutionary techniques are used to automatically generate and evaluate candidate code, then time and effort are reduced, but the system complexity increases
Solution Approach 1:
The system segments the complex task of game-playing strategy development into distinct evolutionary operations: initialization of candidate populations, fitness evaluation through game simulation, selection of high-performing individuals, crossover to create offspring, and mutation to introduce variation. Each segment is independently implemented and can be optimized separately, making the overall complex system manageable through modular functional decomposition.
Data Source
AI summary
Techniques are provided for evolutionary computer-based optimization and artificial intelligence systems, and include receiving first and second candidate executable code (with ploidy of at least two and one, respectively) each selected at least in part based on a fitness score. If the desired ploidy of the resultant executable code is one, then the first candidate executable code and the second candidate executable code are combined to produce haploid executable code. If the desired ploidy is two, then the first candidate executable code and the second candidate executable code are combined to produce diploid executable code. A fitness score is determined for the resultant executable code, and a determination is made whether the resultant executable code will be used as a future candidate executable code based at least in part on the third fitness score. If an exit condition is met, then the resultant executable code is used as evolved executable code.


