PDF - Supelec

advertisement
LECTURE
6
: PROBL
È
MES
FABRICE POPINEAU
FABRICE.POPINEAU@CENTRALESUPELEC.FR (MAILTO:FABRICE.POPINEAU@CENTRALESUPELEC.FR)
ALGORITHMES VS PROBL
Problème :
È
MES
données : données en entrée, encodées selon un schéma manipulable par l'ordinateur (format informatique)
question : question sur les données
Objectif : concevoir un algorithme répondant (correctement) à la question.
Une instance d'un problème est définie en fixant un jeu de données en particulier.
Un algorithme produit (plus ou moins efficacement) une réponse à une instance du problème.
La complexité du problème ≠ complexité d'un algorithme qui résoud le problème.
La complexité du problème coïncide avec la complexité de son algorithme de résolution le plus efficace.
COMPLEXIT
É
DE PROBL
È
ME
Pour certains problèmes, on peut trouver la borne inférieure de tout algorithme qui pourra le résoudre.
Exemple : tout algorithme qui recherche l'élément maximum dans un tableau à n éléments devra comparer chaque élément
au moins une fois avec un autre. Si un élément échappe à une comparaison, il est potentiellement l'élément maximum et ne
pourra être renvoyé par l'agorithme qui sera faux.
PROBL
È
ME DU CLASSEMENT
On peut trouver la borne inférieure de tout algorithme de classement qui repose sur des comparaisons binaires.
Étant donné un tableau de n éléments distincts : il y a n! permutations de ces éléments, et une seule permutation
correspondau tableau ordonné.
L'algorithme doit collecter suffisamment d'information en comaprant des paires d'éléments pour trouver cette permutation.
Supposons que l'algorithme ait effectué f (n) comparaisons : il ne peut pas discerner plus que 2
sont distincts et le résultat de la comparaison est binaire.
f(n)
Il faut donc que : 2
f(n)
≥ n!
cas, puisque les éléments
pour espérer classer le tableau.
En prenant les logarithmes : f (n)
, soit d'après la formule de Stirling f (n)
≥ log2 (n!)
.
= Ω(n log2 (n))
On a donc la borne inférieure de la complexité d'un algorithme de classement.
L'existence d'algorithmes comme celui du tri fusion nous fournit la borne supérieure.
On peut donc dire que le problème du tri a une complexité asymptotique en Θ(n log
2
n)
.
IND
É
CIDABILIT
É
MOD
È
LE DE TURING
Modèle universel de calcul :
un ruban semi infini
une tête de lecture-écriture
un programme qui donne les actions
initialement la donnée d'entrée est sur le ruban et la tête à gauche et la machine dans l'état de départ s
cycle : (q, a) → (q , a , X) si la machine est dans l'état q et lit a, elle passe dans l'état q , remplace a par a sur le ruban et
déplace sa tête selon X = L à gauche ou X = R à droite
′
′
′
la machine peut bloquer (pas d'état suivant)
si la machine entre dans un état spécifique q , la donnée est acceptée.
a
http://morphett.info/turing/turing.html (http://morphett.info/turing/turing.html)
′
MOD
È
LE UNIVERSEL DE CALCUL
Notion de machine de Turing universelle : une machine de Turing peut se décrire par une chaîne de 0 et de 1 c'est donc une
donnée potentielle pour un autre programme.
Interpréteur de machine de Turing : une machine exécute la description d'une autre machine de Turing sur une donnée
particulière.
Idem en langage évolué : on peut écrire un interpréteur de code Python.
Quines :
•ʰ”ɑ’”‹–ſɐ•ʰ”ɎɑƇɥƈɎɑɐŜˆ‘”ƒ–ſ•ƀřɐɎɐř•ř•‡’ʰɐɐƀɑ
’”‹–ſɐ•ʰ”ɎɑƇɥƈɎɑɐŜˆ‘”ƒ–ſ•ƀřɐɎɐř•ř•‡’ʰɐɐƀ
Pour le fun : https://en.wikipedia.org/wiki/Tupper's_self-referential_formula (https://en.wikipedia.org/wiki/Tupper's_selfreferential_formula)
L'auto-référence se cache partout !
“A common mistake that people make when trying to design something completely foolproof is to underestimate the
ingenuity of complete fools.” ― Douglas Adams, Mostly Harmless
MOD
È
LE UNIVERSEL DE CALCUL
Modèles alternatifs du calcul :
règles de Post
logique combinatoires
Ȝ-calcul
grammaires formelles
…
Tous ces modèles de calcul ont été prouvés équivalents à celui de la machine de Turing.
Même celui-ci : https://esolangs.org/wiki/Billiard_ball_machine (https://esolangs.org/wiki/Billiard_ball_machine)
TH
È
SE DE CHURCH-TURING
« Tout système de calcul physique peut être simulé par une machine de Turing. »
C'est une thèse et non pas un théorème.
Cette thèse est largement acceptée par la communauté scientifique.
Cette thèse implique que ce qui est calculable ne changera pas en fonction du modèle de calcul.
PROBL
È
ME DE L'ARR
Ê
T
« Un programme peut-il décider de l'arrêt d'un autre programme ?»
Autrement dit : peut-on écrire un programme ƒŽ–ſřšƀ qui répond 1 si le programme s'arrête sur l'entrée š et 0 sinon ?
Supposons que ce soit le cas et définissons le prorgamme :
ˆ—…–‹‘‹ƒ‰‘ƒŽ‡ſ…Šƀ
‹ˆƒŽ–ſ…Šř…Šƀʰɨ
™Š‹Ž‡”—‡
’ƒ••
‡Ž•‡
”‡–—”
Examinons ce que fait ‹ƒ‰‘ƒŽ‡ſ‹ƒ‰‘ƒŽ‡ƀ :
supposons que ƒŽ–ſ‹ƒ‰‘ƒŽ‡ř‹ƒ‰‘ƒŽ‡ƀʰɨ : le programme ‹ƒ‰‘ƒŽ‡ſƀ s'arrête sur l'entrée ‹ƒ‰‘ƒŽ‡.
Mais d'après le pseudo-code, on a une boucle infinie !
supposons que ƒŽ–ſ‹ƒ‰‘ƒŽ‡ř‹ƒ‰‘ƒŽ‡ƀʰɥ : le programme ‹ƒ‰‘ƒŽ‡ſƀ ne devrait pas s'arrêter sur l'entrée
‹ƒ‰‘ƒŽ‡, mais d'après le pseudo-code, il termine immédiatement.
Il y a une contradiction : le programme ƒŽ–ſřšƀ ne peut pas exister.
10È
ME PROBL
È
ME DE HILBERT
On peut prouver l'indécidabilité de problèmes abstraits, mais existe-t-il des problèmes utiles indécidables ?
Oui : le 10ème problème de Hilbert, prouvé indécidable par Matiyasevich en 1970.
Problème : soit P (x , x
des solutions entières ?
1
2,
… , xn )
un polynôme à coefficients entiers. L'équation P (x
1,
x2 , … , xn ) = 0
possède-t-elle
Dans le cas d'une seule variable : on sait borner l'intervalle dans lequel chercher ([−k
,k
], k étant le nombre de
termes de P , c
le coefficient de plus grande valeur absolue et c le coefficient du terme de plus haut degré).
max
n
Dans le cas de plusieurs variables : il est impossible de borner le domaine.
cmax
cmax
cn
cn
CLASSES DE PROBL
Problèmes :
È
MES
que l'on ne peut pas résoudre
que l'on peut résoudre
que l'on peut résoudre aisément
que l'on peut résoudre difficilement
D
É
CISION / OPTIMISATION
Problème :
données : données en entrée, encodées selon un schéma manipulable par l'ordinateur (format informatique)
question : question sur les données
Problème de décision : réponse binaire oui / non
Problème d'optimisation : recherche d'une solution qui optimise une fonction objectif f
Fonction objectif : f
: S → N
Un problème de décision partitionne l'ensemble des instances D en instances positives D et instances négatives D .
+
−
D
É
CISION / OPTIMISATION
À chaque problème d'optimisation, on peut associer un problème de décision dont la question est : « existe-t-il une solution
pour laquelle la fonction objectif f est supérieure / inférieure à une valeur k donnée ? »
Exemples :
plus court chemin : existe-t-il un chemin de longueur inférieure ou égale à k ?
voyageur de commerce : existe-t-il un cycle hamiltonien de longueur inférieure ou égale à k ?
rendu de monnaie : existe-t-il une solution nécessitant moins de k pièces ?
Complexité du problème d'optimisation nécessairement supérieure ou égale à celle du problème de décision associé.
En termes de classes de complexité : les deux problèmes sont comparables.
CLASSE P
La classe des problèmes P est l'ensemble des problèmes de décision qui peuvent être résolus par un algorithme dont la
complexité en temps est polynomiale en fonction de la taille des données :
c
⋃ O(n )
c>1
La classe P capture les problèmes « accessibles ». On n'a pas trouvé d'algorithme pratique avec des complexités supérieures à
O(n ).
5
CLASSE NP
La classe des problèmes N P est l'ensemble de problèmes de décision dont une solution (certificat) est vérifiable par un
algorithme en temps polynomial.
l'algorithme de vérification prend un certificat en entrée et répond oui / non au problème de décision
l'algorithme de vérification est dans P
pas de contrainte sur l'algorithme de recherche du certificat qui peut être exponentiel (ou plus !) : il doit trouver / construire
le certificat.
Pour imager : on est capable de reconnaître un théorème en lisant sa preuve, mais on eput avoir du mal à la trouver par nous
même.
EXEMPLES DE PROBL
È
MES NP
Existence de cycle hamiltonien dans un graphe : on vérifie le certificat (séquence de noeuds) en temps linéaire
SAT : on évalue une formule propositionnelle en temps linéaire
Sac à dos
…
http://www.mathpuzzle.com/eternity.html (http://www.mathpuzzle.com/eternity.html)
…
QUESTION
À
US$
10
6
?
P = NP
R
É
DUCTION POLYNOMIALE
Soit D et D deux problèmes de décision. On dit que D se réduit à D sous une réduction de Karp et on note D
si et seulement si il existe une fonction f telle que :
1
2
1
2
1
≤K D2
∀I ∈ D1 f (I ) ∈ D2
+
I ∈ D
1
f
+
⇔ f (I ) ∈ D
2
est calculable en temps polynomial.
Autrement dit : D n'est pas plus difficile que D en termes de classe de complexité, i.e. à un facteur polynomial près.
1
2
NP-COMPL
É
TUDE
Un problème D est NP-difficile si ∀D
′
′
∈ NP
D
.
≤K D
Un problème D est NP-complet si D est NP-difficile et D
∈ NP
.
Théorèmes :
Si D
′
≤K D
et D
′
′′
≤K D
Si D est NP-difficile et D
alors D
∈ P
Si D est NP-complet alors D
alors P
∈ P
′′
≤k D
.
= NP
.
si et seulement si P
= NP
.
On peut réduire tout problème de NP à un problème NP-complet. Si un
problème NP-complet est montré être dans P, alors la hiérarchie
s'effondre.
EXISTE-T-IL DES PROBL
È
MES NP-COMPLETS ?
OUI !
Le premier : SAT, théorème de Cook-Levin (1971). « Étant donné une formule propositionnelle à n variables propositionnelles,
existe-t-il une assignation de ces variables aux valeurs de {V , F } qui rendent la formule logiquement équivalente à V ? »
Et plein d'autres prouvés depuis :
https://fr.wikipedia.org/wiki/21_probl%C3%A8mes_NP-complets_de_Karp
(https://fr.wikipedia.org/wiki/21_probl%C3%A8mes_NP-complets_de_Karp)
http://www.nada.kth.se/~viggo/problemlist/compendium.html
(http://www.nada.kth.se/~viggo/problemlist/compendium.html)
Téléchargement