• Aucun résultat trouvé

Résoudre un problème par une recherche

N/A
N/A
Protected

Academic year: 2022

Partager "Résoudre un problème par une recherche"

Copied!
72
0
0

Texte intégral

(1)

Introduction à l’Intelligence Artificielle et à la Théorie des Jeux

Ahmed Bouajjani

abou@irif.fr

Résoudre un problème par une recherche

Recherche informée

(2)

Description Formelle d’un Problème

- Etat initial par où l’agent devra commencer

- Ensemble d’actions possibles (chacune applicable à un ensemble d’états)

- Fonction de transition : état s, action a —> s’ obtenu en appliquant a à s

- Fonction de coût : transition s -a-> s’ —> c(s, a, s’) — distance, temps, …

- Test de l’état but où l’agent devra arriver

(3)

Description Formelle d’un Problème

- Etat initial par où l’agent devra commencer

- Ensemble d’actions possibles (chacune applicable à un ensemble d’états)

- Fonction de transition : état s, action a —> s’ obtenu en appliquant a à s

- Fonction de coût : transition s -a-> s’ —> c(s, a, s’) — distance, temps, …

- Test de l’état but où l’agent devra arriver

=> Ensemble des états + transitions = graphe dirigé (étiqueté)

=> Trouver une solution = recherche dans un graphe

(4)

JEUX DU TAKIN

1 3 2

4 6 5

7 8

1 2

4 5 6

7 8

3

Etat initial

suite d'actions

Etat final

-

Etats : description des positions des pièces, ex: (1,3,2,7,B,4,8,5,6); (1,2,3,4,5,6,B,7,8) …

-

Etat initial : peut être n’importe quel état, ex: (1,3,2,7,B,4,8,5,6)

-

Actions : Mouvements de B vers Haut, Bas, Gauche, Droite

-

Transitions : Pour chaque état et action, associe l’effet de l’application de l’action, ex:

-

Coût : chaque transition coûte 1, càd on mesure le nombre d’étapes pour atteindre le but

-

Test de fin : Etat est un but, càd ici = (1,2,3,4,5,6,B,7,8)

(1,3,2,7,B,4,8,5,6) — Droite —> (1,3,2, 7,4,B,8,5,6)

(5)

PROBLÈME DES HUITS DAMES

État initial : échiquier vide / 8 dames dans des positions quelconques Action : ajouter une dame sur une position vide / déplace une dame

Placer 8 Dames sur l’échiquier de manière

à ce qu’aucune ne puisse attaquer l’autre

(6)

Autres Problèmes plus Réalistes

- Routage dans les réseaux

- Navigation (trajectoire, itinéraire …), convoi, robot, missile, …

- Planning (séquence d’actions pour effectuer une tâche)

- Problèmes de conception de circuits

- Analyse de programmes

-

(7)

Résoudre un problème

- Recherche dans un graphe, schéma générique

- Différentes instances

- Recherche non informée

- Recherche informée (guidée lors de l’exploration de l’espace d’états)

(8)

Résoudre un problème

- Recherche dans un graphe, schéma générique

- Différentes instances

- Recherche non informée

- Recherche informée (guidée lors de l’exploration de l’espace d’états)

(9)

ALGORITHME GÉNÉRIQUE - TREE-SEARCH

fonction tree-search(problème) retourne solution ou échec n = new noeud(état_init); frontière = { n };

loop do

si frontière vide retourner échec

n = élément de la frontière; supprimer n de la frontière;

si n.état est un état but alors retourner solution pour chaque action a faire

nouvel_état = transition(n.état, a) m = new noeud(nouvel_état)

ajouter m dans la frontière fait

end loop

-

On déplie le graphe en un arbre, éventuellement infini

-

On ne mémorise pas les sommets traités

-

On maintient une Frontière : feuilles de l’arbres = noeuds non traités

(10)

