Programmation par contrainte
Bonjour,
J'essaye d'utiliser les fonctions de programmation par contrainte avec la librairie ortools. A la dernière instruction, qui permet d'ajouter une contrainte où tous les éléments de la liste x[i] devraient être différents, j'ai le message d'erreur suivant :
return _pywrapcp.Solver_AllDifferent(self, *args)
NotImplementedError: Wrong number or type of arguments for overloaded function 'Solver_AllDifferent'.
Si quelqu'un a une idée ...
merci
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
from __future__ import print_function
import sys
from ortools.constraint_solver import pywrapcp
import numpy as np
solver = pywrapcp.Solver("Test")
n=2 #taille d'une zone --> nombre de colonnes = nombre de lignes = n*n
l_cotes = n*n
somme_ligne = 0;
for i in range(1,l_cotes+1):
somme_ligne +=i;
x = np.zeros((l_cotes, l_cotes), dtype=int)
x[1,1] = 3
for i in range(l_cotes): # Nombre de lignes qu'on va créérlle
print(x[i])
for i in range(l_cotes):
solver.Add(solver.AllDifferent(x[i],True)) |
Programmation par contrainte
Bonjour
@VinsS : oui c'est peut-être simple mais ça fait 3 heures que j'essaye différentes combinaisons sans y arriver ...
@Fred1599 : différents exemples montre que "true" ou "false" sont obligatoires
J'essaye d'ajouter des variables éléments x[i,j] au solver
Cette ligne est ok
Code:
1 2 3
| for i in range(n):
for j in range(n):
x = solver.IntVar(1, l_cotes, "x[%i,%i]" % (i,j)) |
Je veux désormais que chaque ligne de ce tableau a 2 dimensions ait des éléments différents :
J'ai 2 erreurs
1)
Code:
1 2
| for i in range(l_cotes):
solver.Add(solver.AllDifferent(x[i],True)) |
l'erreur est : solver.Add(solver.AllDifferent(x[i],True))
TypeError: 'IntVar' object does not support indexing
... et pourtant le "true" est obligatoire ...
2) je souhaiterai rajouter une contrainte sur un cas simple :
Code:
solver.Add((x[1,1] <= 1))
L'erreur : TypeError: 'IntVar' object is not subscriptable
Merci pour votre aide ... là je suis bloqué ...