Information, Calcul, Communication

Slides:



Advertisements
Présentations similaires
1 Chapitre 2 La numération binaire. 2 Chapitre 2 : La numération binaire Introduction 1 - Le système binaire 2 - La conversion des nombres entiers 2.1.
Advertisements

ANNEE ACADEMIQUE Institut Supérieur Emmanuelle D’Alzon de Butembo COURS: THEORIE DE BASE DE DONNEES : 45H PROMOTION: G2 Gestion Informatique.
Information, Calcul, Communication
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Information, Calcul, Communication
Outils de Recherche Opérationnelle en Génie MTH 8414A
Information, Calcul, Communication
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
La matière et les changements chimiques
Les tables de multiplication au ce1 « Une construction réfléchie des tables favorise-t-elle leur mémorisation et leurs transferts ? » DOUARCHE Vaéa.
Information, Calcul, Communication
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Information, Communication, Calcul
Information, Calcul, Communication
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Information, Calcul, Communication
Pierre Joli Cours de Mathématique Pierre Joli
OUTILS D’AIDES AUX SYNDICATS
Information, Calcul, Communication
L’opération de multiplication
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Information, Calcul, Communication
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Information, Calcul, Communication
Information, Communication, Calcul
Information, Calcul, Communication
Information, Calcul, Communication
Information, Calcul, Communication
Information, Calcul, Communication
Information, Calcul, Communication
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Accords d’Exécution – Accords de Financement
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Information, Calcul, Communication
Techniques de décomposition
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Représentation de l’information en binaire:
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Université Abou Bakr Belkaid Faculté des Sciences Département d’informatique Algorithmique Avancée et Complexité Chap5: Les méthodes de résolution exactes.
Information, Calcul, Communication
Master Réseaux et Systèmes Distribués (RSD)
Algorithmique Avancée et Complexité Chap3:Diviser pour Régner
Information, Calcul, Communication
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Information, Communication, Calcul
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Information, Calcul, Communication
Information, Calcul, Communication
Université Abou Bakr Belkaid Faculté des Sciences Département d’informatique Algorithmique Avancée et Complexité Chap7: Les méthodes de résolution exactes.
Victoria, Seychelles, 25-27octobre 2017
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
2.2 Probabilité conditionnelle
Information, Communication, Calcul
Module 1: Généralités sur les systèmes informatiques Chapitre 1: Définitions et notions de base.
REVUE DE LITTERATURE. Introduction Première partie majeure dans la rédaction du mémoire, la réalisation d’une revue de littérature consiste à effectuer.
CSI 3505 / Automne 2005: Conception et Analyse des Algorithmes I.
Information, Calcul, Communication
Information, Calcul, Communication
CSI 3505 Algorithmes Voraces
RABAH M ed Ali 2018/2019
BACCALAUREAT PROFESSIONNEL
Chapter 11: Récursivité Java Software Solutions Second Edition
Encadrée par: - Mr. Abdallah ALAOUI AMINI Réalisée par : -ERAOUI Oumaima -DEKKAR Amal - ES-SAHLY Samira -Houari Mohammed PROGRAMMATION MULTIOBJECTIFS.
Système de Numération : Décimal, Binaire, Octal et Hexadécimal
UX DESIGN User exprérience en anglais Expérience Utilisateur en français Concevoir, Créer, dessiner UX DESIGN, consiste à penser et concevoir un site web.
Transcription de la présentation:

Information, Calcul, Communication Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne fait partie de son cours d’introduction à l’information, à la communication, et au calcul. Il s’inscrit dans le 1er module du cours qui offre une 1ere approche des notions de calcul et d’information. Information, Calcul, Communication 1. Information & Calcul – Leçon 2: Conception des Algorithmes Clip 2: “Divide & Conquer” J. Sam, J-C. Chappelier, R. Boulic, commentaire: P. Janson

Plan de la leçon Introduction Approche descendante Sommaire Divide & conquer Récursion Principe Exemple: les tours de Hanoï Terminaison Exemple: somme des N premiers nombres entiers Déroulement Exemple: tri par insertion Programmation dynamique Exemple: calcul du plus court chemin Sommaire Après un 1er clip qui a introduit le sujet et donné un exemple de conception d’algorithme par l’approche descendante, le présent clip décrit une 1ère méthode descendante appelée en anglais «Divide & Conquer», en français « diviser pour régner » ou originalement dans le latin de César « Divide et impera ».

Divide & Conquer (Diviser pour régner) … … est l’archétype des méthodes descendantes de conception d’algorithmes => Diviser/regrouper les données par raffinements successifs pour résoudre des (sous-)problèmes de plus en plus simples L’idée n’est pas nouvelle «Diviser chacune des difficultés que j’examinerois, en autant de parcelles qu’il se pourroit, et qu’il soit requis pour les mieux résoudre » (Descartes, Discours de la Méthode, 1637) Cette méthode est en fait un archétype, un peu la mère de toutes les méthodes de conception descendantes. - Elle consiste à diviser les données à traiter en de petits groupes de façon à résoudre le problème donné par raffinements successifs en sous-problèmes de plus en plus simples. Cette idée qui est le fondement de la notion d’hiérarchie n’est d’ailleurs ni nouvelle ni réservée au domaine des algorithmes: Elle a été appliquée comme stratégie militaire et politique depuis Philippe de Macédoine à aujourd’hui en passant par César, Louis XI, les Habsburgs, Napoléon, Francis Bacon, Immanuel Kant et bien d’autres. En matière de résolution de problèmes, Descartes la suggérait déjà dans en 1637 dans son Discours de la méthode que l’on pourrait paraphraser en disant: «Diviser chacune des difficultés à résoudre en autant de pièces que possible et nécessaire pour résoudre chacune plus aisément»

