95
Quels problèmes peut-on résoudre efficacement ? Fête de la science université Paris Diderot – Paris 7 Le 21 octobre 2010

Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Quels problèmes peut-onrésoudre efficacement ?

Fête de la science

université Paris Diderot – Paris 7

Le 21 octobre 2010

Page 2: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Introduction

Classification des problèmes en fonction de leur « difficulté » :

I Facile : la résolution prend peu de temps(mais la méthode peut être très compliquée !)

→ Il existe un programme rapide (« efficace »)pour résoudre le problème.

I Difficile : pas de méthode rapide.→ Tous les programmes pour résoudre le problème

sont lents.

Page 3: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Introduction

Classification des problèmes en fonction de leur « difficulté » :I Facile : la résolution prend peu de temps

(mais la méthode peut être très compliquée !)

→ Il existe un programme rapide (« efficace »)pour résoudre le problème.

I Difficile : pas de méthode rapide.→ Tous les programmes pour résoudre le problème

sont lents.

Page 4: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Introduction

Classification des problèmes en fonction de leur « difficulté » :I Facile : la résolution prend peu de temps

(mais la méthode peut être très compliquée !)→ Il existe un programme rapide (« efficace »)

pour résoudre le problème.

I Difficile : pas de méthode rapide.→ Tous les programmes pour résoudre le problème

sont lents.

Page 5: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Introduction

Classification des problèmes en fonction de leur « difficulté » :I Facile : la résolution prend peu de temps

(mais la méthode peut être très compliquée !)→ Il existe un programme rapide (« efficace »)

pour résoudre le problème.I Difficile : pas de méthode rapide.

→ Tous les programmes pour résoudre le problèmesont lents.

Page 6: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Introduction

Classification des problèmes en fonction de leur « difficulté » :I Facile : la résolution prend peu de temps

(mais la méthode peut être très compliquée !)→ Il existe un programme rapide (« efficace »)

pour résoudre le problème.I Difficile : pas de méthode rapide.→ Tous les programmes pour résoudre le problème

sont lents.

Page 7: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

IntroductionFacile Difficile

Parité SudokuAddition Voyageur de commerce

Trier une liste Hello worldChemin le plus court Échecs

Primalité

Problème :Décider si un nombre est pair

Page 8: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

IntroductionFacile DifficileParité

SudokuAddition Voyageur de commerce

Trier une liste Hello worldChemin le plus court Échecs

Primalité

Problème :Ajouter deux entiers

Page 9: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

IntroductionFacile DifficileParité

Sudoku

Addition

Voyageur de commerceTrier une liste Hello world

Chemin le plus court ÉchecsPrimalité

Problème :Trier une liste d’entiers par ordre croissant

Page 10: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

IntroductionFacile DifficileParité

Sudoku

Addition

Voyageur de commerce

Trier une liste

Hello worldChemin le plus court Échecs

Primalité

Problème :Résoudre un sudoku ou un kakuro

Page 11: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Introduction

Problème :Résoudre un sudoku ou un kakuro

Page 12: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

IntroductionFacile DifficileParité Sudoku

Addition

Voyageur de commerce

Trier une liste

Hello worldChemin le plus court Échecs

Primalité

Problème :Trouver le chemin le plus court entre deux villes

Page 13: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Introduction

Quel est le chemin leplus court pour aller deParis à Toulouse ?

Problème :Trouver le chemin le plus court entre deux villes

Page 14: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

IntroductionFacile DifficileParité Sudoku

Addition

Voyageur de commerce

Trier une liste

Hello world

Chemin le plus court

ÉchecsPrimalité

Problème :Trouver le plus court chemin passant par une liste de villes

Page 15: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Introduction

Quel est le chemin leplus court passant parParis, Toulouse, Avi-gnon, Bordeaux, Lyon,Lille et Marseille ?

Problème :Trouver le plus court chemin passant par une liste de villes

Page 16: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

IntroductionFacile DifficileParité Sudoku

Addition Voyageur de commerceTrier une liste

Hello world

Chemin le plus court

ÉchecsPrimalité

Problème :Décider si un programme affiche « Hello world ! »

Page 17: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

IntroductionFacile DifficileParité Sudoku

Addition Voyageur de commerceTrier une liste Hello world

Chemin le plus court

ÉchecsPrimalité

Problème :Une position aux échecs est-elle gagnante ?

Page 18: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

IntroductionFacile DifficileParité Sudoku

Addition Voyageur de commerceTrier une liste Hello world

Chemin le plus court Échecs

Primalité

Problème :Un entier est-il premier ?

Page 19: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

IntroductionFacile DifficileParité Sudoku

Addition Voyageur de commerceTrier une liste Hello world

Chemin le plus court ÉchecsPrimalité

Problème :

Page 20: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Plan

