# Resources

## Code

- My GitHub repository:
**genetic programming hyper-heuristics for evolving dispatching rules for job shop scheduling**. - My GitHub repository:
**meta-heuristic and hyper-heuristic algorithms for uncertain arc routing problem**. - My GitHub repository:
**genetic programming hyper-heuristic algorithms for stochastic orienteering problem**. - MATLAB code for A Competitive Divide-and-Conquer Algorithm for Unconstrained Large-Scale Black-Box Optimization,
*ACM Transactions on Mathematical Software*, 2016 - The ECJ Java library: https://cs.gmu.edu/~eclab/projects/ecj/. Highly recommeded if using GP.
- The gplearn Python library for GP: http://gplearn.readthedocs.io/en/stable.
- The DEAP Python library for GP: https://deap.readthedocs.io/en/master/.
- MicroGP (Python): https://squillero.github.io/microgp4/.
- Jenetics (Java): https://jenetics.io/.
- Inspyred (Python): https://aarongarrett.github.io/inspyred/.
- Open BEAGLE (C++): http://chgagne.github.io/beagle/.
- The HyFlex hyper-heuristic framework: http://www.asap.cs.nott.ac.uk/external/chesc2011/hyflex_description.html
- The EvoHyp hyper-heuristic framwork: http://titancs.ukzn.ac.za/EvoHyp.aspx
- An automatic model fitting software: Eureqa. It has an academic 30-day trial version.

## Datasets

**Job Shop Scheduling****Flexible Job Shop Scheduling****Capacitated Arc Routing Problem**- The gdb dataset:
*23 small instances (~30 nodes and ~60 required edges)*. - The val dataset:
*10 groups of medium to large instances (~50 nodes and ~100 required edges). Each group contains 3 or 4 instances (denoted as A, B, C, D), which are based on the same graph but different vehicle capacity.* - The egl dataset:
*8 groups of large instances (~150 nodes and ~200 required edges). The former 4 groups (e1 to e4) and the latter 4 groups (s1 to s4) are based on the same graph, but different subsets of required edges. Each group contains 3 instances (denoted as A, B, C), based on the same graph and required edges, but with different vehicle capacity.* - The EGL-G dataset:
*2 groups of large instances (~250 nodes and ~400 required edges). Each group contains 5 instances (denoted as A, B, C, D, E), based on the same graph and required edges, but with different vehicle capacity.* - The Beijing&Hefei dataset:
*2 large datasets, one generated from the road network of Bejing, and the other from Hefei, two big cities in China. Each dataset has 10 instances, with thousands of edges.* - Large scale datasets, and the best solutions we found.
- Multi-Depot CARP datasets.

- The gdb dataset:
**Vehicle Routing Problems**- Benchmark instances for different problem variants can be found from Dr. T. Vidal’s page.
- A very good CVRP library, with the plots of instances and solutions.

**Bin Packing Problem**- A very comprehensive problem library.

**Timetabling Problem**- A comprehensive library from University of Nottingham.
- A University Timetabling benchmark website.

## Interesting links

- My tutorials in Jupyter Notebook.
- My
**IEEE CIS Webinar**: Genetic Programming Hyper-Heuristics for Combinatorial Optimisation: [Video] - Xin Yao’s Public Lecture: What can evolutionary computation do for you?
- A. E. Eiben’s TED talk: Tech Kangaroos - Evolution at Work
- Keith Downing’s TED Talk: Evolutionary computation
- An interesting website about robots learned by evolutionary computation: https://strandbeest.com
- Learn to Play Flappy Bird using Cartesian Genetic Programming: GitHub
- Hyper-heuristic bibliography: https://mustafamisir.github.io/hh.html
- An interesting
**Science**paper “Distilling Free-Form Natural Laws from Experimental Data”, which uses genetic programming to automatically discover natural laws (symbolic regression). - A
**Nature**paper: “From evolutionary computation to the evolution of things”