Sébastien Verel
vereli3s.unie.fr
www.i3s.unie.fr/
∼
verelÉquipeSoBi-UniversitédeNieSophia-Antipolis
25 janvier 2008
Bonjour!
Maîtrede onférenesdepuis septembre2006.
Reherhe :Coneption etétude d'algorithmesd'optimisation
inspirésde labiologie, ...
Algorithmes:voirplusloin
optimisation:trouverlesmeilleuressolutionspossibles àun
problème(transport,emploidutemps,design,réglagede
prothèses,oneptiondethéorieongnitive,...)
bio-inspiré:extrairelesprinipes atifsdesystèmebiologique:
théoriedel'évolution,fouragementdesfourmis, déplaement
d'oiseaux,....
oneption:réerettesterdenouveaux algorithmes
étude:omprendreetprédirepourquoielamarhe,oumieux,
pourquoiçarate!
Au laboratoireI3S(université/CNRS) àSophia-Antipolis:
vous pouvezvenir (bus 1euro), 'estouvert!
Bonjour!
Enseignement :
Algorithmique,L1MASS
Algorithmiqueetinformatiquethéorique,L2MASS
prog. orientéobjet,L3info;prog.font., L2MI;syst.art.
omplexes,M1info;prog.Evo.M2info
responsabledel'enseignementMIAGEàdistane
Contat:pour toute quionerne l'enseignement
(orretions,absenes, demande d'expliation,ompléments,
orientation, ...)
vereli3s.unie.fr
www.i3s.unie.fr/
∼
verel :page web de l'enseignement bureau petitValrose426tel.04.94.92.07.69.83
Bonjour!
Motivationpouret enseignement:
enseignerlesbasesdelarésolutiondeertainsproblèmespar
méthodealgorithmique
enseignerlasieneinformatiqueentantquelangueapable
d'exprimerletraitementd'information
enseigneràdesétudiantsdontle oeurde l'enseignementn'est
passeulementl'informatique
Information sur l'enseignement
but, objetif,et.
f :www.i3s.unie.fr/
∼
verelObjetifs de la séane 1
1
Connaîtredesalgorithmeshistoriques
2
Connaîtreune dénitiond'algorithme
3
Connaîtreles motslefsd'un langage impératifsimple
4
Connaîtreles opérationsde bases demaple
5
Identieret utiliserles typesde basede maple
6
Editeret ommenter unode maple
7
Réaliser unalul àl'aidede variables
Question prinipaledujour :
Qu'est-e qu'unalgorithme?
Plan
1
Exemples d'algorithmesde l'histoireet duquotidien
2
Une trèsourte histoirede l'algorithmique
3
Une ourtehistoire de l'informatiqueet desordinateurs
4
Dénitions d'Algorithme
5
Le langage Maple
Algorithme d'Eulide (éléments, VII, -325/-265 av. JC)
Problème
Trouver uneunité de mesure ommune pourdeux longueursde
segments i.e. trouverle pgddeux nombres entiers.
Algorithme PGCD(a
,
b :entier) :entierdébut
sib
=
0 alorsPGCD =a
sinon
←
restede la divisionde aparbPGCD =PGCD(b,)
nsi
n
Exéution de l'algorithme PGCD(72, 34)
Pour a
=
72et b=
341. PGCD(72, 34)
4. b
6 =
07.
=
48. PGCD(34, 4)
4. b
6 =
07.
=
28. PGCD(4, 2)
4. b
6 =
07.
=
08. PGCD(2, 0)
4. b
=
05. PGCD =2
Crible d'Erastothène (III avant J.-C.)
Problème
Déterminerles nombres premiersinférieur àunebornesupérieure.
Algorithme Erastothene(N:entier):tableaud'entiers
début
Eriresousformede tableaulesnombres entiers
omprisentre 2etN.
tantque arrédupluspetitnombrenonrayéet
nonmarquéestpluspetitqueN faire
Marquerle pluspetitnombredutableaunonrayéetnonmarqué
Rayerdutableautouslesmultiplesdeenombre
n tantque
nombrepremiersinférieurs àN :nombresmarquésounonrayés
n
Crible d'Erastothène (III avant J.-C.)
Remarques
Possibilitéd'améliorationde l'algorithme:
−→
ne pas érireles multiplesde 2et lesmultiplesde 5.Avantage :
plusrapide àérireau débutpareque
moinsde plae utilisésurunefeuille
Inonvénient :
pluslong àrayer:ilfautrééhirpluslongtempspourrayerles
nombres adéquates!
Version modernede l'algorithme:
Crible d'Atkin(1999)
Référene :A.O.L. Atkin,D.J. Bernstein,Prime sievesusingbinary
quadrati forms,Math.Comp. 73 (1999),1023-1030.
Multipliation égyptienne
Problème
Caluler le produitde 2 entiers
Algorithme MultipliationEgyptienne(a
,
b:entier): entierdébut
Erirelatabledespuissanesde2inférieuresouégalesaunombrea
Erirelatabledesdoublesdu nombreb
tantque lenombrean'estpasnulfaire
Coherlaplusgrandepuissanede2
≤
aSoutraireettepuissanede 2dunombrea
n tantque
additionnerlesdoublesdunombreborrespondauxpuissanesde2
ohéspréédemment
produitde aparb :sommealuléei-dessus
n
Tour de magie!
9 14 10
15 8 13
12 11
Tour de magie!
15 3 11
13 9 5
7 1
Tour de magie!
6 14 13
12 4 5
15 7
Tour de magie!
2 3 6
7 10 11
14 15
Reherhe d'un mot dans un ditionnaire
Itérativement
Algorithme reherheIter(ible :mot) listede mots
début
Lirepremier motdu ditionnaire
tant quemotlu n'estpas le motiblefaire
Lirelemot suivant
ntant que
listede mots :dénitiondumotlu
n
On trouve le motorretmaisl'algorihmen'est pastrès eae...
en moyenne, N/2mots lusave Nlatailleduditionnnaire
Il faututiliser l'ordrelexiographiqueduditionnaire
et laméthode dihotomique(diviserpourrégner)
Reherhe d'un mot dans un ditionnaire
pardihotomie
Algorithme reherheDiho(ible:mot)listedemots
début
premier
←
premiermotduditionnaire dernier←
derniermotduditionnaire Lirelemotmédianentrepremieretderniertant quemotlun'estpaslemotiblefaire
simotibleestavantlemotlualors
dernier
←
motlusinon
premier
←
motlunsi
Lirelemotmédianentrepremieretdernier
ntantque
listedemots:dénitiondumotlu
n
en moyenne, log
2
(
N)
mots lusave N latailledu ditionnnaireIndie de masse orporelle
Problème
Donner undegré de orpulene basésurl'indie demasseorporelle
Algorithme degreMasseCorporelle(T:nombreréel,m:nombreréel)
début
i
←
m/
T2sii
<
20alorserire("poidsinférieuràlanormale")
sinon
si i
<
25alorserire("poidsnormal")
sinon
si i
<
30 alorserire("surhargepondérale")
sinon
si i
<
40 alorserire("adiposité")
sinon
erire("obésité"")
nsi
nsi
nsi
nsi
n
Bouilloire
Problème
Conevoir une bouilloire pour fairebouillirde l'eau
jesupposequ'une bouilloire(életrique) peut :
onnaitre latempératurede l'eauT
onnaitre lapositionde soninterrupteur
hauer
Algorithme bouilloire()
début
tantque lapriseestbranhéefaire
tantque interrupteurestON et T
<
100faireChauer
ntantque
n tantque
n
Reettes de uisine
Problème
Convevoir un (bon)gâteau
Ingrédients (pour6
personnes):
- 1pâtebrisée
- 150gdesure
- 100gdebeurrefondu
- 3oeufs
- lejusdedeuxitrons
Préparation:
. Préhauerlefourà200C.
. Abaisserlapâtebrisée.
. Battrelesoeufsavelesureenpoudre
jusqu'àl'obtentiond'unmélange
mousseux.
. Ajouterlejusdeitron.
. Ajouterlebeurrefondu.
. Enfourneretlaisseruireenviron30mn.
. Lapréparationdoitdorer.
Vos algorithmes quotidiens
En onnaissez-vousd'autres?
Vieille histoire
Desriptionsexhaustives d'algorithmes:
dèsl'époquedesBabyloniens (de -2000av JCà-300 avJC),
Pour desalulsonernantle ommereet les impts.
Al-Khwarizmi (né vers 780 - mort vers 850)
algorithme:vientdunom dumathématiien perseduIXièmesièle
Abu Abdullah Muhammad ibnMusaal-Khwarizmi
motalgorisme:àl'origine uniquementaux règles
d'arithmétiqueutilisant leshires indo-arabesnumérals
Tradution en latineuropéendunom Al-Khwarizmi's en
algorithme au XVIIIièmesièle.
Evolutionpour inluretoutes lesproédures déniespour
résoudreunproblème ou aomplirunetâhe.
Quelques dates jusqu'en 1946
prinipalesoure:http://histoire.info.online.fr/prehistoire.html
-3000 :Période de l'empereurChinois Fou-Hi dontle symbole
magique, l'otogoneàtrigrammeontient les8 premiers
nombres représentés sousformebinairepardestraits
interrompus ou non:000 001 010011 et...
-500 :Apparitionau Moyen Orientdupremier"outil" de
alul :l'abaqueet le boulier.
1580 :John NAPIER inventeles logarithmes.
1623 :WilhelmShikard inventee qu'ilappelle unehorloge
alulante. Ellealulaitméaniquement gràeàdes roues
dentées et pouvaitréaliseradditions, soustrations,
multipliationsetmémorisationdesrésultats intermédiaires.La
mahinea rapidementsombré dansl'oubliarsoninventeur
habitaiten Allemagne duSuddansune régionravagée par la
guerre de 30ans.
Quelques dates
1632 :L'Anglais Oughtredinvente laRègleàalul.
1642 :Pasalmet aupoint,pouraider sonpèreolleteurdes
imptsà Rouen,laPasaline quipouvaittraiter lesadditions
et lessoustrations.
1679 :Leibnitz déouvre etmet aupoint unearithmétique
binaire (etanalyseles otogrammesde Fou-Hi).Il invente
aussien 1694 unemahineà alulerdérivéede laPasaline
maisapable de traiterles multipliationsetdivisions.
Quelques dates
1833 :Babbage :mahineàdiérenespuis unemahine
analytique quiontientlesonepts dee que seral'ordinateur
moderne:unitéde alul,mémoire, registreetentrée des
donnéespararteperforée.
1836 - 1838 :Les AnglaisEdwardDavy,WilliamLooke et
Charles Wheastone vontinventeret mettreaupoint le
télégraphe.Le peintreAmériainSamuel Morse inventeleode
quiportesonnom
1840 :Collaboratriede Babbage,AdaLovelae,
mathématiienne, dénit leprinipedes itérationssuessives
dansl'exéution d'uneopération.
Créatriedumot algorithme.
Quelques dates
1876 :L'AmériainGraham Bellinvente letéléphone et fonde
laompagnie BellTelephone Company.
1884 :HermanHollerith réeune tabulatrieà artesperforées
(inspirée desmétiersàtisser de Jaquard) pourréaliserle
reensement Amériainde 1890.
premièremahineàtraiterl'information.
1924 :Larme réeparHerman Hollerithen 1896, Tabulating
Mahine Corporation, est renommée en InternationalBusiness
Mahine ouIBM.
1935 :IBMommerialisel'IBM601, unalulateurà relais
utilisant desartes perforées apable de réaliserune
multipliationen uneseonde.
Il en seravendu 1500 exemplairesessentiellementpourles
marhés sientiqueset omptables.
Quelques dates
1937 :AlanTuring publieundoumentsur les nombres
alulables. Il résolvaitdesproblèmesmathématiquesen
utilisant unesorted'ordinateur logiquetrèssimpleappelé
depuis Mahinede Turing.
1938 :Thèse de Shannonquile premier faitle parallèleentre
les iruits életriquesetl'algèbreBooléenne. dénitiondu
hirebinaire :bit(BInary digiT).
1938 :Création duVersuhmodell 1 ou Z1parKonrad Zuse.
Il lemet aupoint danslesalon de sesparents àBerlin! Il
s'agitd'un ordinateurbinaireprogrammable maisméanique.
Il ne fontionnajamais vraimentorretement.
Quelques dates
1939 :KonradZuse etunde sesamisHelmut Shreyer:
deuxième ordinateur, leZ2
remplaement partiedespièesméaniques duZ1 par relais
életroméaniquesde téléphone rahetés d'oasion.
1940 :Pourdérypter lesmessages de l'armée Allemande,les
Anglais mettentau pointsur lesite de BlethleyParkles
alulateurs Robinsonet Colossussousladiretiondu
mathématiien AlanTuring.
1941 :Créationdualulateur binaireABCparJohn Atanaso
et CliordBerry. Lamahineutilisedeslampesetomporte
une mémoireetdesiruits logiques.
mémoire:60 motsde 50 bits,fréquene60 Hz,1 addition/s.
Premiervraiordinateur? (programmen'est pas en mémoire)
Quelques dates
1941 :KonradZuse, mobilisédansles usinesd'aviation
Henshel :Z3 (programme enregistré).
premier véritableordinateur.
2600 relais, onsolepourl'opérateuretd'un leteur de bandes
ontenant les instrutionsàexéuter. stokage :64 nombres
de 22 bits.
4 additionspar seondeet1 multipliationen 4 seondes.
1943 :Création duASCCMarkI(Automati
Sequene-Controlled CalulatorMarkI)àHarvard parHoward
Aiken et sonéquipe(ave lesoutien d'IBM).
3000 relais,800 km de ables
3 opérationssur 23hires parseonde.
Pas de sousprogramme,pas de branhement.
Quelques dates
1945 :Un inseteoiné dansles iruitsbloquele
fontionnementdu alulateurMarkI. Lamathématiienne
GraeMurray Hopperinvente lemotBUG...
1945 :John Von Neuman :desriptiond'ordinateur à
programme enregistré
EDVAC (EletroniDisrete VariableAutomati Computer).
1946 :Création de l'ENIAC (EletroniNumerial Integrator
and Computer)parP.EkertetJ. Mauhly.Laprogrammation
de e alulateur s'eetueen reablant entreeux, ses
diérents éléments.
19000tubes, 30tonnes, 72m2 etonsomme 140kilowatts.
Horloge :100KHz. Vitesse:environ330 multipliationspar
seonde.
Générations d'ordinateur
Déembre 1947 :Invention dutransistorparWilliamBradford
Shokley,Walter H.Brattain etJohn Bardeendansles
laboratoires de BellTelephone.
−→
Deuxièmegénération d'ordinateur1958 :Démonstrationdupremier iruitintégrérée parTexas
Instruments.
−→
troisièmegénération d'ordinateur1965 :Gordon Mooreéritque laomplexité desiruits
intégrésdoublera tousles ans :"Loide Moore".
1971 :l'ère dumiroproesseur(INTEL)
−→
QuatrièmegénérationDénition d'Ordinateur
En 1955, "ordinateur" :tradutionJ. Perretde "eletronidata
proessing mahine" ( mahineéletroniquede traitementdes
données ).
−→
e quebeauoups de languesnomme alulateur (omputer)Dénition Aadémiefrançaise de 1967
Une mahineautomatique quipermet d'eetuer,dans leadre de
programmesde struture pré-établis, desensemblesd'opérations
arithmétiquesetlogiques àdesns sientiques,administrativesou
omptables.
Dénition informatique
En 1962,PhilippeDreyfus employalemot informatique pour dénir
le traitementautomatique de l'information.
−→
Informatique:omposédes2 motsinformationet automatique.Dénition Aadémiefranaise de 1967
Siene dutraitementrationnel,notamment àl'aidede mahines
automatiques, de l'information, onsidéréeomme le supportde
onnaissanes dansles domainessientique,éonomiqueet soial.
Retour sur les exemples
Quels sontlespointsommunsentre tousesalgorithmes?
algorithmed'Eulide
algorithmed'Erastothène
multipliationégyptienne
degré de masseorporelle
reette de uisine
Caratéristiques d'algorithme
Résolutiond'unproblème
algorithmed'Eulide :
Trouver uneunitéommuneà deuxlongueurs
algorithmed'Erastothène:
Trouver lesnombres premierspluspetitqueN
Multipliationégyptienne:
Caluler leproduit de deux nombres
degré de masseorporelle:
Donnerle degré de orpulene basésur l'IMC
reette de uisine:
Confetionnerle gâteaux de vosrêves
Caratéristiques d'algorithme
Résolutiondemanièreopératoire
algorithmed'Eulide :
Calulerle quotientde aparb
algorithmed'Erastothène:
rayer lesmultiplesde ...
Multipliationégyptienne:
a
←
E[
a/
2]
degré de masseorporelle:
Si i<25 alors...
reette de uisine:
Mélangerles oeufsave...
Caratéristiques d'algorithme
Enonédansunlangagepréis
Langage le plusformelle :sémantique opérationel, axiomatique,...
algorithmed'Eulide :
quotient
algorithmed'Erastothène:
rayer lesmultiplesde ...
Multipliationégyptienne:
a
←
E[
a/
2]
degré de masseorporelle:
Si i<25 alors...
reette de uisine:
Mélangerles oeufsave...
Caratéristiques d'algorithme
Données/informationsenentrée
algorithmed'Eulide :
les deux nombresa etb
algorithmed'Erastothène:
les nombres entiers
Multipliationégyptienne:
les deux opérandes
degré de masseorporelle:
le poidset lataille
reette de uisine:
Les ingrédients
Caratéristiques d'algorithme
Données/informationsensortie
algorithmed'Eulide :
le PGCD
algorithmed'Erastothène:
les nombres premiersplus petits queN
Multipliationégyptienne:
le produit desnombres
degré de masseorporelle:
unlassement
reette de uisine:
ungâteau au itron!
Caratéristiques d'algorithme
S'arrêteentempsni
algorithmed'Eulide :
au plusmax
(
a,
b)
?algorithmed'Erastothène:
au plus
√
NN?
Multipliationégyptienne:
au pluslog
(
a)
?degré de masseorporelle:
5 ou 6opérations
reette de uisine:
2h...
Tentatives de dénitions
dénition unpeu ourte
Un algorithmeénone unerésolutionsousla formed'unesérie
d'opérations àeetuer.
dénition (ditionnaireanadien)
Formuleou ensemble d'étapesqu'on appliquepourrésoudreun
problème en partiulier. Un algorithmedoit avoirunensemble de
règles sansambiguïté etunpoint limitebiendéni
Tentatives de dénitions
dénition (Wikipedia)
Un algorithmeest unmoyen pour unhumain de présenter la
résolutionparalul d'un problèmeàune autrepersonnephysique
(un autrehumain)ou virtuelle (un alulateur).Eneet, un
algorithmeest unénoné dansunlangage biendéni d'unesuite
d'opérations permettantde résoudreparalul unproblème.
dénition satisfaisante
Un algorithmeest unensemble nid'instrutionsorretement
dénis quiapourbut larésolutiond'unetâhe àpartird'un état
initialet seterminantsurun étatnalbiendéni.
Vers une dénition formelle
−→
Il n'existepas unedénitionformelleadmise partous.Premières formalisations:
AlanTuring (1936):un algorithmeest e quiexéutable à
partird'unemahinede Turing.
Alonzo Churh (lambda alulus):tout alul est réalisableà
l'aided'un algorithmeexéuterparunordinateur(ave
susamment de tempsetd'espae)
AppliationSSSS
Cryptographie (paiementséurisé,téléphone portable,
onnetions internet,et)
Compressiond'images (dvd,mpeg4,et), de sons(mp3, et)
internet (moteur de reherhe,...)
gps(traerde route,...)
organisersontemps, sontravail
jeux
problèmesindustriels(oneptionautomatisé ou assister...)
lauisine faile!
résolutiond'équations (ommuniationsnumériques, ...)
intelligene artiielle(optimisation,apprentissage
automatique, ...)
Grands domaines d'appliations
Impts,l'administrationpubli, et.
Commere, lanane,l'administration privée,et.
Calulsientique
Loisirs:musique,vidéo, jeux, et.
Communiation :réseauxinternet,mobile,ommuniation
satelite,et.
Langages de programmation
Unalgorithmeest unénoné générale quipeut s'exprimer dansun
grandnombre de langages de programmation
Lorsqu'unalgorithme estexprimédansunertain langage
partiulier,
on ditque l'onimplémente
ou quel'onode unalgorithmedanse langage.
Classiation des langages de programmation
On distingue plusieurstype de langagede programmationselon
leurs propriétés :
langages impératifs:
fortran,basi,pasal, bash,C,maple
langage fontionnel :
lisp,sheme, aml
langage orientéobjets :
eiel, C++,java
....
Les langages atuelstendent àombinertoutesles approhesde
programmation possible.
Quelques instrutions du langage Maple
Langageimpératif
algorithmique Maple
Variables A,B, i,j,x A,B,i,j,x
Aetation A
←
12 A:=
12;
Test SionditionAlors if... then
... ...
Sinon else
... ....
FinSi
Itérationpour Pour ide1à12faire forifrom1to12do
... ....
FinPour od
ItérationtantQue TantQueonditionfaire whileonditiondo
... ....
FinTantQue od
Quelques instrutions du langage Maple
Calulformel
Maple
R
f
(
x)
dx Int(f(x), x);valeur numérique d'uneexpr. value(exp);
substituiond'une variableformelle subs(x=5, f(x));
simpliation algérique simplify;
.... ...
(utiliser ladoumentationMaple) ...
Objetifs de la séane 1
1
Connaîtredesalgorithmeshistoriques
2
Connaîtreune dénitiond'algorithme
3
Connaîtreles motslefsd'un langage impératifsimple
4
Connaîtreles opérationsde bases demaple
5
Identieret utiliserles typesde basede maple
6
Editeret ommenter unode maple
7
Réaliser unalul àl'aidede variables
Question prinipaledujour :
Qu'est-e qu'unalgorithme?
Travail pour les deux prohaines semaines
Trouver de ladoumentationen rapportavel'ensemblede
l'enseignement.
A votredisposition:
livres de ours àlabibliothèque
internet
vosletures
....