Algorithmes d'approximation utilisés dans des algorithmes exacts


11

Les algorithmes d'approximation peuvent donner une sortie jusqu'à un facteur constant. C'est un peu moins satisfaisant que les algorithmes exacts.

Cependant, des facteurs constants sont ignorés dans la complexité temporelle.

Je me demande donc si l'astuce suivante est possible ou a été utilisée pour résoudre un problème :BA

  1. Utilisez un algorithme d'approximation pour résoudre le problème pour obtenir la solution dans un facteur constant;SAS
  2. Utilisez un algorithme exact, résolvant le problème , dont l'exécution dépend du poids de mais fonctionne tant que est une solution correcte.S SBSS

De cette façon, l'approximation est une "sous-procédure" d'un algorithme exact, et le facteur constant perdu à l'étape 1 est avalé à l'étape 2.


Crosspost de math SE
sdcvvc

Pourriez-vous clarifier ce que vous entendez par et le poids de ? SBAS
Yoshio Okamoto

Ceci est informel, pour être concret: sont des problèmes de recherche , est considéré comme un problème d'optimisation (donc les solutions ont un certain poids) etAA,BA est la composition des relations. BA
sdcvvc

Les réponses seraient une collection. Donc, je pense qu'il serait plus approprié d'en faire un wiki communautaire.
Yoshio Okamoto

L'ajout de la balise big-list suffit, il n'est pas nécessaire d'en faire un wiki communautaire à mon humble avis.
Gopi

Réponses:


12

Un exemple de la complexité paramétrée est une kernelization pour le problème de couverture de sommet en utilisant un théorème de Nemhauser et Trotter.

Dans le problème de la couverture minimale des sommets, on nous donne un graphe non orienté G, et nous devons trouver une couverture des sommets de G de taille minimale. Une couverture de sommet d'un graphe non orienté est un sous-ensemble de sommets qui touche toutes les arêtes.

Voici un algorithme exact qui utilise une approximation à la première phase.

Phase 1: Mettre en place la formulation de programmation linéaire entière du problème de couverture minimale des sommets . Il est connu (ou facile à montrer) qu'une solution optimale de base de la relaxation de programmation linéaire est à moitié intégrale (c'est-à-dire que chaque coordonnée est soit 0, 1 ou 1/2). Une telle solution optimale de base peut être trouvée par un algorithme à temps polynomial habituel pour la programmation linéaire (ou dans ce cas spécial, nous pouvons le formuler comme un problème de flux réseau, afin que nous puissions le résoudre de manière combinatoire en temps polynomial). Ayant une telle solution optimale de base, nous l'arrondissons pour obtenir une solution réalisable au problème de programmation linéaire entier d'origine. Soit S le sous-ensemble de sommets correspondant. Il est bon de noter que S est une approximation 2 de l'instance minimale de couverture de sommet donnée.

Phase 2: Trouver une couverture minimale des sommets dans le sous-graphique induit par S (par exemple par une recherche exhaustive). Un théorème de Nemhauser et Trotter indique que ce sous-graphe contient une solution optimale du graphe d'entrée d'origine. Ainsi, l'exactitude de cette approche suit.

Vous pouvez consulter un livre de Niedermeier sur les algorithmes à paramètres fixes pour cet algorithme.


11

Un exemple est lié aux décompositions d'arbre et aux graphiques de petite largeur d'arbre.

B

BA

AAAAB


BA

BAAB


Bien que l'exemple de la largeur d'arbre fonctionne en principe, il serait difficile à exécuter dans la pratique car il est très difficile d'approcher la largeur d'arbre du tout (car vous pouvez approximer la clique)
Suresh Venkat

8

Un exemple d'algorithme d'approximation qui converge vers la solution exacte serait l'algorithme Ellipsoïde pour résoudre les LP - si les coefficients sont des rationnels, alors on peut calculer une distance minimale entre deux sommets du polytope réalisable. Maintenant, l'algorithme ellipsoïde calcule à plusieurs reprises un elliposoïde de plus en plus petit qui doit contenir la solution optimale. Une fois que l'elliposoïde est suffisamment petit pour ne contenir qu'un seul sommet, vous avez essentiellement trouvé le sommet optimal. C'est pourquoi LP est faiblement polynomial.

k

Enfin, aller plus loin dans un champ - de nombreux algorithmes qui suivent la technique d'altération (prendre un échantillon aléatoire - puis faire quelques corrections pour obtenir ce que vous voulez) tombe dans un tel cadre. Un exemple mignon est l'algorithme pour calculer la médiane en utilisant un échantillonnage aléatoire (voir le livre de Motwani et Raghavan). Il existe de nombreux exemples de ce type - sans doute, bon nombre des algorithmes incrémentaux randomisés de la géométrie informatique tombent dans ce cadre.


4

De nombreux algorithmes sensibles à la sortie utilisent cette technique. Par exemple, voici un problème simple sur lequel cette technique peut être utilisée:

Problème . On vous donne un tableau A [1 .. n ] dans lequel chaque élément est à au moins k positions de la position où il aurait été si A avait été trié.

Par exemple, A [1..7] illustré ci-dessous pourrait être un tableau d'entrée pour k = 2.

Concevez un algorithme pour trier le tableau en temps O ( n log k ), en supposant que k est inconnu.

Source du problème: Algo Muse Archive.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.