1. Rappel historique :un ordinateur peut-il résoudre tous les problèmes ?

2. Qu’est-ce qu’un programme efficace (rapide) ?

3. Classer les problèmes en fonction de leur difficulté

Page 21: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Plan

1. Rappel historique :un ordinateur peut-il résoudre tous les problèmes ?

2. Qu’est-ce qu’un programme efficace (rapide) ?

3. Classer les problèmes en fonction de leur difficulté

Page 22: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Historique

Préhistoire des programmes :I Babyloniens (-2000)

I Euclide (-300)I Al Khuwarizmi (900)I Pascal/Leibniz (1650)

Hilbert, 1900 :I fondements des mathématiquesI peut-on tout résoudre par un programme ?

Turing, Church 1936 :I formalisation de la notion de programme

(machine de Turing)

Page 23: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Historique

Préhistoire des programmes :I Babyloniens (-2000)I Euclide (-300)

I Al Khuwarizmi (900)I Pascal/Leibniz (1650)

Hilbert, 1900 :I fondements des mathématiquesI peut-on tout résoudre par un programme ?

Turing, Church 1936 :I formalisation de la notion de programme

(machine de Turing)

Page 24: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Historique

Préhistoire des programmes :I Babyloniens (-2000)I Euclide (-300)I Al Khuwarizmi (900)

I Pascal/Leibniz (1650)

Hilbert, 1900 :I fondements des mathématiquesI peut-on tout résoudre par un programme ?

Turing, Church 1936 :I formalisation de la notion de programme

(machine de Turing)

Page 25: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Historique

Préhistoire des programmes :I Babyloniens (-2000)I Euclide (-300)I Al Khuwarizmi (900)I Pascal/Leibniz (1650)

Hilbert, 1900 :I fondements des mathématiquesI peut-on tout résoudre par un programme ?

Turing, Church 1936 :I formalisation de la notion de programme

(machine de Turing)

Page 26: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Historique

Préhistoire des programmes :I Babyloniens (-2000)I Euclide (-300)I Al Khuwarizmi (900)I Pascal/Leibniz (1650)

Hilbert, 1900 :I fondements des mathématiquesI peut-on tout résoudre par un programme ?

Turing, Church 1936 :I formalisation de la notion de programme

(machine de Turing)

Page 27: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Historique

Préhistoire des programmes :I Babyloniens (-2000)I Euclide (-300)I Al Khuwarizmi (900)I Pascal/Leibniz (1650)

Hilbert, 1900 :I fondements des mathématiquesI peut-on tout résoudre par un programme ?

Turing, Church 1936 :I formalisation de la notion de programme

(machine de Turing)

Page 28: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Qu’est-ce qu’un programme ?

I Question cruciale : notion intuitive jusqu’en 1936 !

I Programme sur ordinateur : capable de répéter un grandnombre de fois des instructions (boucle)

I Répond OUI ou NON ou ne s’arrête pas (boucle infinie)

Page 29: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Qu’est-ce qu’un programme ?

I Question cruciale : notion intuitive jusqu’en 1936 !I Programme sur ordinateur : capable de répéter un grand

nombre de fois des instructions (boucle)

I Répond OUI ou NON ou ne s’arrête pas (boucle infinie)

Page 30: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Qu’est-ce qu’un programme ?

I Question cruciale : notion intuitive jusqu’en 1936 !I Programme sur ordinateur : capable de répéter un grand

nombre de fois des instructions (boucle)I Répond OUI ou NON ou ne s’arrête pas (boucle infinie)

Page 31: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Qu’est-ce qu’un programme ?

I Question cruciale : notion intuitive jusqu’en 1936 !I Programme sur ordinateur : capable de répéter un grand

nombre de fois des instructions (boucle)I Répond OUI ou NON ou ne s’arrête pas (boucle infinie)

Exemples :

Pour i allant de 2 à n− 1 faireSi i divise n Alors répondre NON

Fin BoucleRépondre OUI

Page 32: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Qu’est-ce qu’un programme ?

I Question cruciale : notion intuitive jusqu’en 1936 !I Programme sur ordinateur : capable de répéter un grand

nombre de fois des instructions (boucle)I Répond OUI ou NON ou ne s’arrête pas (boucle infinie)

Exemples :

Tant que n 6= 0 faireAjouter 1 à n

Fin BoucleRépondre NON

Page 33: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Qu’est-ce qu’un programme ?

I Question cruciale : notion intuitive jusqu’en 1936 !I Programme sur ordinateur : capable de répéter un grand

nombre de fois des instructions (boucle)I Répond OUI ou NON ou ne s’arrête pas (boucle infinie)

Un problème = une question sur une entrée donnéeRéponse attendue : oui ou non

Exemples :

Page 34: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Qu’est-ce qu’un programme ?

I Question cruciale : notion intuitive jusqu’en 1936 !I Programme sur ordinateur : capable de répéter un grand

