Licence informatique - L3 Année 2012/2013. Conception d algorithmes et applications (LI325) COURS 1



Documents pareils
Limites des Suites numériques

Chapitre 3 : Fonctions d une variable réelle (1)

. (b) Si (u n ) est une suite géométrique de raison q, q 1, on obtient : N N, S N = 1 qn+1. n+1 1 S N = 1 1

1 Mesure et intégrale

14 Chapitre 14. Théorème du point fixe

20. Algorithmique & Mathématiques

[ édité le 10 juillet 2014 Enoncés 1. Exercice 6 [ ] [correction] Si n est un entier 2, le rationnel H n =

Séries réelles ou complexes

CHAPITRE 2 SÉRIES ENTIÈRES

Séquence 5. La fonction logarithme népérien. Sommaire

Les algorithmes de tri

EXERCICES : DÉNOMBREMENT

Convergences 2/2 - le théorème du point fixe - Page 1 sur 9

FEUILLE D EXERCICES 17 - PROBABILITÉS SUR UN UNIVERS FINI

Exo7. Déterminants. = 4(b + c)(c + a)(a + b). c + a c + b 2c Correction. b + a 2b b + c. Exercice 2 ** X a b c a X c b b c X a c b a X

Etude de la fonction ζ de Riemann

Les Nombres Parfaits.

Dénombrement. Introduction. 1 Cardinaux d'ensembles nis. ECE3 Lycée Carnot. 12 novembre Quelques dénitions

Comportement d'une suite

Suites et séries de fonctions

Processus et martingales en temps continu

Exercice I ( non spé ) 1/ u 1 = u / Soit P la propriété : u n + 4. > 0 pour n 1. P est vraie au rang 1 car u 1

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable

Consolidation. C r é e r un nouveau classeur. Créer un groupe de travail. Saisir des données dans un groupe

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable

Deuxième partie : LES CONTRATS D ASSURANCE VIE CLASSIQUES

LES ÉCLIPSES. Éclipser signifie «cacher». Vus depuis la Terre, deux corps célestes peuvent être éclipsés : la Lune et le Soleil.

Dénombrement. Chapitre Enoncés des exercices

x +1 + ln. Donner la valeur exacte affichée par cet algorithme lorsque l utilisateur entre la valeur n =3.

capital en fin d'année 1 C 0 + T C 0 = C 0 (1 + T) = C 0 r en posant r = 1 + T 2 C 0 r + C 0 r T = C 0 r (1 + T) = C 0 r 2 3 C 0 r 3...

STATISTIQUE : TESTS D HYPOTHESES

55 - EXEMPLES D UTILISATION DU TABLEUR.

UNIVERSITE MONTESQUIEU BORDEAUX IV. Année universitaire Semestre 2. Prévisions Financières. Travaux Dirigés - Séances n 4

II LES PROPRIETES DES ESTIMATEURS MCO 1. Rappel : M1 LA REGRESSION : HYPOTHESES ET TESTS Avril 2009

2 ième partie : MATHÉMATIQUES FINANCIÈRES

Statistique descriptive bidimensionnelle

Chap. 5 : Les intérêts (Les calculs financiers)

STATISTIQUE AVANCÉE : MÉTHODES

TRANSFERT DE CHARGE DANS UN RÉSEAU DE PROCESSEURS TOTALEMENT CONNECTÉS (*) par Maryse BÉGUIN ( 1 )

Polynésie Septembre Exercice On peut traiter la question 4 sans avoir traité les questions précédentes.

3.1 Différences entre ESX 3.5 et ESXi 3.5 au niveau du réseau. Solution Cette section récapitule les différences entre les deux versions.

Chap. 6 : Les principaux crédits de trésorerie et leur comptabilisation

Chap. 6 : Les principaux crédits de trésorerie et leur comptabilisation

Processus géométrique généralisé et applications en fiabilité

Sommaire Chapitre 1 - L interface de Windows 7 9

SÉRIES STATISTIQUES À DEUX VARIABLES

4 Approximation des fonctions

Groupe orthogonal d'un espace vectoriel euclidien de dimension 2, de dimension 3

PROMENADE ALÉATOIRE : Chaînes de Markov et martingales

UNIVERSITÉ DE SFAX École Supérieure de Commerce

Compte Sélect Banque Manuvie Guide du débutant

Statistiques appliquées à la gestion Cours d analyse de donnés Master 1

Introduction : Mesures et espaces de probabilités

Baccalauréat S Asie 19 juin 2014 Corrigé

c. Calcul pour une évolution d une proportion entre deux années non consécutives

Gérer les applications

Module 3 : Inversion de matrices

Réseaux d ondelettes et réseaux de neurones pour la modélisation statique et dynamique de processus

La France, à l écoute des entreprises innovantes, propose le meilleur crédit d impôt recherche d Europe

Exercices de mathématiques

Cours 5 : ESTIMATION PONCTUELLE

Des résultats d irrationalité pour deux fonctions particulières

POLITIQUE ECONOMIQUE ET DEVELOPPEMENT

UV SQ 20. Automne Responsable d Rémy Garandel ( m.-el. remy.garandel@utbm.fr ) page 1

Cours de Statistiques inférentielles

Chapitre 3 : Transistor bipolaire à jonction

Statistique Numérique et Analyse des Données

Examen final pour Conseiller financier / conseillère financière avec brevet fédéral. Recueil de formules. Auteur: Iwan Brot

Probabilités et statistique pour le CAPES

Intégration et probabilités ENS Paris, TD (20)13 Lois des grands nombres, théorème central limite. Corrigé :

Université de Bordeaux - Master MIMSE - 2ème année. Scoring. Marie Chavent machaven/

Chaînes de Markov. Arthur Charpentier

RECHERCHE DE CLIENTS simplifiée

Neolane Message Center. Neolane v6.0

Etude Spéciale SCORING : UN GRAND PAS EN AVANT POUR LE MICROCRÉDIT?

PROBLEMES DIOPTIMISATION EN NOMBRES ENTIERS J. L. NICOLAS

Terminale S. Terminale S 1 F. Laroche

Logiciel de synchronisation de flotte de baladeurs MP3 / MP4 ou tablettes Androïd

Chapitre 2 SONDAGE ALEATOIRE SIMPLE OU A PROBABILITES EGALES. 2.1 DEFINITIONS 2.2 SONDAGE ALEATOIRE SIMPLE SANS REMISE (PESR) 2.2.

Télé OPTIK. Plus spectaculaire que jamais.

RESOLUTION DES FLOW SHOP STOCHASTIQUES PAR LES ORDRES STOCHASTIQUES. DERBALA Ali *)

La tarification hospitalière : de l enveloppe globale à la concurrence par comparaison

Formation d un ester à partir d un acide et d un alcool

Université Victor Segalen Bordeaux 2 Institut de Santé Publique, d Épidémiologie et de Développement (ISPED) Campus Numérique SEME

Simulations interactives de convertisseurs en électronique de puissance

Les solutions mi-hypothécaires, mi-bancaires de Manuvie. Guide du conseiller

Tempêtes : Etude des dépendances entre les branches Automobile et Incendie à l aide de la théorie des copulas Topic 1 Risk evaluation

One Office Voice Pack Vos appels fixes et mobiles en un seul pack

DETERMINANTS. a b et a'

La fibre optique arrive chez vous Devenez acteur de la révolution numérique

Le chef d entreprise développe les services funéraires de l entreprise, en

Principes et Méthodes Statistiques

Le marché du café peut être segmenté en fonction de deux modes de production principaux : la torréfaction et la fabrication de café soluble.

COMMENT ÇA MARCHE GUIDE DE L ENSEIGNANT 9 E ANNÉE

Initiation à l analyse factorielle des correspondances

Un nouvel opérateur de fusion adaptatif. A new adaptive operator of fusion. 1. introduction

Une action! Un message!

Mécanismes de protection contre les vers

Les nouveaux relevés de compte

Présentation & organisation du cours. Introduction : décider en milieu industriel. Les méta-heuristiques. Le travail à réaliser

Transcription:

Licece iformatique - L Aée 0/0 Coceptio d algorithmes et applicatios (LI) COURS Résumé. Ce cours est ue iitiatio à quelques grads pricipes algorithmiques (Diviser pour Réger, Programmatio Dyamique, Algorithmes Gloutos,...) par leur mise e applicatio das des situatios variées (umérique, graphique, géométrique,...). Cette première séace itroductive est cosacrée à quelques covetios et rappels (pseudo-code, comportemet asymptotique), ous itroduiros aussi la otio d algorithme Diviser pour Réger, avec des applicatios das le cas du problème du tri (Tri-fusio, Quicksort) et de système de pesées. E coclusio, ous doeros le théorème maître qui permet d obteir des bores asymptotiques sur la plupart des foctios recotrées lors de l aalyse de coût des algorithmes Diviser pour Réger.. Itroductio De tout temps les hommes ot cherché des méthodes pour systématiser leurs raisoemets. La divisio ou l algorithme d Euclide pour trouver le PCGD de deux ombres remotet à 00 as avat otre ère. Systématiser, c est assurer la reproductibilité (et doc l appretissage) des méthodes, c est aussi assurer leur trasmissibilité das le temps et das l espace sous ue forme compréhesible par tous. Afi de trasmettre, il faut garatir que les méthodes proposées doet bie ce à quoi l o aspire (sio o parle d heuristique), à la fois das le but de covaicre l autre, mais aussi das le souci costructiviste de garatir la cohérece de l édifice des savoirs (par la certificatio de chacue de ses briques). Plus récemmet, avec l avèemet de l iformatique, o accorda u soi tout particulier à la descriptio formelle des algorithmes afi d e faciliter l exportatio vers les différets lagages iformatiques moderes. C est le but de l écriture algorithmique e pseudo-code qui fera l objet du premier préambule. Le derier poit, et ce est pas le moidre quad l o pese algorithmique, cosiste à trouver les méthodes les plus écoomiques possibles que ce soit e termes de temps, de mémoire ou de tout autre chose. Voilà doc ce que l o eted ici par algorithmique et c est ce que ous pouvos résumer aisi : l algorithmique (terme qui viet du surom Al-Khuwarizmi d u célèbre mathématicie arabe (780-80 ap. JC) à qui l o doit aussi le mot algèbre) est la sciece qui cosiste à trouver des méthodes formelles et certifiées pour résoudre de maière automatique et le plus efficacemet possible des problèmes doés. Das ce cours, ous ous proposos, plus qu à l étude ou à la recherche d algorithme particulier, de mettre e lumière trois types uiversels d algorithmes que sot : les algorithmes de type Diviser pour Réger, les algorithmes de type Programmatio dyamique et les algorithmes de type Glouto. Notre objectif état de motrer qu il existe au dessus du mode sigulier des algorithmes, de grads pricipes algorithmiques commus. Pour isister sur le caractère trasversal de ces pricipes, pour chacu d eux ous proposeros des applicatios qui couvret u champ large de l algorithmique classique, disos pour rester catégoriel das ses ciq ramificatios suivates : l algorithmique umérique et matriciel, la géométrie algorithmique, l algorithmique des graphes, l ordoacemet et les tris, l algorithmique des séqueces. Ce cours s architecturera autour de cette idée pricipale.

