HAL Id: hal-03212394
https://hal-univ-rennes1.archives-ouvertes.fr/hal-03212394
Submitted on 29 Apr 2021
HAL is a multi-disciplinary open access
archive for the deposit and dissemination of
sci-entific research documents, whether they are
pub-lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d’enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.
Algorithmique et complexité
Olivier Ridoux
To cite this version:
Pou
rqu
oi n
log 2 7et n
× ×
log
n ?
Oninv ent era rem ent des algor ithm ese x-n ihi lo ;on appl ique plut ôtd ess traté gies bon stun ene ner rrég pou iser Div . ires enta élém ents tem trai es binerd com pour
exem ple quand 3con diti onsso ntr éuni es: 1.On peut div ise r toute inst anc e I (0) du probl èm een plus ieur sin stan ces I (1) tel
les . (1)I des les cel de artir àp ite tru ons rec e êtr peut (0)I de (0) S n utio sol quela
2.La somme des coû tsd ec ons truc tion etd etr aite men td es I (1) etd es coû tsd
e . (0)I e ctd dire ent tem trai de coût quele e ndr moi est (0) S de tion truc ons rec
3.On peut itér er lep roc édé enc ons truis antd es inst anc es I (j+1 ) dér ivé es
des . plus ise div nne l'o esque anc nst esi rd eni obt qu'à jus (j) I es anc inst
Ex. Stra sse n am ontr éen 1969que toute inst anc e I (0) du probl èm ed epr odui tma
- de (1)I es anc inst 7 en isée div tre aitê ouv )p ier plif sim pour k n=2 c (ave n×n iel tric
taille 2 k-1 ×2 k-1 .En ité ran t,on obt ient 7 k inst anc es I (k) ,et 7 k =7 log 2 n =n log 2 7 =n 2,81 ... . Demê me,to ute inst anc e I (0) du probl èm ed utr id' unelis te de n élé men ts (ave
c la de é oiti em ièr prem la ier àtr on faç de sée mpo déco tre utê u)pe uvea àno k n=2
liste ,pui sla sec ond e ,pui s fus ion ner les deu x.Le coût de lafu sion est prop ortion
- de (j) I es anc inst j 2 a non atio itér chaque r.À ionne fus sà liste des ueur long àla nel
trid elis tes de long ueur s 2 k-j ,so it àc haquef ois 2 k élé men ts àf usio nner. Ily
a ×log =n ×k k 2 e oncd std le tota coût etle ns, atio itér k
2 n .
Comme
ntp
eut
-on
être
dan
sNP
?
Rappe lons que P P⊆⊆ N NPP .Il n'e st don cp ase xtrao rdin aire d'ê tre dan s N NPP;le ! N NPP ans cd don P P ans ntd iso letr let icie atr tm produi Lepl usfa meux probl èm ed e N NPP est lepr obl èm e SAT du cal cul des propo siti ons
.e .Un non ou ble aisa satisf st se iable var n à F ule rm unefo rsi ine rm éte ed gitd Ils'a sol utio nn aïve con sist eà con stru ire la tabl ed ed écis ion de F ( 2 n ligne s),
puis (2 O O s dan onc std Te .SA Vrai est ultat rés oùle ne unelig ient cont elle rsi teste
n
)
.e )d ial nom poly ile( stfac ile F e sd iable var les pour urs vale des ées onn sd foi Une
vérif ier siel les satisf ont F .SA Te std onc dan s N NPP .Et cette foi s-ci onne sait pas
si rso deu ran eg ed rdr l'o ont ed hm orit d'alg pas onnaît nec ;on P P s dan est SAT
it . pas te exis 'en iln equ' euv lapr pas n'a ison ,ma n 2 urque lle mei
SAT aune autr ep rop rié té ;il est N NPP -com ple t ( Coo k ,1971 ).Ce la sig nifi eque
tout antun tilis enu udre réso àle on faç de SAT en aduit etr êtr peut N NPP e ed èm probl
sol veurd e SAT . SAT rep rés ente don cla N NPP -ité par exc elle nce . 6
Quelques notions de calculabilité
L'effort de formalisation de la logique de la fin du XIXesiècle et du début du XXea
fait se demander ce qu'est un calcul afin de concevoir des méthodes de démonstra-tion automatique ou de vérificadémonstra-tion de preuve qui soient incontestables. En 1936, Alan Turing (1912-1954) propose un mécanisme de calcul appelé aujourd'hui Machine de Turing. Ce mécanisme comporte un ruban pour stocker des données, et des règles d'enchaînement de lectures/écritures du ruban pour calculer. On dit
qu’un jeu de règlesR réalise une fonction f(notéMM[R] = f), si à chaque fois qu'on
représente une entréexsur le ruban,Rréalise un calcul qui s'arrête avec la
repré-sentation def(x)sur le ruban. Pour certaines entrées, le calculne s'arrête pas et ne
rend donc aucun résultat; ce sont des entrées oùf n'est pas définie.
Turing démontre les trois résultats suivants (en notation moderne et simplifiée) :
1. Il existe un jeu de règlesMTUtel que pour tout jeu de règlesR, il est vrai que
M
M[MTU](R, x) =MM[R](x). Autrement dit, la machine MTU peut simuler tout jeu de
règles à condition qu’il soit représenté comme une donnée sur le ruban. On appelle
cela uneMachine de Turing Universelle, et c'est le modèle théorique de tous les
or-dinateurs. Pour ceux-ci la mémoire est le ruban, le processeur est les règles MTU, et
leurs programmes stockés en mémoire sont autant de jeux de règles de calculR.
2. Il n'existe pas de jeu de règlesHtel que pour tout jeu de règlesRet valeurv
représentés initialement sur le ruban,MM[H](R, v) = Vrai siMM[R](v) s'arrête, Faux
sinon. Le problème qui serait résolu parHs'appelle leProblème de l'arrêt(Halting
Problem). C'est le premier problème dont on ait montré formellement qu'il n'avait
pas de solution par une machine de Turing. On dit qu'il estindécidable.
3. Il n'existe pas de jeu de règlesPtel que pour toute formule𝝓𝝓ducalcul des
prédicatsreprésentée initialement sur le ruban,MM[P](𝝓𝝓) = Vrai si 𝝓𝝓 est
démontra-ble, Faux sinon. Turing démontre cela en montrant que si une telle machine existait on pourrait s'en servir pour résoudre le Problème de l'arrêt en le modélisant dans la
logique du calcul des prédicats.Le calcul des prédicats est donc lui aussi
indécida-ble. Cette méthode de preuve, dite parréduction, est typique de l'algorithmique.
On pourrait objecter à ces résultats négatifs qu'ils viennent peut-être de ce que les machines de Turing ne constituent pas un mécanisme de calcul assez puissant. Il n'y a jamais eu de preuve du contraire, mais un faisceau de présomptions extrêmement fort. En effet, à partir de 1936 un très grand nombre de mécanismes alternatifs ont été proposés, d'une variété extraordinaire, mais ils se sont tous montrés
équiva-lents aux machines de Turing. On en conjecture ce qu'on appelle laThèse de
Church-Turingqui dit essentiellement que tout ce qui peut être calculé peut l'être
par une machine de Turing, et donc par tout autre mécanisme équivalent. 3
Algorithme, recette, etc.
Le nomd'algorithmevient d’un hommage très ancien au mathématicien persan
Al Khwarizmi(~780 − ~850). Celui-ci a, entre autres, étudié et développé la
repré-sentation positionnelle des nombresqui avait été découverte en Inde. Ses écrits
traduits en latin ont fait connaître cette méthode en Europe à partir du XIIesiècle.
L'usage de la notation positionnelle et des opérations associées était tellement
révolutionnaire par rapport à l'utilisationd'abaquesque cette méthode a reçu
globalement le nomd'algorithmie, en hommage à celui qui l'a fait connaître, mais
cela n'a pas beaucoup à voir avecl'algorithmique moderne. Le mot a ensuite été
utilisé pour toute méthode de calcul systématique jusqu'à ce que la notion
mo-derned'algorithmeapparaisse au premier tiers du XXesiècle avec les travaux de
Hilbert,Ackermann,Gödel,Turing,Church,Post, etc.
On entend souvent qu'un algorithme est une sorte derecette de cuisine, mais la
plupart des recettes de cuisine font appel au jugement de l'opérateur et ne sont
donc pas des algorithmes : ex.blanchir des œufsoufaire suer des oignons. La
cuisine industrielle est peut-être algorithmique, mais qui voudrait s’y comparer ?
Historique
Les premières présentations connues d'algorithmes, découvertes sur des
tablet-tes d'argilesumériennes, ne distinguent absolument pasproblème,instanceet
algorithme. Un algorithme y est présenté par l'exemple de la résolution d'une instance d'un problème. Cela paraît archaïque, mais à l'école nous n'avons pas appris autrement les quatre opérations : nous avons répété sans relâche des exer-cices de résolution d'instances des problèmes de calculer une somme, une diffé-rence, un produit, ou un quotient. Nous avons ainsi appris à calculer, mais nous n'avons pas appris à exprimer des algorithmes, et encore moins à réfléchir sur leurs propriétés. C'est pourtant ce second savoir qui est important pour un
infor-maticien car, comme le ditDavid Harel, c'est leSpirit of Computing(voir
biblio-graphie). Et on peut aussi penser que dans un monde fortement informatisé, ce second savoir serait profitable plus largement qu'aux seuls informaticiens.
Cet état de fait archaïque a duré jusque vers le XVIesiècle à partir duquel sont
ap-parus progressivement les éléments des notations mathématiques modernes :
variables,opérateurs,expressions, etc. Mais ce n'est qu'au XXesiècle que les
concepts modernesd'itération, deconditionnelle, derécursion, etc., sont
appa-rus en tant que tels.
2
Introduction à la théorie de la complexité
La théorie de la complexité a pour objet de déterminer lecoût d'exécution des
algorithmes et le coût de résolution des problèmes. Le coût s'évalue le plus
souvent entemps de calcul, parfois enmémoire utilisée, mais pourrait décrire une
autre dimension, commel'énergie. Le coût dépend évidemment del'instancedu
problème considéré. Ex. il est plus facile de calculerla somme de 12 et 13que celle
de16578 et 87659. Donc ce n'est pas tant le coût qui est évalué que la façon dont il
dépend des instances. Cela se représente par une fonction d'une caractéristiquen
des instances (ex.nest le nombre de chiffres) vers le coût :caractéristique → coût.
Il reste une difficulté. Le but de tous ces efforts est de comparer des algorithmes entre eux (lequel est le plus efficace ?) ou bien des problèmes entre eux (lequel est le plus difficile ?). Pour que cette comparaison soit équitable elle ne doit pas dépendre des détails d'une mise en œuvre. Du coup, ce n'est pas la fonction
caractéristique → coûtqui nous intéresse mais laforme de son graphe, capturée
dans la notiond'ordre de grandeur. Un ordre de grandeur est une caractéristique
de fonction de coût, et donc un ensemble de fonctions qui ont la même
caractéristique. Un des ordres de grandeur les plus utilisés se noteOO(f) pour
désignerl'ensemble des fonctions qui ne croissent pas plus vite que f. Ex.OO(n2)
désigne l'ensemble des fonctions qui ne croissent pas plus vite quen2.
Formelle-ment cela s'écritg = OO(f) (à lireimpérativement g ∈ OO(f), ou f domine g), ssi
∃N.∃C.∀n>N.[ g(n) ≤ C×f(n) ]. On y lit quefest
On peut montrer queOO(f) =OO(c×f)sicest une constante ou queOO(f) =OO(f++g)si
g=OO(f). Un ordre de grandeur ne dépend donc pas des facteurs constants ni des
ajouts d'ordres de grandeur plus faibles. En particulier,OO(logax) =OO(logb x) =
O
O(log xa) =OO(log xb), pour toutaetb; on peut donc oublier la base du logarithme.
Très souvent, les ordres de grandeur s'expriment à l'aide de fonctions simples :
élé-vation à une puissance (nc), logarithme (log n), exponentielle (bn), ou des produits
de fonctions simples (ex.n×log n), oùnest la taille de l'instance.
4
Même
pas
peu
rd
eNP
!
Appa rte nir à N NPP n'e st pas unem auvais en ouv elle enso it. Cequi est inqui étant obl espr sd leca 'est .C P P irà ten par 'ap ird spo d'e peu avec N NPP irà ten par 'ap std c'e è- N NPP é ontr dém été avoir eà èm probl ier rem lep est SAT . ets mpl -co N NPP mes
- ès etr xd ieu arm etp été, ussi ta 'on esl lèm rob ep ainesd cent des ite sasu .À t ple com
nom breux pro blè mes de gran de impo rtan ce prat ique .En voi ciune sél ectio n: •T SP ( Tra veling Sal esm anP rob lem –P robl èm ed uvo yag eur de comme rce ):
soit ek anc dist (ex. ent épar ss quile es anc dist es ed donné ),la illes nv x. s(e point n
ilo
- int npo d'u art quip min che rt cou lus lep er ouv ),tr ge oya uv td coû ou ue riq mét choi sià l'av ance ,p asse par tous les point set rev ien tau point de dép art . •C OL ( colo ria ge de gra phe ): soit un gra phe à n somme ts, trou ver lep lus pet
it on faç telle de he grap du mmets sso rle orie col de ette erm quip s eur coul de bre nom
qued eux somme ts vois ins aient tou jou rs des coul eur sd iffér entes .C 'est lep roto
- es. ourc ress de ion cat 'allo oud ion ificat plan de mes blè pro de type
•KP ( Knaps ack Pro blem –P robl èm ed usa c-à -do s): soit un cont ena nt (ex. un
sac- etune e um vol arun sp risé cté cara ets obj es etd tre), enli (ex. té aci cap ),sa s à-do
vale ur ,tr ouv er unc harge ment du sac quir espec te sac apacité etso it de vale
ur n. ectio sél de mes blè pro de type roto lep 'est .C e mal maxi
Ces pro blè mes for malis ent des quest ions auxq uelle sil sera it extr êmem ent
utile rosse èsg etr urd épo alit enré lus réso tre àê ent and em ilsd eset ons rép des voir d’a
s ? ets mpl -co N NPP nt ilsso qu' lefait érer sid con oit-on ntd Comme es. anc inst •T enter sac hanc e :e ssaye ren espér ant queça passe .C 'est cequ' on fai t,a
vec ée. frén nef titio mpé uneco td’ obje tl’ fon ers solv SAT .Les SAT pour té, tili sub
•A ccep ter des qua si-s olut ions :ne plus rec her cher les rép ons es opt im ale s ,ma
isè- probl les pour es iqu rist heu s bonne très de te exis .il .Ex bles epta acc es ons rép des
mes listé s.L 'une d'e lle sc onsi ste àc ons tru ire pro gre ssive men tle sé lém ent sd'
une jam ans es rabl avo usf lepl ment rem appa oix lech rs jou tou sant fai een ons rép
ais TSP pour Ex. ). rie utonne glo la ique ist heur cette pelle nap s(o dessu enir rev
, sub- 'est re.C rend s'y ant,et cour point du oche uspr lepl int lepo isir cho rs jou tou
opt imal car par fois ilva ut mieu xf aire maint enant unch oix moin sf avo rabl e(u
n ce). crifi usa ed éfic bén (le tard plus ble ora fav plus oix unch met per )qui ifice sacr
•U tili ser un qua si-a lgorit hm e :u tilis er des mét hod esd 'op tim isat ion
comme tellig l'in e esd hod mét des ,ou ulé sim uit rec le ,ou tique géné ique hm orit l'alg
ence ). ning lear deep ( ond rof ep sag ntis pre l’ap comme lle ificie art
Dans tous les cas, ile stso uven tn éce ssaire de réso udre des inst anc esd ep rob lèm
es s. yen smo ntle ena enpr ,en ire lefa erà ésit ash utp nefa etil ets mpl -co N NPP 7
Conc
lusi
ons
etp
ersp
ectiv
es
La pen sée alg orit hm ique est au cœ ur de l'in for mat ique .To uttr aite men tau tomatisé géné age 'us ed langag de pas xiste n'e ,il ndant Cepe es. hm orit esalg ed œuvr meten
- nota àune aislié tjam 'es en hm orit unalg it, Enfa es. hm orit esalg rd note pour isé ral
- ces car es mm gra pro des nt ère diff es hm orit salg ,le cela .En ept conc un 'est ,c tion
der nie rs sont liés aux langag es de pro gram mat ion dan sle squ els ilsso nté crits
.Les . mes am rogr esp nsd ctio tra abs des ien ntb esso ithm algor
Lap ens ée algor ithm ique cont ient entr ea utr esd esél émen tsd estr até gie (ex. div ise
r ure post de ents élém des même ,et es) hm orit tsalg len cel 'ex nned quido ner rrég pou
quasi polit ique (ex. rép éter une act ion loca lep our un effe tg lob al ,ou lab onn
e ). e hm orit alg bon itle nfa tio enta rés rep
Enf in, lapr atique algor ithm ique doi tê tre empr eint ed ep rag mat ism e.Un algor ithm
e surle eur eill itm sera equi hm orit unalg éà fér pré tre utê repe ioc méd xité ple com de
pap ier. Ex.1 ,l' algor ithm ed u SIM PLE X pour réso udre les sys tèm esd '(in )éq uat ion slin éaire
s re- casra pire stun c'e mais cas, des pire ansle lled ntie one exp xité ple com de est :il
ment réa lisé ;il est sou ventp réf éré àd es algor ithm es poly nom iaux plus mod
ernes e. œuvr een mettr ileà fac plus est caril
Ex.2 ,l' algor ithm e quicks ort pour le tri :il n'e stp aso ptim alen théo rie ,ma is ile
st . ique prat nten elle exc
Bib
lio
gra
phi
e
•« On Com putable Num ber sw ith an App licat ionto the Ent sch eid ung spr obl em», ). y,2008 ile (W old etz »,P uring dT ate Annot The s« dan lire ),à (1936 ing Tur
•« The Feel ing ofP ow er »,A sim ov (1958
). iso (Add aase »,B s ithm lgor rA pute Com •«
n-W esle y,1983
). Alg « »et do 't can lly rea they what LTD, rs pute Com •«
orithm ics, The Spirit
of ). y,1987 esle n-W iso Add 2003,et (OUP, rel »,Ha g putin Com
•« The new Tur ingOm nibus »,D ewd ney (Ow lB ooks,
2001). lgor ofA lysis Ana and ign Des the nto ctio rodu Int •«
ithm s », Leviti n( Add iso n 2003). ey, Wesl •« Pet ite intro duct ion àl' alg orit hm ique »,D am phous se (El lip ses ,2005
). d,2008 (Duno tes Lesven xet Ridou », é bilit lcula s,ca cul cal urs, ate cul Cal •«
). « aussi voir 2011), ger, prin .(S etal ing öck »,V ged nplug sU orithm Alg •«
Alg orith
- . us) hm orit /~alg .de hen th-aac ik.rw mat for .in -i1 »(www oche esW musd
•« Alg orithm sU nlocke d »,Co rme n(M IT Pre ss, 2013). 8 N f g C´´f
dominé pargssi au delà d'un seuilN, on peut
trouver un facteurC, tel quegest toujours
sous C×f. Remarquer que en aucun cas
g =OO(f) ne signifie que g est inférieure à f ou que g tend vers f !Ex.cos(n) =OO(n). D'autres
expressions d'ordre de grandeur sont 𝛀𝛀(f)
pour les fonctions qui dominent f, et𝚯𝚯(f)
pour lesfonctions qui dominent f et sont
dominées par f, et d'autres encore.
Ordres de grandeur et algorithmes
Considérons l'algorithme deproduit matricielqui effectue les produits scalaires
des lignes d'une matrice par les colonnes de l'autre. Pour des matrices de taille
n×n, il calculen2coefficients qui chacun demande de fairenproduits
élémen-taires. Il fait doncn3produits élémentaires. Le problèmeproduit matricielest
donc dansOO(n3), mais on peut aussi affirmer qu'il est dans𝛀𝛀(n2) car il y a
n2coefficients à calculer. Le𝚯𝚯du coût intrinsèque du problème est donc entren2
etn3. On connaît des algorithmes qui font moins den3produits, et plus quen2,
mais on ne connaît pas le𝚯𝚯de ce problème, pourtant assez banal.
Voici des ordres de grandeur et des problèmes et algorithmes qui les illustrent :
• log n: la recherchedichotomique(ex. comme dans un dictionnaire).
• n(=linéaire) : la recherche séquentielle (ex. comme dans un livre sans index).
• n×log n: unOOet un𝛀𝛀du coût du problème du tri par comparaison-échange,
donc le coût intrinsèque de ce problème, son𝚯𝚯.
• n2(=quadratique) : le pire des cas de l'algorithme dutri rapide(quicksort),
donc son𝚯𝚯. Ce n'est donc pas un algorithme optimal pour le problème du tri.
• nlog27= n2,81…:l’algorithme de Strassenpour le produit matriciel.
• n3: l’algorithme usuel pour le produit matriciel.
• nc (=polynomial) : ordre de grandeur des coûts qualifiés de supportables,
même si un coût den100est certainementexorbitant.
• bn (=exponentiel) : ordre de grandeur de coûts qualifiésd'insupportables.
Noter que des coûts bien plus élevés sont possibles et fréquents en pratique.
On appellepolynomiaux(on notePP) les problèmes dontmmmmmmmmiiiiiiiii
l'ordre de grandeur du coût est dominé par un polynôme.
Pour certains problèmes on ne connaît pas de solutionmmmmmmmmmmmii
polynomiale, mais on saitvérifieren temps polynomialmmmmmmmmmmmii
qu'une proposition de réponse est correcte. On dit qu'ilsmmmmmmmmmmiiii
sont dansNNPP. Ex. on ne connaît pas d'algorithme polyno-mmmmmmmmmiiiii
mial pour calculer les facteurs premiers d'un nombre, mais ilmmmmmmmmmiii
est facile de vérifier que des nombres sont les facteurs d'unmmmmmmmmi
autre ; il suffit de les multiplier, ce qui a un coût polynomial.
P
P ⊆⊆ NNPP, carcalculer la réponsepermet devérifier une réponse proposée, mais
on ne sait pas siPP≠NNPP. C'est une des grandes questions ouvertes des
mathé-matiques du XXIesiècle, même si le consensus est plutôt quePP≠NNPP.
5 problèmes décidables P P N NPP
Alg
orit
hm
iqu
e
xité
mple
etco
Oliv
ier R
idou
x -2020
Int
rod
uct
ion
Les alg orit hm es sont l'ab str actio nd esp roc édu res quem ette nten œuvr elessys- d'u es tanc ins des udre réso de yen lemo est e hm orit alg s.Un ique mat for esin tèm
n un par ent em jug ans d.s -à- ,c atique om aut l calcu de ode éth unem par me blè pro opé rat eur .Ex .ca lcu ler le pro dui td ed eux entier sen nota tio nd écim ale est
un e,et hm orit unalg est le éco àl' pprise na atio lic tip mul de ode éth lam me, blè pro
123× 45 est unein stan ce. Pro blèm e n'e std oncp assyn onym ed e diff icu lté .N ote
r e. èm probl du tion ica écif lasp de tie par fait ées onn esd nd tio enta rés rep quela
Plu sie urs algor ithm espe uvent réso udre lemê mepr obl èm e.Se pose alors laque
s- ure mes d.une -à- ,c xité ple com r leu est ble possi ère crit .Un parer com les de tion
du coût de les exéc uter pour réso udre unein stan ce ( com ple xité n'e st pas
non usab npl stio uneque ent em iat méd im re enti ).On ! lté icu diff e ed onym syn plus
s- nt lve éso uir esq hm orit alg urs lle mei des dre atten xité ple com lle Que est tequi trai
un pro blè me don né ? Ons' int ére ssealo rsà unep rop rié té int rins èque des probl
è- ion mat ram rog ep ed gag e,lan œuvr sen mise ies log hno tec des nte penda indé mes,
oum achine d'e xéc utio n,y com pris des tec hno log ies quires ten tà déc ouv rir. L'appr oche de l'alg orit hm ique cho isie ici est don cc elle d'une scie nce des rel
a- de ie éor lath ussi ca don ra rde abo .On es hm lgorit eta mes blè pro tre sen tion
la nt n'o s, osé np bie tant pour es, lèm rob ainsp ert quec er ontr urm ,po é labilit calcu
pas de sol utio na lgorit hm ique .En cese ns, cette scie nce joue lerô le des thé orie
s as ,p uel pét per ment uve emo asd :p ierie gén l'in sà limite des ent fix squi physique
de tem pér atu re end esso us du zéro abso lu,p asd ev ite ssepl usg ran de quec
elle out rt pou atique utom na tio tra ons dém de pas aussi is .,ma etc re, miè lalu de le rla pou cas sles tou ans ced ffica ete ale im opt ion lut eso nid , ts dica pré des cul cal pla nifi cat ion aut om atique ,e tc. 1
Mode d'emploi :
•
Lire cette page de prérequis, calcul et logique, comprendre, apprendre le cas échéant.
•
Préparer les plis (voir traits
gris
rentrants et traits
rouges
saillants au verso de cette page).
•
Découper selon le trait rouge entre les deux du verso de cette page, puis achever le pliage.
1 2 3 4 5 6 7 8
N'oubliez jamais !
Un modèleest toujours imparfait, parfois utile, et
c'est tout ce qu'on peut lui demander (d'après George Box 1978, voir aussi les cartes à l'échelle 1/1 de Jorge Luis Borges 1946 et Lewis Carroll 1893 qui sont parfai-tes et inutiles, parfaitement inutiles).
L'informatique ne travaille que sur lareprésentation
des choses ; il lui faut des capteurs et des actionneurs pour toucher les choses. Par contre, travailler sur des représentations de représentations de … est courant.
Par exemple,440est une représentation d'un entier
qui peut être la représentation de la mesure d'une
fréquence, tout comme1B8, etLa3pourrait être une
autre représentation de la même fréquence. Il faut toujours se demander ce qui a du sens par rapport à ce qui est modélisé.
3
3⃣⃣
Idiomes logiques
En pratique, on n'utilise pas n'importe quelle formule de la logique des prédicats. On a tendance à utiliser des imbrications de quantificateurs et de connecteurs qui sont idiomatiques et qu'il convient de reconnaître et interpréter correctement au premier coup d'œil.
Quantifications dans un domaine : Très souvent, on écrit des formules comme ∀∀x ∈∈ E . ff(x) ou ∀∀x tq yy(x) . ff(x). Les x ∈∈ E et tq yy(x) sont une façon de dire dans quel domaine doit être évaluée la quantification.
Ces formules doivent être lues ∀∀x . [x ∈∈ E ⟹⟹ ff(x)] et ∀∀x . [yy(x)⟹⟹ ff(x)]. Une conséquence directe est qu'une quantification universelle sur un domaine vide est trivialement vraie. Cela paraît une situation
étrange, mais c'est banal en algorithmique, spécialement quand on considère les cas d'initialisation : ex. Tous les utilisateurs sont … lorsqu'il n'y a pas d'utilisateurs. De la même façon, on écrit des formules
comme ∃∃x ∈∈ E . ff(x) ou ∃∃x tqyy(x) . ff(x). Ces formules doivent être lues ∃∃x . [x ∈∈ E∧∧ ff(x)] et ∃∃x . [yy(x)∧∧ ff(x)]. On voit alors qu'une quantification existentielle sur un domaine vide est trivialement fausse.
Cascades de quantifications : On imbrique souvent les quantifications. Certaines imbrications doivent faire réfléchir, et d'autres moins.
•∃∃x . ∃∃y . ff (x, y) est équivalent à ∃∃y . ∃∃x . ff (x, y) qu'on note souvent ∃∃x, y . ff (x, y) ; l'ordre des quantificateurs ne compte pas.
•∀∀x . ∀∀y . ff (x, y) est équivalent à ∀∀y . ∀∀x . ff (x, y) qu'on note souvent ∀∀x, y . ff (x, y) ; l'ordre des quantificateurs ne compte pas non plus.
•∀∀x . ∃∃y . ff (x, y) exprime que pour chaque x il y a un y, qui peut dépendre de x, qui a la propriété désirée. Ex. dans ∀∀x .∃∃y . [x××y== 0], le même y convient pour tous lesx, mais dans ∀∀x . ∃∃y . [x ×× y == 1], à
tout x correspond un y différent. Un y existentiel est donc implicitement une fonction de tous les x universels qui le précèdent.
•∃∃x . ∀∀y . ff (x, y) exprime qu'un x unique a la propriété désirée pour tous les y. Ex. ∃∃x . ∀∀y . [x ×× y == 0] est vrai, mais pas ∃∃x .∀∀y . [x××y == 1]. On voit donc que lorsqu'il y a une alternance de quantificateurs
l'ordre compte ! Ces alternances sont l'essence de nombreuses définitions importantes en mathématiques (ex. continuité, convergence) et en informatique (ex. ordres de grandeurs au verso de cette page).
2
2⃣⃣
Calcul des prédicats
Dans sa définition la plus naïve le calcul des prédicats est la formalisation de la logique employée tous les jours dans les activités un peu scientifiques. Elle permet d'exprimer des jugements sous forme de formules, et de décider formellement si ils sont vrais ou faux. Les formules de la logique des prédicats sont formées des
connecteurs du calcul des propositions (ex. ∧∧, ∨∨, ¬¬, et ⇒⇒) et des quantificateurs ∀∀ et ∃∃.
Formules quantifiées : Ce sont des formules, élémentaires ou non, dont la valeur de vérité s'évalue par rapport à un ensemble d'objets, plutôt que par rapport à un
objet. Syntaxiquement, une quantification lie une variable, comme le font ∫∫... ddx ou ∂∂.../∂∂x. Sémantiquement, les quantifications sont définies comme suit :
• quantification universelle, ∀∀x . ff (x) : constitue une formule qui est vraie ssi ff est vraie de tous les éléments du domaine. Si le domaine est fini, la quantification
universelle est juste une conjonction des applications de ff à tous les éléments du domaine.
• quantification existentielle, ∃∃x . ff (x) : constitue une formule qui est vraie ssi ff est vraie d'au moins un élément du domaine. Si le domaine est fini, la quantification
existentielle est juste une disjonction des applications de ff à tous les éléments du domaine. Parenthèses et priorité des opérateurs : Il est courant d'assigner des priorités d'opérateurs aux différents connecteurs et quantificateurs afin de spécifier comment se lisent les formules complexes en l'absence de parenthèses. C'est utile mais absolument pas fondamental car ces conventions dépendent trop des outils, et même quand ce n'est pas le cas, il n'est jamais très prudent de se reposer trop lourdement sur les priorités des opérateurs quand le coût de quelques parenthèses est si faible devant le coût d'une grosse erreur. Ce genre d'expertise est à réserver aux experts. Il vaut mieux ne pas être avare de parenthèses, ex. utiliser les parenthèses rondes ((…)) pour structurer les connecteurs, et les parenthèses carrées (ou crochets, […]) pour les quantificateurs. a b c (a∨∨b)∧∧c
Vrai Vrai Vrai Vrai
Vrai Vrai Faux Faux
Vrai Faux Vrai Vrai
Vrai Faux Faux Faux
Faux Vrai Vrai Vrai
Faux Vrai Faux Faux Faux Faux Vrai Faux Faux Faux Faux Faux
a a∨∨¬¬a Vrai Vrai Faux Vrai a a∧∧¬¬a Vrai Faux Faux Faux t f 64 32 16 t f 256 128 64 32 16 8 4 2 t f 16 8 4 2 1 2 4 8 16 32 32 16 8 4 2 1 t f
⟶
⟶
1
1⃣⃣
Calcul des propositions
Propositions atomiques (ou atomes) : Ce sont des formules élémentaires à qui on peut attribuer une valeur de vérité, Vrai ou Faux. On les note souvent par des
lettres minuscules : ex. a, b, c.
Formules propositionnelles : Ce sont des formules, élémentaires ou non, qui sont reliées par des connecteurs logiques, généralement ∧∧, ∨∨, ¬¬, ou ⇒⇒.
• conjonction, ff1 ∧∧ ff2 : relie deux formules pour en former une troisième qui est vraie ssi les deux premières le sont. Le connecteur ∧∧ est commutatif, associatif, et a
pour élément neutre la valeur de vérité Vrai. Cela permet la notation de conjonction étendue comme ⋀i ∈∈ [1,n] ffi. Si on convenait que Faux << Vrai, ff1 ∧∧ ff2 serait le
minimum de ff1 et ff2. Si on convenait que Faux == 0 et Vrai == 1, ff1 ∧∧ ff2 serait ff1 ×× ff2.
• disjonction, ff1 ∨∨ ff2 : relie deux formules pour en former une troisième qui est vraie ssi au moins une des deux premières l'est. Le connecteur ∨∨ est commutatif,
associatif, et a pour élément neutre la valeur de vérité Faux. Cela permet la notation de disjonction étendue comme ⋁i ∈∈ [1,n] ffi. Si on convenait que Faux << Vrai,
ff1∨∨ ff2 serait le maximum de ff1 et ff2. Si on convenait que Faux == 0 et Vrai == 1, ff1 ∨∨ ff2 serait 1 -- (1--ff1) ×× (1--ff2).
• implication, ff1 ⇒⇒ ff2 : relie deux formules pour en former une troisième qui est fausse ssi ff1 est vraie alors que ff2 est fausse. Le connecteur ⇒⇒ n'est ni commutatif ni
associatif. Si on convenait que Faux << Vrai, ff1 ⇒⇒ ff2 serait Vrai ssi ff1 ≤≤ ff2 .
• négation, ¬¬ ff : constitue une formule qui est fausse ssi ff est vraie. Si on convenait que Faux == 0 et Vrai == 1, ¬¬ ff serait 1 -- ff .
Satisfaisabilité : les formules du calcul des propositions peuvent être vues comme
des fonctions des variables qu'elles contiennent :{Vrai, Faux}n⟶⟶{Vrai, Faux}pour
une formule qui comptenvariables. On peut représenter chacune de ces fonctions
par unetable de vérité. Il s'agit d'un tableau comportant2nlignes, etn+1 colonnes.
Dans leursn premières colonnes, les lignes représentent toutes les entrées
possi-bles (appeléesvaluationsdes variables), et dans leurn+1-ème colonne, elles
repré-sentent ce que vaut la fonction pour cette entrée. Ex. les formules(a∨∨b)∧∧c,a∨∨¬¬a,
eta∧∧¬¬apeuvent être représentées par les tables de vérité ci-contre.
On peut remarquer que toutes les lignes de la table dea∨∨¬¬aont la valeurVraien
position de résultat ; on dit que cette formule est unetautologie, elle vautVrai
pour toutes ses entrées. Toutes les lignes de la table dea∧∧¬¬aont la valeurFaux;
on dit que cette formule estcontradictoireouabsurde. Finalement, les lignes de la
table de(a∨∨b)∧∧cont soitVraisoitFaux; on dit que cette formule estsatisfaisable
(bien sûr, les tautologies sont aussi satisfaisables). Il est souvent intéressant de
savoir pour quelles entrées une formule vautVrai.
2
2⃣⃣
Sommations
La somme et le produit étant des opérations associatives, commutatives et ayant chacune un élément
neutre, on peut se permettre des notations de sommes et produits itérés : ∑∑i ∈∈ [bi bs] ti et ∏∏i ∈∈ [bi bs] fi où les ti
et fi sont des termes et facteurs dépendants de i. Si l'intervalle des indices est vide (ex. [0 0[) la valeur
conventionnelle de l'expression est l'élément neutre de l'opération, ex.0pour la somme et 1 pour le
produit, mais aussi Faux pour la disjonction (∨∨), qui est une sorte de somme, et Vrai pour la conjonction
(∧∧), qui est une sorte de produit.
Certaines sommations doivent être connues ; il est même bon de savoir les retrouver :
•∑∑i ∈∈ [1 n] i : somme des n premiers entiers (c-à-d. de 1 à n). C'est égal à n ×× (n+1) / 2. Ex. ∑i ∈∈ [1 17] i = 153.
• ∑i ∈∈ [0 n[ xi : somme des n premières puissances de x (c-à-d. de x0 à xn-1). C'est égal à (xn – 1) / (x – 1).
Ex.∑∑i ∈∈ [0 n[ 2i == 2n – 1.
Il est bon aussi de se rappeler quelques transformations élémentaires :
•∑∑i ∈∈ [0 n[ (k ×× ti) == k ×× ∑∑i ∈∈ [0 n[ ti et ∑∑i ∈∈ [0 n[ k == k ×× n , si k ne dépend pas de i.
•∑∑i ∈∈ [0 n[ (si ++ ti) == ∑∑i ∈∈ [0 n[ si ++ ∑∑i ∈∈ [0 n[ ti . Attention, rien de tel pour ∑∑i ∈∈ [0 n[ (si ×× ti) !
1
1⃣⃣
Puissances, racines et logarithmes
La nème puissance d'un nombre x, notée xn, est le produit de n copies de ce nombre. La racine nème d'un nombre x, notéen√x, est un nombre y tel que
yn== x, soit de quoi x est le produit de n copies ; y est en général irrationnel. Par exemple, 12√√2 == 1.05946... est le rapport des fréquences de deux notes
de musique séparées par 1 demi-ton ; c'est de quoi 2 (le rapport de fréquence d'un octave) est le produit de 12 copies (les 12 demi-tons de l'octave). Initialement conçues pour n à valeur entière, ces opérations ont été progressivement généralisées par continuité à toutes sortes de nombres, si bien que
puissances et racines sont maintenant deux instances du même concept. On montre que xa++b == xa ×× xb et xa××b==(xa)b==(xb)a, que x−n==1/xn et
x1/n==n√x, et que xa/best un nombrey tel que xa==yb.
Le logarithme en base b d'un nombre x, noté logb x, est un nombre y tel que by == x, soit de quel nombre de copies de b x est le produit ; y est en général
non-algébrique, c-à-d. pas racine d’un polynôme à coefficients rationnels. On montre que logb x est strictement croissante, que logb1 == 0 et logb b == 1,
que logb (x××y) == (logb x) ++ (logb y), que logbx==(logb'x)×× (logb b’), et que xlogb y == ylogb x. Noter que en général logbx≪≪ x. Par exemple, le logarithme en
base 10 d'un nombre est à peu près le nombre des chiffres de sa représentation décimale : 1,95... pour 90, 2,99...pour 990 et 5,999... pour 999000.
L'erreur faite en arrondissant un logarithme a un entier voisin est bornée de la façon suivante : n ≤≤ b⎡⎡logb n⎤⎤ << b××n et n/b << b⎣⎣logb n⎦⎦ ≤≤ n. Par exemple,
4≤≤2⎡⎡log2 4⎤⎤ << 8, 7≤≤2⎡⎡log2 7⎤⎤ == 8 < 2××7 == 14, 8/2 == 4 << 2⎣⎣log2 8⎦⎦ ≤≤ 8, et 5/2 == 2,5 << 2⎣⎣log2 5⎦⎦ == 4 ≤≤ 5. Noter enfin que pour tout δδ ≥≥ 0, limx⟶⟶∞∞xδδ/logb x == ∞∞ ;
une puissance finit toujours par dépasser un logarithme.
Le logarithme permet des changements de variable intéressants. Quand un phénomène a une dimension qui croit par multiplication d'un facteur
constant à chaque pas de temps, par exemple, loi de Moore, multiplication par 2 de la capacité des disques durs tous les 2 ans, doublement du nombre
de grains de riz à chaque case de l'échiquier, on dit qu'il a une croissance exponentielle. Ces phénomènes sont difficiles à représenter graphiquement
car le rapport entre les plus petites valeurs et les plus grandes est énorme : par exemple, plusieurs millions sur l'histoire des capacités des disques durs,
c'est-à-dire beaucoup plus que le nombre de points d'impression sur la hauteur d'une page A4.
Le changement de variable (t, f(t))⟶⟶(t, logb f(t)), c-à-d. afficher logb f(x) plutôt que f(x) à l'abscisse x, rend le graphe de f plus lisible et l'hypothèse de
croissance exponentielle facile à vérifier si les points s'alignent sur une droite ; on appelle cela la projection lin××log.
On peut aussi convenir du changement de variable (t, f(t)) ⟶⟶ (logb t, logb f(t)), c-à-d. afficher logb f(x) à l'abscisse logb x plutôt que f(x) à l’abscisse x
pour former la projection log ×× log. Son avantage est que le graphe des phénomènes de croissance polynomiale y tend vers une droite dont la pente est