Un problème de décision est un problème dont la réponse est soit OUI soit NON.

Définition formelle

Un problème de décision est défini par :

  • Un ensemble d’instances
  • Un langage (instances pour lesquelles la réponse est OUI)

Résoudre pour une instance consiste à déterminer si .

Relation avec les problèmes de recherche

Soit QQ Q un Problème de recherche.

Transformation : Recherche → Décision

Decision(D, k):
    si Recherche(D) < k:
        retourner vrai
    sinon:
        retourner faux

Propriétés

  • Si un problème de recherche est traitable, le problème de décision est traitable
  • Si un problème de décision est non traitable, le problème de recherche est non traitable

Exemples

Stable maximum (MIS)

  • Recherche : Trouver un stable de taille maximale
  • Décision : Existe-t-il un stable de taille ?

SAT

  • Recherche : Trouver une affectation satisfaisant la formule
  • Décision : Existe-t-il une affectation satisfaisante ?

Partition

  • Recherche : Trouver deux partitions de somme égale
  • Décision : Existe-t-il deux partitions de somme égale ?

Importance en théorie de la complexité

Les classes de complexité (Classe P, Classe NP) sont définies sur les problèmes de décision car ils permettent :

  • Une définition formelle claire (langage)
  • Des réductions plus simples
  • Une théorie unifiée

Mais on peut étendre la notion aux problèmes de recherche via la Self-reduciblity.