174 lines
11 KiB
MiniZinc
174 lines
11 KiB
MiniZinc
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
%FILE DATA: Soccer Computational Problem for MiniZinc Models
|
|
%AUTHORS: Robinson Duque, Alejandro Arbelaez, Juan Francisco Díaz
|
|
%CONTACT: robinson.duque@correounivalle.edu.co
|
|
%LAST UPDATE: May, 2018
|
|
%ROUND ROBIN:2
|
|
%TEAMS:22
|
|
%PRESENT FIXTURE:12
|
|
%FIXTURES TO PLAY:30
|
|
%GAMES TO PLAY:330
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
%Number of teams:
|
|
n=22;
|
|
|
|
%For the purpose of our models, we offer two representations of the games to play, namely fixtures and games to play:
|
|
|
|
%Fixtures to play:
|
|
%fixtures=[|0,2,2,2,1,1,1,2,1,1,2,1,1,1,1,1,2,1,2,1,2,2
|
|
%|2,0,1,2,2,2,1,2,1,1,1,1,2,1,1,1,1,1,2,1,2,2
|
|
%|2,1,0,2,1,2,2,2,1,1,1,1,1,1,1,1,1,2,2,1,2,2
|
|
%|2,2,2,0,2,1,2,1,2,1,1,1,2,1,1,1,1,2,1,1,2,1
|
|
%|1,2,1,2,0,2,1,2,1,2,2,1,2,1,1,1,1,1,2,1,1,2
|
|
%|1,2,2,1,2,0,1,2,1,1,2,1,2,1,1,1,1,1,2,2,2,1
|
|
%|1,1,2,2,1,1,0,2,1,1,1,2,1,1,1,2,1,2,1,2,2,2
|
|
%|2,2,2,1,2,2,2,0,2,1,1,1,1,1,2,1,1,1,1,1,2,1
|
|
%|1,1,1,2,1,1,1,2,0,2,2,2,1,2,1,1,2,1,1,2,2,1
|
|
%|1,1,1,1,2,1,1,1,2,0,1,2,1,1,2,2,2,2,2,2,1,1
|
|
%|2,1,1,1,2,2,1,1,2,1,0,1,1,2,2,2,2,2,1,1,1,1
|
|
%|1,1,1,1,1,1,2,1,2,2,1,0,1,2,1,2,1,2,2,2,1,2
|
|
%|1,2,1,2,2,2,1,1,1,1,1,1,0,1,2,2,2,1,2,1,2,1
|
|
%|1,1,1,1,1,1,1,1,2,1,2,2,1,0,2,2,2,2,1,2,1,2
|
|
%|1,1,1,1,1,1,1,2,1,2,2,1,2,2,0,2,2,1,2,1,1,2
|
|
%|1,1,1,1,1,1,2,1,1,2,2,2,2,2,2,0,2,1,1,2,1,1
|
|
%|2,1,1,1,1,1,1,1,2,2,2,1,2,2,2,2,0,2,1,1,1,1
|
|
%|1,1,2,2,1,1,2,1,1,2,2,2,1,2,1,1,2,0,1,2,1,1
|
|
%|2,2,2,1,2,2,1,1,1,2,1,2,2,1,2,1,1,1,0,1,1,1
|
|
%|1,1,1,1,1,2,2,1,2,2,1,2,1,2,1,2,1,2,1,0,1,2
|
|
%|2,2,2,2,1,2,2,2,2,1,1,1,2,1,1,1,1,1,1,1,0,1
|
|
%|2,2,2,1,2,1,2,1,1,1,1,2,1,2,2,1,1,1,1,2,1,0|];
|
|
|
|
%Played Fixtures:
|
|
%PlayedFixtures=[|0,0,0,0,1,1,1,0,1,1,0,1,1,1,1,1,0,1,0,1,0,0
|
|
%|0,0,1,0,0,0,1,0,1,1,1,1,0,1,1,1,1,1,0,1,0,0
|
|
%|0,1,0,0,1,0,0,0,1,1,1,1,1,1,1,1,1,0,0,1,0,0
|
|
%|0,0,0,0,0,1,0,1,0,1,1,1,0,1,1,1,1,0,1,1,0,1
|
|
%|1,0,1,0,0,0,1,0,1,0,0,1,0,1,1,1,1,1,0,1,1,0
|
|
%|1,0,0,1,0,0,1,0,1,1,0,1,0,1,1,1,1,1,0,0,0,1
|
|
%|1,1,0,0,1,1,0,0,1,1,1,0,1,1,1,0,1,0,1,0,0,0
|
|
%|0,0,0,1,0,0,0,0,0,1,1,1,1,1,0,1,1,1,1,1,0,1
|
|
%|1,1,1,0,1,1,1,0,0,0,0,0,1,0,1,1,0,1,1,0,0,1
|
|
%|1,1,1,1,0,1,1,1,0,0,1,0,1,1,0,0,0,0,0,0,1,1
|
|
%|0,1,1,1,0,0,1,1,0,1,0,1,1,0,0,0,0,0,1,1,1,1
|
|
%|1,1,1,1,1,1,0,1,0,0,1,0,1,0,1,0,1,0,0,0,1,0
|
|
%|1,0,1,0,0,0,1,1,1,1,1,1,0,1,0,0,0,1,0,1,0,1
|
|
%|1,1,1,1,1,1,1,1,0,1,0,0,1,0,0,0,0,0,1,0,1,0
|
|
%|1,1,1,1,1,1,1,0,1,0,0,1,0,0,0,0,0,1,0,1,1,0
|
|
%|1,1,1,1,1,1,0,1,1,0,0,0,0,0,0,0,0,1,1,0,1,1
|
|
%|0,1,1,1,1,1,1,1,0,0,0,1,0,0,0,0,0,0,1,1,1,1
|
|
%|1,1,0,0,1,1,0,1,1,0,0,0,1,0,1,1,0,0,1,0,1,1
|
|
%|0,0,0,1,0,0,1,1,1,0,1,0,0,1,0,1,1,1,0,1,1,1
|
|
%|1,1,1,1,1,0,0,1,0,0,1,0,1,0,1,0,1,0,1,0,1,0
|
|
%|0,0,0,0,1,0,0,0,0,1,1,1,0,1,1,1,1,1,1,1,0,1
|
|
%|0,0,0,1,0,1,0,1,1,1,1,0,1,0,0,1,1,1,1,0,1,0|];
|
|
|
|
%Games to play:
|
|
games=[|2,1|2,1|3,1|3,1|3,2|4,1|4,1|4,2|4,2|4,3|4,3|5,1|5,2|5,2|5,3|5,4|5,4|6,1|6,2|6,2|6,3|6,3|6,4|6,5|6,5|7,1|7,2|7,3|7,3|7,4|7,4|7,5|7,6|8,1|8,1|8,2|8,2|8,3|8,3|8,4|8,5|8,5|8,6|8,6|8,7|8,7|9,1|9,2|9,3|9,4|9,4|9,5|9,6|9,7|9,8|9,8|10,1|10,2|10,3|10,4|10,5|10,5|10,6|10,7|10,8|10,9|10,9|11,1|11,1|11,2|11,3|11,4|11,5|11,5|11,6|11,6|11,7|11,8|11,9|11,9|11,10|12,1|12,2|12,3|12,4|12,5|12,6|12,7|12,7|12,8|12,9|12,9|12,10|12,10|12,11|13,1|13,2|13,2|13,3|13,4|13,4|13,5|13,5|13,6|13,6|13,7|13,8|13,9|13,10|13,11|13,12|14,1|14,2|14,3|14,4|14,5|14,6|14,7|14,8|14,9|14,9|14,10|14,11|14,11|14,12|14,12|14,13|15,1|15,2|15,3|15,4|15,5|15,6|15,7|15,8|15,8|15,9|15,10|15,10|15,11|15,11|15,12|15,13|15,13|15,14|15,14|16,1|16,2|16,3|16,4|16,5|16,6|16,7|16,7|16,8|16,9|16,10|16,10|16,11|16,11|16,12|16,12|16,13|16,13|16,14|16,14|16,15|16,15|17,1|17,1|17,2|17,3|17,4|17,5|17,6|17,7|17,8|17,9|17,9|17,10|17,10|17,11|17,11|17,12|17,13|17,13|17,14|17,14|17,15|17,15|17,16|17,16|18,1|18,2|18,3|18,3|18,4|18,4|18,5|18,6|18,7|18,7|18,8|18,9|18,10|18,10|18,11|18,11|18,12|18,12|18,13|18,14|18,14|18,15|18,16|18,17|18,17|19,1|19,1|19,2|19,2|19,3|19,3|19,4|19,5|19,5|19,6|19,6|19,7|19,8|19,9|19,10|19,10|19,11|19,12|19,12|19,13|19,13|19,14|19,15|19,15|19,16|19,17|19,18|20,1|20,2|20,3|20,4|20,5|20,6|20,6|20,7|20,7|20,8|20,9|20,9|20,10|20,10|20,11|20,12|20,12|20,13|20,14|20,14|20,15|20,16|20,16|20,17|20,18|20,18|20,19|21,1|21,1|21,2|21,2|21,3|21,3|21,4|21,4|21,5|21,6|21,6|21,7|21,7|21,8|21,8|21,9|21,9|21,10|21,11|21,12|21,13|21,13|21,14|21,15|21,16|21,17|21,18|21,19|21,20|22,1|22,1|22,2|22,2|22,3|22,3|22,4|22,5|22,5|22,6|22,7|22,7|22,8|22,9|22,10|22,11|22,12|22,12|22,13|22,14|22,14|22,15|22,15|22,16|22,17|22,18|22,19|22,20|22,20|22,21|];
|
|
|
|
%Played Games:
|
|
%PlayedGames=[|3,2|5,1|5,3|6,1|6,4|7,1|7,2|7,5|7,6|8,4|9,1|9,2|9,3|9,5|9,6|9,7|10,1|10,2|10,3|10,4|10,6|10,7|10,8|11,2|11,3|11,4|11,7|11,8|11,10|12,1|12,2|12,3|12,4|12,5|12,6|12,8|12,11|13,1|13,3|13,7|13,8|13,9|13,10|13,11|13,12|14,1|14,2|14,3|14,4|14,5|14,6|14,7|14,8|14,10|14,13|15,1|15,2|15,3|15,4|15,5|15,6|15,7|15,9|15,12|16,1|16,2|16,3|16,4|16,5|16,6|16,8|16,9|17,2|17,3|17,4|17,5|17,6|17,7|17,8|17,12|18,1|18,2|18,5|18,6|18,8|18,9|18,13|18,15|18,16|19,4|19,7|19,8|19,9|19,11|19,14|19,16|19,17|19,18|20,1|20,2|20,3|20,4|20,5|20,8|20,11|20,13|20,15|20,17|20,19|21,5|21,10|21,11|21,12|21,14|21,15|21,16|21,17|21,18|21,19|21,20|22,4|22,6|22,8|22,9|22,10|22,11|22,13|22,16|22,17|22,18|22,19|22,21|];
|
|
|
|
%Played Games - Win Results:
|
|
%% 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
|
|
%% 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
|
|
%% 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0
|
|
%% 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1
|
|
%% 1 0 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0
|
|
%% 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0
|
|
%% 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0
|
|
%% 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 0
|
|
%% 1 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 1
|
|
%% 0 0 0 1 0 1 0 0 0 0 1 0 1 1 0 0 0 0 0 0 1 0
|
|
%% 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0
|
|
%% 0 0 0 1 1 1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0
|
|
%% 0 0 0 0 0 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0
|
|
%% 0 1 1 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
|
|
%% 0 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
|
|
%% 0 1 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0
|
|
%% 0 1 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
|
|
%% 0 0 0 0 1 0 0 1 0 0 0 0 1 0 1 1 0 0 1 0 0 0
|
|
%% 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0
|
|
%% 0 1 0 1 1 0 0 1 0 0 1 0 1 0 1 0 1 0 1 0 0 0
|
|
%% 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1
|
|
%% 0 0 0 0 0 1 0 1 0 1 1 0 1 0 0 0 1 1 1 0 0 0
|
|
%Played Games - Tie Results:
|
|
%% 0 0 0 0 0 1 1 0 0 1 0 1 0 1 1 1 0 1 0 1 0 0
|
|
%% 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0
|
|
%% 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0
|
|
%% 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
|
%% 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
|
%% 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0
|
|
%% 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0
|
|
%% 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
|
%% 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
|
%% 1 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
|
%% 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
|
%% 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
|
|
%% 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
|
%% 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
|
%% 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
|
%% 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
|
|
%% 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
|
%% 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
|
|
%% 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
|
%% 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
|
%% 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0
|
|
%% 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0
|
|
%Played Games - Lose Results:
|
|
%% 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
|
|
%% 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 1 0 0 1 0 0
|
|
%% 0 1 0 0 1 0 0 0 0 0 1 0 0 1 1 1 0 0 0 0 0 0
|
|
%% 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 1 1 0 1 1 0 0
|
|
%% 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 1 1 0
|
|
%% 0 0 0 1 0 0 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 1
|
|
%% 0 1 0 0 0 1 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0
|
|
%% 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1 1 0 1
|
|
%% 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
|
|
%% 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1
|
|
%% 0 0 0 1 0 0 1 0 0 1 0 1 1 0 0 0 0 0 1 1 0 1
|
|
%% 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0
|
|
%% 1 0 1 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 1 0 1
|
|
%% 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0
|
|
%% 0 0 0 0 1 1 0 0 1 0 0 1 0 0 0 0 0 1 0 1 0 0
|
|
%% 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0
|
|
%% 0 0 1 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1
|
|
%% 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1
|
|
%% 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 1 1 1 0 1 0 1
|
|
%% 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
|
|
%% 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 1 0 1 0 0 0
|
|
%% 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0
|
|
|
|
%%Initial points:
|
|
iPoints=[12, 12, 12, 12, 18, 12, 12, 12, 26, 22, 12, 22, 12, 23, 16, 21, 18, 22, 12, 28, 12, 25];
|
|
|
|
%%Initial positions:
|
|
%iPositions=[12, 13, 14, 15, 9, 16, 17, 18, 2, 6, 19, 7, 20, 4, 11, 8, 10, 5, 21, 1, 22, 3];
|
|
|
|
%%Position Constraints:
|
|
%numberPositionConstraints=22;
|
|
|
|
%%Total Fixtures:
|
|
%totalFixtures=42;
|
|
|
|
%%Fixtures to Play:
|
|
%fixturesToPlay=30;
|
|
|
|
%%Position Constraints Built With
|
|
%wantedPoints=[0, 0, 0, 3, 0, 1, 0, 1, 1, 1, 1, 0, 1, 3, 1, 3, 3, 0, 3, 3, 3, 0, 0, 0, 1, 0, 0, 0, 3, 1, 3, 3, 3, 3, 1, 1, 1, 3, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 3, 0, 3, 1, 0, 0, 3, 1, 3, 0, 0, 3, 1, 1, 0, 0, 3, 3, 0, 1, 1, 1, 3, 1, 3, 1, 3, 1, 1, 1, 0, 3, 3, 1, 0, 1, 3, 1, 1, 0, 3, 3, 0, 3, 1, 1, 0, 3, 3, 3, 0, 1, 3, 1, 3, 0, 1, 1, 1, 1, 3, 1, 1, 0, 1, 3, 3, 0, 1, 3, 3, 3, 3, 3, 1, 3, 1, 1, 0, 1, 0, 0, 3, 1, 0, 3, 3, 3, 3, 3, 1, 1, 0, 3, 3, 0, 3, 3, 3, 0, 0, 3, 0, 3, 0, 0, 1, 1, 0, 0, 1, 3, 1, 1, 3, 3, 0, 0, 0, 1, 3, 3, 1, 0, 1, 0, 1, 3, 0, 0, 3, 1, 1, 0, 3, 0, 1, 3, 0, 3, 1, 3, 0, 1, 3, 3, 1, 0, 1, 1, 1, 0, 1, 0, 3, 1, 1, 0, 3, 0, 3, 0, 1, 1, 3, 1, 1, 0, 0, 1, 1, 3, 0, 3, 3, 3, 3, 0, 0, 1, 1, 1, 1, 1, 1, 3, 0, 3, 0, 3, 0, 3, 0, 3, 0, 0, 0, 1, 3, 3, 3, 3, 3, 0, 1, 0, 3, 3, 1, 0, 1, 1, 1, 0, 0, 3, 3, 1, 0, 0, 0, 3, 0, 0, 1, 1, 0, 3, 3, 0, 3, 1, 3, 3, 1, 1, 3, 1, 1, 3, 0, 3, 1, 0, 3, 0, 3, 0, 1, 3, 3, 3, 0, 1, 3, 1, 3, 0, 1, 1, 0, 3, 1, 0, 1, 1, 1, 0, 3, 1, 0, 0, 0, 1, 3, 1, 1, 0, 1, 0, 3];
|
|
|
|
|
|
%POSITION CONSTRAINTS
|
|
%%[|teamID, operator, position|...]
|
|
%%operators index:
|
|
%%%1 for = operator
|
|
%%%2 for > operator
|
|
%%%3 for >= operator
|
|
%%%4 for < operator
|
|
%%%5 for <= operator
|
|
|
|
positionConstraints=[|1,1,3|2,1,22|3,1,17|4,1,15|5,1,21|6,1,18|7,1,9|8,1,20|9,1,7|10,1,19|11,1,12|12,1,8|13,1,13|14,1,1|15,1,4|16,1,14|17,1,6|18,1,5|19,1,16|20,1,2|21,1,11|22,1,10|];
|
|
|
|
|
|
|
|
|