nombre de fois des instructions (boucle)I Répond OUI ou NON ou ne s’arrête pas (boucle infinie)

Un problème = une question sur une entrée donnéeRéponse attendue : oui ou non

Exemples :Entrée : nQuestion : le nombre n est-il premier ?

Page 35: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Qu’est-ce qu’un programme ?

I Question cruciale : notion intuitive jusqu’en 1936 !I Programme sur ordinateur : capable de répéter un grand

nombre de fois des instructions (boucle)I Répond OUI ou NON ou ne s’arrête pas (boucle infinie)

Un problème = une question sur une entrée donnéeRéponse attendue : oui ou non

Exemples :Entrée : une carte, une liste de villes, une longueur dQuestion : existe-t-il un chemin de longueur ≤ d passant partoutes les villes ?

Page 36: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Qu’est-ce qu’un programme ?

I Question cruciale : notion intuitive jusqu’en 1936 !I Programme sur ordinateur : capable de répéter un grand

nombre de fois des instructions (boucle)I Répond OUI ou NON ou ne s’arrête pas (boucle infinie)

Un problème = une question sur une entrée donnéeRéponse attendue : oui ou non

Exemples :Entrée : le code d’un programmeQuestion : le programme affiche-t-il « Hello world ! » ?

Page 37: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Peut-on tout résoudre ?

1900–1930 : tous les problèmes sont-ils résolubles parun programme ? (Hilbert : « oui »)

1936 : Turing, Church, Gödel. . . : non !

Page 38: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Peut-on tout résoudre ?

1900–1930 : tous les problèmes sont-ils résolubles parun programme ? (Hilbert : « oui »)

1936 : Turing, Church, Gödel. . . : non !

Page 39: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Paradoxe de Russell (autoréférence)

Russell, 1901Un barbier rase les personnes qui ne se rasent pas elles-mêmes.

→ Qui rase le barbier ?

I Si le barbier se rase lui-même, il ne se rase pas lui-même.I Si le barbier ne se rase pas lui-même, il se rase lui-même.

Si les programmes jouent le rôle du rasage : un programmedonné p0 peut-il décider si un autre programme q répond NON ?

Page 40: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Paradoxe de Russell (autoréférence)

Russell, 1901Un barbier rase les personnes qui ne se rasent pas elles-mêmes.

→ Qui rase le barbier ?

I Si le barbier se rase lui-même, il ne se rase pas lui-même.

I Si le barbier ne se rase pas lui-même, il se rase lui-même.

Si les programmes jouent le rôle du rasage : un programmedonné p0 peut-il décider si un autre programme q répond NON ?

Page 41: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Paradoxe de Russell (autoréférence)

Russell, 1901Un barbier rase les personnes qui ne se rasent pas elles-mêmes.

→ Qui rase le barbier ?

I Si le barbier se rase lui-même, il ne se rase pas lui-même.I Si le barbier ne se rase pas lui-même, il se rase lui-même.

Si les programmes jouent le rôle du rasage : un programmedonné p0 peut-il décider si un autre programme q répond NON ?

Page 42: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Paradoxe de Russell (autoréférence)

Russell, 1901Un barbier rase les personnes qui ne se rasent pas elles-mêmes.

→ Qui rase le barbier ?

I Si le barbier se rase lui-même, il ne se rase pas lui-même.I Si le barbier ne se rase pas lui-même, il se rase lui-même.

Si les programmes jouent le rôle du rasage : un programmedonné p0 peut-il décider si un autre programme q répond NON ?

Page 43: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Un problème non résoluble

Soit H le problème suivant :Entrée : le code d’un programme p

( p agit sur le code d’un programme)Question : p sur l’entrée code(p) répond-il NON ?

(c.-à-d. est-ce que p(code(p)) répond NON ?)

