• Aucun résultat trouvé

25javie2008 É ieS Bi Uiveiédei eShia Ai

N/A
N/A
Protected

Academic year: 2022

Partager "25javie2008 É ieS Bi Uiveiédei eShia Ai"

Copied!
53
0
0

Texte intégral

(1)

Sébastien Verel

vereli3s.unie.fr

www.i3s.unie.fr/

verel

ÉquipeSoBi-UniversitédeNieSophia-Antipolis

25 janvier 2008

(2)

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!

(3)

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 petitValrose426

tel.04.94.92.07.69.83

(4)

Bonjour!

Motivationpouret enseignement:

enseignerlesbasesdelarésolutiondeertainsproblèmespar

méthodealgorithmique

enseignerlasieneinformatiqueentantquelangueapable

d'exprimerletraitementd'information

enseigneràdesétudiantsdontle oeurde l'enseignementn'est

passeulementl'informatique

(5)

Information sur l'enseignement

but, objetif,et.

f :www.i3s.unie.fr/

verel

(6)

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?

(7)

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

(8)

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) :entier

début

sib

=

0 alors

PGCD =a

sinon

restede la divisionde aparb

PGCD =PGCD(b,)

nsi

n

(9)

Exéution de l'algorithme PGCD(72, 34)

Pour a

=

72et b

=

34

1. PGCD(72, 34)

4. b

6 =

0

7.

=

4

8. PGCD(34, 4)

4. b

6 =

0

7.

=

2

8. PGCD(4, 2)

4. b

6 =

0

7.

=

0

8. PGCD(2, 0)

4. b

=

0

5. PGCD =2

(10)

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

(11)

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.

(12)

Multipliation égyptienne

Problème

Caluler le produitde 2 entiers

Algorithme MultipliationEgyptienne(a

,

b:entier): entier

début

Erirelatabledespuissanesde2inférieuresouégalesaunombrea

Erirelatabledesdoublesdu nombreb

tantque lenombrean'estpasnulfaire

Coherlaplusgrandepuissanede2

a

Soutraireettepuissanede 2dunombrea

n tantque

additionnerlesdoublesdunombreborrespondauxpuissanesde2

ohéspréédemment

produitde aparb :sommealuléei-dessus

n

(13)

Tour de magie!

9 14 10

15 8 13

12 11

(14)

Tour de magie!

15 3 11

13 9 5

7 1

(15)

Tour de magie!

6 14 13

12 4 5

15 7

(16)

Tour de magie!

2 3 6

7 10 11

14 15

(17)

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)

(18)

Reherhe d'un mot dans un ditionnaire

pardihotomie

Algorithme reherheDiho(ible:mot)listedemots

début

premier

premiermotduditionnaire dernier

derniermotduditionnaire Lirelemotmédianentrepremieretdernier

tant quemotlun'estpaslemotiblefaire

simotibleestavantlemotlualors

dernier

motlu

sinon

premier

motlu

nsi

Lirelemotmédianentrepremieretdernier

ntantque

listedemots:dénitiondumotlu

n

en moyenne, log

2

(

N

)

mots lusave N latailledu ditionnnaire

(19)

Indie 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

/

T2

sii

<

20alors

erire("poidsinférieuràlanormale")

sinon

si i

<

25alors

erire("poidsnormal")

sinon

si i

<

30 alors

erire("surhargepondérale")

sinon

si i

<

40 alors

erire("adiposité")

sinon

erire("obésité"")

nsi

nsi

nsi

nsi

n

(20)

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

<

100faire

Chauer

ntantque

n tantque

n

(21)

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.

(22)

Vos algorithmes quotidiens

En onnaissez-vousd'autres?

(23)

Vieille histoire

Desriptionsexhaustives d'algorithmes:

dèsl'époquedesBabyloniens (de -2000av JCà-300 avJC),

Pour desalulsonernantle ommereet les impts.

(24)

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.

(25)

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.

(26)

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.

(27)

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.

(28)

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.

(29)

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.

(30)

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)

(31)

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.

(32)

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.

(33)

Générations d'ordinateur

Déembre 1947 :Invention dutransistorparWilliamBradford

Shokley,Walter H.Brattain etJohn Bardeendansles

laboratoires de BellTelephone.

−→

Deuxièmegénération d'ordinateur

1958 :Démonstrationdupremier iruitintégrérée parTexas

Instruments.

−→

troisièmegénération d'ordinateur

1965 :Gordon Mooreéritque laomplexité desiruits

intégrésdoublera tousles ans :"Loide Moore".

1971 :l'ère dumiroproesseur(INTEL)

−→

Quatrièmegénération

(34)

Dé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.

(35)

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.

(36)

Retour sur les exemples

Quels sontlespointsommunsentre tousesalgorithmes?

algorithmed'Eulide

algorithmed'Erastothène

multipliationégyptienne

degré de masseorporelle

reette de uisine

(37)

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

(38)

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...

(39)

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...

(40)

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

(41)

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!

(42)

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...

(43)

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

(44)

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.

(45)

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)

(46)

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, ...)

(47)

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.

(48)

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.

(49)

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.

(50)

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

(51)

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) ...

(52)

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?

(53)

Travail pour les deux prohaines semaines

Trouver de ladoumentationen rapportavel'ensemblede

l'enseignement.

A votredisposition:

livres de ours àlabibliothèque

internet

vosletures

....

Références

Documents relatifs

Attention toutefois quelques trus datent3. Et bien sur, les reommandations

booléen est une expression dont la valeur est soit Vrai soit Faux. Cette expression peut

−→ utiliser un shéma itératif à nombre d'itérations déterminé. −→ appeler aussi souvent

ne retourner auune valeur : on notera le type de retour rien. Algorithme deviner(n : entier)

Utilisation d'un aumulateur pour réaliser un alul dans

A l'aide d'un système physique dont l'état est aléatoire :.. Valeur préise d'une résistane, appartition des

les nombres plus petit que le nombre pivot sont à gauhe de

A-t-on besoin d'un traitement séquentiel des données. Le nombre de données est-il déterminé