quels problèmes peut-on résoudre efficacementsperifel/divers/fete_science2010.pdf · problème :...
TRANSCRIPT
![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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/1.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/2.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/7.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/8.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/9.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/10.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/13.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/14.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/15.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/16.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/17.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/18.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/19.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/20.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/21.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/22.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/23.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/24.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/25.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/26.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/27.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/28.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/29.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/30.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/31.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/32.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/33.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/34.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/35.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/36.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/37.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/38.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/39.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/40.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/41.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/42.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/43.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/44.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/45.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/46.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/47.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/48.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/49.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/50.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/51.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/52.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/53.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/54.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/55.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/56.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/57.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/58.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/59.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/60.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/61.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/62.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/63.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/64.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/65.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/66.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/67.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/68.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/69.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/70.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/71.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/72.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/73.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/74.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/75.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/76.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/77.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/78.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/79.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/80.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/81.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/82.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/83.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/84.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/85.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/86.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/87.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/88.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/89.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/90.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/91.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/92.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/93.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/94.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050718/5e17d9186c4998102b2fc019/html5/thumbnails/95.jpg)
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 !