ALGORITHME GÉNÉRIQUE — GRAPHE-SEARCH

fonction graph-search(problème) retourne solution ou échec n = créer_noeud_initial(état_init);

FRONTIERE = { n }; FERMES = {};

loop do

si frontière vide retourner échec n = élément de la FRONTIERE

supprimer n de la FRONTIERE

if n.état est un état but alors retourner solution ajouter n dans FERMES

pour chaque action a faire

nouvel_état = transition(n.état, a)

si nouvel_état dans un noeud de FRONTIERE

ou dans un noeud de FERMES alors continue m = new noeud(nouvel_état)

ajouter m dans FRONTIERE fait

end loop

-

FRONTIERE = noeuds à traiter

-

FERMES = noeuds traités (tous les successeurs ont été découverts)

(11)

Instances

- Recherche en largeur (BFS) — frontière = file d’attente (FIFO)

- Recherche en profondeur (DFS) — frontière = pile (LIFO)

- Recherche coût uniforme — frontière = file avec priorité (coût vers la racine)

- DFS borné

- DFS borné itéré

(12)

RECHERCHE INFORMÉE

Appelée BEST_FIRST_SEARCH

Guidée par une évaluation qui inclut une estimation du coût min vers le but

(13)

RECHERCHE INFORMÉE

Appelée BEST_FIRST_SEARCH

Guidée par une évaluation qui inclut une estimation du coût min vers le but

heuristique h(n) : le coût estimé du chemin le plus court de n au but

(14)

RECHERCHE INFORMÉE

Appelée BEST_FIRST_SEARCH

Guidée par une évaluation qui inclut une estimation du coût min vers le but

heuristique h(n) : le coût estimé du chemin le plus court de n au but

g(n) : le coût du chemin courant (calculé) du sommet initial à n

(15)

RECHERCHE INFORMÉE

Appelée BEST_FIRST_SEARCH

Guidée par une évaluation qui inclut une estimation du coût min vers le but

heuristique h(n) : le coût estimé du chemin le plus court de n au but

g(n) : le coût du chemin courant (calculé) du sommet initial à n

f(n) : la fonction d'évaluation, à chaque itération on cherche dans la frontière le sommet n avec f(n) minimal — est une combinaison de g(n) et de h(n)

(16)

ALGO COÛT UNIFORME

si f(n)=g(n), c'est-à-dire on n'utilise pas l’heuristique, on obtient alors la recherche à coût uniforme (non informée, déjà étudiée)

(17)

HEURISTIQUE ?

Exemple :

Pour le problème du plus court chemin entre les villes

h(n) - la distance à vol d'oiseau de la ville n à la ville destination

- Qui donne une « bonne » estimation du coût réel

- Facile à calculer

=> Que veut dire « bonne » estimation ?

=> Comment définir une heuristique ?

(18)

HEURISTIQUE ?

Exemple :

Pour le problème du plus court chemin entre les villes

h(n) - la distance à vol d'oiseau de la ville n à la ville destination

- Qui donne une « bonne » estimation du coût réel

- Facile à calculer

(19)

RECHERCHE GLOUTONNE (GREEDY BEST-FIRST SEARCH)

on prend f(n) = h(n)

le coût du chemin de sommet source vers n n'est donc pas pris en compte

(20)

RECHERCHE GLOUTONNE (GREEDY BEST-FIRST SEARCH)

on prend f(n) = h(n)

le coût du chemin de sommet source vers n n'est donc pas pris en compte

la version tree-like de l'algorithme complète ?

(21)

RECHERCHE GLOUTONNE (GREEDY BEST-FIRST SEARCH)

on prend f(n) = h(n)

le coût du chemin de sommet source vers n n'est donc pas pris en compte

(22)

RECHERCHE GLOUTONNE (GREEDY BEST-FIRST SEARCH)

on prend f(n) = h(n)

le coût du chemin de sommet source vers n n'est donc pas pris en compte

la version « en arbre » de l'algorithme est-elle complète ?

(23)

RECHERCHE GLOUTONNE (GREEDY BEST-FIRST SEARCH)

on prend f(n) = h(n)

le coût du chemin de sommet source vers n n'est donc pas pris en compte

la version « en arbre » de l'algorithme est-elle complète ?

-

h(n) = coût réel entre n et le but (= infini si but n’est pas atteignable)

(24)

RECHERCHE GLOUTONNE (GREEDY BEST-FIRST SEARCH)

on prend f(n) = h(n)

le coût du chemin de sommet source vers n n'est donc pas pris en compte

la version « en arbre » de l'algorithme est-elle complète ?

-

h(n) = coût réel entre n et le but (= infini si but n’est pas atteignable)

=> Complet dans ce cas, mais calcul h(n) pratiquement infaisable

(25)

RECHERCHE GLOUTONNE (GREEDY BEST-FIRST SEARCH)

on prend f(n) = h(n)

le coût du chemin de sommet source vers n n'est donc pas pris en compte

la version « en arbre » de l'algorithme est-elle complète ?

-

h(n) = coût réel entre n et le but (= infini si but n’est pas atteignable)

-

h(n) = 0 pour tout n

=> Complet dans ce cas, mais calcul h(n) pratiquement infaisable

(26)

RECHERCHE GLOUTONNE (GREEDY BEST-FIRST SEARCH)

on prend f(n) = h(n)

le coût du chemin de sommet source vers n n'est donc pas pris en compte

la version « en arbre » de l'algorithme est-elle complète ?

-

h(n) = coût réel entre n et le but (= infini si but n’est pas atteignable)

-

h(n) = 0 pour tout n

=> Complet dans ce cas, mais calcul h(n) pratiquement infaisable

=> Incomplet dans ce cas, donc incomplet en général

(27)

RECHERCHE GLOUTONNE (GREEDY BEST-FIRST SEARCH)

on prend f(n) = h(n)

le coût du chemin de sommet source vers n n'est donc pas pris en compte

la version « en arbre » de l'algorithme est-elle complète ?

la version « en arbre » de l’algorithme est-elle optimale ?

-

h(n) = coût réel entre n et le but (= infini si but n’est pas atteignable)

-

h(n) = 0 pour tout n

=> Complet dans ce cas, mais calcul h(n) pratiquement infaisable

=> Incomplet dans ce cas, donc incomplet en général

(28)

RECHERCHE GLOUTONNE (GREEDY BEST-FIRST SEARCH)

on prend f(n) = h(n)

le coût du chemin de sommet source vers n n'est donc pas pris en compte

la version « en arbre » de l'algorithme est-elle complète ?

la version « en arbre » de l’algorithme est-elle optimale ?

-

h(n) = coût réel entre n et le but (= infini si but n’est pas atteignable)

-

h(n) = 0 pour tout n

=> Complet dans ce cas, mais calcul h(n) pratiquement infaisable

=> Incomplet dans ce cas, donc incomplet en général

1

1 3

H = 0

H = 1

(29)

RECHERCHE GLOUTONNE (GREEDY BEST-FIRST SEARCH)

on prend f(n) = h(n)

le coût du chemin de sommet source vers n n'est donc pas pris en compte

la version « en arbre » de l'algorithme est-elle complète ?

la version « en arbre » de l’algorithme est-elle optimale ?

-

h(n) = coût réel entre n et le but (= infini si but n’est pas atteignable)

-

h(n) = 0 pour tout n

=> Complet dans ce cas, mais calcul h(n) pratiquement infaisable

=> Incomplet dans ce cas, donc incomplet en général

1

1 3

H = 0

H = 1

(30)

RECHERCHE GLOUTONNE (GREEDY BEST-FIRST SEARCH)

on prend f(n) = h(n)

le coût du chemin de sommet source vers n n'est donc pas pris en compte

