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.
- 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”