Peut-on vraiment montrer une forte dureté NP en utilisant des réductions de temps de polarité simples?

17

J'ai récemment lu une preuve qui avait pour but de montrer qu'un problème était fortement NP-difficile, simplement en le réduisant (en temps polynomial) à partir d'un problème fortement NP-difficile. Cela n'avait aucun sens pour moi. J'aurais pensé que vous deviez montrer que tous les nombres utilisés dans la réduction et les instances du problème que vous réduisez étaient polynomialement liés à la taille du problème.

J'ai alors vu que Wikipédia donnait les mêmes instructions générales pour ce genre de preuve, mais je n'étais pas vraiment convaincu jusqu'à ce que j'ai vu Garey & Johnson dire essentiellement la même chose. Pour être précis, ils disent: "Si Π est NP-dur au sens fort et qu'il existe une transformation pseudo-polynomiale de en , alors est NP-dur au sens fort," et " Notez que, par définition, un algorithme temporel polynomial est également un algorithme temporel pseudo-polynomial. "Π Π ΠΠΠ

Bien sûr, je prends la parole de Garey & Johnson à ce sujet — je ne comprends tout simplement pas comment cela peut être correct, et c'est pour cela que j'aimerais de l'aide. Voici mon raisonnement (vraisemblablement erroné)…

Il existe des problèmes fortement NP-complets, et tous ceux-ci (par définition) sont fortement NP-durs ainsi que NP-complets. Chaque problème NP-complet peut (par définition) être réduit à tout autre en temps polynomial (et donc pseudopolynomial). Compte tenu des déclarations de Garey & Johnson, il me semble donc que tout problème NP-complet est fortement NP-complet, et donc que tout problème NP-dur est fortement NP-dur. Cela, bien sûr, rend le concept de forte dureté NP vide de sens… alors qu'est-ce qui me manque?

Modifier / mettre à jour (basé sur la réponse de Tsuyoshi Ito):

L'exigence (d) de la définition de Garey & Johnson d'une transformation (pseudo) polynomiale (le type de réduction nécessaire pour conférer la dureté NP au sens fort) est que la plus grande amplitude numérique dans l'instance résultante soit polynomiale, en fonction de la taille du problème et de la magnitude numérique maximale de l'original. Cela signifie, bien sûr, que si le problème d'origine est NP-dur au sens fort (c'est-à-dire, même lorsque ses amplitudes numériques sont polynomiales dans la taille du problème), cela sera également vrai du problème auquel vous vous réduisez. Ce ne serait pas nécessairement le cas pour une réduction de polytime ordinaire (c'est-à-dire sans réduction supplémentaire).

Magnus Lie Hetland
la source
Génial! Mon math TA a fait cela hier et je pensais que c'était louche. Maintenant, je peux lui donner un lien.
Raphael

Réponses:

14

Selon la terminologie de l'article de Garey et Johnson, les transformations polynomiales temporelles ne sont pas nécessairement des transformations pseudo-polynomiales car elles peuvent violer le point (d) de la définition 4.

Tsuyoshi Ito
la source
1
Exact, donc un algorithme polynomial est nécessairement pseudopolynomial, mais une réduction polynomiale n'est pas nécessairement ce que G&J appelle une transformation pseudopolynomiale. En fait, leur élément (d) est exactement ce que je pensais être manquant (c'est-à-dire, une certaine restriction sur la taille du nombre). Merci.
Magnus Lie Hetland
9

Pour développer la réponse de Tsuyoshi:

Dans le contexte de Garey et Johnson, envisagez une transformation de PARTITION (p. 47, sec. 3.1) en PROGRAMMATION MULTIPROCESSEUR (p. 65, sec. 3.2.1, item (7)).

La transformation (par restriction) implique la mise . Mais si les longueurs des tâches, lesl(a), sonttrop grandes, alors il ne peut pas être le cas où il existe un polynômeq2 àdeux variablestel que,IDΠ, Max`[f(I)]q2(Max[I],Longueur[I])=12uneUNEl(une)l(une)q2jeΠ[F(je)]q2[je],[je]) (c'est-à-dire le point (d) dans la définition d'une transformation pseudo-polynomiale).

Par exemple, considérons simplement une instance de MULTIPROCESSOR SCHEDULING où la valeur de tous les est exponentielle dans le nombre de l ( a ) (ie | A | ). Vous manipulez toujours le même nombre «d'objets combinatoires» (pour ainsi dire), mais ils sont tous extrêmement grands. Par conséquent, NP-complet, mais pas fortement NP-complet.l(une)l(une)|UNE|

Vous voudrez peut-être lire Wikipedia sur un sujet connexe . Par exemple, nous avons un algorithme de temps polynomial basé sur la programmation dynamique pour le problème KNAPSACK NP-complet - du moins, tant que les nombres sont assez petits. Lorsque les nombres deviennent trop grands, cet algorithme de «temps polynomial» affichera un «comportement exponentiel». (G&J, p. 91, section 4.2)

Daniel Apon
la source