la version « en arbre » de l'algorithme est-elle complète ?

la version « en arbre » de l’algorithme est-elle optimale ?

-

h(n) = coût réel entre n et le but (= infini si but n’est pas atteignable)

-

h(n) = 0 pour tout n

=> Complet dans ce cas, mais calcul h(n) pratiquement infaisable

=> Incomplet dans ce cas, donc incomplet en général

1

1 3

H = 0

H = 1

=> Non optimale

(31)

RECHERCHE GLOUTONNE (GREEDY BEST-FIRST SEARCH)

on prend f(n) = h(n)

le coût du chemin de sommet source vers n n'est donc pas pris en compte

la version « en graphe » de l'algorithme est-elle complète ?

(32)

RECHERCHE GLOUTONNE (GREEDY BEST-FIRST SEARCH)

on prend f(n) = h(n)

le coût du chemin de sommet source vers n n'est donc pas pris en compte

la version « en graphe » de l'algorithme est-elle complète ?

OUI, pour toute heuristique

(33)

RECHERCHE GLOUTONNE (GREEDY BEST-FIRST SEARCH)

on prend f(n) = h(n)

le coût du chemin de sommet source vers n n'est donc pas pris en compte

la version « en graphe » de l'algorithme est-elle complète ?

la version « en graphe » de l’algorithme est-elle optimale ?

1

1 3

H = 0

H = 1

NON

OUI, pour toute heuristique

(34)

RECHERCHE GLOUTONNE (GREEDY BEST-FIRST SEARCH)

on prend f(n) = h(n)

le coût du chemin de sommet source vers n n'est donc pas pris en compte

la version « en graphe » de l'algorithme est-elle complète ?

la version « en graphe » de l’algorithme est-elle optimale ?

1

1 3

H = 0

H = 1

NON

OUI, pour toute heuristique

L’algorithme ignor

e les coûts réels observés

(35)

ALGORITHME A* - MINIMISER LE COÛT TOTAL

dans chaque noeud n on stocke g(n) et f(n)=g(n)+h(n)

à chaque étape on choisit un noeud avec f(n) minimal

(36)

ALGORITHME A* (VERSION PARCOURS EN ARBRE)

1. mettre le sommet initial s dans FRONTIERE, g(s)=0, f(s)=h(s) 2. Si FRONTIERE vide, sortir avec échec

3. retirer de FRONTIERE le noeud n pour lequel f(n) est minimal

4. si n est le but alors terminer et retracer la solution, le chemin de s à n

5. développer n pour engendrer tous ses successeurs. Pour tout successeur m de n : A. Calculer f(m)=g(m)+h(m), où g(m)=g(n)+coût(n, m)

B. Insérer m dans FRONTIERE 6. aller à 2

(37)

ALGORITHME A* (VERSION PARCOURS EN GRAPHE)

1. mettre le sommet initial s dans FRONTIERE, g(s)=0, f(s)=h(s) 2. Si FRONTIERE vide, sortir avec échec

3. retirer de FRONTIERE et mettre dans FERMES le noeud n pour lequel f(n) est minimal

4. si n est le but alors terminer et retracer la solution, le chemin de s à n

5. développer n pour engendrer tous ses successeurs. Pour tout successeur m de n : A. Si m.état n'est pas dans un noeud de FERMES alors calculer f(m)=g(m)+h(m), où

g(m)=g(n)+coût(n, m)

B. Insérer m dans FRONTIERE 6. aller à 2

(38)

INFRASTRUCTURE POUR L'ALGORITHME A^*

n.état — état du noed

n.parent — le parent du noeud

n.action — l'action qui appliquée au parent donne l'état du nouer

n.coût — le coût du chemin de la racine jusqu'au noeud, c'est g(n)

n.f — la valeur f(n), la file de priorité selon les valeur n.f

fonction créer_noeud(Noeud parent, Action action) retourne Noeud n = new noeud()