Divide & Conquer (Diviser pour régner) Schéma général de l’approche « diviser pour régner » dans le cas d’un problème P portant sur des données d Dans le cas général d’un problème P portant sur un ensemble de données D, le schéma de base de cette approche « Divide & Conquer » peut être décrit de la façon suivante. 1 On désire soumettre un ensemble de données D à un algorithme encore inconnu (ici en noir) dont on attend qu’il produise des résultats Y. 2 On commence par voir comment on pourrait diviser les données D en une série de sous-ensembles cohérents d1, d2, etc. jusque dn posant chacun des sous-problèmes quelconques dont on suspecte qu’ils sont plus simples à résoudre et mèneraient en fin de compte à une solution du problème P. 3 On considère alors chacun à son tour ces sous-ensembles de données Di et on leur applique la même technique, essayant de les subdiviser successivement en sous-ensembles cohérents de plus en plus raffinés dont on espère que le traitement sera de plus en plus simple. On commence ainsi avec le sous-ensemble D1,1 dont on attend un résultat Y1. 4 On divise ce sous-ensemble en les sous-ensembles D1,1 à D1,n. 5 De chacun de ces sous-ensembles du 2e niveau on attend des résultats Y1,1 à Y1,n. On pourrait ainsi continuer à subdiviser ces sous-ensembles de façon toujours plus fine. Mais nous ferons ici l’hypothèse que D1,1 à D1,n sont des sous-ensembles assez simples dont les traitements sont assez aisés et pour lesquels nous disposons d’algorithmes connus ou pouvons aisément nous imaginer concevoir nous-mêmes un nouvel algorithme assez simple. 6 Si et quand le traitement de tous ces sous-ensembles D1,1 à D1,n est ainsi résolu, on a donc une solution algorithmique (ici en rouge) au traitement de D1, et les résultats Y1,1 à Y1,n constituent ensemble le résultat Y1 attendu de D1. 7 On procède de même pour la décomposition successive de tous les autres sous-ensembles de données au même niveau, D2 à Dn dans le cas présent, chacun menant à un sous-algorithme et fournissant en son temps et à son tour les résultats Y2 à Yn. 8 L’ensemble de ces sous-algorithmes représentent en fin de compte une solution algorithmique au problème P et leurs résultats Y1 à Yn constituent le résultat Y attendu de cette solution. d d1 d1,1 d1 d1,1 … d1,n d2 … d1,n y1,1 … dn … … y1,n yn, … y2, y1 Y

Divide & Conquer (Diviser pour régner) Concept de base de l’approche « diviser pour régner » dans le cas d’un problème P portant sur des données d Si d est « assez simple » appliquer un algorithme « ad hoc » qui résout le problème (cas triviaux) Sinon décomposer d en instances plus petites d1, ..., dn résoudre Pi(di) pour chacune des di => solution yi recombiner les yi pour former Y = solution au problème de départ => Ceci conduit souvent à des algorithmes dits récursifs En conclusion donc, dans le cas général d’un problème P portant sur un ensemble de données D, le concept de base de l’approche « Divide & Conquer » peut être exprimé de la façon suivante. 1 Si l’ensemble de données à traiter D est « assez simple » (où « assez simple » est évidemment une tautologie subjective) on crée un petit algorithme simple ou on pêche un candidat ad hoc dans son arsenal d’algorithmes connus, ce qui résout le problème dans tous les cas triviaux, c.à.d. ceux pour lesquels on peut facilement inventer un algorithme simple ou on dispose précisément d’algorithmes déjà connus. 2 Sinon on commence par décomposer D en sous-ensembles plus simples D1 à Dn. 3 Pour chacun de ces sous-ensembles D1 à Dn on tente de résoudre le problème Pi pour le sous-ensemble Di de façon à obtenir des résultats intermédiaires Yi (quitte à devoir diviser les Di en sous-ensembles toujours plus fins Di,j,k,l,m,n,etc. produisant des résultats intermédiaires Yi,j,k,l,m,n,etc.) 4 Quand on est arrivé à diviser D de la sorte en sous-ensembles suffisamment simples pour que des sous-algorithmes susceptibles de résoudre chacun des sous-problème Pi soient simples ou connus et fournissent les résultats intermédiaires Yi, on recombine tous ces sous-algorithmes et leurs résultats en l’algorithme final désiré produisant le résultat escompté Y. 5 Comme on peut le suspecter au travers de cette discussion, ce processus de divisions successives mène typiquement à des algorithmes dits récursifs qui sont le sujet du clip suivant.