项目作者: jeugregg

项目描述 :
Kaggle competition santa-workshop-tour-2019 : genetic algorithm proposition compare to Guropi MIP optimizer
高级语言: Jupyter Notebook
项目地址: git://github.com/jeugregg/santa-workshop-tour-2019.git
创建时间: 2020-01-08T09:35:12Z
项目社区:https://github.com/jeugregg/santa-workshop-tour-2019

开源协议:

下载


santa-workshop-tour-2019

Kaggle competition santa-workshop-tour-2019 using a original development of Genetic Algorithm

My shared Notebook on Kaggle : https://www.kaggle.com/jeugregg/santa-s-2019-original-genetic-algorithm-method

Competition : https://www.kaggle.com/c/santa-workshop-tour-2019/

This competition is about schedule optimization.
I compare my original method and Gurobi optimizer method.
You can read my report & presentation (in French) in /doc/ folder

santa-s-2019-starter-notebook.ipynb notebook contains :

  1. main fonction to optimize schedule of santa tour 2019 KAGGLE competition : (Loop over Generation part)
  2. a lot of sub-functions used by genetic algo main in Useful functions, Prepare mutation and Cost function parts.
  3. cost function optim is based on kaggle kernel: https://www.kaggle.com/xhlulu/santa-s-2019-faster-cost-function-24-s
  4. C++ Stochastic Product Search is base on kaggle kernel : https://www.kaggle.com/golubev/c-stochastic-product-search-65ns & https://www.kaggle.com/dmintry/c-stochastic-product-search-in-few-threads
  5. Most of the python functions are numba optimized
  6. VERSIONS :
  7. V3.2: 15/02/2020 : fixe sps add-on extend range choices
  8. V3.1: 15/02/2020 : impove sps add-on
  9. V3.0: 12/02/2020 : add stochastic product search boost
  10. V2.1: 04/02/2020 : correction fun_vect_mut
  11. V2.0: 03/02/2020 : random path population generation
  12. V1.1: 03/02/2020 : @njit(parallel=True)
  13. V1.0: 03/02/2020 : update generate_crossing_prob (optimize perf.)

santa_gurobi_01.ipynb : Notebook about Test Gurobi MIP Optimizer

  1. Reused with different seeds from :
  2. https://towardsdatascience.com/helping-santa-plan-with-mixed-integer-programming-mip-1951386a6ba5