n.état = transition(parent.état, action) n.action = action

n.coût = parent.coût + coût(parent.état,action) n.parent = parent

n.f = n.coût + h(n.état)

(39)

Algorithme A* (en arbre) — Exemple

A

B C

D E

3 1

1

1

1

5 7

0

1 4

3

0

(40)

A

B C

D E

3 1

1

1

1

5 7

0

1 4

3

0

A

1 3

B

f = 1+3 = 4 C f = 3+0 = 3

Algorithme A* (en arbre) — Exemple

(41)

A

B C

D E

3 1

1

1

1

5 7

0

1 4

3

0

A

1 3

B

f = 1+3 = 4 C f = 3+0 = 3

Algorithme A* (en arbre) — Exemple

(42)

A

B C

D E

3 1

1

1

1

5 7

0

1 4

3

0

A

1 3

B

f = 1+3 = 4 C

D E

7 1

f = 3+0 = 3

f = 4+1 = 5 f = 10+0 = 10

Algorithme A* (en arbre) — Exemple

(43)

A

B C

D E

3 1

1

1

1

5 7

0

1 4

3

0

A

1 3

B

f = 1+3 = 4 C

D E

7 1

f = 3+0 = 3

f = 4+1 = 5 f = 10+0 = 10

Algorithme A* (en arbre) — Exemple

(44)

A

B C

D E

3 1

1

1

1

5 7

0

1 4

3

0

A

1 3

B

D C

5 1

f = 1+3 = 4 C

D E

7 1

f = 3+0 = 3

f = 4+1 = 5 f = 10+0 = 10

f = 2+0 = 2 f = 6+0 = 6

Algorithme A* (en arbre) — Exemple

(45)

A

B C

D E

3 1

1

1

1

5 7

0

1 4

3

0

A

1 3

B

D C

5 1

f = 1+3 = 4 C

D E

7 1

f = 3+0 = 3

f = 4+1 = 5 f = 10+0 = 10

f = 2+0 = 2 f = 6+0 = 6

Algorithme A* (en arbre) — Exemple

(46)

A

B C

D E

3 1

1

1

1

5 7

0

1 4

3

0

A

1 3

B

D C

D E

5 1

7 1

f = 1+3 = 4 C

D E

7 1

f = 3+0 = 3

f = 4+1 = 5 f = 10+0 = 10

f = 2+0 = 2

f = 3+1 = 4 f = 6+0 = 6

f = 9+0 = 9

Algorithme A* (en arbre) — Exemple

(47)

A

B C

D E

3 1

1

1

1

5 7

0

1 4

3

0

A

1 3

B

D C

D E

5 1

7 1

f = 1+3 = 4 C

D E

7 1

f = 3+0 = 3

f = 4+1 = 5 f = 10+0 = 10

f = 2+0 = 2

f = 3+1 = 4 f = 6+0 = 6

f = 9+0 = 9

Algorithme A* (en arbre) — Exemple

(48)

A

B C

D E

3 1

1

1

1

5 7

0

1 4

3

0

A

1 3

B

D C

D E

D

5 1

7 1

1

f = 1+3 = 4 C

D E

7 1

f = 3+0 = 3

f = 4+1 = 5 f = 10+0 = 10

f = 2+0 = 2

f = 3+1 = 4 f = 6+0 = 6

f = 9+0 = 9

f = 4+0 = 4

Algorithme A* (en arbre) — Exemple

(49)

A

B C

D E

3 1

1

1

1

5 7

0

1 4

3

0

A

1 3

B

D C

D E

D

5 1

7 1

1

f = 1+3 = 4 C

D E

7 1

f = 3+0 = 3

f = 4+1 = 5 f = 10+0 = 10

f = 2+0 = 2

f = 3+1 = 4 f = 6+0 = 6

f = 9+0 = 9

f = 4+0 = 4

Algorithme A* (en arbre) — Exemple

