Contraintes Java problème Bibliothèque (JCL): comment représenter plus?
-
21-09-2019 - |
Question
Je dois résoudre un CSP problème logique utilisant Contraintes Java Library. Pour l'instant je suis parvenu à représenter certaines contraintes du problème, la plupart d'entre eux sont basés sur des « égaux » et « non » équivaut à des contraintes binaires. Mon doute est, comment représenter une contrainte à base de plus? Exemple:
- variable1 appartient à DomaineA
- variable2 appartient à DomaineB
- appartient à DomaineA variable 3
- variable4 appartient à DomaineB
Maintenant la contrainte:
- La somme des variable1 et variable2 est supérieure à la somme de variable 3 et variable4.
Observation: ces variables représentent l'argent, donc ils peuvent être ajoutés
.La solution
Depuis Java Constraint Library utilise uniquement des contraintes unaires ou binaires, nous devons faire binarisation des contraintes afin de représenter les contraintes n-aire. Nous pouvons également hériter des classes de relations existantes dans la bibliothèque et de définir de nouvelles relations compatibles.