Evolutionary Computation

Tools and format of the class


Course overview


Two main components:
  • a tutorial overview of evolutionary computation
  • a research project in teams


Tutorials:
  1. Introduction and Evolutionary Algorithms
  2. Genetic Algorithms
  3. Evolutionary Strategies
  4. Neuroevolution
  5. Multi-Objective Optimization
  6. Behavior and Novelty
  7. Genetic Programming
  8. Symbolic Regression

Course tools overview


  • Git for code sharing and class organization
  • Python for tutorial code
  • Julia used in previous tutorials
  • Jupyter for tutorials


These tools are widely used and will be useful well beyond this class. Take time to learn them now.

Git




Git


Git


Local workflow (optional)
  • Fork this repository to have a referenced copy of it in your account
  • Clone your fork to download it locally
  • Create a branch in your repository for your local changes
  • Add and commit your modifications
  • Push your modifications to the remote server


Setup

                  git clone https://github.com/USERNAME/evolution
                  cd evolution
                  git remote add upstream https://github.com/d9w/evolution
                  git remote -v
                  git branch mybranch
                  git branch -av
               

Git


Making local changes

                  git checkout mybranch
                  git add plots_notebook.ipynb
                  git commit -m 'Plots notebook'
                  git push origin mybranch
               


Pulling new class material

                  git stash
                  git checkout master
                  git pull upstream master
               

Julia



Python


  • One of the most used programming languages
  • Scientific libraries numpy, scipy, matplotlib and others
  • Supported in cloud-based Jupyter (Google Colab, Binder)
Statistic: Most used programming languages among developers worldwide as of 2022 | Statista
Find more statistics at Statista

Jupyter