(50)

A

B C

D E

3 1

1

1

1

5 7

0

1 4

3

0

A

1 3

B

D C

D E

D

5 1

7 1

1

f = 1+3 = 4 C

D E

7 1

f = 3+0 = 3

f = 4+1 = 5 f = 10+0 = 10

f = 2+0 = 2

f = 3+1 = 4 f = 6+0 = 6

f = 9+0 = 9

f = 4+0 = 4

= BUT

Algorithme A* (en arbre) — Exemple

(51)

Algorithme A* parcours en arbre — Optimalité ?

(52)

A

B C

D E

3 1

1

1

1

5 7

5

1 4

3

0

A

1 3

B

f = 1+3 = 4 C f = 3+5 = 8

Algorithme A* parcours en arbre — Optimalité ?

(53)

A

B C

D E

3 1

1

1

1

5 7

5

1 4

3

0

A

1 3

B

f = 1+3 = 4 C f = 3+5 = 8

Algorithme A* parcours en arbre — Optimalité ?

(54)

A

B C

D E

3 1

1

1

1

5 7

5

1 4

3

0

A

1 3

B

D C

5 1

f = 1+3 = 4 C f = 3+5 = 8

f = 2+5 = 7 f = 6+0 = 6

Algorithme A* parcours en arbre — Optimalité ?

(55)

A

B C

D E

3 1

1

1

1

5 7

5

1 4

3

0

A

1 3

B

D C

5 1

f = 1+3 = 4 C

f = 2+5 = 7 f = 6+0 = 6

= BUT

f = 3+5 = 8

Algorithme A*parcours en arbre — Optimalité ?

(56)

A

B C

D E

3 1

1

1

1

5 7

5

1 4

3

0

A

1 3

B

D C

5 1

f = 1+3 = 4 C

f = 2+5 = 7 f = 6+0 = 6

= BUT

NON OPTIMA L !!

=> Quelle heuristique utiliser pour garantir l’optimalité ?

f = 3+5 = 8

Algorithme A* parcours en arbre — Optimalité ?

(57)

HEURISTIQUE ADMISSIBLE

la fonction heuristique h est admissible si pour chaque sommet n h(n) <= coût réel du chemin le plus court de n vers un état but

donc une heuristique admissible ne surestime jamais le coût réel.

(58)

Si l’heuristique est admissible alors A*

version parcours en arbre est optimal

Algorithme A* parcours en arbre — Optimalité ?

(59)

B

B’

A

f(A) = g(A) + h(A) <= g(A) + c

c

Admissibilité

g(A) + c < g(B) Optimalité

g(A) + c < g(B) + h(B) = f(B) Admissibilité : h(B)=0

=> f(A) < f(B)

Contradiction avec f(B) <= f(A) f(B) <= f(A)

Si l’heuristique est admissible alors A*

version parcours en arbre est optimal

Algorithme A* parcours en arbre — Optimalité ?

(60)

A

B C

D E

3 1

1

1

1

5 7

0

1 4

3

0

Algorithme A* parcours en graphe — Optimalité ?

(61)

A

B C

D E

3 1

1

1

1

5 7

0

1 4

3

0

A

1 3

B

f = 1+3 = 4 C f = 3+0 = 3

Algorithme A* parcours en graphe — Optimalité ?

(62)

A

B C

D E

3 1

1

1

1

5 7

0

1 4

3

0

A

1 3

B

f = 1+3 = 4 C f = 3+0 = 3

Algorithme A* parcours en graphe — Optimalité ?

(63)

A

B C

D E

3 1

1

1

1

5 7

0

1 4

3

0

A

1 3

B

f = 1+3 = 4 C

D E

7 1

f = 3+0 = 3

f = 4+1 = 5 f = 10+0 = 10

Algorithme A* parcours en graphe — Optimalité ?

(64)

A

B C

D E

3 1

1

1

1

5 7

0

