Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Simulation of Plant Growth using Genetic Algorithms Peter Barber Dr. John Bonomo Project Goals Strategy Game Proof of Concept Original plan: an interactive game where players grew a plant to compete with computer-created opponents Time constraints led to simulation Goal: to show that a genetic algorithm could be used to promote competition in a game type of environment Genetic Algorithm What is it? Adaptive heuristic search and optimization algorithm Mimics genetics & natural selection How does it work? Initial solution population Individuals represented by a genome Apply the solutions to the problem Rank the solutions Individuals rated by a fitness function Trim the population Use survivors to populate next generation GAs cont. How does it work? (cont.) Crossover Combine two (or more) genomes Mutation Small chance for random mutation of genome Start over with new generation Repeat until optimal solution is reached Simulation Details Simple plant-like structures Stems & Branches - shape Leaves - sunlight Roots - water Simulation cont. Two-dimensional environment Sun moves across the sky as the “day” progresses Plants interact with environment & one another Leaves cast shadows Roots compete for water Plant Competition Plant Growth How do the plants grow? Each plant starts as a seed with finite resources Growth can occur at set intervals Frequency is variable On grow opportunity: Chance to refuse growth Else, traverse plant structure Every existing piece has the possibility to make a growth action Growth Growth Actions Extend (Stems, Branches, Roots) Branch (Stems, Branches, Roots) Leaf (Branch) Genome controls choices Probabilities of growth actions Structural information Lengths, angles, etc. Component properties Plant properties Growth Genome Details Growth specifics Extend chance Extend length Branch chance Branch angle Branch location Properties Sunlight absorption Water absorption Judging Fitness Need a way to determine how well a plant performs Simple solution: resource levels Plant compete in collecting resources Plants consume resources: Passively, by “living” Actively, by growing If a plant consumes all its resources, it dies. Resource Spending Passive consumption Dependent on total size of plant Growth consumption Dependent on several factors The type of growth (new vs. old) How much it grows by The “quality” of the growth Challenges How to keep plant structure “sane” Nature is hard to mimic Growth can lead to illogical and convoluted structure Current Solution: Component-specific structural constraints Each component has its own set of instructions for how to interpret each growth action Challenges How to balance resource expenditure Adjusting values determines how algorithm performs Unbalancing leads to “cornering” of the algorithm Goal is to promote competition, not to find loopholes Current Solution: Provide checks & balances where possible ex: High sunlight absorption -> High cost to grow leaves Current Work Implementation of the algorithm still in progress Immediate goals: Show noticeable evolution of plant “strategy” Introduce environmental effects Weather patterns (overcast skies, drought, etc.) Future goals: Further environmental effects Insect life, terrain effects More growth actions Seed, Flower, Fruit, etc. Applications More complex versions of this type of simulation could conceivably be used as: Entertainment Strategy game similar to original goal Educational Tool Simple, game-like version to interest young children in biology and science More complex implementations as a demonstrative tool for teaching biology and evolution in high school and beyond Agricultural Simulator A realistic, highly evolved form of the simulation could be used to test new crops and planting patterns Thank You Questions?