Download presentation
Presentation is loading. Please wait.
1
1 Genetic Programming Primer ami hauptman
2
2 Outline Intro GP definition Human Competitive Results Representation Advantages GP operators The GP Individual The GP experiment Example – symbolic regression Additional Concepts
3
3 Intro Representation is a crucial issue in problem-solving Part of the solution Generic GAs Linear (bit-vector) solutions Fixed length Problems: Often difficult and unnatural Limited search; Length may be unknown Examples – TSP; AI; … Very few “real world” implementations
4
4 Towards a Variant A : Computer programs fundamental models in CS B : “Computer programs are the best model for computer programs” Conclusion… (A Λ B ) Why not implement GA individuals as programs? Implemented in…
5
5 Genetic Programming [GP] Evolutionary search in program space Tree-structured representation Non tree-based program representations exist (e.g. Machine-Code GA) Introduced by Cramer [1985] Developed by Koza [1992] Active and highly successful field Conferences Patents And especially…
6
6 Human-Competitive Results
7
7 Increasing in the field of genetic and evolutionary computation An automatically created result is “human- competitive” if (www.human-competitive.org): Patent (invention) New scientific result Solution to long-standing problem Wins / Holds its own in regulated competition with human contestant (= live player or human-written program)
8
8 Human-Competitive Results Over 40 to date Examples: Evolved antenna for use by NASA (Lohn, 2004) Automatic quantum computer programming (Spector, 2004) Several analog electronic circuits (Koza et al., mid 90s till today): amplifiers, computational circuits, … MAJOR motivation: As of 2004, yearly contest WITH CASH PRIZES!
9
9 Outline Intro GP definition Human Competitive Results Representation Advantages GP operators The GP Individual The GP experiment Example – symbolic regression Additional Concepts
10
10 Representations Individuals as LISP programs (S- expressions) Why trees?
11
11 Advantages of trees Before Genetic operators Powerful representation (+ 1 2 (IF (> TIME 10) 3 4)) Simple No: local vars, types … Individual Solution Saves precious time Recursive - size may vary Main advantage:
12
12 Outline Intro GP definition Human Competitive Results Representation Advantages GP operators The GP Individual The GP experiment Example – symbolic regression Additional Concepts
13
13 Genetic Operators Reproduction – as before Crossover, Mutation - now tree operators S-expressions closed under most (tree) operators Generate VALID individuals Unlike C programs…
14
14 GP Operators - Crossover BINARY 1) Randomly select 2 nodes 2) Swap underlying sub-trees S.t. depth constraints (if applicable) FATHER MOTHER OFFSPRING1 OFFSPRING2
15
15 GP Operators - Mutation UNARY 1) Select mutation point 2) Remove entire sub-tree and grow a new one Again – depth constraints
16
16 Genome What’s inside the tree… Genome contains functions and terminals Functions - Internal nodes Varying complexity Examples: +, -, And, Or, If, IFLTE, ADFs Terminals - Leaves Constants or “sensors”; Actions Generally more domain dependant Examples: Variables, Constants, 0-params functions, ERCs
17
17 Example 1 Logic expression AND Y X OR NOT X Z
18
18 Example 2 Series of instructions Progn2 IF Wall_is_near 90 Rotate_Right Advance_5Advance_10
19
19 More realistic trees… Tree 0: (If3 (Or2 (Not (Or2 (And2 OppPieceAttUnprotected NotMyKingInCheck) (Or2 NotMyPieceAttUnprotected 100*Increase))) (And2 (Or3 (And2 OppKingStuck NotMyPieceAttUnprotected) (And2 OppPieceAttUnprotected OppKingStuck) (And3 - 1000*MateInOne OppKingInCheckPieceBehind NotMyKingStuck)) (Or2 (Not NotMyKingStuck) OppKingInCheck))) NumMyPiecesUNATT (If3 (< (If3 (Or2 NotMyPieceAttUnprotected NotMyKingInCheck) (If3 NotMyPieceAttUnprotected #NotMovesOppKing OppKingInCheckPieceBehind) (If3 OppKingStuck OppKingInCheckPieceBehind -1000*MateInOne)) (If3 (And2 100*Increase 1000*Mate?) (If3 (< NumMyPiecesUNATT (If3 NotMyPieceAttUnprotected -1000*MateInOne OppKingProxEdges)) (If3 (< MyKingDistEdges #NotMovesOppKing) (If3 -1000*MateInOne -1000*MateInOne NotMyPieceATT) (If3 100*Increase #MovesMyKing OppKingInCheckPieceBehind)) NumOppPiecesATT) (If3 NotMyKingStuck -100.0 OppKingProxEdges))) (If3 OppKingInCheck (If3 (Or2 NotMyPieceAttUnprotected NotMyKingInCheck) (If3 (< MyKingDistEdges #NotMovesOppKing) (If3 -1000*MateInOne -1000*MateInOne NotMyPieceATT) (If3 100*Increase #MovesMyKing OppKingInCheckPieceBehind)) NumOppPiecesATT) (If3 (And3 - 1000*MateInOne NotMyPieceAttUnprotected 100*Increase) (If3 (< NumMyPiecesUNATT (If3 NotMyPieceAttUnprotected -1000*MateInOne OppKingProxEdges)) (If3 (< MyKingDistEdges #NotMovesOppKing) (If3 -1000*MateInOne - 1000*MateInOne NotMyPieceATT) (If3 100*Increase #MovesMyKing OppKingInCheckPieceBehind)) NumOppPiecesATT) -1000*MateInOne)) (If3 (< (If3 100*Increase MyKingDistEdges 100*Increase) (If3 OppKingStuck OppKingInCheckPieceBehind -1000*MateInOne)) -100.0 (If3 (And2 NotMyPieceAttUnprotected -1000*MateInOne) (If3 (< NumMyPiecesUNATT (If3 NotMyPieceAttUnprotected -1000*MateInOne OppKingProxEdges)) (If3 (< MyKingDistEdges #NotMovesOppKing) (If3 -1000*MateInOne -1000*MateInOne NotMyPieceATT) (If3 100*Increase #MovesMyKing OppKingInCheckPieceBehind)) NumOppPiecesATT) (If3 OppPieceAttUnprotected NumMyPiecesUNATT MyFork))))) GP-EndChess
20
20 Outline Intro GP definition Human Competitive Results Representation Advantages GP operators The GP Individual The GP experiment Example – symbolic regression Additional Concepts
21
21 The GP experiment Preparatory steps: Determine set of terminals & functions Determine fitness measure Determine run parameters Population size Operator probabilities Tree depths …… Set up end of run criteria Run the experiment start with initial population:
22
22 Creating the Initial Population 3 Methods Depth=m Grow F.e. node – randomly select function or terminal varying depths Full All of same depth Ramped-half-and-half Divide population to max_depth-1 parts For each part: half by grow; half by full Preferred by Koza
23
23 Flowchart of GP
24
24 Example - Symbolic regression Independent variable X Dependent variable Y 1.00 -0.800.84 -0.600.76 -0.400.76 -0.200.84 0.001.00 0.201.24 0.401.56 0.601.96 0.802.44 1.003.00
25
25 Preparatory Steps Objective: Find a computer program with one input (independent variable X ) whose output equals the given data 1Terminal set: T = {X, Random-Constants} 2Function set: F = {+, -, *, %} 3Fitness: The sum of the absolute value of the differences between the candidate program’s output and the given data, where (-1 < X < 1) 4Parameters:Population size M = 4 5Termination:An individual emerges whose sum of absolute errors is less than 0.1
26
26 Notes Complexity of function = ? Size of solution unknown More points more difficult Depth constraints Can limit complexity Needed anyway Typically size of pop >= 50 “%” function is “/” excluding zero in 2 nd argument Needed to avoid BAD individuals
27
27 Generation 0 4 Random Individuals (later: creation) More complex than actual transformed
28
28 Fitness f(x) = x 2 +x+ 1 x + 1x 2 + 12x 4.46.009.4815.4
29
29 Generation 1 Copy of (a) Mutant of (c) picking “2” as mutation point First offspring of crossover of (a) and (b) picking “+” of parent (a) and left-most “x” of parent (b) as crossover points Second offspring of crossover of (a) and (b) picking “+” of parent (a) and left-most “x” of parent (b) as crossover points
30
30 Generation 1 - Fitness 4.4 6.0 15.4 0 - IDEAL
31
31 Outline Intro GP definition Human Competitive Results Representation Advantages GP operators The GP Individual GP experiments Example – symbolic regression Additional Concepts
32
32 Additional Concepts Competitive Evaluation Ephemeral Random constants (ERCs) Strongly Typed GP (STGP)
33
33 Competitive Evaluation (not only in GP) Important in games ! Fitness depends on peers; relative E.g. compete against k peers Optional – count score for both Easier progress at start – weak opps Avoid over-generalization and early convergence Still need absolute measure
34
34 ERCs Sometimes constants not known in advance E.g. symbolic regression ERC (terminal) node – init to a random constant stay Mutate-ERC operator (low prob.) Change to other constant Typically-range for constants
35
35 Strongly Typed Genetic Programming (STGP) Montana [1995] Node data types may vary; casting not enough Impose structural constraints Assigning (pseudo) types to functions & terminals Sometimes more than one Typically actual (implementation) types are all real numbers
36
36 STGP Example Include both Boolean and Float terminals True, False, zero-arg Predicates ERCs, float zero-arg functions Some used as both – “Query” Important predicate Returns a large float if true If function Children: Boolean, Float, Float Query can be at each child location of If
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.