Git Product home page Git Product logo

kaggle-santa-workshop's Introduction

Kaggle: Santa's Workshop Tour 2019

This repo is for the Kaggle competition https://www.kaggle.com/c/santa-workshop-tour-2019 A number of ideas were tried for this competition. With the best results from using MIP (Mixed-Integer Programming) Solvers. Two solvers that I attemped to use were IBM's CPLEX and Google's OR-Tools.

Results

My final results were 172 place out of 1620. This resulted in a top 10% finish. The final solution value was 69584. However, running the project I was able to find the optimal solution with the project

This result was achieved using IBM's CPLEX, running on a Google Compute server.

Brief Description of competition

  • Santa is opening his workshop for 100 days for Christmas.
  • 5000 families of varying sizes would like to visit santa's workshop
  • Each family has a preference on the day they would like to visit the workshop
  • There is a cost to not giving a family their top pick so the goal is to try give a familiy one of the best picks
  • There is also a cost to having a large difference in people one day compared to the next
  • The final constrait is that there must be between 125 and 300 people for every day that the workshop is open

Repo packages

cplex - Code to run the model with IBM's CPLEX. A full version of CPLEX is required for this. docloud - Without a full version of CPLEX, it is possible to get a trial of IBM's docloud. This is a server that can run CPLEX models on 10 core 60 GB machines. However, the trial version will only allow a model to last 1 hour of compute time. It did not successfully work due to this limitation. eda - Any exploritory work for the project input - data provided by kaggle ortools - Implementations using Google's OR-Tools. One model using their CBC solver and another using their CP solver reinforement-learning - An attempted implementation was to turn this problem into a reinforement learning problem. Deep Q and Double Deep Q were used to create an implemention submissions - Saved submissions during the work.

Hardware used

Due to the complexity of the problem, a higher powered computer than what I own was required. Therefore Google Compute was used. This project was run over a few days on a computer with 8vCPUs and 52 GB of memory

kaggle-santa-workshop's People

Contributors

roryoreilly avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.