DémonstrationSupposons qu’un programme h résolve le problème H .Alors pour tout programme p,{

si h(code(h)) répond OUI alors h(code(h)) répond NONsi h(code(h)) répond NON alors h(code(h)) ne répond pas NON.

Contradiction.

Page 44: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Un problème non résoluble

Soit H le problème suivant :Entrée : le code d’un programme p

( p agit sur le code d’un programme)Question : p sur l’entrée code(p) répond-il NON ?

(c.-à-d. est-ce que p(code(p)) répond NON ?)

THÉORÈME

Aucun programme ne peut résoudre H .

DémonstrationSupposons qu’un programme h résolve le problème H .Alors pour tout programme p,{

si h(code(h)) répond OUI alors h(code(h)) répond NONsi h(code(h)) répond NON alors h(code(h)) ne répond pas NON.

Contradiction.

Page 45: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Un problème non résoluble

Soit H le problème suivant :Entrée : le code d’un programme p

( p agit sur le code d’un programme)Question : p sur l’entrée code(p) répond-il NON ?

(c.-à-d. est-ce que p(code(p)) répond NON ?)

DémonstrationSupposons qu’un programme h résolve le problème H .Alors pour tout programme p,{

si h(code(p)) répond OUI alors p(code(p)) répond NONsi h(code(p)) répond NON alors p(code(p)) ne répond pas NON.

Contradiction.

Page 46: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Un problème non résoluble

Soit H le problème suivant :Entrée : le code d’un programme p

( p agit sur le code d’un programme)Question : p sur l’entrée code(p) répond-il NON ?

(c.-à-d. est-ce que p(code(p)) répond NON ?)

DémonstrationSupposons qu’un programme h résolve le problème H .Alors pour tout programme p,{

si h(code(h)) répond OUI alors h(code(h)) répond NONsi h(code(h)) répond NON alors h(code(h)) ne répond pas NON.

Contradiction.

Page 47: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Dans la suite, on va s’intéresser uniquement à desproblèmes résolubles par ordinateur

(contrairement à H ).

Page 48: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Plan

1. Rappel historique :un ordinateur peut-il résoudre tous les problèmes ?

2. Qu’est-ce qu’un programme efficace (rapide) ?

3. Classer les problèmes en fonction de leur difficulté

Page 49: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Efficacité

I 1960–1970 : les ordinateurs se démocratisent mais ont descapacités limitées.

(Eniac, 1946) (Apple II, 1977)

I La question « que peut-on résoudre efficacement »voit le jour.

I On s’intéresse à des programmes rapides (« efficaces »).I Comment mesurer l’efficacité ?

Par le temps mis par le programme ?• Dépend de la vitesse de l’ordinateur• Dépend de l’entrée

→Mesurer le nombre d’instructions exécutéespar le programme commeune fonction f (n) de la taille de l’entrée

Page 50: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Efficacité

I 1960–1970 : les ordinateurs se démocratisent mais ont descapacités limitées.

I La question « que peut-on résoudre efficacement »voit le jour.

I On s’intéresse à des programmes rapides (« efficaces »).

I Comment mesurer l’efficacité ?Par le temps mis par le programme ?• Dépend de la vitesse de l’ordinateur• Dépend de l’entrée

→Mesurer le nombre d’instructions exécutéespar le programme commeune fonction f (n) de la taille de l’entrée

Page 51: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Efficacité

I 1960–1970 : les ordinateurs se démocratisent mais ont descapacités limitées.

I La question « que peut-on résoudre efficacement »voit le jour.

I On s’intéresse à des programmes rapides (« efficaces »).I Comment mesurer l’efficacité ?

Par le temps mis par le programme ?

• Dépend de la vitesse de l’ordinateur• Dépend de l’entrée

→Mesurer le nombre d’instructions exécutéespar le programme commeune fonction f (n) de la taille de l’entrée

Page 52: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Efficacité

I 1960–1970 : les ordinateurs se démocratisent mais ont descapacités limitées.

I La question « que peut-on résoudre efficacement »voit le jour.

I On s’intéresse à des programmes rapides (« efficaces »).I Comment mesurer l’efficacité ?

Par le temps mis par le programme ?• Dépend de la vitesse de l’ordinateur• Dépend de l’entrée : décider si une suite de 3 entiers est

triée par ordre croissant sera plus rapide que pour unesuite de 1 000 000 d’éléments.

→Mesurer le nombre d’instructions exécutéespar le programme commeune fonction f (n) de la taille de l’entrée

Page 53: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Efficacité

I 1960–1970 : les ordinateurs se démocratisent mais ont descapacités limitées.

I La question « que peut-on résoudre efficacement »voit le jour.

I On s’intéresse à des programmes rapides (« efficaces »).I Comment mesurer l’efficacité ?

Par le temps mis par le programme ?• Dépend de la vitesse de l’ordinateur• Dépend de l’entrée

→Mesurer le nombre d’instructions exécutéespar le programme commeune fonction f (n) de la taille de l’entrée

Page 54: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Exemples

Entrée : une suite x1, . . . , xn de n entiersQuestion : la suite est-elle triée par ordre croissant ?

Pour i allant de 1 à n− 1 faireSi xi > xi+1 Alors répondre NON

Fin BoucleRépondre OUI

Nombre d’opérations : f (n) ' n

Page 55: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Exemples

Entrée : une suite x1, . . . , xn de n entiersQuestion : y a-t-il deux éléments identiques dans la suite ?

Pour i allant de 1 à n− 1 fairePour j allant de i + 1 à n faire

Si xi = xj Alors répondre OUIFin Boucle

Fin BoucleRépondre NON

Nombre d’opérations : f (n) ' n2

Page 56: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Exemples

Entrée : un ensemble E d’entiersQuestion : existe-t-ilun sous-ensemble Sdont la somme des élémentsest nulle ?

P. ex.E = {−10,−4,−2, 3, 5, 9}S = {−10,−4, 5, 9}(−10) + (−4) + 5 + 9 = 0

Page 57: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Exemples

Entrée : un ensemble E d’entiersQuestion : existe-t-ilun sous-ensemble Sdont la somme des élémentsest nulle ?

P. ex.E = {−10,−4,−2, 3, 5, 9}S = {−10,−4, 5, 9}(−10) + (−4) + 5 + 9 = 0

Pour tout sous-ensemble S de E faires← somme des éléments de SSi s = 0 Alors répondre OUI

Fin BoucleRépondre NON

Nombre d’opérations : f (n) ' 2n

Page 58: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Temps d’exécution

(À la vitesse de 109 opérations par seconde)

Taille de l’entrée f (n) = n f (n) = n2 f (n) = 2n

10 10−8 s 10−7 s 10−6 s20 2.10−8 s 4.10−7 s 10−3 s30 3.10−8 s 9.10−7 s 1 s

40 4.10−8 s 1,6.10−6 s 17 min50 5.10−8 s 2,5.10−6 s 11 jours60 6.10−8 s 3,6.10−6 s 30 ans70 7.10−8 s 4,9.10−6 s 30 000 ans1 000 10−6 s 10−3 s . . .

106 10−3 s 17 min . . .

109 1 s 30 ans . . .

I Efficace = polynomial ( f (n) = nk )I Pas efficace = non polynomial ( p.ex. f (n) = 2n )

Page 59: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Temps d’exécution

(À la vitesse de 109 opérations par seconde)

Taille de l’entrée f (n) = n f (n) = n2 f (n) = 2n

10 10−8 s 10−7 s 10−6 s20 2.10−8 s 4.10−7 s 10−3 s30 3.10−8 s 9.10−7 s 1 s40 4.10−8 s 1,6.10−6 s 17 min

50 5.10−8 s 2,5.10−6 s 11 jours60 6.10−8 s 3,6.10−6 s 30 ans70 7.10−8 s 4,9.10−6 s 30 000 ans1 000 10−6 s 10−3 s . . .

106 10−3 s 17 min . . .

109 1 s 30 ans . . .

I Efficace = polynomial ( f (n) = nk )I Pas efficace = non polynomial ( p.ex. f (n) = 2n )

Page 60: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Temps d’exécution

(À la vitesse de 109 opérations par seconde)

Taille de l’entrée f (n) = n f (n) = n2 f (n) = 2n

10 10−8 s 10−7 s 10−6 s20 2.10−8 s 4.10−7 s 10−3 s30 3.10−8 s 9.10−7 s 1 s40 4.10−8 s 1,6.10−6 s 17 min50 5.10−8 s 2,5.10−6 s 11 jours

60 6.10−8 s 3,6.10−6 s 30 ans70 7.10−8 s 4,9.10−6 s 30 000 ans1 000 10−6 s 10−3 s . . .

106 10−3 s 17 min . . .

109 1 s 30 ans . . .

I Efficace = polynomial ( f (n) = nk )I Pas efficace = non polynomial ( p.ex. f (n) = 2n )

Page 61: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Temps d’exécution

(À la vitesse de 109 opérations par seconde)

Taille de l’entrée f (n) = n f (n) = n2 f (n) = 2n

10 10−8 s 10−7 s 10−6 s20 2.10−8 s 4.10−7 s 10−3 s30 3.10−8 s 9.10−7 s 1 s40 4.10−8 s 1,6.10−6 s 17 min50 5.10−8 s 2,5.10−6 s 11 jours60 6.10−8 s 3,6.10−6 s 30 ans

70 7.10−8 s 4,9.10−6 s 30 000 ans1 000 10−6 s 10−3 s . . .

106 10−3 s 17 min . . .

109 1 s 30 ans . . .

I Efficace = polynomial ( f (n) = nk )I Pas efficace = non polynomial ( p.ex. f (n) = 2n )

Page 62: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Temps d’exécution

(À la vitesse de 109 opérations par seconde)

Taille de l’entrée f (n) = n f (n) = n2 f (n) = 2n

10 10−8 s 10−7 s 10−6 s20 2.10−8 s 4.10−7 s 10−3 s30 3.10−8 s 9.10−7 s 1 s40 4.10−8 s 1,6.10−6 s 17 min50 5.10−8 s 2,5.10−6 s 11 jours60 6.10−8 s 3,6.10−6 s 30 ans70 7.10−8 s 4,9.10−6 s 30 000 ans

1 000 10−6 s 10−3 s . . .

106 10−3 s 17 min . . .

109 1 s 30 ans . . .

I Efficace = polynomial ( f (n) = nk )I Pas efficace = non polynomial ( p.ex. f (n) = 2n )

Page 63: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Temps d’exécution

(À la vitesse de 109 opérations par seconde)

Taille de l’entrée f (n) = n f (n) = n2 f (n) = 2n

10 10−8 s 10−7 s 10−6 s20 2.10−8 s 4.10−7 s 10−3 s30 3.10−8 s 9.10−7 s 1 s40 4.10−8 s 1,6.10−6 s 17 min50 5.10−8 s 2,5.10−6 s 11 jours60 6.10−8 s 3,6.10−6 s 30 ans70 7.10−8 s 4,9.10−6 s 30 000 ans1 000 10−6 s 10−3 s . . .

106 10−3 s 17 min . . .

109 1 s 30 ans . . .

I Efficace = polynomial ( f (n) = nk )I Pas efficace = non polynomial ( p.ex. f (n) = 2n )

Page 64: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Temps d’exécution

(À la vitesse de 109 opérations par seconde)

Taille de l’entrée f (n) = n f (n) = n2 f (n) = 2n

10 10−8 s 10−7 s 10−6 s20 2.10−8 s 4.10−7 s 10−3 s30 3.10−8 s 9.10−7 s 1 s40 4.10−8 s 1,6.10−6 s 17 min50 5.10−8 s 2,5.10−6 s 11 jours60 6.10−8 s 3,6.10−6 s 30 ans70 7.10−8 s 4,9.10−6 s 30 000 ans1 000 10−6 s 10−3 s . . .

106 10−3 s 17 min . . .

109 1 s 30 ans . . .

I Efficace = polynomial ( f (n) = nk )I Pas efficace = non polynomial ( p.ex. f (n) = 2n )

Page 65: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Temps d’exécution

(À la vitesse de 109 opérations par seconde)

Taille de l’entrée f (n) = n f (n) = n2 f (n) = 2n

10 10−8 s 10−7 s 10−6 s20 2.10−8 s 4.10−7 s 10−3 s30 3.10−8 s 9.10−7 s 1 s40 4.10−8 s 1,6.10−6 s 17 min50 5.10−8 s 2,5.10−6 s 11 jours60 6.10−8 s 3,6.10−6 s 30 ans70 7.10−8 s 4,9.10−6 s 30 000 ans1 000 10−6 s 10−3 s . . .

106 10−3 s 17 min . . .

109 1 s 30 ans . . .

I Efficace = polynomial ( f (n) = nk )I Pas efficace = non polynomial ( p.ex. f (n) = 2n )

Page 66: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Temps d’exécutionTaille de l’entrée f (n) = n f (n) = n2 f (n) = 2n

10 10−8 s 10−7 s 10−6 s20 2.10−8 s 4.10−7 s 10−3 s30 3.10−8 s 9.10−7 s 1 s40 4.10−8 s 1,6.10−6 s 17 min50 5.10−8 s 2,5.10−6 s 11 jours60 6.10−8 s 3,6.10−6 s 30 ans70 7.10−8 s 4,9.10−6 s 30 000 ans1 000 10−6 s 10−3 s . . .

106 10−3 s 17 min . . .

109 1 s 30 ans . . .

I Efficace = polynomial ( f (n) = nk )I Pas efficace = non polynomial ( p.ex. f (n) = 2n )

Page 67: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Plan

1. Rappel historique :un ordinateur peut-il résoudre tous les problèmes ?

2. Qu’est-ce qu’un programme efficace (rapide) ?

3. Classer les problèmes en fonction de leur difficulté

Page 68: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Comment classer les problèmes ?

Pour classer un problème, il faut savoir quel estle meilleur programme qui le résout.

I Pour montrer qu’un problème peut se résoudreen ≤ f (n) opérations, il suffit de donner un programmequi effectue au plus f (n) opérations.

I Pour montrer qu’un problème ne peut pas se résoudreen ≤ g(n) opérations, il faut démontrerqu’aucun programme p effectuant ≤ g(n) opérationsne le résout.

Page 69: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Comment classer les problèmes ?

Pour classer un problème, il faut savoir quel estle meilleur programme qui le résout.

I Pour montrer qu’un problème peut se résoudreen ≤ f (n) opérations, il suffit de donner un programmequi effectue au plus f (n) opérations.

I Pour montrer qu’un problème ne peut pas se résoudreen ≤ g(n) opérations, il faut démontrerqu’aucun programme p effectuant ≤ g(n) opérationsne le résout.

Page 70: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Comment classer les problèmes ?

Pour classer un problème, il faut savoir quel estle meilleur programme qui le résout.

I Pour montrer qu’un problème peut se résoudreen ≤ f (n) opérations, il suffit de donner un programmequi effectue au plus f (n) opérations.

I Pour montrer qu’un problème ne peut pas se résoudreen ≤ g(n) opérations, il faut démontrerqu’aucun programme p effectuant ≤ g(n) opérationsne le résout.

Page 71: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Comment classer les problèmes ?

I On ne connaît presqu’aucune méthode pour démontrerqu’aucun programme ne convient pour un problème(les programmes peuvent être très astucieux !)

I Pour la plupart des problèmes,on ne connaît pas de programme rapide qui le résolve,mais on ne sait pas montrer qu’il n’en existe pas !

I Tout l’art consiste à contourner cette complication. . .

Page 72: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Comment classer les problèmes ?

I On ne connaît presqu’aucune méthode pour démontrerqu’aucun programme ne convient pour un problème(les programmes peuvent être très astucieux !)

I Pour la plupart des problèmes,on ne connaît pas de programme rapide qui le résolve,mais on ne sait pas montrer qu’il n’en existe pas !

I Tout l’art consiste à contourner cette complication. . .

Page 73: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Comment classer les problèmes ?

I On ne connaît presqu’aucune méthode pour démontrerqu’aucun programme ne convient pour un problème(les programmes peuvent être très astucieux !)

I Pour la plupart des problèmes,on ne connaît pas de programme rapide qui le résolve,mais on ne sait pas montrer qu’il n’en existe pas !

I Tout l’art consiste à contourner cette complication. . .

Page 74: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Vérifier ou trouver une solution

Problème FACTORISATION :Entrée : un entier nQuestion : décomposer n en produit de facteurs premiers

Exemple : sur l’entrée 221, trouver 13 et 17(car 221 = 13× 17)

I Si on nous donne les diviseurs, on peut vérifierque c’est une solution (13× 17 = 221).

I Problème facile à vérifier.I Problème difficile (pas d’algorithme efficace à ce jour)

Page 75: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Vérifier ou trouver une solution

Problème VOYAGEUR DE COMMERCE :Entrée : une carte, des villes et une longueur dQuestion : existe-t-il un chemin de longueur ≤ d passant partoutes les villes ?

I Si on nous donne le chemin, on peut vérifier que c’estune solution (vérifier que la somme des distances est ≤ d).

I Problème facile à vérifier.I Problème difficile (pas d’algorithme efficace à ce jour)

Page 76: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Vérifier ou trouver une solution

Problème SUDOKU :Entrée : une grille de Sudoku de taille n× nQuestion : existe-t-il une solution à la grille ?

Page 77: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Vérifier ou trouver une solution

Problème SUDOKU :Entrée : une grille de Sudoku de taille n× nQuestion : existe-t-il une solution à la grille ?

Page 78: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Vérifier ou trouver une solution

Problème SUDOKU :Entrée : une grille de Sudoku de taille n× nQuestion : existe-t-il une solution à la grille ?

Page 79: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Vérifier ou trouver une solution

Problème SUDOKU :Entrée : une grille de Sudoku de taille n× nQuestion : existe-t-il une solution à la grille ?

Page 80: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Vérifier ou trouver une solution

Problème SUDOKU :Entrée : une grille de Sudoku de taille n× nQuestion : existe-t-il une solution à la grille ?

I Si on nous donne la grille remplie, on peut vérifier quec’est une solution (les nombres sont distincts).

I Problème facile à vérifier.I Problème difficile (pas d’algorithme efficace à ce jour)

Page 81: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Vérifier ou trouver une solution

I P : ensemble des problèmes résolubles en tempspolynomial ( f (n) = nk pour un certain k)

= problèmes résolubles « efficacement »(P= Polynomial time)

I NP : ensemble des problèmes qu’on peut vérifieren temps polynomial

= problèmes vérifiables « efficacement »(NP= Nondeterministic Polynomial time)

I P ⊆ NP

Page 82: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Vérifier ou trouver une solution

I P : ensemble des problèmes résolubles en tempspolynomial ( f (n) = nk pour un certain k)

= problèmes résolubles « efficacement »(P= Polynomial time)

I NP : ensemble des problèmes qu’on peut vérifieren temps polynomial

= problèmes vérifiables « efficacement »(NP= Nondeterministic Polynomial time)

I P ⊆ NP

Page 83: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Vérifier ou trouver une solution

I P : ensemble des problèmes résolubles en tempspolynomial ( f (n) = nk pour un certain k)

= problèmes résolubles « efficacement »(P= Polynomial time)

I NP : ensemble des problèmes qu’on peut vérifieren temps polynomial

= problèmes vérifiables « efficacement »(NP= Nondeterministic Polynomial time)

I P ⊆ NP

Page 84: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

NP-complétude

Parmi les problèmes de NP,certains sont de difficulté maximale :il s’agit des problèmes NP-complets (Cook, Levin 1971)

NP-complets

NP

Très nombreux problèmes importants en pratique.

Exemples :sudoku, voyageur de commerce, ordonnancement, . . .

Page 85: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

P vs NP

I Question fondamentale : est-ce que P = NP ?Les problèmes faciles à vérifier sont-ils faciles à résoudre ?

P = NP

ou

NP-complets

P

NP

I Question ouverte (depuis 1970). Réponse probable : non.

Meilleurs programmes connus pour lesproblèmes NP-complets : f (n) ' 2n.

I Beaucoup de problèmes importants sont NP-complets,des programmes efficaces ont été cherchés en vain.

Un programme efficace pour l’un d’entre eux donneraitdes programmes efficaces pour tous !

Page 86: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

P vs NP

I Question fondamentale : est-ce que P = NP ?Les problèmes faciles à vérifier sont-ils faciles à résoudre ?

I Question ouverte (depuis 1970). Réponse probable : non.

Meilleurs programmes connus pour lesproblèmes NP-complets : f (n) ' 2n.

I Beaucoup de problèmes importants sont NP-complets,des programmes efficaces ont été cherchés en vain.

Un programme efficace pour l’un d’entre eux donneraitdes programmes efficaces pour tous !

Page 87: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

P vs NP

I Question fondamentale : est-ce que P = NP ?Les problèmes faciles à vérifier sont-ils faciles à résoudre ?

I Question ouverte (depuis 1970). Réponse probable : non.

Meilleurs programmes connus pour lesproblèmes NP-complets : f (n) ' 2n.

I Beaucoup de problèmes importants sont NP-complets,des programmes efficaces ont été cherchés en vain.

Un programme efficace pour l’un d’entre eux donneraitdes programmes efficaces pour tous !

Page 88: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

P vs NP

I Bien qu’on ne sache pas montrer que P 6= NP,le fait qu’un problème soit NP-complet est pris commeune « preuve » que ce problème est difficile :personne ne connaît d’algorithme efficace.

I Que faire face à un problème NP-complet ?• Simplifier le problème,• chercher une solution approchée• etc.

Page 89: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

P vs NP

I Bien qu’on ne sache pas montrer que P 6= NP,le fait qu’un problème soit NP-complet est pris commeune « preuve » que ce problème est difficile :personne ne connaît d’algorithme efficace.

I Que faire face à un problème NP-complet ?• Simplifier le problème,• chercher une solution approchée• etc.

Page 90: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Conséquences

Si P = NP :I la cryptographie n’est pas sûre (sauf physique quantique)I tous les problèmes d’optimisation, d’ordonnancement

ont des programmes efficacesI les avions seraient à l’heureI un ordinateur peut trouver une preuve mathématique

efficacement, les mathématiciens peuvent être licenciés

La question « P = NP ? » figure dans la liste des sept« problèmes du millénaire » (Clay institute) :

un million de dollars de récompense

Page 91: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Conséquences

Si P 6= NP :I les avions continueront d’être en retardI pas de méthode efficace pour résoudre de nombreux

problèmes importantsI « créer », « inventer » est difficile→ les mathématiciens sont utiles

La question « P = NP ? » figure dans la liste des sept« problèmes du millénaire » (Clay institute) :

un million de dollars de récompense

Page 92: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Conséquences

Si P 6= NP :I les avions continueront d’être en retardI pas de méthode efficace pour résoudre de nombreux

problèmes importantsI « créer », « inventer » est difficile→ les mathématiciens sont utiles

La question « P = NP ? » figure dans la liste des sept« problèmes du millénaire » (Clay institute) :

un million de dollars de récompense

Page 93: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Conclusion

I Deux aspects de la recherche en informatique théorique :• Inventer des programmes performants pour un problème• Montrer qu’il n’existe pas de programme performant

pour un problème (ou une classe de problèmes)

I Classification des problèmes selon leur complexité :P, NP, etc.

I Les questions du type « P = NP ? » sont importantestant en théorie qu’en pratique(voire pour leurs aspects philosophiques)

I Questions très difficiles !

Page 94: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Conclusion

I Deux aspects de la recherche en informatique théorique :• Inventer des programmes performants pour un problème• Montrer qu’il n’existe pas de programme performant

pour un problème (ou une classe de problèmes)

I Classification des problèmes selon leur complexité :P, NP, etc.

I Les questions du type « P = NP ? » sont importantestant en théorie qu’en pratique(voire pour leurs aspects philosophiques)

I Questions très difficiles !

Page 95: Quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · Problème : Trouver le plus court chemin passant par une liste de villes. Introduction Quel

Conclusion

I Deux aspects de la recherche en informatique théorique :• Inventer des programmes performants pour un problème• Montrer qu’il n’existe pas de programme performant

pour un problème (ou une classe de problèmes)

I Classification des problèmes selon leur complexité :P, NP, etc.

I Les questions du type « P = NP ? » sont importantestant en théorie qu’en pratique(voire pour leurs aspects philosophiques)

I Questions très difficiles !