Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*********************************************
- * OPL 12.9.0.0 Model
- * Author: vince
- * Creation Date: 19 nov. 2019 at 08:58:14
- *********************************************/
- using CP;
- int N = 9;
- range numbers = 1..N;
- int input[numbers][numbers] = ...;
- int NBlock = 2;
- range numbersBlock = 0..NBlock;
- dvar int sol[numbers][numbers] in numbers;
- subject to {
- forall(line, col in numbers){
- if(input[line][col] != 0){
- sol[line][col] == input[line][col];
- }
- // Un chiffre par ligne
- allDifferent(all (i in numbers) sol[line][i] );
- //Un chiffre par colonne
- allDifferent(all (i in numbers) sol[i][col] );
- //Un chiffre par sous-carré
- forall(lineBlock, colBlock in numbersBlock){
- allDifferent(all (i in numbersBlock, j in numbersBlock) sol[lineBlock * 3 + i + 1][colBlock * 3 + j + 1] );
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement