IN-202-Cours
26 pages
Français

IN-202-Cours

Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres
26 pages
Français
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres

Description

IN202 - AlgorithmiqueNotes de CoursLaurent CanetLe 8 juin 2002Table des mati`eres1 Syst`eme formel de preuve de programme de O’Hare 31.1 R`egles et axiomes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.2 Construction de programmes sur invariant . . . . . . . . . . . . . . . 41.2.1 Exemple : somme des ´el´ements d’un tableau . . . . . . . . . . 52 Probl`emes de recherches 62.1 Remarques sur l’´evaluation de complexit´e d’un programme . . . . . . 62.2 Recherche dichotomique . . . . . . . . . . . . . . . . . . . . . . . . . 62.2.1 Code Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.2.2 Complexit´e . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.3 Recherche s´equentielle . . . . . . . . . . . . . . . . . . . . . . . . . . 82.3.1 Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.3.2 Complexit´e . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.4 Recherche arri`ere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.4.1 Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.4.2 Complexit´e . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Tris 113.1 Slowsort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113.1.1 Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113.1.2 Complexit´e . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113.2 Quicksort . . . . . . . . . . . . . . . . . . . . . . . . . . . ...

Informations

Publié par
Nombre de lectures 11
Langue Français

Extrait

IN202 - Algorithmique Notes de Cours
LaurentCetan
Le
8
juin
2002
Tabledesmatie`res
1Syste`meformeldepreuvedeprogrammedeOHare 1.1R`eglesetaxiomes............................. 1.2 Construction de programmes sur invariant . . . . . . . . . . . . . . . 1.2.1Exemple:sommedese´le´mentsduntableau.......... 2Proble`mesderecherches 2.1Remarquessurl´evaluationdecomplexit´edunprogramme...... 2.2 Recherche dichotomique . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.1 Code Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.2Complexite´............................ 2.3 Recherche ´ ntielle . . . . . . . . . . . . . . . . . . . . . . . . . . seque 2.3.1 Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.2Complexite´............................ 2.4Recherchearrie`re............................. 2.4.1 Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.2Complexite´............................ 3 Tris 3.1 Slowsort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.1 Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.2 Complexit´ e . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Quicksort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.1 Segmenter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.2 Code Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.3Complexit´eduQuicksort..................... 3.2.4Ame´liorationduquicksort.................... 3.3Complexit´eminimumdunalgorithmedetri.............. 4Approchediviserpourregn´er 4.1Diviserpourr´egner............................ 4.1.1 Tri Fusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2Limitesdelapprochediviserpourr`egner................ 5Complexit´edesalgorithmes 5.1 Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2Calculscourantsdanslecalculdescomplexit´es.............
1
3 3 4 5 6 6 6 7 7 8 8 8 9 9 10 11 11 11 11 12 12 13 13 15 15 16 16 16 16 18 18 18
6
Programmation Dynamique 6.1 Cas concret : fibonnaci . . . . . . . . . . . . . . . . . . . . . . . 6.2 Exemple : Multiplication de matrices . . . . . . . . . . . . . . . 6.2.1Exempledelimportanceduparenth`esage........ 6.2.2 Algorithme de calcul. . . . . . . . . . . . . . . . . . . . . 6.2.3Couˆtminimum....................... 6.2.4 Calcul optimal du produit . . . . . . . . . . . . . . . . . Exemple:Recherchedupluslongsous-motcommun`a2chaines 6.3.1Tailleduproble`me..................... 6.3.2 Reconstruction de la solution . . . . . . . . . . . . . . . 6.3.3 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3.4 Affichage du plus long sous mot . . . . . . . . . . . . . .
6.3
2
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
19 19 20 20 21 21 22 23 23 23 24 24
Chapitre 1
Syst`emeformeldepreuvede programme de O’Hare
Onpeutre´sumerunprobl`emeenuneformelogique: E P S |{z} |{z} |{z} Logique du 1er ordre Programme Logique du 1er ordre Dela`,plusieursreglesagissentsurcesenonces: ` ´ ´
1.1R`eglesetaxiomes R´egledelapost-condition: EP S0;S0S7EP S
Re´gledelapr´e-condition: E0P S;E0E7EP S
R´egleduou: EP S;E0P S7(EE0)P S
Re´gledutextitet:
EP S;EP S07EP(SS0)
3
R`egledusi-sinon: (EB)P S; (EB)QS7E{Si B alors P sinon Q}S Remarque:Le´valuationdeBnedoitpasmodierE. Re`gledutant-que: (EB)P E;7E{tant que B f aire P}(EB)
Axiomes d’affectation : EP A;AQS7E{P;Q}S
Exemple ::trermeno´D EP S;E0P S07(EE0)P(SS0) 1.EP S 2.E0P S0 3.EE0E 4. (EE0)P Ste1rusnoitidnocer´(P3) 5. (EE0)P S0oisnrue2e´ocdnti(Pr)t3 6. (EE0)P(SS0udeR()lge`ETsur 4 et 5) 7. (SS0)(SS0) 8. (EE0)P(SS0) (Postcondition sur 7 et 8)
1.2 Construction de programmes sur invariant Construire un prog d´crit par l’invariant, c’est utiliser une proposition ramme e bool´eenneI(x1, x2,∙ ∙ ∙, xn), fonction de plusieurs variablesxitleprobluid´ecriq,e`em a`uninstantdonne´.Lorsquelonveutfaireunalgorithmequire´soudEP Sas´ebsur un invariant, on doit donner plusieurs propositions : Invariant :selbD´ecritlaposiitnoudrpbo`lmeeenfonctiondevariaxi. Initialisation :Ce sont des conditions sur les variablesxi, tels que la proposition Eerv´itsoet´eiI(xit´egalem)lesoine.t Conditiondarrˆet:Ce sont des conditions sur les variablesxi, tels que la propo-sitionS´ilee,ogprmmraadneˆrrtsetre´v.Lee´ri´etvoisoitidnocaleuqsro e e doit avoir fini son traitement, etSe´irevt.ees Implications :Elles sont de la formeI(x1, x2,∙ ∙ ∙, xn)Vi(Pivraies)I(x01, x02,∙ ∙ ∙, x03). Ou`Pisopisitnontdespropresentee´r Onende´duitlexpression: I(xi)T AN T QU EoC(ˆet)arriondnditF AIRE PiI(xi)(oiodCndntieˆ)tarr
4
1.2.1Exemple:sommedese´le´mentsduntableau Soitunprogrammere´alisantlasommedetousles´ele´mentsde0a`n1 d’un tableauTutpnorrgmaemvPe´.Onveu:tnaviuslntari´encno´e n1 (n >0)PS=XT[i]! i=0
Onseproposedede´crireceprogrammeparlinvariant: Invariant :I(s, k)s=Pik=01T[i] .sest la somme deskrpmeeientsders´el´emT. Initialisation :s= 0 etkedessommmier0pree´em´sleia0ttnfs.eEnlaet0.= DoncI(0,v´st)e0.e´ire Conditiondarrˆet:k=n.Onsarreˆetolsruqlenaoear´s´lilaeemmosseden premierse´le´ments,commedemande´. Implication :I(s, k)(s=s+T[k])I(s, k+ 1).
En sortie du programme, on auraI(s, k)(k=n). La translation de cet algorithme enpseudolangageesttre`ssimple:
s <- 0 k <- 0 // Ici on a I(0,0) tant que (k != n) faire : s <- s + T[k] // Ici on a I(s,k+1) k <- k + 1 // Ici on a I(s,k) fin tant que // Ici on a I(s,n)
5
Chapitre 2
Proble`mesderecherches
Leprobl`emequenousnousposonsestderechercherune´l´ement(nombre,carac-te`reouautre)dansuntableauhomog`enede´lements.Laparticularite´decetableau estquilestdejatrie´danslordrecroissant(cequiimposedavoirunerelationdordre ` entreles´el´ements).
2.1Remarquessurle´valuationdecomplexite´dun programme Dansceparagrapheetceuxquisuivront,nousallons´evaluerletempsde´xecution des programmes en fonction de la taillenargosemm,orlbdpu.Com`emer2prpare cestcomparerlestempsde´xecutiondanslespiresdescasrespectifs.Lesconstantes de´pendentdelamachinequi´executeralalgorithme.
D´enition:LesePecedtgorpmmar´eomplexitO(f(n)) s’il existeαetn0tels que : nn0Tp(n)αf(n) O`uTp(nas.descpiresnelPeadarmmrpgoticuduondpsxe´eletnmeterperese´) Remarque :Si le programme P est enO(n), alors il est aussi enO(2n),O(n2) ou O(n2).
2.2 Recherche dichotomique Supposonsquelonchercheun´ele´mentnot´eedans un tableauT. Le programme derecherchedichotomiquequenousallonsmettreaupointre´pond`al´enonc´esui-vant : (T[0]eT[n1])RD(T[k]eT[k+ 1]) Invariant :I(i, j)T[i]eT[j1] Conditiondarrˆet:j=i+ 2 Initialisation :(i= 0)(j=n)
6
  • Univers Univers
  • Ebooks Ebooks
  • Livres audio Livres audio
  • Presse Presse
  • Podcasts Podcasts
  • BD BD
  • Documents Documents