Un cadre générique pour l'intégration de BTD dans une bibliothèque de programmation par contraintes
Résumé
La méthode BTD permet de résoudre efficacement des instances CSP en tirant profit de la structure des problèmes à travers une décomposition arborescente du réseau de contraintes. Cette décomposition permet d'identifier des sous-problèmes indépendants dont la résolution peut être effectuée par toute méthode de résolution de CSP classique. Dans cet article, nous introduisons un cadre générique pour intégrer BTD dans une bibliothèque de programmation par contraintes, ce qui nous permet de bénéficier des différents algorithmes de propagation et de recherche implémentés dans la bibliothèque. Ce cadre a été implémenté à l'aide de la bibliothèque Gecode, et nous considérons deux variantes : la première (BTD-G) utilise la recherche Gecode par défaut pour résoudre chaque sous-problème, tandis que la seconde (BTD-GR) utilise une recherche avec restarts. Cela nous permet d'évaluer l'intéret d'utiliser une recherche avec restarts lors de la résolution des sous-problèmes. Ces deux variantes sont comparées expérimentalement sur les instances de la compétition CSP'2009. Nous constatons que BTD-GR surpasse BTD-G pour beaucoup d'instances, et que BTD-GR surpasse Gecode (dans sa version avec restarts) pour un grand nombre d'instances structurées.