Dans la programmation par contraintes, existe-t-il des modèles qui prennent en compte le nombre de changements de variables?

10

Considérons un modèle CSP où la modification de la valeur d'une variable particulière coûte cher. Existe-t-il des travaux où la fonction objectif prend également en compte le nombre de modifications de la valeur de la variable au cours du processus de recherche?

Un exemple: la variable coûteuse à changer peut être sous le contrôle d'un autre agent et il y a une surcharge d'impliquer cet agent pour changer la variable. Un autre exemple: la variable participe à l'une des contraintes, et la satisfaction de cette contrainte implique d'appeler une fonction coûteuse (comme un simulateur), par exemple est la contrainte, et est un coût- fonction de calcul. Par conséquent, et sont des variables coûteuses à modifier.z=f(x,y)fxy

amit
la source
1
La fonction objectif parle des valeurs finales du CSP et ignore le processus de recherche. Ainsi, dans les formulations standard, les changements de ces variables ne sont pas exposés au modèle CSP. Certains solveurs, tels que Choco, fournissent des heuristiques pour guider le processus de recherche. Certains d'entre eux peuvent même être définis par l'utilisateur. C'est peut-être l'endroit pour changer la façon dont la recherche est effectuée.
Dave Clarke
1
Mais pourquoi la fonction objectif refléterait-elle le prix de la solution? Ne devriez-vous pas comparer les solutions par leur utilité dans le domaine problématique par la suite? Ou le délai de résolution fait-il partie du problème du monde réel?
Raphael
1
Il semble que vous soyez dans le cadre de la satisfaction de contraintes distribuées et que vous recherchez une heuristique.
Dave Clarke

Réponses:

4

Il semble que vous souhaitiez une technique d'optimisation sensible aux coûts (soucieuse des coûts et budgétisée) . La minimisation de deux valeurs (par exemple la solution de votre objectif et le coût des opérations sur et ) est un problème d'optimisation multicritère , et celles-ci ont tendance à être très difficiles à résoudre. Une approche courante consiste à spécifier un budget pour les coûts maximaux admissibles, puis à minimiser la fonction objectif par rapport aux . Cette formulation a tendance à bien s'intégrer dans les cadres existants en tant que contrainte supplémentaire. Bien sûr, il peut être difficile de spécifier la fonction de coût et le budget autorisé de manière à obtenir des solutions significatives - cela dépendra du problème spécifique que vous essayez de résoudre.xycosts(x,y)Budget

pseudo
la source