Project-Platypus / Platypus

A Free and Open Source Python Library for Multiobjective Optimization
GNU General Public License v3.0
563 stars 153 forks source link

Multiple Optimisation using real data #149

Closed armenvod closed 4 years ago

armenvod commented 4 years ago

All the examples in the docs are for problems where the problem.types[:] is a range of Real numbers. Let's say I wanted to use real data for a MOEA, a good example is the fantasy football problem which I have linked below.

As you can see in the image it has currently one objective: maximising points. Let's say I want to improve it into multiobjective: maximising points & minimising cost (i.e. cost is now new objective instead of a constraint). Can I search for solutions to this problem using Platypus?

One Type I guessed may work is Subset Type, but not sure how to structure data to retain row integrity (i.e. make sure Player X is associated with their position, team, points, salary etc.)

Source(s): https://github.com/mattbrondum/Fantasy-Football-Optimization, https://www.kdnuggets.com/2018/08/optimization-101-data-scientists.html

image

dhadka commented 4 years ago

Sure, it should work. The decision variables depend on how you want to model the problem. Using the provided image, it shows the decision variables are an array of boolean values (0/1) selecting the players in the lineup. The Binary type would work well if you can have a varying number of players per team, or if the number of players on the team is fixed you could use the Subset type.