Dans son livre Computational Complexity , Papadimitriou définit le FNP comme suit:
Supposons que est un langage dans NP . Par la proposition 9.1, il y a un décidable polynomial, relation polynomiale équilibré R L tel que pour toutes les chaînes x : Il y a une chaîne y avec R L ( x , y ) si et seulement si x ∈ L . Le problème de fonction associé à L , noté F L , est le problème de calcul suivant:
Étant donné , trouver une chaîne telle que si une telle chaîne existe; si une telle chaîne n'existe pas, retournez "non".
La classe de tous les problèmes de fonction associés comme ci-dessus au langage dans NP est appelée FNP . FP est la sous-classe résultante si l'on ne considère que les problèmes de fonction dans FNP qui peuvent être résolus en temps polynomial.
(...)
(...), on appelle un problème dans FNP total si pour chaque chaîne il y a au moins un tel que . La sous-classe de FNP contenant tous les problèmes de fonction totale est notée TFNP .
Dans un diagramme venn dans l'aperçu du chapitre, Papadimitriou implique que FP TFNP FNP .
J'ai du mal à comprendre pourquoi il est exact que FP TFNP car les problèmes de PF ne doivent pas être totaux en soi.
Pour mieux comprendre, j'ai parcouru la littérature pour trouver une définition étanche de FP , FNP et sortes, sans succès.
À mon avis très (humble), je pense qu'il y a peu (correct!) De matériel didactique sur ces sujets.
Pour les problèmes de décision, les classes sont des ensembles de langages (c'est-à-dire des ensembles de chaînes).
Quelles sont exactement les classes pour les problèmes de fonction? S'agit-il d'ensembles de relations, de langues, ...? Qu'est-ce qu'une définition solide?
la source
Réponses:
Le commentaire d'Emil Jerabek est un bon résumé, mais je voulais souligner qu'il existe d'autres classes avec des définitions plus claires qui captent plus ou moins le même concept, et clarifier la relation entre toutes ces choses.
[Avertissement: même si je pense avoir bien compris les définitions, certaines des choses ci-dessous reflètent mes préférences personnelles - j'ai essayé de préciser où c'était.]
Dans le monde déterministe, une classe de fonctions n'est qu'une collection de fonctions (au sens mathématique habituel du mot "fonction", c'est-à-dire une carte ). Parfois, nous voulons autoriser des "fonctions partielles", dont la sortie est "non définie" pour certaines entrées. (De manière équivalente, les fonctions qui sont définies sur un sous-ensemble de Σ ∗ plutôt que sur la totalité.)Σ∗→Σ∗ Σ∗
Malheureusement, il existe deux définitions différentes de flottant, et pour autant que je sache, elles ne sont pas équivalentes (bien qu'elles soient équivalentes "moralement").FP
Dans le monde non déterministe, les choses deviennent un peu drôles. Là, il est commode d’autoriser des «fonctions partielles à valeurs multiples». Il serait naturel d'appeler également une telle chose une relation binaire , c'est-à-dire un sous-ensemble de . Mais du point de vue de la complexité, il est souvent philosophiquement et mentalement utile de considérer ces choses comme des «fonctions non déterministes». Je pense que beaucoup de ces définitions sont clarifiées par les classes suivantes (dont les définitions sont complètement standardisées, sinon très bien connues):Σ∗×Σ∗
Afin de ne pas avoir à écrire des choses comme "Si chaque problème de fonction (resp., ) a une solution dans (resp., comme ci-dessus définition), alors ... "dans ce contexte on utilise la Définition 2 de , qui est:FNP TFNP PF FP FP
Voici comment ces différentes définitions sont liées les unes aux autres, (définition 2, ce que vous devez supposer car c'est dans un contexte où il est comparé avec ) est équivalent dans . (def 2) est équivalent à (def 1).FNP⊆FP FNP NPMV⊆cPF TFNP⊆FP NPMVt⊆cFP
la source
En plus de la réponse détaillée de Joshua, je veux ajouter les définitions suivantes d'Elaine Ruch ses automates, calculabilité et complexité .
D'après ces définitions, il est clair que . Elle parle également brièvement de problèmes en dehors de .F N PFP⊆TFNP⊆FNP FNP
Pour moi, c'est la ressource la plus satisfaisante qui consiste en une seule page que j'ai trouvée depuis longtemps.
la source