Code Monkey home page Code Monkey logo

metallics-optimization's Introduction

The hackathon

  • Each team must produce recipes for the production schedule of heats (given in data/?/production_schedule.json).

  • The final output must be in the same format as given in data/final_output_example.json. The fields are self explanatory.

  • The only data available is under the data directory as described in data/README. Please read this file carefully.

  • Optimization for the recipes:

    • The only thing being optimized for is scrap cost. We assume there are no other costs.
  • Try to create a solution that at the high level might resemble the actual metallics solution in terms of the components. I.e. Models for Copper and yield estimation, the optimizer that creates recipes and uses the models (or api's to the models) to create recipes, etc.

Teams

  • Team 1 "drop-tables": Nishant, Max, Ibrahim
  • Team 2: Rohan, Dehong, Simon
  • Team 3: Ajay, Rashmi, Ashish
  • Team 4: Shyam, Evgenii, Philipp
  • Team 5: Ying, Sebastian, Lena

Constraints:

  • See constraints.json in every dataset. They are self-explanatory and minimal.

Copper model:

The only tramp element being measured and specified in the production schedule is Copper (cu). The only data you have to create a copper model is the history of previous heats (data/?/previous_heats_with_properties.json). (See data/README.md for more.)

Rules

  • No existing Noodle or SMS code can be used. Assume everything in this repo is public.

  • GIT policies:

    • NO CHECKINS into the master branch.
    • Create a branch for your team. I.e. team-funny-geeks. Use this as your teams 'master'.
    • For your own work, if you want to push additional branches to the repo, create branches with your name (i.e. nishant-create-cost-estimator).
  • There must be a file generate_recipes.py that can be run with a single parameter (the name of the data directory i.e. data/1/ or data/2/ etc) and should output on stdout valid json for the schedule with recipes (see data/final_output_example.json). For example

python generate_recipes.py data/1/ > 1_results.json

Should result in a valid scrap recipe schedule in 1_results.json.

  • Work with your teams not across teams (i.e. within Noodle or SMS) for the duration of the hackathon in the spirit of the hackathon.

  • You can use any public libraries and tools. They should be pip installable (add them to your requirements.txt).

Helpful suggestions

  • Make any assumptions you want in the interests of getting something done. If you can't get something done, create the simplest (or simplistic) solution, document it as 'to be improved' and move on. If something is not clear, add your assumptions and move forward.

  • Create a python virtual environment and keep a requirements.txt file so everyone in your team can run the code.

  • Use python3 (in case someone is still on 2.7)

  • Work from the outside in. Get something working end to end with the API / function calls and function signatures first (mock the returned data) and then work on implementation.

  • Any schedule with recipes (i.e. a greedy schedule vs optimal) is better than no schedule.

  • Git strategies:

    • Use the merge vs rebase git technique. I.e. git fetch, git merge.

First steps for each team

  • (everyone) Send Nishant your github account name so you can become a collaborator on this repo.
  • Decide on the team name.
  • Create a branch that will be your teams 'master'. (team-super-cool-dudes). Make sure everyone can check something into this branch.
  • Go.

What else?

Everything else goes. If you have someone interested in creating a UI that shows the schedule or triggers a recalculation of the recipes for a schedule, feel free.

Afterwards

We want to know

  • How you collaborated.
  • What was your high level 'architecture' of the system.
  • What you learnt about the problem.
  • What was emphasised in your solution.
  • Anything else you want to contribute and take forward as we build the actual system.

metallics-optimization's People

Contributors

maxbenchrist avatar nishantd avatar

Watchers

James Cloos 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.