Bien que pour certains problèmes courants, il soit vrai, je pense que les deux hypothèses - en fonction de ce que vous définissez comme un problème d'optimisation - ne sont pas vraies.
D'abord quelques définitions: la plupart des problèmes d'optimisation ne font pas partie de NP . Par exemple pour le problème Knapsack : on ne peut pas exploiter le non-déterminisme pour construire le sac le plus précieux, simple car les différentes branches non déterministes n'ont pas de mémoire partagée. NP est également défini comme «polynomialement vérifiable» (vérification d'un certificat) [1, p. 34]
. Dans ce cas, le certificat est par exemple un sac : une chaîne de bits où si le i- ème bit est défini, cela implique que le i- ème élément fait partie du sac. Vous pouvez en effet vérifier en temps polynomial si un tel sac est plus précieux qu'un seuil donné (c'est la variante de décision), mais vous ne pouvez pas - à notre connaissance - sur la base d'un seul sac, (un nombre polynomial de sacs), décider si ce sac est le plus précieux de tous les sacs possibles. C'est une différence essentielle entre, par exemple, NP et EXP : dans EXP , vous pouvez énumérer tous les sacs possibles et faire la comptabilité pour savoir quel sac est le meilleur.
le variante de décision des problèmes d'optimisation fait dans certains cas partie de NP , il faut faire une distinction claire entre l' arôme de maximisation et l' arôme de décision . Dans l'arôme décisionnel, la question est: " Étant donné un problème d'optimisation, et une utilité liée, existe-t-il une solution avec une utilité supérieure ou égale à cette limite " (ou légèrement modifiée pour un problème de minimisation).
Je suppose aussi que par NP - vous dire la partie (hypothétique) de NP qui ne fait pas partie de P . Si P = NP , bien sûr NP-complet existe toujours, mais il sera égal à P (ne coïncide avec P que pour certaines notions de réduction, comme les réductions de plusieurs à un temps polynomial par @ AndrásSalamon), ce qui n'est pas si impressionnant ( et réduirait l '" écart " que vous indiquez dans votre question).
Je constate de plus en plus que la plupart des problèmes discrets sont NP-complets.
Maintenant que nous avons réglé ça: il y a beaucoup de problèmes d'optimisation qui sont en P : problème de chemin le plus court , problème de débit maximal (pour les capacités intégrales), minimum spanning tree et correspondant au maximum . Bien que ces problèmes puissent vous sembler «triviaux à résoudre», ce sont toujours des problèmes d'optimisation, et dans de nombreux cas, la construction (et la preuve de leur exactitude) n'est pas si simple. La réclamation ne tient donc pas tous les problèmes discrets sont NP-complète. Étant donné que P n'est pas égal à NP , ces problèmes ne peuvent donc pas être NP-complets .
ΣPje
Alors que l'optimisation des problèmes continus est presque toujours facilement réalisable.
Un problème continu populaire qui est NP-difficile est la programmation quadratique .
En programmation quadratique, on cherche un vecteur X⃗ tel que:
X⃗ T⋅ Q ⋅ x⃗ 2+ c⃗ T⋅ x⃗
est minimisé satisfaisant:
A ⋅ x⃗ ≤ b⃗
En fait, la programmation linéaire a longtemps été considérée comme NP-difficile , mais avec des heuristiques très performantes (la méthode Simplex ). L'algorithme de Karmarkar est cependant en P .
A partir du moment où le problème d'optimisation concerne des objets non convexes, il sera en général difficile - sinon impossible - de trouver un algorithme efficace.
Bibliographie
[1]
Complexité informatique, une approche moderne , Sanjeev Arora et Boaz Barak