On Sat, 5 Sep 2009, Tawny Owl wrote:
btw - can anyone offer any advice has to how to break the symmetry in this 
problem, please? I previously modelled it to solve to all pairs of teams having 
at least one opponent in common, and used the objective function to break the 
symmetry - which worked, and produced solutions much more quickly. However, I 
have now amended the model to cover team/round permutations in which it is not 
possible to ensure that all pairs of teams have an opponent in common - in 
which case, the aim is to minimise the cases of pairs of teams having no 
opponent in common.

Another poster noted that not all your binary variables have to be binary.
That still leaves symmetry.
A lot of theorectically correct symmetry-breaking constraints don't
do a lot because they don't affect the linear relaxation much.
Your problem has a tremendous amount of symmetry: 4!*24! > 1.9 trillion.
I think that some of it can be helped by
fixing the opponents in the first round.
Apparently every team plays every round.
All teams are equivalent, ergo all pairings are equivalent.
Fixing the pairings selects one equivalent
Let the pairings be 1:8, 2:9, ... 7:14.
possiblilty out of 13*11*9*7*5*3=135135.
For round 2, you can define two equivalent sets of 7 teams.
Within a set, no two teams have played each other.
The index sets can be 1..7 and 8..14.
In what follows, I think round2[j, k] should be roundGamePair[2, j, k].
Within a set, allow only consecutively numbered teams to play and
between sets, require indices differ by 7:
j in 1..12, k in j+2..14, k != j+1, k != j+7: round2[j, k]=0
round2[7, 8]=0
Reserve the higher indices for cross-set play:
j in 1..6 :   round2[j, j+7] <= round2[j+1, j+8]

After round 2, you are on your own.

--
Michael   [email protected]
"Pessimist: The glass is half empty.
Optimist:   The glass is half full.
Engineer:   The glass is twice as big as it needs to be."


_______________________________________________
Help-glpk mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/help-glpk

Reply via email to