What is GeneticProgramming?
⢠⢠Type of evolutionary algorithm for evolving
computer programs.
⢠⢠Programs are represented as tree structures.
⢠⢠Inspired by natural selection and genetics.
⢠⢠Used to automatically generate code to
solve problems.
3.
Genetic Programming vsGenetic Algorithm
⢠⢠GA evolves data (strings/vectors), GP evolves
programs (trees).
⢠⢠GA output: optimal values, GP output:
executable programs.
⢠⢠GP is more flexible and complex than GA.
4.
Key Steps inGenetic Programming
⢠Initialization: Generate random programs.
⢠Fitness Evaluation: Test program performance.
⢠Selection: Choose best-performing programs.
⢠Crossover: Exchange subtrees between
parents.
⢠Mutation: Random changes in program trees.
⢠Termination: Stop when goal is achieved.
5.
Program Representation inGP
⢠⢠Programs are represented as trees:
⢠- Internal nodes: Functions (+, -, *, /)
⢠- Leaf nodes: Terminals (variables/constants)
⢠⢠Example: (x + (y * 2)) as a tree structure.
6.
Applications of GeneticProgramming
⢠Symbolic regression (equation discovery)
⢠Automated software repair
⢠Strategy development in games
⢠Neural network structure evolution
⢠Image and signal processing
7.
Merits of GeneticProgramming
⢠Automatically generates working programs
⢠Suitable for unknown or complex logic
⢠Flexible and domain-independent
⢠No need for derivatives or gradient info
8.
Demerits of GeneticProgramming
⢠High computational cost
⢠May produce bloated code (bloat)
⢠Difficult to interpret evolved programs
⢠Risk of non-terminating logic
9.
Limitations of GP
â˘Premature Convergence: GP may converge to
a local maximum that is not globally optimal.
Multiple runs and large population sizes can
help mitigate this issue.
⢠Complexity: GP can be computationally
expensive, especially for large and complex
problem
10.
Future of GeneticProgramming
⢠Integration with deep learning (Neuro-GP)
⢠Explainable AI using symbolic GP
⢠Real-time adaptive systems
⢠Quantum and hardware-based GP
11.
Summary
⢠⢠GPevolves programs based on natural
selection.
⢠⢠Flexible, adaptable, and domain-
independent.
⢠⢠Ideal for solving complex or unknown
problems.
⢠⢠Has challenges like cost and code bloat.