Coceptio d algorithmes et applicatios.. Covetio d écriture et istructios du pseudo-code. Nous écriros das la mesure du possible les pseudo-codes sous la forme suivate : Algorithme : Paradigme d écriture des pseudo-codes Etrées : deux etiers a et b. Sorties : u etier. ADDITION(a, b) s := a + b Retourer s Les pseudo-codes que ous écriros aurot doc u trait impératif das le ses où ous disposeros pour les costruire de l affectatio que l o otera :=. Nous utiliseros les istructios suivates qui serot toujours écrites e caractère gras. La boucle avec compteur : pour variable allat de etier à etier faire expressio La boucle à arrêt coditioel : tat que coditio faire expressio L istructio coditioelle : si coditio alors expressio sio expressio Le retour (qui revoie la sortie de l algorithme) : retourer expressio L arrêt forcé : arrêt commetaire. Diviser pour réger.. De l usage de l algorithmique, tri-isertio versus tri-fusio. Première partie : le tri-isertio. Nous ous itéressos ici au problème du tri d ue séquece de ombres pour motrer e quoi les méthodes employées peuvet jouer u rôle importat sur les temps d exécutio. Ce sera aussi l occasio pour ous d itroduire la otio d algorithme de type Diviser pour Réger. U premier algorithme aïf (qui est pas de type diviser pour réger) appelé tri-isertio peut être décrit récursivemet comme suit : L etrée de l algorithme est ue séquece de ombres L = (a,..., a ). La sortie sera ue séquece costituée des mêmes ombres mais triés das l ordre croissat. O commece avec la séquece de départ L = L, supposos par récurrece que L k soit la séquece dot les k premiers élémets ot été triés das l ordre croissat. O obtiet L k+ e isérat a k+ à la boe place parmi les k premiers élémets de L k. O itère ce procédé, jusqu à l obtetio de L qui est autre que la séquece triée demadée. Pour la représetatio e pseudo-code de la séquece de ombres, o utilisera u tableau, ce qui permet u accès direct aux doées, mais aussi d effectuer des opératios sur le tableau lui-même sas copie. O dit alors que le TRI-INSERTION est u algorithme de tri sur place. Nous obteos le pseudo-code suivat :

UPMC Aée / Algorithme : TRI-INSERTION Etrées : T [..l] u tableau de ombres représetat la séquece. Sorties : Rie mais le tableau T est trié. TRI-INSERTION(T ) Soit l la logueur de T pour j allat de à l faire tmp := T [j] i := j tat que i 0 et T [i] >tmp faire T [i + ] := T [i] i := i 6 7 8 9 T [i + ] := tmp La seule écriture d u pseudo-code e suffit certes pas à valider u algorithme. Nous distiguos deux poits fodametaux à vérifier impérativemet : s assurer que l algorithme se termie. vérifier qu il doe toujours le bo résultat. De plus, o e peut cocevoir l écriture d u algorithme sas essayer de doer ue idée de so coût algorithmique. Aalyse de l algorithme TRI-INSERTION. Preuve de Termiaiso : La boucle Tat que lige 6 s achève toujours (elle cotiet au plus l itératios). De même, la boucle Pour j allat de à l produit l itératios. Doc, l algorithme se termie après u ombre fii d étapes. Preuve de validité : O a u ivariat de boucle pour la boucle Pour j allat de à l de la lige qui est les j premiers élémets sot triés e l ordre croissat. Doc à la fi de l algorithme, c est-à-dire quad j=l, le tableau est totalemet trié. Aalyse de la complexité das le pire des cas e ombre de comparaisos : Das le pire des cas, la boucle Tat que fait j comparaisos à l étape j de la boucle de la lige. Ce qui fait e sommat, ++...+(l ) comparaisos au total, soit l(l )/ comparaisos. Or, ce cas se produit quad o cherche à trier toute séquece strictemet décroissate. Le tri-isertio est doc u algorithme quadratique das le pire des cas e ombre de comparaisos. Nous allos maiteat proposer u autre algorithme de tri appelé tri-fusio, qui repose sur le premier pricipe que l o désire mettre e exergue das le cours, le paradigme, Divide ut imperes (Diviser pour Réger) formule latie attribuée à Philippe II de Macédoie (8-6) et reprise par Nicolas Machiavel (69-7)... A propos de Diviser pour Réger. La stratégie Diviser pour Réger cosiste à scider u problème e sous-problèmes de même ature sur des istaces plus petites, à résoudre ces sousproblèmes, puis à combier les résultats obteus pour apporter ue solutio au problème posé. Il s agit doc d ue démarche essetiellemet récursive. Le paradigme Diviser pour Réger doe doc lieu à trois étapes à chaque iveau de récursivité : Diviser : Le problème est scidé e u certai ombre de sous-problèmes ; Réger : Résoudre les sous-problèmes récursivemet ou, si la taille d u sous-problème est assez réduite, le résoudre directemet ; Combier : Réorgaiser les solutios des sous-problèmes e ue solutio complète du problème iitial.

