cours complexit v1 - esen
TRANSCRIPT
EcoleSupérieure
d’EconomieNumérique
CoursComplexitéAlgorithmique
Dr.Chiheb-EddineBenN’Cir
2016−
2017
Outline
1Algorithmique
2Tempsd’exécution
3Complexitéalgorithmique
Chiheb-EddineBenN’Cir(ESEN)
CoursComplexitéAlgorithmique
2016
2/36
Algorithmique
introduction
Algorithmique
L’objetdececoursestl’algorithmique
L’algorithmiqueestl’étudedesalgorithmes
Unalgorithmeestuneméthodeperm
ettantderésoudre
un
problèmedonnéenuntempsfini
3Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
3/36
Algorithmique
introduction
Methodologie
Iln’existe
pasd’algorithmepourcréerdesalgorithmes
Ilexiste
quelquesprincipesgénérauxquel’onpeutsuivre
Cecoursapourobjectifd’acquérircesprincipes
4Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
4/36
Algorithmique
introduction
Duraisonnementàl’algorithmepuis
aucode
Exempledetache:décidersiuntableauLesttriéenordre
croissant
Raisonnement:UntableauLesttriésitoussesélémentssont
dansl’ordre
croissant
Plusform
ellement:Ltrié⇐⇒∀i0
<i<|L|
L[i]<
L[i+1]
5Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
5/36
Algorithmique
introduction
Duraisonnementàl’algorithmepuis
aucode
Exempledetache:décidersiuntableauLesttriéenordre
croissant
Raisonnement:UntableauLesttriésitoussesélémentssont
dansl’ordre
croissant
Plusform
ellement:Ltrié⇐⇒∀i0
<i<|L|
L[i]<
L[i+1]
Algo:Unefonctionvérifiantcettepropriété
supposera
doncle
tableautriéaudépart,etcherchera
unecontradiction
5Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
5/36
Algorithmique
introduction
Duraisonnementàl’algorithmepuis
aucode
Exempledetache:décidersiuntableauLesttriéenordre
croissant
Raisonnement:UntableauLesttriésitoussesélémentssont
dansl’ordre
croissant
Plusform
ellement:Ltrié⇐⇒∀i0
<i<|L|
L[i]<
L[i+1]
Algo:Unefonctionvérifiantcettepropriété
supposera
doncle
tableautriéaudépart,etcherchera
unecontradiction
code:
boolean
trie(L)
for(i=0;i<L.lengh();i++)
if
L[i]
>L[i
+1]
return
False
return
True
5Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
5/36
Algorithmique
objectifs
Objectifs
Onattendd’unalgorithmequ’ilrésolvedemanière
efficacele
problèmeàrésoudre,quellesquesoientlesdonnéesàtraiter
Ons’intéresseprincipalementàdeuxaspectsd’unalgorithme
donnée:
1sacorrection:résout-ilbienleproblèmedonnée?
2sonefficacité:encombiendetempsetavecquellesressources?
6Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
6/36
Algorithmique
objectifs
Efficacité
L’efficacitéd’unalgorithmepeutetreévaluéepar:
rapidité(enterm
esdetempsd’exécution)
consommationderessources(espacedestockage,mémoire
utilisée)
7Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
7/36
Algorithmique
objectifs
Efficacité
L’efficacitéd’unalgorithmepeutetreévaluéepar:
rapidité(enterm
esdetempsd’exécution)
consommationderessources(espacedestockage,mémoire
utilisée)
Lathéoriedecomplexitéétudiel’efficacitédesalgorithmes
7Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
7/36
Algorithmique
objectifs
Théoriedela
complexité
Lathéoriedelacomplexitéviseàrépondre
auxbesoins
d’efficacitédesalgorithmes(programme)
8Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
8/36
Algorithmique
objectifs
Théoriedela
complexité
Lathéoriedelacomplexitéviseàrépondre
auxbesoins
d’efficacitédesalgorithmes(programme)
Elle
perm
et:
declasserlesproblèmesselonleurdifficulté
declasserlesalgorithmesselonleurefficacité
decomparerlesalgorithmesrésolvantunproblèmedonnéafinde
faireunchoixéclairésansdevoirlesimplémenter
8Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
8/36
Tempsd’exécution
Evaluationdela
rapiditéd’unalgorithme
Onnemesure
pasladuréeenheures,minutes,secondes,...
celaimpliqueraitd’im
plémenterlesalgorithmesqu’onveut
comparer
9Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
9/36
Tempsd’exécution
Evaluationdela
rapiditéd’unalgorithme
Onnemesure
pasladuréeenheures,minutes,secondes,...
celaimpliqueraitd’im
plémenterlesalgorithmesqu’onveut
comparer
deplus,cesmesuresneseraientpaspertinentescarlemême
algorithmesera
plusrapidesurunemachinepluspuissante
9Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
9/36
Tempsd’exécution
Evaluationdela
rapiditéd’unalgorithme
Onnemesure
pasladuréeenheures,minutes,secondes,...
celaimpliqueraitd’im
plémenterlesalgorithmesqu’onveut
comparer
deplus,cesmesuresneseraientpaspertinentescarlemême
algorithmesera
plusrapidesurunemachinepluspuissante
Aulieudeca,onutilisedesunitésdetempsabstraites
proportionnellesaunombre
d’opérationseffectuées
Aubesoin,onpourraensuiteadaptercesquantitésenfonctionde
lamachinesurlaquelle
l’algorithmes’exécute
9Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
9/36
Tempsd’exécution
Calculdutempsd’exécution
Règles:
Chaqueinstructionbasiqueconsommeuneunitédetemps
(affectationd’unevariable,comparaison,...)
10
Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
10/36
Tempsd’exécution
Calculdutempsd’exécution
Règles:
Chaqueinstructionbasiqueconsommeuneunitédetemps
(affectationd’unevariable,comparaison,...)
Chaqueitérationd’unebouclerajoute
lenombre
d’unitésde
tempsconsomméesdanslecorpsdecetteboucle
10
Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
10/36
Tempsd’exécution
Calculdutempsd’exécution
Règles:
Chaqueinstructionbasiqueconsommeuneunitédetemps
(affectationd’unevariable,comparaison,...)
Chaqueitérationd’unebouclerajoute
lenombre
d’unitésde
tempsconsomméesdanslecorpsdecetteboucle
Chaqueappeldefonctionrajoute
lenombre
d’unitésdetemps
consomméesdanscettefonction
10
Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
10/36
Tempsd’exécution
Calculdutempsd’exécution
Règles:
Chaqueinstructionbasiqueconsommeuneunitédetemps
(affectationd’unevariable,comparaison,...)
Chaqueitérationd’unebouclerajoute
lenombre
d’unitésde
tempsconsomméesdanslecorpsdecetteboucle
Chaqueappeldefonctionrajoute
lenombre
d’unitésdetemps
consomméesdanscettefonction
Pouravoirlenombre
d’opérationseffectuéesparl’algorithme,on
additionneletout
10
Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
10/36
Tempsd’exécution
Tempsdecalculd’unefonctionFactorielle
L’algorithmesuivantcalculen!=
n∗(n−1)∗(n−2)∗....∗1avec0!
=1
int
factorielle(n)
fact
=1;
i=
2;
while
(i
<=
n)
fact
=fact*i;
i=
i+
1;
return
fact
11
Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
11/36
Tempsd’exécution
Tempsdecalculd’unefonctionFactorielle
L’algorithmesuivantcalculen!=
n∗(n−1)∗(n−2)∗....∗1avec0!
=1
int
factorielle(n)
fact
=1;
initialisation(1)
i=
2;
affectation
(1)
while
(i
<=
n)
comparaison
(1)
fact
=fact*i;
aff.
+multip.(2)
i=
i+
1;
affectation
+addition
(2)
return
fact
retour
(1)
12
Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
12/36
Tempsd’exécution
Tempsdecalculd’unefonctionFactorielle
L’algorithmesuivantcalculen!=
n∗(n−1)∗(n−2)∗....∗1avec0!
=1
int
factorielle(n)
fact
=1;
initialisation(1)
i=
2;
affectation
(1)
while
(i
<=
n)
comparaison
(1)
fact
=fact*i;
aff.
+multip.(2)
i=
i+
1;
affectation
+addition
(2)
return
fact
retour
(1)
Tempsdecalcul=1+1+(2+2+1)*(n-1)+1+1=5n-1
opérations
12
Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
12/36
Tempsd’exécution
TempsdeCalculexacte
onpeutcalculerletempsdecalculexacte
surlamachine
ExempleenJAVA:
int
factorielle(n)
long
deb=System.nanoTime();
fact
=1;
i=
2;
while
(i
<=
n)
fact
=fact*i;
i=
i+
1;
long
fin=System.nanoTime();
long
temps=fin-deb;
System.out.println(temps);
return
fact
13
Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
13/36
Tempsd’exécution
Problèmes
Unitésdetempsabstraites
dependdesdonnées
dependdelanature
desdonnées(variables):onnesaitpastoujourscombiende
foisexactementonva
effectueruneboucle
Demême,lorsd’unbranchementconditionnel,lenombre
decomparaisons
effectuéesn’estpastoujourslemême
Tempsexacte
dependdelapuissancedelamachine
dependdelanature
desdonnées(variables):sionchangelesdonnées,le
tempschange
14
Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
14/36
Complexitéalgorithmique
Complexitéalgorithmique
Lacomplexitéd’unalgorithmeestunemesure
desaperform
anceasymptoptique
danslepirecas
quesignifieasymtotique?
ons’intéresseàdesdonnéestrèsgrandes
pourquoi?
lespetitesvaleursnesontpasassezinform
atives
Quesignifie"danslepirecas"?
ons’intéresseàlaperform
ancedel’algorithmedanslessituationsoùle
problèmeprendleplusdetempsàrésoudre
pourquoi?
onveutêtresûrquel’algorithmeneprendra
jamaisplusdetempsquecequ’on
aestimé
15
Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
15/36
Complexitéalgorithmique
Comparaisondutempsdecalcul
Soitunproblèmeàrésoudre
surdesdonnéesdetaillen,et
Deuxalgorithmesrésolvantceproblèmeenuntempsf1(n
)etf2(n
)
Quelalgorithmepréférez-vous?
16
Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
16/36
Complexitéalgorithmique
Comparaisondutempsdecalcul
Soitunproblèmeàrésoudre
surdesdonnéesdetaillen,et
Deuxalgorithmesrésolvantceproblèmeenuntempsf1(n
)etf2(n
)
Quelalgorithmepréférez-vous?
16
Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
16/36
Complexitéalgorithmique
Passageàla
complexitéasymptotique
Deplus,ledegré
deprécisionqu’ilsrequièrentestsouventinutile
Onaura
doncrecoursàuneapproximationdecetempsdecalcul,représentée
parlanotationO(.)
17
Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
17/36
Complexitéalgorithmique
Notationsasymptotiques
Soitnlatailledesdonnéesàtraiter,onditqu’unefonctionf(n
)estenO(g(n
))si:
∃n0∈N,∃c∈R,∀n>=
n0:|f(n
)|<=
c|g(n
)|
f(n
)estenO(g(n
))s’ilexiste
unseuilàpartirduquellafonctionf(.)est
toujoursdominéeparlafonctiong(.),àuneconstante
multiplicative
fixéeprès; 18
Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
18/36
Complexitéalgorithmique
Notationsasymptotiques
Soitnlatailledesdonnéesàtraiter,onditqu’unefonctionf(n
)estenO(g(n
))si:
∃n0∈N,∃c∈R,∀n>=
n0:|f(n
)|<=
c|g(n
)|
f(n
)estenO(g(n
))s’ilexiste
unseuilàpartirduquellafonctionf(.)est
toujoursdominéeparlafonctiong(.),àuneconstante
multiplicative
fixéeprès;
Exemples:quelquescasoùf(n
)=
O(g(n
))
18
Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
18/36
Complexitéalgorithmique
Exemple
decalculdeO(.)
Prouvonsquelafonctionf1(n
)=
5n+
37estenO(n
):
19
Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
19/36
Complexitéalgorithmique
Exemple
decalculdeO(.)
Prouvonsquelafonctionf1(n
)=
5n+
37estenO(n
):
but:trouveruneconstante
c∈Retunseuiln0∈N
àpartirduquel
|f1(n
0)|<=
c|n0|.
19
Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
19/36
Complexitéalgorithmique
Exemple
decalculdeO(.)
Prouvonsquelafonctionf1(n
)=
5n+
37estenO(n
):
but:trouveruneconstante
c∈Retunseuiln0∈N
àpartirduquel
|f1(n
0)|<=
c|n0|.
onremarqueque|5n+
37|<=|6n|sin>=
37
ondéduitdoncquec=
6fonctionneàpartirdun0=
37
Remarque:onnedemandepasd’optimisation(lepluspetitcoun0qui
fonctionne)
juste
ilfautdonnerdesvaleursquifonctionnent(c
=10etn0=
8estdoncaussi
acceptable)
19
Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
19/36
Complexitéalgorithmique
Exemple
decalculdeO(.)
Prouvonsquelafonctionf2(n
)=
6n2+
2n−
8estenO(n
2):
20
Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
20/36
Complexitéalgorithmique
Exemple
decalculdeO(.)
Prouvonsquelafonctionf2(n
)=
6n2+
2n−
8estenO(n
2):
but:trouverunseuiln0∈N
àpartirduquel:|6n2 0+
2n0−
8|<=
c|n2 0|
cherchonsd’abord
laconstante
c;c=
6nepeutpasmarcher,essayonsdonc
c=
7
ondoitalorstrouverunseuiln0∈N
àpartirduquel
:|6n2+
2n−
8|<=
7|n
2|∀n>=
n0;
c=
7etn0=
1
20
Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
20/36
Complexitéalgorithmique
Règlesdecalcul
Oncalculeletempsd’exécution,maisoneffectuelessimplificationssuivantes:
onoublie
lesconstantesmultiplicatives(ellesvalent1)
onannulelesconstantesadditives
onneretientquelesterm
esdominants
Exemple(simplifications)Soitg(n
)=
4n3−
5n2+
2n+
3opérations
onremplacelesconstantesmultiplicativespar1:1n
3−1n
2+1n+3
onannulelesconstantesadditives:n3−
n2+n+0
ongardeleterm
edeplushautdegré
:n3+0
onadoncg(n)=
O(n
3).
21
Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
21/36
Complexitéalgorithmique
Justificationdessim
plifications
Lesprocesseursactuelseffectuentplusieursmilliardsd’opérationsàla
seconde
uneaffectationrequière
2ou4unitésdetempsnechangedoncpasgrand-chose
d’oùleremplacementdesconstantespardes1pourlesmultiplications
22
Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
22/36
Complexitéalgorithmique
Justificationdessim
plifications
Lesprocesseursactuelseffectuentplusieursmilliardsd’opérationsàla
seconde
uneaffectationrequière
2ou4unitésdetempsnechangedoncpasgrand-chose
d’oùleremplacementdesconstantespardes1pourlesmultiplications
unnombre
constantd’instructionsestdoncaussinégligeableparrapportàla
croissancedelatailledesdonnées
d’oùl’annulationdesconstantesadditives
22
Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
22/36
Complexitéalgorithmique
Justificationdessim
plifications
Lesprocesseursactuelseffectuentplusieursmilliardsd’opérationsàla
seconde
uneaffectationrequière
2ou4unitésdetempsnechangedoncpasgrand-chose
d’oùleremplacementdesconstantespardes1pourlesmultiplications
unnombre
constantd’instructionsestdoncaussinégligeableparrapportàla
croissancedelatailledesdonnées
d’oùl’annulationdesconstantesadditives
pourdegrandesvaleursden,leterm
edeplushautdegré
l’emportera
d’oùl’annulationdesterm
esinférieurs
22
Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
22/36
Complexitéalgorithmique
combinaisondecomplexité
Lesinstructionsdebaseprennentuntempsconstant,noté
O(1)
Onadditionnelescomplexitésd’opérationsenséquence:
O(f
1(n
))+
O(f
2(n
))=
O(f
1(n
)+
f2(n
))
Mêmechosepourlesbranchementsconditionnels:
23
Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
23/36
Complexitéalgorithmique
combinaisondecomplexité
Danslesboucles,onmultiplie
lacomplexitéducorpsdelaboucleparlenombre
d’itérations;
Lacomplexitéd’unebouclewhile
secalculecommesuit:
24
Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
24/36
Complexitéalgorithmique
EtapesdeCalculdela
complexité
Pourcalculerlacomplexitéd’unalgorithme:
1oncalculelacomplexitédechaquepartiedel’algorithme
2oncombinecescomplexitésconform
émentauxrèglesqu’onvientdevoir
3onsimplifielerésultatgrâceauxrèglesdesimplificationsqu’onavues;
Elim
inationdesconstantes,
conservationdu(des)term
e(s)dominant(s)
25
Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
25/36
Complexitéalgorithmique
Complexitédela
fonctionFactorielle
int
factorielle(n)
fact
=1;
O(1)
i=
2;
O(1)
while
(i
<=
n)
O(n)
fact
=fact*i;
O(1)
i=
i+
1;
O(1)
return
fact
O(1)
26
Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
26/36
Complexitéalgorithmique
Complexitédela
fonctionFactorielle
int
factorielle(n)
fact
=1;
O(1)
i=
2;
O(1)
while
(i
<=
n)
O(n)
fact
=fact*i;
O(1)
i=
i+
1;
O(1)
return
fact
O(1)
Complexitédelafonction=O(1)+O(n)*O(1)+O(1)=O(n)
26
Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
26/36
Complexitéalgorithmique
ClassesdeComplexité
Onpeutrangerlesfonctionséquivalentesdanslamêmeclasse
Deuxalgorithmesappartenantàlamemeclassesontconsidérésdememe
complexité
Lesclassesdecomplexitélesplusfréquentes(parordre
croissantenterm
esde
O(.))
Complexité
Classe
O(1)
constant
O(logn)
logarithmique
O(n
)linéaire
O(n
logn)
sous-quadratique
O(n
2)
quadratique
O(n
3)
cubique
O(2
n)
exponentiel
O(n
!)factorielle
27
Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
27/36
Complexitéalgorithmique
Problèmefacileetproblèmedifficile
Pourcomparerdeuxalgorithmes,ilfautêtrecapabledesituerleurcomplexité
Unepremière
distinctiondoitêtrefaiteentrelesdeuxclassessuivantes:
lesalgorithmesditspolynomiaux,dontlacomplexitéestenO(n
k)
pouruncertain
k
lesalgorithmesditsexponentiels,dontlacomplexiténepeutpas
êtremajoréeparunefonctionpolynomiale
Classificationdesproblèmes
unproblèmedecomplexitépolynomialeestconsidéré
"facile"
sinon(complexiténon-polynomialeouinconnue)ilestconsidéré
"difficile"
28
Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
28/36
Complexitéalgorithmique
Classificationdesproblèmes:PetNP
LaclasseP:estl’ensembledesproblèmesqu’onpeutrésoudre
avecun
algorithmedecomplexitépolynomiale;
LaclasseNPestl’ensembledesproblèmesnonpolynomiaux,maisdontonpeut
vérifierunesolutionavecunalgorithmedecomplexitépolynomiale
Laquestionquireste
nonencore
résolue:P
=NPoubienP6=
NP
Unalgorithmeestditefficacesisacomplexitéestauplusdel’ordre
Polynomiale.
29
Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
29/36
Complexitéalgorithmique
Intérêtdela
classificationdesproblèmes
Démonstrationetsim
plificationdela
résolutionduproblème
Onpeutparfoismontrerquedeuxproblèmesdonnées
sontéquivalents
ouquel’onpeutrésoudre
l’unàl’aidedel’autre
30
Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
30/36
Complexitéalgorithmique
Intérêtdela
classificationdesproblèmes
Démonstrationetsim
plificationdela
résolutionduproblème
Onpeutparfoismontrerquedeuxproblèmesdonnées
sontéquivalents
ouquel’onpeutrésoudre
l’unàl’aidedel’autre
Exemple
sionpeutrésoudre
leproblèmeP1enrésolvantleproblèmeP2,alorsona
directementunalgorithmepourP1grâceàP2
onadonccomplexité(P
1)<=complexité(P
2)
onnepeutdoncpasrésoudre
P2plusvitequeP1
30
Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
30/36
Complexitéalgorithmique
Intérêtdela
classificationdesproblèmes
Etudedelacomplexitéetdel’existanced’unesolution
Exempledel’employéetdesondirecteurquiluiadonnéunproblèmedifficile
Réponse1:Jen’arrivepasàtrouverd’algorithmeefficace,jedoisêtretropnul 31
Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
31/36
Complexitéalgorithmique
Intérêtdela
classificationdesproblèmes
Etudedelacomplexitéetdel’existanced’unesolution
Exempledel’employéetdesondirecteurquiluiadonnéunproblèmedifficile
Réponse1:Jen’arrivepasàtrouverd’algorithmeefficace,jedoisêtretropnul
Réponse2:Jen’arrivepasàtrouverd’algorithmeefficace,cariln’enexistepas!!
suitereponse2:etd’ailleurs,touslesgéniesn’yarriverontpasnonplus.
31
Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
31/36
Complexitéalgorithmique
Exemple
deProblèmes
Rechercherlepluspetit(ouplusgrand)éléementdansunensemblededonnées
Trierunensemblededonnées
Rechercherlesoccurrencesd’unesouschainedansuntexte.
Calculerl’itinérairelepluscourtentredeuxsommetsd’ungraphe
32
Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
32/36
Complexitéalgorithmique
Exemple
deProblèmes
Rechercherlepluspetit(ouplusgrand)éléementdansunensemblededonnées
Trierunensemblededonnées
Rechercherlesoccurrencesd’unesouschainedansuntexte.
Calculerl’itinérairelepluscourtentredeuxsommetsd’ungraphe
CesproblèmessontFaciles(classeP)
32
Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
32/36
Complexitéalgorithmique
Exemple
deProblèmes
Problème:subsetsum
Données:unensemble
Sdenentiers;
Question:existe-t-ilunsous-ensemble
S′⊂
Sdontlasommedesélémentsest
nulle
?
Exemple:S={−7,−
3,−
2,5,8};S′={−3,−
2,5}estunesolution
33
Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
33/36
Complexitéalgorithmique
Exemple
deProblèmes
Problème:subsetsum
Données:unensemble
Sdenentiers;
Question:existe-t-ilunsous-ensemble
S′⊂
Sdontlasommedesélémentsest
nulle
?
Exemple:S={−7,−
3,−
2,5,8};S′={−3,−
2,5}estunesolution
Problème:partition
Donnèes:unensemble
Sdenombres(répétitionsautorisées);
Question:peut-onséparerSendeuxsous-ensemblesAetBtelsque
∑a∈Aa=
∑b∈Bb
SiS={3;1;2;2;1}alors
A={3;1}etB
={2;2}estunesolution
33
Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
33/36
Complexitéalgorithmique
Exemple
deProblèmes
Problème:subsetsum
Données:unensemble
Sdenentiers;
Question:existe-t-ilunsous-ensemble
S′⊂
Sdontlasommedesélémentsest
nulle
?
Exemple:S={−7,−
3,−
2,5,8};S′={−3,−
2,5}estunesolution
Problème:partition
Donnèes:unensemble
Sdenombres(répétitionsautorisées);
Question:peut-onséparerSendeuxsous-ensemblesAetBtelsque
∑a∈Aa=
∑b∈Bb
SiS={3;1;2;2;1}alors
A={3;1}etB
={2;2}estunesolution
Cesproblèmessontdifficiles(classeNP)
33
Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
33/36
Complexitéalgorithmique
Exemple
deProblèmes
Problèmeisomorphismedegraphes
Données:deuxgraphesG1etG2
Question:G1etG2sont-ils
lesmêmes?(peut-onnuméroterleurssommetsde
manière
àobtenirdeuxensemblesd’arêtesidentiques?)
34
Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
34/36
Complexitéalgorithmique
Exemple
deProblèmes
Problèmeisomorphismedegraphes
Données:deuxgraphesG1etG2
Question:G1etG2sont-ils
lesmêmes?(peut-onnuméroterleurssommetsde
manière
àobtenirdeuxensemblesd’arêtesidentiques?)
35
Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
35/36
Complexitéalgorithmique
Exemple
deProblèmes
Problèmeisomorphismedegraphes
Données:deuxgraphesG1etG2
Question:G1etG2sont-ils
lesmêmes?(peut-onnuméroterleurssommetsde
manière
àobtenirdeuxensemblesd’arêtesidentiques?)
36
Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
36/36
Complexitéalgorithmique
Exemple
deProblèmes
Problèmeisomorphismedegraphes
Données:deuxgraphesG1etG2
Question:G1etG2sont-ils
lesmêmes?(peut-onnuméroterleurssommetsde
manière
àobtenirdeuxensemblesd’arêtesidentiques?)
Ceproblèmeestdecomplexitéinconnu
36
Chiheb-EddineBenN’Cir
(ESEN)
Cours
ComplexitéAlgorithmique
2016
36/36