séminaire florin périer alain gély limos alain gély (gely@isima.fr) - 2004gely@isima.fr

Post on 03-Apr-2015

110 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Séminaire Florin Périer

Alain GélyLIMOS

Alain Gély (gely@isima.fr) - 2004

P = NP

WANTED

?

La complexité en informatique

Quelques problèmes

• Un nombre N est-il divisible par 4 ?

• Soit une série de nombre, trier ces nombres

• Soit le problème classique de la tour de Hanoi, afficher la liste des mouvements nécessaires pour le résoudre.

• Un voyageur de commerce désire faire sa tournée, existe-t-il une tournée de moins de 50 km ?

David Hilbert& son problème n°10

• 1862 - 1943

• Liste des 23 problèmes de Hilbert (1900)

• Problème numéro 10 :

« Trouver un algorithme déterminant si une équation

diophantienne à des solutions »

Alonzo Church & le -calcul

• 1903 - 1995

• Résultat sur la calculabilité

• Développement du lambda-calcul

• 1936 : Démontre l’existence d ’un problème indécidable

• Thèse de Church

Kurt Godël

• 1906 - 1978

• Théorème d ’Incomplétude

« pour tout système formel S contenant le langage de l'arithmétique, il existe une proposition G indémontrable dans S »

La complexité en informatique(Et aussi un peu de calculabilité / décidabilité)

Evaluation d’un algorithme

Entrées RésultatAlgorithme

RessourcesTemps Espace

Taille n Opérations élémentaires

Le codage des données

Utilisation d ’un codage raisonnable

Pour un problème I, on demande 2 caractéristiques à un codage raisonnable :

• Il doit être concis, sans informations inutiles

• Les nombres doivent être représentés dans une base différente autre que la base 1 (binaire, octal, décimal, etc.)

Exemple : codage d ’un graphe

v1 v2

v3

v4

Encodage Chaine liste de sommets,

liste d’arêtes V[1]V[2]V[3]V[4](V[1]V[2])(V[2]V[3])

liste de voisins (V[2])(V[1]V[3])(V[2])()

matrice d’adjacence 0100/1010/0010/0000

Comportement asymptotique des fonctions

Notation O :

O(g(n)) = {f(n) : il existe des constantes positives c et n0 tel que 0 f(n) c.g(n) pour tout n n0}

Notation :

(g(n)) = {f(n) : il existe des constantes positives c et n0 tel que 0 c.g(n) f(n) pour tout n n0}

Notation :

(g(n)) = {f(n) : il existe des constantes positives c1 et c2, et n0 tel que 0 c1.g(n) f(n) c2.g(n) pour tout n n0}

f

Notation O - exemples

3X2+X+3 O(X2)

1000.X O(X)

100ex + 3X O (ex)

X5+X4+X3+X2+X+1000 O(X5)

25 X2+1000 O(X2)

10000 O(1)

5 O(1)

Exemple de complexité - Tri

Entrée : T, un tableau de n nombres

Sortie : T, le tableau trié

Pour j allant de 2 à longueur(T) faire

X T[j]

i j-1

Tant que i>0 et A[i]>X faire

A[i+1] A[i]

A[i+1] X

O(1)

O(1)

O(1)

O(1)

O(n)O(n2)

Donald Knuth

• 1938 -

• The art of computer programming

Taille de n Complexité temporelle 10 20 30 40 50 60

n 0.00001s 0.00002s 0.00003s 0.00004s 0.00005s 0.00006s

n2 0.0001s 0.0004s 0.0009s 0.0016s 0.0025s 0.0036s

n3 0.001s 0.008s 0.027s 0.064s 0.125s 0.216s

n5 1s 3.2s 24.3s 1.7mn 5.2mn 13.0 mn

2n 0.001s 1.0s 17.9mn 12.7jours 35.7

années 366 Siècles

3n 0.059s 58mn 6.5

années 3855

siècles 2x108

Siècles 1.3x1013 siècles

Evolution du temps d'exécution

en fonction de la complexité

Augmentation de la puissance des machines

Taille d ’un problème traitable en une heure

Complexité Actuellement 100 fois plus

rapide

1000 fois plus rapide

n N1 100 N1 1000 N1 n2 N2 10 N2 31.6 N2 n3 N3 4.64 N3 10 N3 n5 N4 2.5 N4 3.98 N4 2n N5 N5+6.64 N5+9.97 3n N6 N6+4.19 N6+6.29

Complexité polynomiale et exponentielle

De manière informelle, un problème disposant d ’un algorithme polynomial pour le résoudre est un problème facile

Polynomial Exponentiel

Facile Difficile

Problèmes &

Classes de complexités

Alan Matheson Turing& La machine de Turing

• 1912 - 1954

• Inventeur de la Machine de Turing

Machine de Turing Déterministe

-1 -0 1 2 3 i-1 i i+1

Tête de lecture / écriture

= {0,1,b}

1 0 1

Controleur d'états finis

q 0 1 b

q0 (q0, 0, +1) (q0, 1, +1) (q1, b, -1)

