Vous êtes sur la page 1sur 5

Heuristiques

1)Introduction&dfinition Uneheuristiqueestunetechniquequiamliorel'efficacitd'unprocessusderecherche,en sacrifiantventuellementlexactitudeouloptimalitdelasolution. Pour des problmes d'optimisation (NPcomplets) o la recherche d'une solution exacte (optimale) est difficile (cot exponentiel), on peut se contenter d'une solution satisfaisante donneparuneheuristiqueavecuncotplusfaible. Certainesheuristiquessontpolyvalentes(ellesdonnentd'assezbonsrsultatspourunelarge gammedeproblmes)alorsqued'autressontspcifiqueschaquetypedeproblme. Danslebacktracking,danslesjeuxdestratgie(jeud'chec),onadjutilislesheuristiques (lesfonctiondestimationsdansMimmax). Les heuristiques peuvent donner des solutions optimales, ce qui semble paradoxal (voir AlgorithmeA*plusloin). 2)Algorithmesvoraces(gloutons) Cestunemthodeheuristiquesimpleetdusagegnral(appeleaussialgorithmeduplus prochevoisin).Sonprincipeestquchaquetapedurantleprocessusderecherche,loption localementoptimaleestchoisiejusqutrouverunesolution(exacteounon).Leschoixfait durantleprocessusderecherchenesontjamaisremisencause(pasderetourarrire). Plusieursalgorithmesimportantssontissusdecettetechnique: AlgorithmedeDijkstrapourlespluscourtscheminsentreunsommetettouslesautres sommetsdugraphe. AlgorithmedeKruskalpourlesarbressoustendantsminimaux:dansungrapheorient, trouverlarbredepoidsminimalconnectanttouslessommets Exemple1: Onveut totaliser unesomme dargent Senutilisant unnombre minimal de pices appartenantunensembledonn. Achaquetapeonchoisitlaplusgrandepice<=Stoutenmettantjourlanouvelle somme(Slapicechoisie): PourS=257DAetpices={100DA,50DA,20DA,10DA,5DA,2DA,1DA} ltape1:S1=257,onchoisit1picede100DA ltape2:S2=157,onchoisit1picede100DA ltape3:S3=57,onchoisit1picede50DA ltape4:S4=7,onchoisit1picede5DA ltape5:S5=2,onchoisit1picede2DA Lasolutiontrouveestdonc2x100DA,1x50DA,1x5DAet1x2DA
SupportdecoursMCP4:Heuristiques 1/5

Exemple2: Voyons comment un simple algo vorace, driv de celui de Kruskal, trouve gnralementunesolutionassezbonneauPVC(pbduvoyageurdecommerce). Le PVC peur snoncer comme suit : tant donn un ensemble de villes avec des distancesdonnesentrechaquecoupledevilles,trouverlapluspetitetournepassant partouteslesvilles.Celarevienttrouverlepluspetitcyclesimplepassantpartous lessommetsdungraphecomplet(ungrapheoilexisteunearteentrechaquecouple desommets) Le principe est de commencer avec un ensemble dartes vide V et de lenrichir chaquetapeparlartevrifiant: a) nedoitpasformeuncycleaveclesartesdjchoisies(dansV)saufsilecycle construitpassepartouslessommet,auquelcascestlersultatfinal. b) nedoitpastrela3eartechoisieincidenteunmmesommet. Pourlegraphecompletdontlamatrice(symtrique)descotsestlasuivante: a b c d e f a 3 10 11 7 25 b 6 12 8 26 c 9 4 20 d 5 15 e 18 f lesartesserontchoisiesdanslordre:{ab,ce,de,bc,df,af}donnantlecyclersultat:{a bcedfa}delongueur58,alorsquelecycleoptimalest: { a b c f d e a } de longueur56. Danslerestedecechapitre,onvaprsenterlutilisationdheuristiquesdanslesalgorithmes dexplorationdegraphes.Onappelleracesmthodesdesrecherchesguides. 3)Lesrecherchesguides: Il y a deux grandes classes de recherches guides : celles utilisant les heuristiques pour acclrerlarechercheduntatsolution(parcoursenprofondeuretenlargeuravecfonctions destimations)etcellesutilisantlesheuristiquespourtrouverlespluscourtscheminsentre ltatinitialetuntatsolution(Branch&Bound,A*). a)"HillClimbing" C'estunerechercheenprofondeuravecfonctiondestimationpourordonnerlesalternatives chaquetape. La fonction destimation (qui doit tre donne en fonction du problme) sert estimer la proximitdunsommetsolutionpartirdusommetcourantdanslespacederecherche.Ainsi

SupportdecoursMCP4:Heuristiques

2/5

