Bibliothèque de résolution de contraintes de chaîne de caratères

Résolu
tmar2 Messages postés 8 Date d'inscription lundi 21 avril 2014 Statut Membre Dernière intervention 28 avril 2014 - 21 avril 2014 à 10:35
tmar2 Messages postés 8 Date d'inscription lundi 21 avril 2014 Statut Membre Dernière intervention 28 avril 2014 - 23 avril 2014 à 13:34
Bonjour,

J'ai trouvé beaucoup d'API qui résolvent les CSP (Constraint Satisfaction Problems) comme CHOCO, JACOP, JLC. Cependant, toutes ces bibliothèques sont pour résoudre contraintes de nombres entiers et ne supportent pas la résolution de contraintes de chaînes de caractères.
Pour cette dernière j'ai cherché et j'ai trouvé HAMPI et MiniZinc. J'ai cherché leur bibliothèques JAR mais je ne les trouve pas. J'ai juste trouvé pour un autre Eclipse Http://eclipseclp.org/doc/bips/lib_public/minizinc/

Dans mon projet Java (sous Eclipse) j'importe tout d'abord des fichiers XML à l'aide d'une interface créée avec Swing. Puis avec un parsing j'extraie les variables, les domaines et les contraintes. Sachant que, les domaines sont un ensemble de chaines de caractères.
Donc, j'aimerais parvenir à résoudre ce problème de satisfaction des contraintes.

Quelqu'un saurait-il m'indiquer où trouver un solveur CSP (jar) pour des contraintes de chaîne ?

Merci beaucoup pour votre aide.

6 réponses

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 127
21 avril 2014 à 12:21
Bonjour,

Je ne suis pas sûr de comprendre en quoi consisterait une contrainte de chaîne de caractères. Je pense que la bonne marche à suivre serait de faire la transition de ton problème sur un modèle numérique de manière à obtenir un problème équivalent en nombre entiers que tu pourras résoudre avec les bibliothèques citées.

Mais un exemple ne serait pas de trop pour bien comprendre ce que tu veux faire...
1
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 127
21 avril 2014 à 14:14
Tu ne trouveras pas d'outils sur les chaines de caractères, car ça n'a aucun sens mathématique. Les bibliothèques de résolutions se font sur des calculs d'entiers ou de booléens car il y a une théorie mathématique derrière, mais elle n'existe pas pour les chaines de caractères.

Soit tu considères les chaines de caractères comme étant des nombres en base 65536, et je ne vois même pas pourquoi tu t'embêtes, soit il y a une sémantique à mettre en place parce que les chaînes de caractères veulent dire quelque chose et qu'il faut leur associer une valeur intelligente. Mais comme c'est du cas par cas, aucune bibliothèque généraliste ne fera ça, ça n'aurait aucun sens.

Donnes un exemple de ce que tu as, les variables, les domaines et les contraintes que tu veux manipuler. Expliques comment tu voudrais que ça fonctionne, mais dans tout les cas tu devras passer par du numérique pour faire tes calculs.
1
tmar2 Messages postés 8 Date d'inscription lundi 21 avril 2014 Statut Membre Dernière intervention 28 avril 2014 1
21 avril 2014 à 13:51
Vous avez bien me compris. Oui, je sais que je peux faire un tableau de mapping entre les chaines de caractère et des nombre entier. Mais, Je veux vraiment, ne pas utiliser cette solution. Je veux trouvé un outil qui supporte les domaines de chaines de caractère.

Merci bien pour votre réponse.
0
tmar2 Messages postés 8 Date d'inscription lundi 21 avril 2014 Statut Membre Dernière intervention 28 avril 2014 1
21 avril 2014 à 18:31
Je veux transformer un diagramme1 de classe (UML) en un autre diagramme2 classe adapté à un tel dispositif qui est représenter par un autre digramme de classe.

Donc mes variables sont: Les classes et les associations du diagramme numéro 1.

Le domaine des variables classe: Les classes du diagramme2.
Le domaine des variables association: Les associations du diagramme2.

Les contraintes sont: les liaisons du diagramme1 et leurs cardinalités.

Je sais que l'algorithme est un peu complexe. Essayez de comprendre ça et si vous avez besoin plus de clarification je vous clarifie.
Donc, comment puis-je présenter ça avec le solveur jacop par exemple.

Merci pour votre aide.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 127
21 avril 2014 à 19:47
Plus tu expliques ton problème et moins c'est clair.

"transformer un diagramme1 de classe (UML) en un autre diagramme2 classe" (admettons), "adapté à un tel dispositif" (quel dispositif ? en quoi un diagramme serait il "adapté" ?) "qui est représenter par un autre digramme de classe" (un troisième diagramme ?)

Je ne vois pas où interviennent les chaînes de caractères dans ton problème ni même en quoi un CSP permettrait de faire ce que tu veux...

Si tu veux des informations sur JaCoP, voici la documentation :
http://jacopguide.osolpro.com/guideJaCoP.html

Mais je te conseilles d'abord de mettre à plat tes idées, je n'ai pas l'impression que tu saches toi même ce que tu veux !
0
tmar2 Messages postés 8 Date d'inscription lundi 21 avril 2014 Statut Membre Dernière intervention 28 avril 2014 1
Modifié par tmar2 le 23/04/2014 à 13:37
Merci pour votre réponse!

Je suis vraiment désolé pour l'ambiguïté. Je suis en train de reformer mes idées et vous m'avez aidé avec vos réponses.

J'ai juste voulu savoir quelles sont les bibliothèques JAVA des solveurs qui s'intègrent à eclipse MDT. Et surtout, quelles sont parmi ces solveurs qui supporte la surcharge des contraintes et l'extensibilité.
0
Rejoignez-nous