Table Of ContentINFORMATIQUE APPLIQUÉE: ITI 3200
CONCEPTION
ET ANALYSE D'ALGORITHMES
Bouna Mohamed
Conception et Analyse d’algorithmes
Avant propos
L'Université virtuelle africaine (UVA) est fier de participer à l'amélioration de l'accès à
l'éducation dans les pays africains à travers la production de matériel didactique de qualité.
Nous sommes également fiers de contribuer aux connaissances mondiales comme nos
ressources pédagogiques sont pour la plupart accessibles de l'extérieur du continent africain.
Ce module a été développé dans le cadre d'un programme à un diplôme en informatique
appliquée, en collaboration avec 18 institutions partenaires africaines de 16 pays. Un total de
156 modules ont été élaborés pour assurer la disponibilité ou traduit en anglais, français et
portugais. Ces modules ont également été mis à disposition en tant que ressources éducatives
libres (REL) sur oer.avu.org.
Au nom de l'Université virtuelle africaine et notre patron, nos institutions partenaires, la Banque
africaine de développement, je vous invite à utiliser ce module dans votre établissement, pour
votre propre formation, de partager le plus largement possible et à participer activement à
l'avu les communautés de pratique de votre intérêt. Nous nous engageons à être en première
ligne de l'élaboration et le partage de ressources éducatives libres.
L'Université virtuelle africaine (UVA) est une organisation intergouvernementale
panafricaine créée par la location avec le mandat d'accroître sensiblement l'accès à un
enseignement supérieur de qualité et de formation à l'aide de l'information technologies
de la communication. Une Charte, l'établissement de l'avu en tant qu'organisation
intergouvernementale, a été signé ce jour par dix-neuf (19) Les gouvernements africains - le
Kenya, le Sénégal, la Mauritanie, le Mali, la Côte d'Ivoire, Tanzanie, Mozambique, République
démocratique du Congo, Bénin, Ghana, République de Guinée, Burkina Faso, Niger, Soudan
du Sud, Soudan, l'Éthiopie, la Gambie, la Guinée-Bissau et le Cap-Vert.
Les institutions suivantes ont participé au programme d'informatique appliquée : (1) Université
d'Abomey Calavi au Bénin ; (2) Université de Ougagadougou au Burkina Faso ; (3) l'Université
Lumière de Bujumbura au Burundi ; (4) l'Université de Douala au Cameroun ; (5) Université
de Nouakchott en Mauritanie ; (6) l'Université Gaston Berger au Sénégal ; (7) Université
des Sciences, des Techniques et technologies de Bamako au Mali (8) Ghana Institute of
Management and Public Administration ; (9) Université des Sciences et Technologies de
Kwame Nkrumah au Ghana ; (10) l'Université Kenyatta au Kenya ; (11) l'Université d'Egerton au
Kenya ; (12) l'Université d'Addis Abeba en Ethiopie (13) Université du Rwanda (14) ; Université
de Dar es Salaam en Tanzanie ; (15) l'Université Abdou Moumouni de Niamey au Niger ; (16)
l'Université Cheikh Anta Diop de Sénégal ; (17) Universidade Pedagógica au Mozambique ; et
(18) l'Université de la Gambie en Gambie.
Bakary Diallo,
Recteur de l'
Université virtuelle africaine
22
Crédits de production
Auteur
Bouna Mohamed El Hacen
Pair Réviseur
Djamal Abdou Nasser Seck
UVA – Coordination Académique
Dr. Marilena Cabral
Coordinateur global Sciences Informatiques Apliquées
Prof Tim Mwololo Waema
Coordinateur du module
Jules Degila
Concepteurs pédagogiques
Elizabeth Mbasu
Benta Ochola
Diana Tuel
Equipe Média
Sidney McGregor Michal Abigael Koyier
Barry Savala Mercy Tabi Ojwang
Edwin Kiprono Josiah Mutsogu
Kelvin Muriithi Kefa Murimi
Victor Oluoch Otieno Gerisson Mulongo
33
Conception et Analyse d’algorithmes
Droits d’auteur
Ce document est publié dans les conditions de la Creative Commons
Http://fr.wikipedia.org/wiki/Creative_Commons
Attribution http://creativecommons.org/licenses/by/2.5/
Le gabarit est copyright African Virtual University sous licence Creative Commons Attribution-
ShareAlike 4.0 International License. CC-BY, SA
Supporté par
Projet Multinational II de l’UVA financé par la Banque africaine de développement.
44
Table des matières
Avant propos 2
Crédits de production 3
Droits d’auteur 4
Supporté par 4
Aperçu du cours 8
Bienvenue au cours Conception et Analyse d’algorithmes 8
Prérequis 8
Matériaux 8
Objectifs du cours 8
Unités 9
Évaluation 10
Plan 10
Lectures et autres ressources 11
Unité 0. Évaluation diagnostique 13
Introduction à l’unité 13
Objectifs de l’unité 13
Termes clés 13
Évaluation de l’unité 14
Directives 14
Système de notation 14
Évaluation 15
Correction 15
Lectures et autres ressources 18
Unité 1. Complexité des algorithmes 19
Objectifs de l’unité 19
Termes clés 19
Activités d’apprentissage 20
Activité 1: Rappel et Notations 20
55
Conception et Analyse d’algorithmes
Introduction 20
Expression de la complexité 20
Exemples de complexités 21
Détermination de la complexité 22
Activité 2: Etude d’exemples 23
Complexité des instructions de répétition: 23
Évaluation 23
Évaluation 28
Activité 3: Estimation asymptotique 29
Introduction 29
Évaluation 32
Correction 33
Résumé de l’unité 33
Évaluation de l’unité 34
Directives 34
Lectures et autres ressources 34
Unité 2. Techniques de conception d’algorithmes 35
Introduction à l’unité 35
Objectifs de l'unité 35
Termes clés 35
Activités d’apprentissage 36
Activité 1: Algorithme de glouton 36
Introduction 36
Le principe glouton 36
Un premier exemple: Le monnayeur 36
Stratégie 36
Algorithme 37
Eléments de l’algorithme 37
Correction 39
Évaluation de l’unité 39
66
Activité 2: Diviser pour régner 41
Introduction 41
Principe 41
Premier exemple : multiplication naïve de matrices 41
Analyse des algorithmes diviser-pour-régner 42
Master-Théorème 43
Exemples : 44
Évaluation 46
Correction 47
Activité 3: Programmation dynamique 49
Introduction 49
Principe 49
Résumé de l’unité 49
Évaluation de l’unité 50
Directives 50
Correction 50
Lectures et autres ressources 51
Unité 3. Structure de données dynamiques 52
Introduction à l’unité 52
Objectifs de l’unité 52
Termes clés 52
Activités d’apprentissage 53
Activité 1: Arbres 53
Introduction 53
Définition 53
Implémentation des arbres binaires 56
Implémentation des arbres n-aires 57
Parcours d’un arbre 60
Évaluation 62
Activité 2: Algorithmes des Graphes 63
55
Conception et Analyse d’algorithmes
Présentation 63
Parcours de graphes 64
Correction. 69
Évaluation 69
Activité 3: Plus court chemin et Flots 70
Introduction 70
Correction 75
Évaluation 75
Résumé de l’unité 76
Évaluation de l’unité 76
Directives 76
Correction 77
Lectures et autres ressources 78
Unité 4. Structures de données spécialisées 79
Introduction à l’unité 79
Objectifs de l’unité 79
Termes clés 79
Activités d’apprentissage 80
Activité 1: Files de priorité 80
Introduction 80
Évaluation 82
Correction 84
Activité 2: Arbres binaires de recherche 84
Présentation 84
Évaluation 85
Correction 86
Activité 3: Ensembles disjoints 88
Introduction 88
Résumé de l’unité 90
Évaluation de l’unité 90
66
Directives 90
Réponses 90
Lectures et autres ressources 91
Résumé de l’unité 92
Évaluation du cours 93
Correction 94
Contrôle continu Test 2 95
Correction 96
Références du cours 97
77
Conception et Analyse d’algorithmes
Aperçu du cours
Bienvenue au cours Conception et Analyse d’algorithmes
Ce cours a pour but de donner aux étudiants quelques-unes des techniques avancées de
conception et d’analyse d’algorithmes. Ainsi, tous les grands thèmes de l’algorithme seront
abordés dans le cours : récursivité, Complexité temporelle et spatiale d’un algorithme,
programmation linéaire, NP-complétude, programmation dynamique, algorithmes
probabilistes, algorithmes d’approximation, etc.
Ce cours permettra les étudiants être capables d’analyser la complexité temporelle et
spatiale d’un algorithme, d’identifier les méthodes les plus appropriées pour la résolution des
problèmes algorithmiques, Connaître les principes de la conception des algorithmes et la
programmation dynamique, etc.
Prérequis
• Principes fondamentaux de l’organisation et de l’architecture de l’ordinateur
• Introduction à la programmation structurée
• Initiation au calcul des probabilités et à la statistique
• Algèbre linéaire
Matériaux
Les matériaux nécessaires pour compléter ce cours comprennent les :
• IDE pour développer en C ou C++
• Livres
• Vidéos en ligne
• Support de cours
Objectifs du cours
À la fin de ce cours, l’étudiant devrait être en mesure de:
• choisir et appliquer des algorithmes appropriés pour résoudre un problème
concret;
• Administrer la preuve de leurs connaissances en matière de structures de données
avancées : arbres de recherche binaires, tas, tables de hachage et graphes
88
Description:Lumière de Bujumbura au Burundi ; (4) l'Université de Douala au Cameroun ; (5) Université de Nouakchott Eléments de l'algorithme. 37. Correction.