Quelles sont les techniques courantes pour réduire les problèmes les uns aux autres?


40

Dans la théorie de la calculabilité et de la complexité (et peut-être dans d'autres domaines), les réductions sont omniprésentes. Il en existe de nombreuses sortes, mais le principe reste le même: montrez qu'un problème est au moins aussi complexe qu'un autre problème en mappant des instances de à des solutions équivalentes à la solution . Essentiellement, nous montrons que tout résolveur pour peut également résoudre si nous lui permettons d'utiliser la fonction de réduction en tant que pré-processeur.L 2 L 2 L 1 L 1 L 2L1L2L2L1L1L2

J'ai réalisé ma part de réductions au fil des ans et quelque chose ne cesse de m'embêter. Bien que chaque nouvelle réduction nécessite une construction (plus ou moins) créative, la tâche peut sembler répétitive. Existe-t-il un pool de méthodes canoniques?

Quelles sont les techniques, modèles et astuces que l’on peut utiliser régulièrement pour construire des fonctions de réduction?

Ceci est supposé devenir une question de référence . Veillez donc à donner des réponses générales, présentées de manière didactique, illustrées par au moins un exemple mais couvrant néanmoins de nombreuses situations. Merci!


Voir ici pour quelques réflexions sur la recherche de partenaires appropriés et des idées de réductions.
Raphaël

Réponses:


18

Le cas particulier

Supposons que nous voulons montrer par rapport à une certaine notion de réduction R . Si L 1 est un cas particulier de L 2 , c'est assez trivial: on peut essentiellement utiliser la fonction identité. L'intuition derrière cela est claire: le cas général est au moins aussi difficile que le cas spécial.L1RL2RL1L2

En "pratique", on nous donne et nous nous retrouvons avec le problème de choisir un bon partenaire de réduction L 1 , c’est-à-dire de trouver un cas particulier de L 2 qui s’est avéré R -hard.L2L1L2R

Exemple simple

Supposons que nous voulions montrer que KNAPSACK est NP-difficile. Heureusement, nous savons que SUBSET-SUM est NP-complet, et il s’agit bien d’un cas particulier de KNAPSACK. La réduction

f(A,k)=(A,(1,,1),k,|A|)

suffit; est l'instance KNAPSACK qui demande si nous pouvons obtenir au moins la valeur v avec des valeurs d'élément dans V de sorte que les poids correspondants provenant de W restent au-dessous de w au total. Nous n’avons pas besoin des restrictions de poids pour simuler SUBSET-SUM, nous les définissons simplement à des valeurs tautologiques.(V,W,v,w)vVWw

Problème d'exercice simple

Considérons le problème de MAX-3SAT: étant donné une formule propositionnelle et un entier k , déterminez s’il existe une interprétation de φ qui remplit au moins k clauses. Montrer que c'est NP-difficile.φkφk

3SAT est un cas particulier; avec m, le nombre de clauses de φ suffit.f(φ)=(φ,m)mφ

Exemple

Supposons que nous étudions le problème de SUBSET-SUM et que nous voulions montrer qu'il est NP-difficile.

Nous avons de la chance et savons que le problème de PARTITION est NP-complet. Nous confirmons qu’il s’agit bien d’un cas particulier de SUBSET-SUM et formulons

f(A)={(A,12aAa),aAamod2=0(A,1+aA|a|),else

où est l'ensemble d'entrée de PARTITION et est une instance de SUBSET-SUM qui demande après un sous-ensemble de sommant à . Ici, nous devons nous occuper du cas où il n’y a pas de approprié ; dans ce cas, nous donnons un exemple infaisable et arbitraire.( A , k ) A k kA(A,k)Akk

Problème d'exercice

Considérez le problème LONGEST-PATH: à partir d’un graphe orienté , des nœuds de et d’un entier , déterminez s’il existe un chemin simple allant de à dans de longueur au moins .s , t G k s t G kGs,tGkstGk

Montrer que LONGEST-PATH est NP-hard.

HAMILTON-CYCLE est un problème NP-complet bien connu et un cas particulier de LONGEST-PATH; pour le nœud arbitraire dans suffit. Notez en particulier que la réduction de HAMILTON-PATH nécessite plus de travail.v Gf(G)=(G,v,v,n)vG


2
Voici un exemple appelé le problème des acheteurs voyageant (TPP) qui présente de nombreux problèmes difficiles comme cas particulier.
Juho

Un autre exemple de calcul est le problème spécial d’arrêt (qui est habituellement directement prouvé indécidable), un cas particulier du problème d’arrêt général.
Raphaël

KNAPSACK est-il vraiment une réduction correcte de SUBSET-SUM? KNAPSACK demande la valeur et SUBSET-SUM demande la valeur exacte, non? Par exemple , un sous - SUM exemple { 5 } , 4 serait un « no' instance (je ne peux pas obtenir exactement 4 d'un seul élément avec la valeur 5), mais votre réduction de KNAPSACK réduirait ce à { 5 } , { 1 } , 4 , 1 et 5 > 4 , il serait donc un « yes' instance là ... Ou suis - je manque quelque chose? >=v{5},4{5},{1},4,15>4
johnny

15

Tirer parti d'un problème connu à proximité

Face à un problème difficile, il est souvent judicieux d'essayer de rechercher un problème similaire qui a déjà fait ses preuves. Ou peut-être pouvez-vous immédiatement constater qu'un problème ressemble beaucoup à un problème connu.

Exemple de problème

Considérer un problème

DOUBLE-SAT={φφ is a boolean formula with at least 2 satisfying assignments }

nous souhaitons montrer que complet. Nous constatons rapidement qu’il est très proche d’un problème que nous savons déjà difficile, à savoir le problème de satisfiabilité (SAT) .NP

L'adhésion à est simple à montrer. Le certificat est deux affectations. Clairement, on peut vérifier en temps polynomial si les assignations satisfont à une formule.NP

dureté N P résulte d'une réduction de SAT . Étant donné une formule φ , nous la modifions en introduisant une nouvelle variable v . Nous ajoutons une nouvelle clause ( v ¬ v ) à la formule. Maintenant, si φ est satisfiable, il le sera avec v = et v = . Par conséquent, φ a au moins 2 assignations satisfaisantes. Par contre, si φ n'est pas satisfiable, il ne le deviendra certainement pas quelle que soit la valeur de v .NPSATφv(v¬v)φv=⊥v=φφv

Il s'ensuit que est N P- complet, c'est ce que nous voulions montrer.DOUBLE-SATNP

Trouver des problèmes à proximité

Réduire les problèmes est un genre d’art. L’expérience et l’ingéniosité sont souvent nécessaires. Heureusement, de nombreux problèmes difficiles sont déjà connus . Informatique et Intractabilité de Garey et Johnson: Un guide de la théorie de la NP-Complétude est un classique avec son annexe énumérant de nombreux problèmes. Google Scholar est aussi un ami.


6

En calculabilité, nous étudions souvent des ensembles de machines de Turing. En d'autres termes, nos objets sont des fonctions et nous avons accès à une numérotation de Gödel . C'est formidable car nous pouvons faire à peu près ce que nous voulons avec la fonction d'entrée, tant que nous restons calculables.

Supposons que nous voulions montrer que n'est pas décidable. Notre objectif est d’atteindre l’équivalence de DoomL

MKfML

avec le problème de l' arrêt (ou toute autre langue indécidable / problème).K={MM(M) halts}

Nous devons donc trouver une cartographie computable¹ de telle sorte que f M est toujours calculable. C'est un acte créatif éclairé par l'équivalence du destin. Voir quelques exemples pour avoir une idée de comment cela fonctionne:MfMfM

LK¯


  1. C'est là qu'intervient la numérotation de Gödel: nous obtenons la calculabilité de cette cartographie (généralement) gratuitement.

-2

ABBA

Une stratégie utile consiste à travailler à partir de grandes compilations de problèmes de la classe de complexité en question et à trouver les "problèmes les plus proches apparents" au problème à l'étude. Computers and Intractability, un guide de la théorie de l’exhaustivité des NP, Garey et Johnson, est une excellente référence dans ce domaine. Il est organisé en différents types de problèmes.


2
Je me demande si vous avez remarqué la note de bas de page dans la question. Je pense que les réponses devraient être plus spécifiques et montrer comment une méthode spécifique est appliquée. Cela semble assez vague et général. En guise d'amélioration, que diriez-vous de montrer comment les gadgets peuvent être construits et utilisés?
Juho

2
ABBA

le powerpoint montre deux exemples de gadgets utilisés. exemple du problème le plus proche: supposons que l’on ait un problème lié à la théorie des nombres. il y a une section de G & J liée à la théorie des nombres. etc. comme pour d'autres classes de complexité en dehors de NP, il y en a beaucoup, mais les listes de problèmes ne sont pas aussi complètes ni faciles à obtenir. Donc, en d'autres termes, pour limiter la question initiale, peut-être faudrait-il limiter les réductions complètes du NP ...?
vzn

2
Je recommande d'ajouter toutes les informations à la réponse, car les commentaires peuvent être supprimés à tout moment. Le lien vers les diapositives pourrait également se rompre demain. Ce que je voulais dire par rapport au problème à proximité: que dois-je faire exactement une fois que je trouve un problème qui se ressemble (supposons que je suis un débutant total)?
Juho
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.