Coceptio d algorithmes et applicatios.. De l usage de l algorithmique, tri-isertio versus tri-fusio. Deuxième partie : le tri-fusio. Das le cas du tri-fusio l algorithme repose sur la décompositio suivate : Diviser : O scide la séquece de logueur l e séqueces de taille l et l. Réger : O résout chacue des deux sous-séqueces e utilisat récursivemet le tri-fusio si elle est pas réduite à u élémet et e e faisat rie sio. Combier : Fusioer les deux sous-séqueces triées e ue séquece triée. Commeços par décrire e pseudo-code l algorithme FUSION(T, p, q, r) qui fusioe les tableaux triés T [p..q] et T [q +..r] où T [a..b] désige le sous-tableaux de T costitué des élémets compris etre a et b iclus. Algorithme : FUSION Etrées : T [..l] u tableau de ombres, p, q et r trois etiers. Sorties : Rie mais le tableau T est modifié. FUSION(T, p, q, r) Soit l la logueur de T := q p + := r q créer tableaux G[.. + ] et D[.. + ] pour i allat de à faire G[i] := T [p + i ] 6 7 8 9 0 6 7 8 9 0 pour j allat de à faire D[j] := T [q + j] G[ + ] := D[ + ] := i := j := pour k allat de p à r faire si G[i] < D[j] alors T [k] := G[i] i := i + sio T [k] := D[j] j := j + Le pseudo-code du tri-fusio est alors : Algorithme : TRI-FUSION Etrées : T [..l] u tableau de ombres, p et r des etiers. Sorties : Rie mais le tableau T est trié etre p et r. TRI-FUSION(T, p, r) 6 si p < r alors q := (p+r) TRI-FUSION(T, p, q); TRI-FUSION(T, q +, r); FUSION(T, p, q, r);

