Objectifs du cours Organisation Quelques exemples introductifs Objectifs du cours Organisation Quelques exemples introductifs C ONTEXTE ET O BJECTIFS Algorithmique et ComplexiTé Présentation du cours Master1 Informatique Les algorithmes sont au coeur de l’informatique: tris, recherche, compression, ordonnancement, algorithmes géométriques, recommandation, cryptographie, . . . Objectif: Avoir des outils pour concevoir un ”bon” algorithme pour résoudre un problème. Sophie Tison [email protected] Objectif: Avoir des outils pour concevoir un algorithme correct et efficace pour résoudre un problème. Objectifs du cours Organisation Quelques exemples introductifs C ELA POSE DE NOMBREUSES QUESTIONS ET DEMANDE UN CERTAIN SAVOIR - FAIRE Existe-il un algorithme pour résoudre le problème? Connaı̂tre quelques notions de calculabilité et de décidabilité. Objectifs du cours Organisation Quelques exemples introductifs C ELA POSE DE NOMBREUSES QUESTIONS ET DEMANDE UN CERTAIN SAVOIR - FAIRE . Comment modéliser le problème? Est-ce un problème classique? Savoir modéliser, Connaı̂tre et savoir reconnaı̂tre des grands classiques Objectifs du cours Organisation Quelques exemples introductifs C ELA POSE DE NOMBREUSES QUESTIONS ET DEMANDE UN CERTAIN SAVOIR - FAIRE . Objectifs du cours Comment concevoir un algorithme? Savoir modéliser Connaı̂tre et savoir reconnaı̂tre des grands classiques Schémas d’algorithmes, Algorithmic design patterns ”Diviser pour régner” Programmation Dynamique Algorithmes gloutons Tris, méthodes de sélection, recherche Algorithmique des graphes, Programmation linéaire ... Organisation Quelques exemples introductifs C ELA POSE DE NOMBREUSES QUESTIONS ET DEMANDE UN CERTAIN SAVOIR - FAIRE Est-ce un problème classique? Objectifs du cours Organisation Quelques exemples introductifs C ELA POSE DE NOMBREUSES QUESTIONS ET DEMANDE UN CERTAIN SAVOIR - FAIRE . Objectifs du cours Organisation Quelques exemples introductifs C ELA POSE DE NOMBREUSES QUESTIONS ... DEMANDE PAS MAL DE SAVOIR - FAIRE . L’algorithme est-il correct? L’algorithme est-il efficace? Savoir prouver un algorithme... ou tout du moins avoir un minimum de rigueur Savoir analyser la complexité d’algorithmes ET Objectifs du cours Organisation Quelques exemples introductifs Objectifs du cours Organisation Quelques exemples introductifs C ELA POSE DE NOMBREUSES QUESTIONS ET DEMANDE UN CERTAIN SAVOIR - FAIRE . C ELA POSE DE NOMBREUSES QUESTIONS ET DEMANDE UN CERTAIN SAVOIR - FAIRE . Peut-on trouver un algorithme plus efficace pour le problème? Est-ce un problème dur? Si le problème est dur, comment l’appréhender! Avoir quelques notions de complexité des problèmes Objectifs du cours Organisation Quelques exemples introductifs Connaı̂tre quelques techniques d’algorithmique avancée: Méta-heuristiques, Algorithmes probabilistes, ... Backtracking, minmax, séparation-évaluation Objectifs du cours Organisation Quelques exemples introductifs P ROGRAMME P R ÉVISIONNEL Objectifs du cours Présentation et Rappels (2 cours) Organisation Quelques schémas d’algorithmes (4 cours) Un peu de complexité de problèmes (3 cours) Quelques exemples introductifs Un peu d’algorithmique avancée (2-3 cours) Objectifs du cours Organisation Quelques exemples introductifs Objectifs du cours R ESSOURCES Organisation Quelques exemples introductifs L ES TP S Résumés de cours distribués en amphi et mis sur le portail Transparents de cours mis sur le portail au fur et à mesure De nombreux livres comme par exemple: . Cormen, Leiserson, Rivest, ”Introduction à l’algorithmique”, Dunod (disponible à la BU) vraiment ”une” référence en algorithmique, . S. Skiena, ”Algorithm Design Manual”, une ”mine”! (Une version on-line proche du livre papier ), . Jon Kleinberg & Eva Tardos, ”Algorithm design”, Addison Wesley 2005 Il y aura 12 séances de TP (langage au choix: Java, C , Haskell, . . . ) encadrées pour la mise en oeuvre directe des méthodes étudiées en cours. Les TPs seront évalués. de nombreuses ressources en ligne! Objectifs du cours Organisation Quelques exemples introductifs Objectifs du cours Organisation E VALUATION Le contrôle continu sera basé sur Objectifs du cours . les TPs . un DS (le 12 octobre?). . éventuellement un bonus donné par le chargé de TD: par exemple, ”devoirs maison”, préparation d’exercices... La note de contrôle continu sera CC = 1/3 ∗ (note DS) + 2/3 ∗ (note TP) + éventuel bonus. La note finale sera sup(Exam, (Examen + CC)/2). Organisation Quelques exemples introductifs Quelques exemples introductifs Objectifs du cours Organisation Quelques exemples introductifs Objectifs du cours G RAPHES ET C HEMINS Organisation L ES 7 Quelques exemples introductifs PROBL ÈMES DU MILLENIUM I NSTITUT C LAY I Problème 1: Trouver le plus court chemin entre deux sommets d’un graphe C’est un grand classique: algorithme de Dijkstra, algorithme de Bellman-Ford, algorithme de Floyd-Warshall, ... I 7 problèmes ont été identifiés comme ”Millenium problems” pour leur impact par l’Institut Clay, avec pour chacun d’eux 1million de dollars de récompense à la clef. Problème 2: Trouver le chemin le plus long sans cycle entre deux sommets dans un graphe Si vous trouvez un algorithme ”efficace”, vous gagnez 1 million de dollars. Si vous montrez qu’on ne peut pas en trouver un, vous gagnez aussi 1 million de dollars! Pour quel problème peut-on trouver un algorithme efficace? Objectifs du cours Organisation Quelques exemples introductifs Objectifs du cours Organisation L ES PROBL ÈMES DU MILLENIUM G RAPHES ET C HEMINS I NSTITUT C LAY E ULER ET H AMILTON I P versus NP I conjecture de Poincaré I l’hypothèse de Riemann I conjecture de Hodge I conjecture de Birch and Swinnerton-Dyer I ”YangMills existence and mass gap problem” I équations de NavierStokes Le problème qui nous concerne ici est P versus NP. La conjecture de Poincaré a été prouvée en 2003 par Grigori Perelman qui a reçu et refusé le prix en 2010. Quelques exemples introductifs I Problème 1: Trouver un cycle qui passe une et une seule fois par tous les sommets d’un graphe I Problème 2: Trouver un cycle qui passe une et une seule fois par tous les arcs d’un graphe Pour quel problème peut-on trouver un algorithme efficace? Objectifs du cours Organisation Quelques exemples introductifs Objectifs du cours Organisation G RAPHES ET C HEMINS G RAPHES ET C HEMINS H AMILTON H AMILTON Quelques exemples introductifs Problème 1: Trouver un cycle qui passe une et une seule fois par tous les sommets d’un graphe Problème 1: Trouver un cycle qui passe une et une seule fois par tous les sommets d’un graphe C’est la recherche d’un cycle hamiltonien: encore un problème ”à un million de dollars”! C’est la recherche d’un cycle hamiltonien: encore un problème ”à un million de dollars”! William Rowan Hamilton Le jeu icosien Objectifs du cours Organisation Quelques exemples introductifs G RAPHES ET C HEMINS Objectifs du cours Organisation G RAPHES ET C HEMINS E ULER ET H AMILTON Problème 2: Trouver un cycle qui passe une et une seule fois par tous les arcs d’un graphe C’est la recherche d’un cycle eulérien: Leonhard Euler Il faut et il suffit que le graphe soit connexe sans sommet de degré impair. Il existe un algorithme efficace! Les ponts de Koenigsberg Quelques exemples introductifs Objectifs du cours Organisation Quelques exemples introductifs Objectifs du cours G ROUPES EN PAIX Organisation Quelques exemples introductifs G ROUPES EN PAIX L E PREMIER EST FACILE ... Données: un ensemble d’étudiants. Chacun donne la liste de ceux avec qui il s’entend. I Problème 1: répartir si c’est possible! en deux groupes tels que les membres d’un même groupe s’entendent tous entre eux. I Problème 2: répartir si c’est possible! en trois groupes tels que les membres d’un même groupe s’entendent tous entre eux. Objectifs du cours Organisation Quelques exemples introductifs L’ ALGORITHME EST- IL CORRECT ? tant qu’il reste des étudiants non placés Mettre un étudiant au hasard dans A tant qu’il reste un ennemi de A(resp. B) non placé si il n’a pas d’ennemis dans B (resp. A) l’y mettre sinon “répartition impossible” I I I si l’algo sort une solution, elle est correcte: invariant: Tous les membres de A (resp. B) s’entendent. si l’algo sort “répartition impossible”, il n’y a pas de solution: pourquoi? pour simplifier supposons que le “graphe des ennemis” soit connexe. invariant suppplémentaire: si il y a une solution, un groupe contient les étudiants de A, l’autre ceux de B. On généralise ensuite au cas de plusieurs composantes connexes. L’algo s’arrête! Données: un ensemble d’étudiants. Chacun donne la liste de ceux avec qui il s’entend. Problème 1: répartir, si c’est possible, les étudiants en deux groupes tels que les membres d’un même groupe s’entendent tous entre eux. tant qu’il reste des étudiants non placés Mettre un étudiant au hasard dans A tant qu’il reste un ennemi de A(resp. B) non placé si il n’a pas d’ennemis dans B (resp. A) l’y mettre sinon “répartition impossible” Objectifs du cours Organisation Quelques exemples introductifs G ROUPES EN PAIX L E DEUXI ÈME EST MOINS FACILE ... Données: un ensemble d’étudiants. Chacun donne la liste de ceux avec qui il s’entend. Problème 2: répartir si c’est possible en trois groupes tels que les membres d’un même groupe s’entendent tous entre eux. Si vous trouvez un algorithme ”efficace”, vous gagnez 1 million de dollars. Si vous montrez qu’on ne peut pas en trouver un, vous gagnez aussi 1 million de dollars! On peut montrer que c’est bien un problème à un million de dollars (cf partie 2 du cours). Objectifs du cours Organisation Quelques exemples introductifs Objectifs du cours FACILE , VOUS AVEZ DIT FACILE ? Attention: Dire que le problème 1 est “plus facile” que le problème 2 veut dire ici qu’on connaı̂t un algorithme efficace pour le problème 1 mais qu’on n’en connaı̂t pas pour le problème 2. On précisera cette notion de facile/dur dans la deuxième partie du cours. Bien sûr ici, pour les mêmes données, si il y a une solution avec deux groupes, il y a une solution avec 3 groupes! Objectifs du cours Organisation Quelques exemples introductifs B IN ÔMES ? Données: un ensemble d’étudiants. Chacun donne la liste de ceux avec qui il veut bien faire équipe. I Problème 1: Regrouper les étudiants en binômes qui s’entendent (si possible). I Le problème 1 a un algorithme efficace -non trivial-, c’est un problème de ”perfect matching” (algorithme de Edmonds). I Perfect matching: trouver un ensemble d’arcs qui n’ont aucun sommet en commun et qui couvrent tous les sommets. Organisation Quelques exemples introductifs B IN ÔMES OU TRIN ÔMES ? Données: un ensemble d’étudiants. Chacun donne la liste de ceux avec qui il veut bien faire équipe. I Problème 1: Regrouper les étudiants en binômes qui s’entendent (si possible). I Problème 2: Regrouper les étudiants en trinômes qui s’entendent (si possible). Le deuxième n’a pas d’algorithme efficace connu, et c’est encore un problème à un million de dollars. Objectifs du cours Organisation Quelques exemples introductifs B IN ÔMES REVISIT ÉS Données: un ensemble d’étudiants. Chacun donne une liste totalement ordonnée par préférence des autres étudiants. Problème des binômes bis: proposer une bonne répartition des étudiants en binômes Qu’est-ce qu’une bonne répartition? Une répartition est stable si il n’y a pas deux binômes (A,B) et (C,D) tels que A préfère travailler avec D, C préfère travailler avec B. Il n’y a pas toujours de répartition stable! Si il y en a une, il existe un algorithme efficace pour la trouver (Irving 85). Problème proche: les mariages stables ou encore l’affectation sur des postes: cette-fois ci il y a deux types d’éléments à ”apparier”: (poste, personne)... Objectifs du cours Organisation Prochain Cours: demain Quelques exemples introductifs Objectifs du cours Organisation Quelques exemples introductifs