Story
I'm trying to write a baseball elimination problem using the PuLP (python) minimization. The basic problem looks like this:
Basically x_ij
is the future wins of team i
over team j
, g_ij
is the overall games left between teams i
and j
, k
is the team we're interested in, p_j
is the points a team has so far. Variable z_j
is just auxiliary, it's 1
when team j
is ahead of k
(by total wins) and 0
if behind.
Problem
I have no problem writing this in terms of PuLP and solving the optimization problem. However, I wanted to add some tie-breaking rules, to adjust the constraints, so that if, e.g., t_j == t_k
, it compares, lets say, x_jk
with x_kj
to decide whether team j
is ahead of k
.
Question
So basically I need a condition that kicks in only under particular circumstances. Is there a way to do this easily in PuLP? Maybe by introducing some other variable? If not, what module/method would you suggest to solve this kind of tie-breaking thing?
Since you have a lot of tie breaking rules that compete with each other, you may need a more complicated objective function that rewards or penalizes certain teams according to the tiebreak rules. You will need to somehow "price" the conditions using the objective function. Dummy variables and Big M constraints may be helpful for "if/then" conditions