UPMC Aée / Pour obteir u tableau trié T, il suffit de faire l appel TRI-FUSION(T,, logueur(l)). Mais avat de cotiuer, vérifios la validité de ces deux algorithmes. Aalyse de l algorithme FUSION : Preuve de Termiaiso : Nous avos das cet algorithme que des boucles de type compteur. Doc l algorithme s arrête après u ombre fii d étapes. Preuve de Validité : Nous allos utiliser pour ce faire, l ivariat de boucle (pour la boucle de la lige ) suivat : le tableau T [p..k ] cotiet les k p plus petits élémets de la cocatéatio G[.. +]D[.. +], e ordre croissat et G[i] et D[j] sot les plus petits élémets de leurs tableaux à e pas avoir été copiés das T. Vérifios que c est bie u ivariat de boucle. Au premier passage lige, o a k = p et doc T [p..k ] est vide. Doc o peut dire qu il cotiet bie les 0 plus petits élémets de G[.. + ]D[.. + ] e ordre croissat. Comme i = j =, G[i] et D[j] sot les plus petits élémets de leur tableau respectif à e pas avoir été copiés. Par iductio : Supposos que l ivariace soit vérifiée pour les k premières itératios de la boucle. Nous divisos le problème e deux cas : soit G[i] < D[j], soit G[i] D[j], ous traitos le premier cas, le deuxième état idetique mutatis mutadis. Comme G[i] est le plus petit élémet à e pas avoir ecore été copié, il s esuit que G[i] est copié e T [k] et comme T [p..k ] par hypothèse cotiet les k p plus petits élémets, o a que T [p..k] cotiet les k p + plus petits élémets classés e ordre croissat. Fialemet i est icrémeté lige 7 ce qui assure que G[i] est bie maiteat le plus petit élémet de G o copié. O a bie à la ouvelle itératio l ivariat coservé. Validité fiale : La boucle s arrête quad k = r +. Doc d après l ivariat le tableau T [p..k ] qui est autre que T [p..r] cotiet e ordre croissat tous les élémets de G[.. +] et D[.. +] sauf les deux plus grads (e effet o s arrête après avoir ragé r p + élémets et G[.. + ] et D[.. + ] cotieet à eux deux r p + élémets. Or les deux plus grads élémets e sot autres que les deux setielles que l o avait rajoutées (G[ + ] =: et D[ + ] =: ). Aalyse de la Complexité e ombre de comparaisos : O fait exactemet ue comparaiso par itératios de la boucle lige. Soit exactemet + comparaisos pour fusioer deux listes de tailles respectives et. Aalyse de l algorithme TRI-FUSION : Preuve de Termiaiso : Par iductio sur la logueur de la zoe [p..r] à trier, pour TRI-FUSION(T, p, r) avec p = r, e fait que retourer T doc est fii. Supposos que pour tous r et p tels que r p < k, l algorithme TRI-FUSION(T, p, r) se termie, alors pour tout p, TRI-FUSION(T, p, p + k) se termie aussi car il appelle recursivemet trois foctios qui par hypothèse d iductio se termiet. Preuve de Validité : Par iductio sur la logueur de la zoe à trier, si p = r, c est trivial. Supposos que pour tous r et p tels que r p < k, l algorithme TRI-FUSION(T, p, r) soit valide. Etudios, TRI-FUSION(T, p, r) pour r p = k, comme TRI-FUSION(T, p, (p+r) ) et TRI-FUSION(T, (p+r) +, r) sot valides par hypothèse d iductio et que FUSION doe u tableau trié à partir de deux tableaux triés, o a que TRI-FUSION(T, p, r) revoie bie le tableau T trié etre p et r... Aalyse de la complexité des algorithmes Diviser pour Réger. Supposos que l o ait u algorithme de type Diviser pour Réger, qui suit le pricipe suivat : pour être résolu le problème iitial sur ue istace de taille est divisé e a sous-problèmes sur des istaces de

6 Coceptio d algorithmes et applicatios tailles b. Puis ces solutios sot combiées e ue solutio du problème de taille. Il y a doc plusieurs évéemets qui peuvet avoir u coût : le coût (qui déped de la taille de l istace) écessaire à diviser le problème de taille. Il sera oté D(). le coût (dépedat lui-aussi de la taille de l istace) pour combier les solutios des sousproblèmes e ue solutio du problème de taille, oté C(). Efi, otos T () le temps écéssaire pour trouver la solutio de taille. Le pricipe récursif diviser pour réger ous amèe à ue récurrece du type T () = at ( b ) + D() + C(). De plus o peut supposer que pour les istaces de taille, le coup pour trouver la solutio est fixé et doc costat, T () = c. Les coûts d exécutio des algorithmes de type Diviser pour Réger suivet doc toujours le même type de récurrece mathématique. Nous allos voir qu e gééral o sait assez bie trouver le comportemet asymptotique des foctios T défiies aisi. Avat de doer ue bore pour le coût d exécutio de l algorithme TRI-FUSION, accordos ous quelques rappels cocerat les comportemets asymptotiques... Rappel sur les otios de comportemet asymptotique. O ote F N, l esemble des foctios de N das R + (Ce sot les suites à valeurs das R + ). E algorithmique, ous ous itéressos spécifiquemet au comportemet au voisiage de l ifii de foctios de F N, ce qui est ue (boe?) mesure permettat de comparer l efficacité des algorithmes. Pour ce faire, état doées deux foctios f et g de F N, o dira que f est domiée par g au voisiage de l ifii (ou ecore que g est ue bore asymptotique supérieure de f) si et seulemet s il existe deux costates strictemet positives c et 0 telles que pour tout > 0 o a f () < cg (). O otera alors f = O(g) ou bie g = Ω(f). O dira que f et g sot semblables au voisiage de l ifii (ou ecore que g est ue bore asymptotique approchée de f) si et seulemet si f = O(g) et f = Ω(g). O otera alors f = Θ(g). E particulier, état doée ue foctio f, o essayera toujours de lui trouver u équivalet parmi ue échelle de comparaisos simples (du type a log() b, expoetielle,...). Propriété. La relatio R défiie par frg f = Θ(g) est ue relatio d équivalece. La relatio R (resp. R ) défiie par fr g f = Ω(g) (resp. fr g f = O(g)) est u préordre (i.e. ue relatio biaire, reflexive et trasitive) sur F N..6. Coût asymptotique e ombre de comparaisos pour l algorithme TRI-FUSION. O remarque que das le TRI-FUSION, le ombre de comparaisos est le même pour toutes les istaces (les séqueces) de même taille. E particulier, il faut autat de temps au TRI- FUSION pour trier (,,,,, 6, 7, 8, 9) que pour trier (,, 8, 7,, 9, 6,, )!, alors que pour le TRI-INSERTION le ombre de comparaisos dépedait du désordre de la suite. Doc, pour TRI-FUSION, il suffit de chercher à trouver le ombre de comparaisos faites pour ue istace de logueur. Le fait de diviser ue séquece e deux sous-séqueces se fait sas comparaiso. La seule partie de TRI-FUSION où il y a des comparaisos est das FUSION. C est-à-dire das l algorithme qui combie les sous-solutios. Or ous savos que FUSION fait comparaisos pour costruire ue séquece triée de logueur. Doc, si T () désige le ombre de comparaisos das TRI-FUSION pour ue istace de logueur, o obtiet la récurrece suivate : T () = T ( ) + T ( ) +. De plus, il est clair que T () = 0. Pour évaluer cette foctio au voisiage de l ifii, o va commecer par calculer T ( ). Lemme. Soit T défiie par T () = T ( ) + T ( ) + et T () = 0, alors T ( ) =. Preuve. Si = 0, o a bie T ( ) = T () = 0. Motros que, T ( ) = T ( + ) = ( + ) +. Comme T ( + ) = T ( ) + +, si T ( ) = alors T ( + ) = ( ) + + = ( + ) +. Lemme. Soit T défiie par T () = T ( ) + T ( ) + et T () = 0, alors T est croissate. Preuve. T () T (0) est clairemet positif. Motros que, ( i, T (i) T (i ) 0) T ( + ) T () 0.

UPMC Aée / 7 Comme pour pair () et pour impair T ( + ) T () = (T (/) + T (/ + ) + + ) (T (/) + T (/) + ) = T (/ + ) T (/) + () T ( + ) T () = (T (( + )/) + T (( + )/) + + ) (T (( )/) + T (( + )/) + ) = T (( + )/) T (( + )/ ) +, si, ( i, T (i) T (i ) 0), alors e utilisat () et (), o a T ( + ) T () 0. Par iductio, il s esuit que T est croissate. Théorème. Le ombre de comparaisos T () que fait l algorithme TRI-FUSION pour trier ue séquece de logueur vérifie T () = Θ( log()). Preuve. Pour tout N, il existe u uique m tel que m < m+ (il suffit de predre m = log ). Comme T est croissate, o a T ( m ) T () < T ( m+ ). Doc m m T () < (m + ) m+. Ceci implique pour assez grad que c log < T () < c log..7. Le théorème maître. Le théorème maître permet d avoir ue idée du comportemet asymptotique de la plus part des récurreces iduites par les algorithmes de type Diviser pour Réger, ous le proposos sas démostratio à ce stade. Théorème. (Résolutio de récurreces Diviser pour Réger ). Soiet a et b > deux costates, soiet f ue foctio à valeurs das R + et U ue foctio de N das R + vérifiat pour tout suffisammet grad l ecadremet suivat : au( b )+f() U() au( b )+f(). U peut alors être borée asymptotiquemet comme suit : () Si f() = O( (log b a) ɛ ) pour ue certaie costate ɛ > 0, alors U() = Θ( log b a ). () Si f() = Θ( log b a ), alors U() = Θ( log b a log ). () Si f() = Ω( (log b a)+ɛ ) pour ue certaie costate ɛ > 0, et si o a asymptotiquemet pour ue costate c <, af(/b) < cf(), alors U() = Θ(f()). Remarques : Le théorème maître e couvre pas toutes les possibilités pour f(). Aisi, il y a ue lacue etre les cas et (et les cas et ). Par exemple la récurrece U() = U(/)+ log(), est pas traitable avec le théorème maître. Exemples : U() = U( / ) + O( α ) si α = /, o est das le cas et doc U() = Θ(). Si α = alors o est das le cas et doc U() = Θ( l()). Si α = alors o est das le cas et doc U() = Θ( )..8. Le TRI-RAPIDE. Le TRI-RAPIDE, aussi appelé tri de Hoare (du om de so iveteur) ou tri par segmetatio ou tri des bijoutiers ou e aglais quicksort, est u algorithme de tri itéressat à plus d u titre. Tout d abord, comme le TRI-INSERTION, l algorithme TRI-RAPIDE opère uiquemet sur la séquece à trier. E particulier, il e crée pas de tableau auxiliaire comme c est le cas pour le TRI-FUSION. De plus, l algorithme TRI-RAPIDE a u coût e ombre de comparaisos raisoable. Nous allos motrer e effet que le ombre moye de comparaisos effectuées pour trier ue séquece quelcoque de logueur est Θ( log ). Ce qui e moyee est aussi bo que le TRI-FUSION. L algorithme TRI-RAPIDE repose sur le pricipe Diviser pour Réger de la maière suivate : Diviser : Soit T [p..r] le tableau coteat la séquece d etiers que l o étudie. O fixe ue valeur v de T (ici v = T (r)) appelée pivot et o réarrage le tableau T [p..r] de telle sorte qu après cela les tableaux évetuellemet vides, T [p..q ], T [q +..r], cotieet respectivemet tous les élémets de T [p..r ] dot les valeurs sot plus petites ou égales à v et toutes les valeurs de

8 Coceptio d algorithmes et applicatios T [p..r ] strictemet plus grades que v et que T [q] = v. Réger : O résout par appel récursif le problème sur les sous-tableaux T [p..q ] et T [q +, r] ; Combier : Il y a rie à faire. Commeços par doer le pseudo-code de REARRANGEMENT(T, p, r). Algorithme : REARRANGEMENTS Etrées : T [..] u tableau de ombres, p et r des etiers. Sorties : u etier (la positio du pivot). REARRANGEMENTS(T, p, r) v :=T [r]; i := p ; pour j allat de p à r faire si T [j] v alors i := i + ; tmp := T [i] ; T [i] := T [j] ; T [j] := tmp; 6 7 8 9 0 tmp := T [i + ]; T [i + ] := T [r]; T [r] := tmp; retourer i + ; Aalyse de l algorithme REARRANGEMENT Preuve de Termiaiso : Nous avos das cet algorithme qu ue boucle de type compteur. Doc l algorithme s arrête après u ombre fii d étapes. Preuve de Validité : Nous allos utiliser pour ce faire l ivariat de boucle (pour la boucle de la lige ) suivat : () Si p k i, alors T [k] v. () Si i + k j, alors T [k] > v. () Si k = r, alors T [k] = v. Iitialisatio : Avat la première itératio, i = p et j = p. Il y a pas de valeur etre p et i, i de valeur etre i + et j, de sorte que les deux premières coditios de l ivariat de boucle sot satisfaites de maière triviale. L affectio e lige satisfait à la troisième coditio. Par iductio : il y a deux cas à cosidérer, selo le résultat du test e lige. Quad T [j] > v l uique actio faite das la boucle est d icrémeter j. Ue fois j icrémeté, la coditio est vraie pour T [j ] et tous les autres élémets restet ichagés, doc l ivariat est préservé. Quad T [j] v, la variable i est icrémeté, T [i] et T [j] sot échagés, puis j est icrémeté. Compte teu de la permutatio, o a maiteat, T [i] v et la coditio est respectée. De même, o a aussi T [j ] > v, car l élémet qui a été permuté avec T [j ] est, d après l ivariat de boucle, plus grad que v. Validité fiale : À la fi, j = r. Par coséquet, chaque élémet du tableau est das l u des trois esembles décrits par l ivariat et l o a réarragé les valeurs du tableau de telle sorte qu il débute par les valeurs iférieures ou égales à v, puis l élémet v, puis se fiit par les valeurs supérieures à v. Aalyse de la Complexité e ombre de comparaisos : O fait ue comparaiso à chaque itératio de la boucle de la lige, soit r p comparaisos. Doc pour ue istace de logueur, l algorithme REARRANGER opère comparaisos.

UPMC Aée / 9 Maiteat, il est aisé de décrire u algorithme de type Diviser pour Réger à partir de RE- ARRANGEMENT, e voici le pseudo-code : Algorithme 6 : TRI-RAPIDE Etrées : T [..] u tableau de ombres, p et r des etiers. Sorties : Rie mais le tableau T est trié etre p et r. TRI-RAPIDE(T, p, r) si p < r alors q := REARRANGEMENT(T, p, r); TRI-RAPIDE(T, p, q ); TRI-RAPIDE(T, q +, r); Pour trier u tableau T, il suffit alors de faire l appel TRI-RAPIDE(T,, logueur(t )). Aalyse de l algorithme TRI-RAPIDE Preuve de Termiaiso : Par iductio sur la logueur de la zoe [p..r] à trier, l algorithme TRI-RAPIDE(T, p, r) avec p = r e fait aucu appel à REARRANGEMENT(T, p, r) doc il est fii. Supposos que pour tous r et p tels que r p < k, l algorithme TRI-RAPIDE(T, p, r) se termie, alors pour tout p, TRI-RAPIDE(T, p, p + k) se termie aussi car il appelle récursivemet trois foctios qui par hypothèse d iductio se termiet. Preuve de Validité : Par iductio sur la logueur de la zoe à trier, si p = r, c est trivial. Supposos que pour tous r et p tels que r p < k, l algorithme TRI-RAPIDE(T, p, r) revoie le tableau T trié etre p et r iclus, Cosidéros TRI-RAPIDE(T, p, r) avec r p = k. Comme TRI-RAPIDE(T, p, q ) et TRI-RAPIDE(T, q +, r) sot valides par hypothèse d iductio, o a bie que tout le tableau T est trié de p à r. Aalyse de la Complexité e ombre de comparaisos das le pire des cas : Notos T () le ombre de comparaisos das le pire des cas pour les istaces de taille. E utilisat la costructio récursive de TRI-RAPIDE et le fait que l algorithme REARRANGEMENT opère comparaisos sur ue séquece de logueur, o obtiet la récurrece suivate : T () = max (T (q) + T ( q )) +. 0 q O va vérifier par récurrece l hypothèse que pour tout, T () <. Supposos que ceci soit vrai pour < 0, alors ( T ( 0 ) < max q + ( 0 q ) ) + 0. 0 q 0 Or la foctio f(q) = q +( 0 q ) est maximum aux extrémités de l itervalle 0 q 0. Doc, ( max q + ( 0 q ) ) = ( 0 ), 0 q 0 et T ( 0 ) < ( 0 ) + 0 < 0. Doc T () = O( ) E regardat le foctioemet de l algorithme TRI-RAPIDE sur l istace (,,..., ), o remarque qu il exécute ( ) + ( ) +... + comparaisos, doc T () = Θ( ). O peut être quelque peu déboussolé au regard des résultats obteus. E effet, das le pire des cas, l algorithme TRI-RAPIDE est plutôt mauvais (quadratique). De plus, il est mauvais sur des istaces déjà triées! Pourtat, comme ous allos le motrer le ombre de comparaisos e moyee est très bo (e log pour ue istace de taille ). Aux vues des autres avatages qu il présete, c est u algorithme très souvet implémeté (par exemple, c est l algorithme implémeté

0 Coceptio d algorithmes et applicatios das JAVA pour les tris). Aalyse de la Complexité e ombre moye de comparaisos : Le calcul de la complexité du tri rapide e moyee est u peu plus compliqué. Déjà, il faut défiir u espace de probabilité. O va cosidérer l esemble E de toutes les séqueces de logueur dot tous les élémets sot disticts. Soit L = (a,..., a ) ue séquece prise au hasard (équiprobablemet) das E, la probabilité que a soit après triage le i-ème élémet de la séquece est clairemet /, de sorte que le coût moye e ombre de comparaisos C vérifie : C 0 = 0, C = 0 et C = + (C i + C i ). i=0 Le terme géérique C peut s écrire : () C = + C i i=0 = + C + C i i=0 = + C + ( + = C + (C ) + = + C + ( ) ) C i i=0 ( )( ) E posat D = C /( + ), la récurrece s écrit alors : D 0 = 0 et D = D + ( + ) ( + ). O rappelle que la série H = H + / est la série harmoique qui vérifie asymptotiquemet H = l() + 0, 77... + Θ(/) où 0,77... est la costate d Euler. O e déduit, comme le terme (+) est égligeable, que D = Θ(l()) et doc que C = Θ( l())..9. Recherche d u élémet défectueux avec ue balace. O dispose d u esemble de pièces d or toutes de même poids sauf ue défectueuse qui est plus légère. Le problème cosiste à retrouver la pièce défectueuse e utilisat ue balace de type Roberval (balace à plateaux qui permet de dire uiquemet s il y a u plateau plus lourd que l autre). O va modéliser le problème de la faço suivate : Soit T [..] u tableau de caractères qui cotiet ( ) lettres P (les boes pièces d or) et ue lettre Q (la pièce défectueuse). O cherche doc à trouver l idice de la case qui cotiet la lettre Q grâce à ue foctio PESÉE(T,,,, ) qui revoie (, ) si le Q est das l itervalle [, [, (, ) si le Q est das l itervalle [, [ et (, ) sio. De plus, o suppose que l o e peut utiliser la foctio PESÉE que si les itervalles [, ] et [, ] sot de même logueur. Par covetio, [, m[= si m. O propose de résoudre ce problème grâce à l algorithme de type diviser pour règer suivat : Diviser : O répartit les pièces e tas de tailles respectivemet [/], [/], [/]. ([x] idique l etier le plus proche de x). Réger : O pèse les deux premiers tas, s ils sot de même poids, o recommece iductivemet avec le tas, sio o recommece avec le tas vers lequel la balace e peche pas (le plus léger). Ceci doe le pseudo-code suivat :

UPMC Aée / Algorithme 7 : ChercheQ Etrées : T u tableau coteat des P et u Q, d et f deux etiers. O suppose que la positio du Q est etre d et f. Sorties : la positio de la lettre Q das T [d..f]. ChercheQ(T, d, f) si d = f alors retourer d sio e = [ f d+ ]; = d + e; = d + e; (p, q) =PESÉE(T, d,,, f); retourer ChercheQ(T, p, q); 6 7 8 9 Aalyse de l algorithme ChercheQ Preuve de Termiaiso : Par iductio sur la logueur f d de l itervalle [d, f], si la logueur est, l algorithme retoure d, sio il rappelle ue istace qui par iductio se termie. Preuve de Validité : Par iductio sur la logueur de l itervalle [f, d], si la logueur est, l algorithme retoure la boe valeur. Supposos qu il retoure la boe valeur pour les itervalles plus petits que l, quad o lace l exécutio sur u itervalle de logueur l, la foctio PESÉE permet de détermier u sous-itervalle de taille iférieure à l (de l ordre de l/) das lequel se trouve le Q. Par iductio, l appel de ChercheQ sur cet itervalle revoie la boe valeur. Doc ChercheQ revoie la boe valeur. Aalyse de la Complexité e ombre de pesées : Notos T () le ombre de pesées écessaires pour trouver Q das u tableau de taille. Le pricipe Diviser pour Réger permet de doer la formule de récurrece pour T suivate : T () = 0 et T () = T (/) +. O e déduit que T () = Θ(log()).