Le relâchement complémentaire (CS) est couramment enseigné lorsque l'on parle de dualité. Il établit une belle relation entre la primale et la double contrainte / variables d'un point de vue mathématique.
Les deux principales raisons d'appliquer CS (comme enseigné dans les cours d'études supérieures et les manuels):
- Pour vérifier l'optimalité du LP
- Pour aider à résoudre le double
Compte tenu de la puissance de calcul actuelle et des algorithmes polynomiaux pour la résolution des LP, CS est-il toujours pertinent d'un point de vue pragmatique? Nous pourrions toujours résoudre les duels et aborder les deux points ci-dessus. Je suis d'accord pour dire qu'il est "plus efficace" de résoudre le double avec l'aide de CS mais est-ce bien cela? Ou y a-t-il plus à CS que ce que l'on voit? Où est exactement CS utile au-delà des deux points ci-dessus ? J'ai souvent vu des textes faisant allusion au concept de CS en parlant d'algorithmes d'approximation mais je n'arrive pas à comprendre son rôle là-bas.
Réponses:
La souplesse complémentaire est essentielle dans la conception d'algorithmes primal-dual. L'idée de base est:
Les algorithmes primo-doubles sont agréables pour de nombreuses raisons. D'un point de vue philosophique, ils fournissent plus d'informations qu'un algorithme générique. Ils donnent généralement des algorithmes de temps fortement polynomiaux, alors que nous n'avons toujours pas de solveurs LP fortement polynomiaux. Ils sont souvent plus pratiques que les algorithmes génériques. Cela est particulièrement vrai si nous ne pouvons pas écrire explicitement le LP et notre seul autre choix est l'algorithme ellipsoïde, ce qui est le cas avec la correspondance non bipartite et l'algorithme primal-dual d'Edmonds.
la source