Python Mixed Integer Programming
Budget: $750 – $1,500 AUD
I have a very complex Python project that revolves around optimising a fantasy football team using Mixed Integer Programming, the mip package in Python.
The main file where the mip optimisation problem will be run from is called '2017 AF Optimiser.py'. What this program does is go through hundreds of possible football players and selects the team that maximises the total season score. Of course, for this fantasy football game, there are many constraints and rules to follow such as Salary Cap's, Trade's, Position's etc. I am very happy to explain these in further detail, but 99% of them are coded in successfully.
There are 6 main tasks to do for this project to be completed fully:
1. First and foremost, the code needs to run flawlessly without errors in my CMD and output the correct solution.
2. The data files that I have, '2017 AF Parameters.csv' and '2017 AF Data.csv', are stored as CSV files and will need to be successfully read and imported into the project.
3. The solution needs to be outputted in not only a CSV file format, but with the same structure '2017 AF Solution.csv'. I have attached a copy of exactly what this file should look like if this task is completed properly with the data attached.
4. The implementation of 3 additional constraints: 1.) A new 'Substitute Position' named 'UTIL' that any and all players can fill. 2.) Emergencies - 'Substitute Position' Players who's score will count if someone doesn't play on the field. As a simple rule, the Emergency is always the highest scoring Substitute Player for each position. 3.) Vice Captain - A Starting Position Player who's scored will be doubled instead of the Captain, if and only if the Captain doesn't play.
5. The implementation of a complex constraint that reads the previous Team Selections that I have made for my fantasy team from the input CSV file '2017 AF Previous Selections.csv'. Therefore, when the optimal solution is outputted, the weeks containing Previous Selections must be the exact same. Happy to explain this further.
6. I would also like to speed up the time it takes to solve my MIP problem, which can be done through the addition of further class variables to restrict the search space. According to the documentation at https://python-mip.readthedocs.io/en/latest/quickstart.html, certain properties such as 'emphasis' and 'cuts' can spend longer initially restricting the optimal solution search space in order to save time overall.
This project is quite large and involved. The ideal candidate is a professional who has skills in the following areas: Python, CSV, Mixed Integer Programming, Mathematics (Operations Research). Also preferable is someone who has previously used the Python mip package as well as someone who has played fantasy football and understands how it works.
I am looking for someone who is interested and passionate. Please contact me after you bid with:
1.) Your Estimated Timeframe
2.) Your Estimated Project Cost
3.) Your Previous Experience/Skills
4.) Any Other Questions
If you do not show initiate and contact me with the 4 points above, you will NOT be considered for the project. This is to ensure all bids have actually read and understood the requirements.
Thank you for taking the time to read this.
The main file where the mip optimisation problem will be run from is called '2017 AF Optimiser.py'. What this program does is go through hundreds of possible football players and selects the team that maximises the total season score. Of course, for this fantasy football game, there are many constraints and rules to follow such as Salary Cap's, Trade's, Position's etc. I am very happy to explain these in further detail, but 99% of them are coded in successfully.
There are 6 main tasks to do for this project to be completed fully:
1. First and foremost, the code needs to run flawlessly without errors in my CMD and output the correct solution.
2. The data files that I have, '2017 AF Parameters.csv' and '2017 AF Data.csv', are stored as CSV files and will need to be successfully read and imported into the project.
3. The solution needs to be outputted in not only a CSV file format, but with the same structure '2017 AF Solution.csv'. I have attached a copy of exactly what this file should look like if this task is completed properly with the data attached.
4. The implementation of 3 additional constraints: 1.) A new 'Substitute Position' named 'UTIL' that any and all players can fill. 2.) Emergencies - 'Substitute Position' Players who's score will count if someone doesn't play on the field. As a simple rule, the Emergency is always the highest scoring Substitute Player for each position. 3.) Vice Captain - A Starting Position Player who's scored will be doubled instead of the Captain, if and only if the Captain doesn't play.
5. The implementation of a complex constraint that reads the previous Team Selections that I have made for my fantasy team from the input CSV file '2017 AF Previous Selections.csv'. Therefore, when the optimal solution is outputted, the weeks containing Previous Selections must be the exact same. Happy to explain this further.
6. I would also like to speed up the time it takes to solve my MIP problem, which can be done through the addition of further class variables to restrict the search space. According to the documentation at https://python-mip.readthedocs.io/en/latest/quickstart.html, certain properties such as 'emphasis' and 'cuts' can spend longer initially restricting the optimal solution search space in order to save time overall.
This project is quite large and involved. The ideal candidate is a professional who has skills in the following areas: Python, CSV, Mixed Integer Programming, Mathematics (Operations Research). Also preferable is someone who has previously used the Python mip package as well as someone who has played fantasy football and understands how it works.
I am looking for someone who is interested and passionate. Please contact me after you bid with:
1.) Your Estimated Timeframe
2.) Your Estimated Project Cost
3.) Your Previous Experience/Skills
4.) Any Other Questions
If you do not show initiate and contact me with the 4 points above, you will NOT be considered for the project. This is to ensure all bids have actually read and understood the requirements.
Thank you for taking the time to read this.