q1 (q2, b, -1) (q3, b, -1) (qN, b, -1)

q2 (qY, b, -1) (qN, b, -1) (qN, b, -1)

q3 (qN, b, -1) (qN, b, -1) (qN, b, -1)

Controleur d'états finis

Classes de Complexité

Problème de décision

Un problème de décision est un problème pour lequel la réponse est dans l ’ensemble

{ OUI - NON }

Un nombre N est-il un multiple de 4 ?

Un voyageur de commerce désire faire sa tournée, existe-t-il une tournée de moins de 50 km ?

Exemples

Classes de Complexité

Problème de décision & langage accepté par une machine de Turing

Tête de lecture / écriture

Controleur d'états finis

l ’ensemble des symboles pouvant être écrit par l ’utilisateur sur le ruban*

l ’ensemble des mots du langage sur l ’alphabet

LM = { x * : M accepte x }

Résoudre le problème revient à savoir si x LM

P

La classe P

P

=

{L : il existe un programme M en temps polynomial sur une machine de Turing Deterministe pour lequel LM=L}

Un problème est dans P s ’il existe un algorithme en temps polynomial pour le résoudre

La classe co-P

La classe co-P est le complémentaire de P

• Pour un problème donné de P,

on montre facilement qu ’il est dans co-P :

On échange les réponses OUI et NON

• Pour un problème de co-P,

on montre facilement qu ’il est dans P (idem)

P = co-P

NP

Machine de Turing Non Déterministe

-1 -0 1 2 3 i-1 i i+1

Tête de lecture / écriture

1 0 1

Controleur d'états finis

Guessing module

Tête d’écriture

La classe NP

NP =

{L : il existe un programme M en temps polynomial sur une machine de Turing Non Deterministe pour lequel

LM=L}

Il existe un algorithme non déterministe en temps polynomial permettant de résoudre L.

Il existe un algorithme déterministe en temps polynomial permettant de vérifier une solution de L.

Exemple de problème de NPLe voyageur de commerce

• Un voyageur de commerce désire faire sa tournée, existe-t-il une tournée de moins de 50 km ?

10

10

10

10

10

20 40

10

12

a

d

c

e

ba-b-e-c-d-a 50km

10

NP et co-NP ?Problème du circuit hamiltonien

Un graphe est-il hamiltonien ? Un graphe n’est-il pas hamiltonien ?

Ce problème NP Ce problème co-NP

Est-ce que ce problème NP ?

P et NP

P

NP

P=NP

?

Résultat le plus général :

Si NP, alors il existe un polynôme p tel que

peut être résolu par un algorithme déterministe

avec une complexité de O(2p(n))

P et NP

Machine de Turing

Déterministe

Machine de Turing non Déterministe

Espace des solutions

(exponentiel)

Donald devra prendre tous les

papiers de la boite avant de trouver le bon

Gontran trouvera

immédiatement le bon papierp(n)

||

||p(n)

Transformation polynomialeUne transformation polynomiale

d’un langage L1 1* vers un langage L2 2

* est une fonction

f: 1* 2

* qui vérifie les deux conditions :

• il existe une machine de Turing Déterministe qui calcule f en temps polynomial

• Pour tout x1* xL1

ssi f(x) L2

L2L1

Problème 1 Problème 2

f

f

OUI OUINON NON

Transformation polynomiale

A quoi ça sert ?

On note L1 << L2

s ’il existe une transformation polynomiale de L1 vers L2

Si L1 << L2 alors L2 P implique que L1 P

Si L1 << L2 alors L1 P implique que L2 P

Si le problème 2 est facile, le problème 1 est facile

Si le problème 1 est difficile, le problème 2 est difficile

Si L1<< L2 et L1<< L2

on dit que L1 et L2 sont polynomialement équivalent

P, NP, NP-Complet

NPI

NPC

P

Si P <> NP

NP NP-Complet ssi

• NP

• 1NP, 1 <<

Stephen Cook« SAT est NPC »

• Théorème de Cook : « SAT est NPC » (1971)

• Reçoit le Turing Award en 1982 pour ce papier

Le théorème de Cook (1)« SAT NPC » (Cook71)

• U = {u1,u2,…,um} un ensemble de variables booléennes.

• Pour u U, •le litteral u est vrai si t(u)=T

•le litteral u est vrai si t(u)=F

• Une clause est un ensemble de littéraux, ex : {u1,u2,u3}

•Une clause est satisfaite si au moins un de ses littéraux est vrai

•Une collection de clause est satisfaite s ’il existe une affectation de variables permettant de satisfaire simultanément, chacune des clause de la collection.

Le théorème de Cook (2)Exemples

C = { (u1,u2) , (u1,u2)} est satisfiable

t(u1) = Vrai, t(u2) = Vrai.

C = { (u1,u2) , (u1,u2), (u1) } n ’est pas satisfiable

Le théorème de Cook (3)« SAT NPC » (Cook71)

SATISFIABILITY

INSTANCE :

• Un ensemble U de variables booléenne

• Une collection C de clauses définies sur U