partirdunsommetx,laprocdurefavoriseenpremier,lexplorationdessuccesseursdex ayantlapluspetiteestimation. Parexemple,pourleproblmedulabyrinthe,ladistanceeuclidiennepeuttreutilisecomme fonctiondestimationdeproximitdelacasesolution. LalgorithmesuivantpermetdeconduireunerecherchedetypeHillClimbingpourrechercher unsommetsolution(BUT).Lalgorithmeutiliseunepileetunefonctiondestimationf(x)pour ordonnerlocalementleschoix: CreerPile(P); Empiler(P,Racine); Trouv:=FAUX; TantQueNonPileVide(P)etNonTrouv Depiler(P,x); Six<>BUT Sitat[x]=nonvisit tat[x]:=visit; Soienty1,y2,...yklessuccesseursdexnonencorevistis Empilerlesyienordredcroissantdeleursestimations. Fsi Sinon Trouv:=VRAI Fsi FTQ b)"BestFirstSearch" Cestunerechercheenlargeuravecfonctiondestimation. Achaquefoisquongnrelessuccesseursdunsommet,onlesrajouteunefiledepriorit contenanttouslessommetsgnrsmaispasencoreexplors.Lafileestordonneparla fonctiondestimation,desortequeleprochainsommetvisiteresttoujourslemeilleur parmitousceuxdjgnrsdanslafile. LalgorithmesuivantpermetderaliserunerecherchedetypeBestFirstSearchpour rechercherunsommetsolution(BUT).Laseulediffrenceaveclarechercheenlargeurestle faitdutiliserunefiledeprioritordonneparlesvaleursdelafonctiondestimationdonne. CreerFile(F) /*Funefiledepriorit:ceslmentssontdes couplesdelaforme<Sommet,Estimation>*/ Enfiler(F,<Racine,f(Racine)>); Trouv:=FAUX;
SupportdecoursMCP4:Heuristiques 3/5

TantQueNonFileVide(F)etNonTrouv Defiler(x);/*xestlesommetaveclapluspetiteestimation*/ Six<>BUT Sitat[x]=Nonvisit tat[x]:=Visit; Soienty1,...yklessuccdexnonencorevisits; Pouri:=1,k Enfiler(F,<yi,f(yi)>)/*f:fctdestimation*/ Fp Fsi Sinon Trouv:=VRAI Fsi FTQ c)Lafamilledemthodes"Branch&Bound/A*" Cestuntypedeparcoursenlargeuroongardedanslafilelescheminsgnrs. Lalgorithmedebaseestlesuivant: CreerFile(F); /*unefiledeprioritordonneparf*/

Z:={Racine}; /*uncheminformparunseulsommet*/ Enfiler(F,<Z,f(Racine)>); Trouv:=FAUX; TantQueNonFileVide(F)etNonTrouv Defiler(F,Z); SoitxlederniersommetducheminZ; Six<>BUT Soienty1,...yklessuccdexquinappartiennentpasZ; Pouri:=1,k T:=Z+{yi} Enfiler(F,<T,f(yi)>); FP Sinon Trouv:=VRAI Fsi FTQ Danscetalgorithme,lafilecontientdescheminsissusdelaracine,chaquetape,ondfile lecheminleplusprioritaireetonltendparlesdiffrentesalternativesprsentesauniveau duderniersommetduchemin.Lesnouveauxcheminsainsiconstruitsontrajoutslafile.
SupportdecoursMCP4:Heuristiques 4/5

/*formerdenouveauxchemins*/ /*etlesenfiler*/

etiq:/*pourlemomentrienfaireici*/

Pour ordonner les chemins dans la file, on utilise la fonction destimation f(x) o x est le dernier sommet du chemin. Dans les mthodes Branch & Bound ou bien dans A*, cette fonctiondestimationestdcomposeendeuxpartie: f(x)=g(x)+h*(x) o g(x) reprsente le cot du chemin entre la racine est x et h*(x) reprsente une estimationducotrestantentrexetunventuelsommetsolution(BUT)accessible partirdex. Ainsif(x)seraituneestimationducotduncheminentrelaRacineetleBUTpassantparx. Pourquelechemintrouvsoittoujoursoptimal,onimposeh*(x)denejamaissurestimerle cotdutrajetrestantrel.Onditqueh*(x)estunefonctiondesousestimation. Cadsih*(x)=valorslecotreldutrajetentrexetleBUTestforcmentv. Sih*(x)=0quelquesoitx,lamthodeestappeleBranchandBoundpure. Sih*(x)estunefonctiondesousestimationdutrajetrestantentrexetleBUT,lamthodeest appeleBranchandBoundavecsousestimation. Commeleproblmeduplus courtcheminvrifie leprincipe doptimalit (dans unchemin optimal,toutsouschemindoitaussitreoptimal),onpeutrorganiserlafiledeprioritde lalgorithme de base (au niveau de l'tiquette etiq) pour liminer tous les souschemins menant vers un mme sommet pour ne garder que le plus court dentre eux. Cest une applicationdelaprogrammationdynamique. Cecipermettraderendrelalgorithme encore plus efficace. Cette variante est appele Branch and Bound avec programmation dynamique. Etiq:SilexistedansFplusieurscheminsmenantversunmmesommet,alorssupprimertous lessouscheminsinutiles(menantverslemmesommetetdecotplusgrand). La mthode A* est tout simplement Branch and Bound avec sousestimation et programmationdynamique. Exemples: 1.Lelabyrinthe: Trouverlepluscourtcheminentreunecasededpart(1,1)etunecasedarriver(5,4) danslelabyrinthereprsentparunegrillede5x5.Lescasesfermessont(2,2)(3,2) (5,2)(5,3)(1,4)(3,4)et(4,4).Lesdplacementspossiblessontdanslaverticaleetdans lhorizontale. Lafonctiong(x)=lenbdecasesparcourusdanscechemindepuislaracinejusqux Lafonctionh*(x)=ladistanceeuclidienneentrelacasexetlacase(5,4). 2.Letaquin(h*(x)=lenbdepicesmalplaces) 3.LePVC

SupportdecoursMCP4:Heuristiques

5/5

Vous aimerez peut-être aussi