1 4

3

0

A

1 3

B

f = 1+3 = 4 C

D E

7 1

f = 3+0 = 3

f = 4+1 = 5 f = 10+0 = 10

Algorithme A* parcours en graphe — Optimalité ?

(65)

A

B C

D E

3 1

1

1

1

5 7

0

1 4

3

0

A

1 3

B

D C

5 1

f = 1+3 = 4 C

D E

7 1

f = 3+0 = 3

f = 4+1 = 5 f = 10+0 = 10

f = 6+0 = 6

Algorithme A* parcours en graphe — Optimalité ?

C est dans FERMES

(66)

A

B C

D E

3 1

1

1

1

5 7

0

1 4

3

0

A

1 3

B

D C

5 1

f = 1+3 = 4 C

D E

7 1

f = 3+0 = 3

f = 4+1 = 5 f = 10+0 = 10

f = 6+0 = 6

Algorithme A* parcours en graphe — Optimalité ?

C est dans FERMES

=> L’algorithme rate le chemin optimal !!

(67)

A

B C

D E

3 1

1

1

1

5 7

0

1 4

3

0

A

1 3

B

D C

5 1

f = 1+3 = 4 C

D E

7 1

f = 3+0 = 3

f = 4+1 = 5 f = 10+0 = 10

f = 6+0 = 6

Algorithme A* parcours en graphe — Optimalité ?

C est dans FERMES

Admissibilité n’est pas suffisante dans ce cas Quelle autre condition ?

=> L’algorithme rate le chemin optimal !!

(68)

HEURISTIQUE CONSISTANTE

Une heuristique est consistante (ou cohérente) si h(but) =0 et elle satisfait l'inégalité de triangle:

pour chaque couple de sommets n et m et toute action a telle que m=transition(n,a) , on a :

h(n) <= coût(n,a,m) + h(m)

coût(n,a,m) - coût de l'action a

destination n

a m

(69)

HEURISTIQUE CONSISTANTE

heuristique h





si h consistante alors h admissible

(70)

HEURISTIQUE CONSISTANTE

heuristique h





si h consistante alors h admissible

Preuve laissée en exer

cice

(71)

OPTIMALITÉ DE A*

A. Si la heuristique h est admissible alors la version tree- search de l'algorithme A* est optimale.

B. Si la heuristique h est consistante alors la version graph- search de l'algorithme A* est optimale.

(72)

Points qui restent à traiter — prochaine séance

- Preuve d’optimalité de A* (parcours en graphe)

- Comment trouver des heuristiques ?

Références

Documents relatifs

Un scénario de production et gestion de l’énergie a été sélectionné : Solaire thermique, bois énergie pour la production d’énergie thermique, solaire

• Le problème du plus court chemin consiste à déterminer le chemin de coût minimum reliant un nœud a à un nœud b.. • On peut le voir comme un problème

Depuis les premières études réalisées par [1] et [2], plusieurs variantes de ce problème sont toujours étudiées dont le problème du plus court chemin multi-objectif (MOSP

– la première phase utilise l’algorithme inspiré de GRASP afin de générer une population de solutions représentant une bonne approximation tant au niveau de la distance à

Qu’en est-il de l’étranger demandeur de régularisation qui n’entre dans aucune de ces deux hypothèses, soit qu’il ne se soit pas déclaré réfugié, soit qu’il n’ait

Dans ce rapport de thèse, nous proposons principalement une approche de résolution distribuée à travers la description d’un modèle d’optimisation heuristique distri- buée

Comme expliqué dans l’introduction, nous souhaiterions proposer des algorithmes de recherche heuristique (à la HSVI) pour des zs-SG à 2 joueurs, c’est-à-dire en concen-

D’une part, l’ensemble des chemins ainsi g´en´er´es permet d’am´eliorer le majorant en recombinant les plus courts chemins pour trouver des chemins r´ealisables de bon coˆ ut :