QUESTION :

• Existe-t-il une assignation de variables satisfaisant C ?

Le théorème de Cook (4)1) SAT NP

Un algorithme non déterministe a seulement besoin de deviner une assignation satisfaisant C.

La vérification de cette assignation est clairement polynomiale.

La première condition pour appartenir à NPC est vérifiée.

Le théorème de Cook (5)2) L NP, L << SAT

Retour au niveau des langages : LSAT=[SAT,e]

Il faut montrer L << LSAT pour tous les langages de NP

Pbm

Il y a une énorme diversité de langages dans NP…

Faire une transformation pour chacun d ’entre eux est

une tache titanesque !

Solution

à chaque langage correspond un machine de Turing,

boite noire :

Une machine de Turing générique

M, , b, Q, q0, qY, qN et

p(n)

Le théorème de Cook (6)

L LSAT

fL

fL va être décrite

en fonction de

, , b, Q, q0, qY, qN, et p

SAT

1

)(np )(np

Le théorème de Cook (7)

Idée directricemontrer comment un ensemble de clauses

peut être utilisé pour vérifier

si une entrée x est acceptée par M

Remarque n°1A chaque instant, on peut caractériser le système par :•contenu des cases•Position de la tête de lecture/écriture•Etat Courant

Remarque n°2il n ’y a pas plus de p(n)+1 instants distincts

Utilisation d ’un nombre limité de variables

1

Le théorème de Cook (8)

rk 0)(0 npi Q[i,k] Au temps i, M est dans l ’état qk

)(0 npi 1)()( npjnpH[i,k]

Au temps i,la tête L/R est sur la case j

)(0 npi 1)()( npjnp

vk 0S[i,j,k]

Au temps i, la case j contient le symbole sk

Mise en place des variables booléennesfL va construire un ensemble de variable U tel que

• label des éléments de Q : q0, q1=qY, q2=qN, q3, …, qr (avec r=|Q|-1)

• label des éléments de : s0=b, s1, s2, …, sv (avec v=||-1)

Le théorème de Cook (9)

Affectations de variables & acceptation du langage

Clairement,

à un langage L accepté par M correspond une affectation des variables précédentes.

Mais,

à une affectation arbitraire des variables ne correspond pas forcément une exécution de M.

Clauses à rajouter

Le théorème de Cook (10)Clauses à rajouter

• La machine de Turing ne peut avoir qu’un seul état

• La tête de L/E ne peut lire qu’un symbole

• Une case du ruban ne peut contenir qu’un symbole

À chaque instant

D’un instant i à l’instant i+1• l’état de la machine dépend du précédent

Au début • M est dans sa configuration initiale

A la fin • l’état de M est qY

Le théorème de Cook (11)Clauses à rajouter

• { Q[0,0] }, { H[0,1] }, {S[0,0,0]}

• { S[0,1,k1] }, { S[0,2,k2] }, … , { S[0,n,kn] }

• { S[0,n+1,0] }, { S[0,n+2,0] }, … , { S[0,p(n)+1,0] },

• { Q[p(n),1] }

• { Q[i,0], Q[i,1], … , Q[i,r] }, 0 i p(n)• { Q[i,j], Q[i,j’] } 0 i p(n), 0 j j’ r• { H[i,-p(n)], H[i,-p(n)+1], … , H[i,p(n)+1] }, 0 i p(n)• { H[i,j], H[i,j’] } 0 i p(n), -p(n) j j’ p(n)+1

• { S[i,j,0], Q[i,j,1], … , S[i,j,v] }, 0 i p(n), -p(n) j p(n)+1• { S[i,j,k], Q[i,j,k’] } 0 i p(n), -p(n) j p(n)+1, 0 k < k’ v

Le théorème de Cook (12)Clauses à rajouter

•{ H[i,j], Q[i,k], S[i,j,l], H[i+1,j+] }

• { Q[i,j], Q[i,k], S[i,j,l], Q[i+1,k’] }

• { H[i,j], Q[i,k], S[i,j,l], S[i+1,j,l’]}

pour tout quadruplé (i,j,k,l)

0 i < p(n), -p(n) j p(n)+1, 0 k r, 0 l v

Le théorème de Cook (13)Conclusions

Problème de NP

Machine de Turing M / langage L

SAT

L[SAT,e]

fL

Longueur[fL]=

O(p(n)4)

Conclusions• On vient de montrer qu ’il existe au moins un problème NPC

• On ne sait toujours pas si NP - P est peuplé !

• Performances à priori des algorithmes

• Complexité spatiale

• Complexité temporelle

• Problèmes de décisions

• Classes de complexités P et NP

• P = NP ?

Bibliographie

• Garey & Johnson « Computers and Intractability - A guide to

the Theory of NP-completeness »

• Jean-François Rey « Calculabilité, Complexité et

approximation »

• Stephen Cook « The P vs NP problem »

• Le zoo de la complexité - http://www.complexityzoo.com

• Clay mathematic Institute - http://www.claymath.org

P = NP

WANTED

1.000.000 $égal ou distinct

?

top related