Question

Entier programmation linéaire (ILP) est un outil incroyablement puissant dans l'optimisation combinatoire. Si nous pouvons formuler un problème comme une instance d'un ILP alors solveurs sont assurés de trouver l'optimum global. Cependant, l'application de solutions intégrales temps d'autonomie qui est exponentielle dans le pire des cas. Pour faire face à cette barrière, plusieurs méthodes d'approximation liées à ILP peuvent être utilisés,

  • Primal-double schéma
  • Arrondi Randomized

Le primal-dual schéma est une méthode souple qui nous donne un « emballé » façon de trouver un algorithme glouton et prouver ses limites d'approximation en utilisant le LP double détendu. Algorithmes combinatoires résultant ont tendance à être très rapide et effectuer très bien dans la pratique. Cependant sa relation avec la programmation linéaire est plus liée à l'analyse. De plus en raison de cette analyse, on peut facilement montrer que les contraintes ne sont pas respectées.

arrondi aléatoire adopte une approche différente et résout le LP détendu (en utilisant de point intérieur ou méthode de l'ellipsoïde) et arrondit les variables selon une certaine distribution de probabilités. Si les limites d'approximation peut être prouvé cette méthode, comme le schéma primal-dual, est tout à fait utile. Cependant, une partie est pas tout à fait clair pour moi:

Comment les systèmes d'arrondi randomisés montrent que les contraintes ne sont pas violés?

Il semblerait que le retournement naïvement une pièce de monnaie, tout en conduisant à une solution 0-1, pourrait violer les contraintes! Toute aide à éclairer cette question serait appréciée. Merci.

Était-ce utile?

La solution

Bien sûr, si vous, vous avez autour de vérifier que les conserves d'arrondi faisabilité.

Laissez-nous considérer par exemple l'ambiance détendue VERTEX-COVER formulation LP. $$ \ Begin {array} {} lll \ Texte {min} et \ {sum_ v \ in V} c (v) x_v & \\ \ Texte {S.T.} & X_u + x_v \ ge1, et \ quad (u, v) \ E \\ & X_v \ ge 0. & \ quad v \ en V \ End {array} $$

Il est connu que la solution à ce problème est demi-entier, à savoir, chaque variable est soit 0 $, 1 $, ou 1/2 $. Le système d'arrondi fonctionne comme suit, chaque fois que votre solution contient $ x_v = 1/2 $ vous tour d'horizon et définissez $ x_v = 1 $. Les contraintes de l'ILP étaient $$ \ Begin {array} {} lll & X_u + x_v \ GE1, & \ quad (u, v) \ in E \\ & X_v \ in \ {0,1 \}. & \ Quad v \ en V \ End {array} $$ Les deux contraintes sont remplies après l'arrondissement. Et vous avez une belle 2-approximation.

Autres conseils

Oui, cela est source de confusion dans la première vue.

Je vois comme ceci:

Etape 1) générer une solution de programme linéaire [toutes les contraintes du programme linéaire sont satisfaites ici - sauf que ce n'est pas la solution entière],

step2) randomiser le (changer la valeur de nombres entiers en fonction d'une distribution de probabilité sélectionné),

Etape 3) assurez-vous que la solution aléatoire est correcte (en faisant quelques modifications à ce sujet).

Par exemple, dans l'ensemble de la couverture. Après randomisation, vous pouvez vous retrouver avec une collection de jeux qui ne sont pas nécessairement une couverture ensemble. Dans ce cas, vous devez ajouter quelques jeux qui couvrent tous les éléments découverts (et donc, vous obtenez la solution que vous voulez).

Pour éviter de tels grands changements dans la solution du programme linéaire randomisé, suivre un schéma arrondi aléatoire qui garantit avec une forte probabilité qu'une solution soit trouvée après l'arrondissement (c.-à-vous pas besoin de faire beaucoup de changements dans la solution du programme linéaire pour obtenez ce que vous voulez).

Voir ce pour une référence: 1

Licencié sous: CC-BY-SA avec attribution
Non affilié à cs.stackexchange
scroll top