• Aucun résultat trouvé

Intelligence Artificielle Recherche

N/A
N/A
Protected

Academic year: 2022

Partager "Intelligence Artificielle Recherche"

Copied!
72
0
0

Texte intégral

(1)

Intelligence Artificielle Recherche

Bruno Bouzy

http://web.mi.parisdescartes.fr/~bouzy bruno.bouzy@parisdescartes.fr

Licence 3 Informatique

UFR Mathématiques et Informatique

Université Paris Descartes

(2)

Algorithmes de recherche en IA

Agents avec objectifs explicites Les diff´erents types de probl`eme Exemples de probl`emes

Algorithme de recherche de base (recherche aveugle)

4 / 46 Intelligence artificielle N

(3)

Algorithmes de recherche en IA

Agents avec objectifs explicites Les diff´erents types de probl`eme Exemples de probl`emes

Algorithme de recherche de base (recherche aveugle)

(4)

Agent avec des objectifs explicites

6 / 46 Intelligence artificielle N

(5)

Exemple de probl` eme: le voyage en Roumanie

Arad Zerind

Timisoara Oradea

Sibiu

Lugoj

Rimnicu Vilcea

Fagaras

Bucharest Urziceni

Hirsova Vaslui Lasi

Neamt

75

118 71

140 151

111 70

80

146 99

97

211

101

85 98

142 92 87

(6)

Algorithmes de recherche en IA

Agents avec objectifs explicites Les diff´erents types de probl`eme Exemples de probl`emes

Algorithme de recherche de base (recherche aveugle)

8 / 46 Intelligence artificielle N

(7)

Les diff´ erents types de probl` emes

D´eterministe, compl`etement observable→probl`eme `a un seul ´etat L’agent sait exactement dans quel ´etat il est et dans quel ´etat il sera La solution est une s´equence d’actions

Non-observable→probl`eme sans possibilit´e de percevoir l’environnement L’agent n’a aucune id´ee d’o`u il est r´eellement

La solution est une s´equence d’actions

Non-d´eterministe ou partiellement observable→probl`eme dans lesquels il faut g´erer des ´eventualit´es

Les perceptions fournissent de nouvelles informations sur l’´etat courant Souvent les phases de recherche et d’ex´ecution sont entrelac´ees L’expace d’´etats est inconnu→probl`eme d’exploration

(8)

Exemple : Le monde de l’aspirateur

Probl`eme d´eterministe compl`etement observable

Etat initial : #5 Etat final : #8

Solution : hdroite,aspirei

10 / 46 Intelligence artificielle N

(9)

Exemple : Le monde de l’aspirateur

Probl`eme d´eterministe non observable

Etats initiaux : {#1, #2, #3,

#4, #5, #6, #7, #8}

Solution pour{#1, #3, #5,

#7}:

haspire,droite,aspirei Solution pour{#2, #4 #6,

#8}:

hgauche,aspire,droite,aspirei

(10)

Exemple : Le monde de l’aspirateur

Probl`eme non d´eterministe partiellement observable

Non-d´eterministe : aspirer ne garantit pas que le sol soit propre

Partiellement observable : on ne sait pas si le sol `a droite est propre

⇒Etats initiaux : {#5, #7}

Solution :

hdroite, si sol sale alorsaspirei

12 / 46 Intelligence artificielle N

(11)

Les probl` emes d´ eterministes et com- pl` etement observables

Unprobl`eme d´eterministe et compl`etement observableest d´efini par : 1. un´etat initial

par exemple, “`a Arad”

2. unensemble d’actionsou unefonction de transition,succ(x) : par exemple,succ(Arad) ={Zerind,Timisoara,Sibiu}

3. untest de terminaisonpour savoir si le but est atteind explicite, e.g., “`a Bucharest”

implicite, e.g., “v´erifier mat au ´echec”

4. uncoˆut(additif)

par exemple la somme des distances, le nombre d’actions ex´ecut´ees, etc.

par exemple,c(x,a,y) est le coˆut d’une transition,c(x,a,y)0

Unesolutionest une s´equence d’actions partant de l’´etat initial et menant

(12)

L’espace d’´ etats

Lemonde r´eel est trop complexepour ˆetre mod´elis´e

L’espace de recherche mod´elise unevue abstraite et simplifi´eedu monde eel

Un´etat abstraitrepr´esente un ensemble d’´etats r´eels

Uneaction abstraiterepr´esente une combinaison complexe d’actions r´eelles

par exemple, “AradZerind” repr´esente un ensemble de routes possibles, de d´etours, d’arrˆets, etc.

Une action abstraite doit ˆetre une simplification par rapport `a une action eelle

Unesolution abstraitecorrespond `a un ensemble de chemins qui sont solutions dans le monde r´eel.

14 / 46 Intelligence artificielle N

(13)

Algorithmes de recherche en IA

Agents avec objectifs explicites Les diff´erents types de probl`eme Exemples de probl`emes

Algorithme de recherche de base (recherche aveugle)

(14)

Exemple : Espace d’´ etats du monde de l’aspirateur

R

L

S S

S S

R

L

R

L

R

L S

S S

S L

L

L

L R

R R

R

Etats? sol sale ou propre, position de l’aspirateur Actions? droite, gauche, aspire

Test du but? les deux pi`eces doivent ˆetre propres Coˆut du chemin? 1 par action

16 / 46 Intelligence artificielle N

(15)

Exemple : Le jeu du taquin

Etats? les positions des pi`eces

(16)

Exemple : Le robot assembleur

Etats? coordonn´ees du robot, angles, position de l’objet `a assembler...

Actions? d´eplacements continus

Test du but? objet compl`etement assembl´e Coˆut du chemin? le temps d’assemblage

18 / 46 Intelligence artificielle N

(17)

Exemple de probl` emes r´ eels

Recherche de parcours

Itin´eraires automatiques, guidage routier, planification de routes a´eriennes, routage sur les r´eseaux informatiques, ...

Robotique

Assemblage automatique, navigation autonome, ...

Planification et ordonnancement

Horaires, organisation de tˆaches, allocation de ressources, ...

(18)

Algorithmes de recherche en IA

Agents avec objectifs explicites Les diff´erents types de probl`eme Exemples de probl`emes

Algorithme de recherche de base (recherche aveugle)

20 / 46 Intelligence artificielle N

(19)

Algorithme de recherche de base (recherche aveugle)

Id´ee de base

Recherche hors ligne, i.e. exploration de l’espace d’´etats en g´en´erant des successeurs d’´etats d´ej`a g´en´er´es (d´evelopper des ´etats)

en´eration d’unarbre de recherche

On s’arrˆete lorsqu’on a choisi de d´evelopper un nœud qui est un ´etat final

(20)

Exemple : arbre de recherche

Arad

22 / 46 Intelligence artificielle N

(21)

Exemple : arbre de recherche

Sibiu Zerind Timisoara

Arad

(22)

Exemple : arbre de recherche

Arad Fagaras Oradea Rimnicu Vilcea

Sibiu Zerind Timisoara

Arad

22 / 46 Intelligence artificielle N

(23)

Impl´ emetation des algorithmes de recherche

Structure de donn´eesnœudqui contient

´ etat parent enfant profondeur

coˆut du chemin (not´eg(x)) Expandcr´ee de nouveaux nœuds

InsertAllins`ere de nouveaux nœuds dans la liste `a traiter

(24)

Algorithme de recherche dans les arbres

24 / 46 Intelligence artificielle N

(25)

Etats vs Nœuds

Un´etatest une repr´esentation d’une configuration physique du monde Unnœudest une structure de donn´ees qui est partie int´egrante de l’arbre de recherche et qui inclue :

l’´etat

le parent, i.e. le nœud p`ere

l’action r´ealis´ee pour obtenir l’´etat contenu dans le nœud

le coˆutg(x) pour atteindre l’´etat contenu dans le nœuddepuis l’´etat initial la profondeur du nœud, i.e., la distance entre le nœud et la racine de l’arbre

(26)

Strat´ egie de recherche

Lesdiff´erents attributs des nœudssont initialis´es par la fonctionExpand Unestrat´egie de rechercheest d´efinie parl’ordre dans lequel les nœuds sont d´evelopp´es, i.e., la fonctionInsert-Fn

Une strat´egie s’´evalue en fonction de 4 dimensions :

lacompl´etude: est ce que cette strat´egie trouve toujours une solution si elle exise ?

lacomplexit´e en temps: le nombre de nœuds cr´es

lacomplexit´e en m´emoire: le nombre maximum de nœuds en m´emoire l’optimalit´e: est ce que la strat´egie trouve toujours la solution la moins coˆuteuse ?

26 / 46 Intelligence artificielle N

(27)

Strat´ egie de recherche

La complexit´e en temps et en m´emoire se mesure en termes de : b: lefacteur maximum de branchementde l’arbre de recherche, i.e., le nombre maximum de fils des nœuds de l’arbre de recherche

d: laprofondeur de la solution la moins coˆuteuse m: laprofondeur maximale de l’arbre de recherche

attention peut ˆetre

(28)

Strat´ egies de recherche non-inform´ ees (aveugles)

Lesstrat´egies de recherche non-inform´eesutilisent seulement les informations disponibles dans le probl`eme

Il existe plusieurs strat´egies : Recherche en largeur d’abord Recherche en coˆut uniforme Recherche en profondeur d’abord Recherche en profondeur limit´ee Recherche iterative en profondeur

28 / 46 Intelligence artificielle N

(29)

Recherche en largeur d’abord

La fonctionInsert-Fnajoute les successeurs en fin de liste fringe = [A]

A

(30)

Recherche en largeur d’abord

La fonctionInsert-Fnajoute les successeurs en fin de liste fringe = [B,C]

B C

A

29 / 46 Intelligence artificielle N

(31)

Recherche en largeur d’abord

La fonctionInsert-Fnajoute les successeurs en fin de liste fringe = [C,D,E]

D E

B C

A

(32)

Recherche en largeur d’abord

La fonctionInsert-Fnajoute les successeurs en fin de liste fringe = [D,E,F,G]

D E F G

B C

A

29 / 46 Intelligence artificielle N

(33)

Recherche en largeur d’abord

La fonctionInsert-Fnajoute les successeurs en fin de liste fringe = [E,F,G]

D E F G

B C

A

(34)

Exemple de probl` eme: le voyage en Roumanie

Arad Zerind

Timisoara Oradea

Sibiu

Lugoj

Mehadia Dobreta

Craiova

Rimnicu Vilcea

Fagaras

Pitesti

Bucharest

Giurgiu

Urziceni

Hirsova

Eforie Vaslui Lasi

Neamt

75

118 71

140 151

111 70

75 120

80

146 99

138 97

211

101 90

85 98

80 142

92 87

30 / 46 Intelligence artificielle N

(35)

Recherche en largeur d’abord

Complet, sibest fini Complexit´e en temps :

1 +b+b2+b3+. . .+bd+ (bd+1−b) =O(bd+1) Complexit´e en espace : O(bd+1) (garde tous les nœuds en m´emoire) Optimale si coˆut = 1 pour chaque pas, mais non optimale dans le cas g´en´eral

⇒ L’espace est le plus gros probl`eme

(36)

Recherche en largeur d’abord

b= 10

10000 nœuds par seconde

1000 octets de m´emoire pour un nœuds

Profondeur Nœuds Temps M´emoire

8 109 31 heures 1 Teraoctet, 1024 Go 12 1013 35 ans 10 Petaoctets, 1024 Teraoctet

32 / 46 Intelligence artificielle N

(37)

Recherche en coˆ ut uniforme

La fonctionInsert-Fnajoute les nœuds dans l’ordre du coˆutg(x) fringe = [(S,0)]

S

A

B

C

G 1

15 5

10 5 5

S, 0

(38)

Recherche en coˆ ut uniforme

La fonctionInsert-Fnajoute les nœuds dans l’ordre du coˆutg(x) fringe = [(A,1),(C,5),(B,15)]

S

A

B

C

G 1

15 5

10 5 5

A, 1 B, 15 C, 5

S, 0

33 / 46 Intelligence artificielle N

(39)

Recherche en coˆ ut uniforme

La fonctionInsert-Fnajoute les nœuds dans l’ordre du coˆutg(x) fringe = [(C,5),(G,11),(B,15)]

S

A

B

C

G 1

15 5

10 5 5

G, 11

A, 1 B, 15 C, 5

S, 0

(40)

Recherche en coˆ ut uniforme

La fonctionInsert-Fnajoute les nœuds dans l’ordre du coˆutg(x) fringe = [(G,10),(G,11),(B,15)]

S

A

B

C

G 1

15 5

10 5 5

G, 11 G, 10

A, 1 B, 15 C, 5

S, 0

33 / 46 Intelligence artificielle N

(41)

Recherche en coˆ ut uniforme

La fonctionInsert-Fnajoute les nœuds dans l’ordre du coˆutg(x) fringe = [(G,11),(B,15)]

S

A

B

C

G 1

15 5

10 5 5

G, 11 G, 10

A, 1 B, 15 C, 5

S, 0

(42)

Recherche en coˆ ut uniforme

Equivalent `a la largeur d’abord si le coˆut est toujours le mˆeme Complet si le coˆut de chaque pas est strictement sup´erieur `a 0

Complexit´e en temps : nombre de nœuds pour lesquelsg ≤C, o`uCest le coˆut de la solution optimale

Complexit´e en espace : idem que la complexit´e en temps Optimale car les nœuds sont d´evelopp´es en fonction deg

34 / 46 Intelligence artificielle N

(43)

Recherche en profondeur d’abord

La fonctionInsert-Fnajoute les successeurs en d´ebut de liste fringe = [A]

A

(44)

Recherche en profondeur d’abord

La fonctionInsert-Fnajoute les successeurs en d´ebut de liste fringe = [B,C]

B C

A

35 / 46 Intelligence artificielle N

(45)

Recherche en profondeur d’abord

La fonctionInsert-Fnajoute les successeurs en d´ebut de liste fringe = [D,E,C]

D E

B C

A

(46)

Recherche en profondeur d’abord

La fonctionInsert-Fnajoute les successeurs en d´ebut de liste fringe = [H,I,E,C]

D E

H I

B C

A

35 / 46 Intelligence artificielle N

(47)

Recherche en profondeur d’abord

La fonctionInsert-Fnajoute les successeurs en d´ebut de liste fringe = [I,E,C]

D E

B C

A

(48)

Recherche en profondeur d’abord

La fonctionInsert-Fnajoute les successeurs en d´ebut de liste fringe = [E,C]

D E

H I

B C

A

35 / 46 Intelligence artificielle N

(49)

Recherche en profondeur d’abord

La fonctionInsert-Fnajoute les successeurs en d´ebut de liste fringe = [J,K,C]

D E

B C

A

(50)

Recherche en profondeur d’abord

La fonctionInsert-Fnajoute les successeurs en d´ebut de liste fringe = [K,C]

D E

H I J K

B C

A

35 / 46 Intelligence artificielle N

(51)

Recherche en profondeur d’abord

La fonctionInsert-Fnajoute les successeurs en d´ebut de liste fringe = [C]

D E

B C

A

(52)

Recherche en profondeur d’abord

La fonctionInsert-Fnajoute les successeurs en d´ebut de liste fringe = [F,G]

D E F G

H I J K

B C

A

35 / 46 Intelligence artificielle N

(53)

Recherche en profondeur d’abord

La fonctionInsert-Fnajoute les successeurs en d´ebut de liste fringe = [G]

D E F G

B C

A

(54)

Recherche en profondeur d’abord

La fonctionInsert-Fnajoute les successeurs en d´ebut de liste fringe = []

D E F G

H I J K

B C

A

35 / 46 Intelligence artificielle N

(55)

Recherche en profondeur d’abord

Non complet dans les espaces d’´etats infinis ou avec boucle Il est possible d’ajouter un test pour d´etecter les r´ep´etitions Complexit´e en temps : O(bm)

Tr`es mauvais simest beaucoup plus grand queb Complexit´e en espace : O(bm)

Lin´eaire!

Non optimale

(56)

Recherche en profondeur limit´ ee

Algorithme de recherche en profondeur d’abord, mais avec une limitel sur la profondeur

Les nœuds de profondeurln’ont pas de successeurs Exemple pourl = 2

A

37 / 46 Intelligence artificielle N

(57)

Recherche en profondeur limit´ ee

Algorithme de recherche en profondeur d’abord, mais avec une limitel sur la profondeur

Les nœuds de profondeurln’ont pas de successeurs Exemple pourl = 2

B C

A

(58)

Recherche en profondeur limit´ ee

Algorithme de recherche en profondeur d’abord, mais avec une limitel sur la profondeur

Les nœuds de profondeurln’ont pas de successeurs Exemple pourl = 2

D E

B C

A

37 / 46 Intelligence artificielle N

(59)

Recherche en profondeur limit´ ee

Algorithme de recherche en profondeur d’abord, mais avec une limitel sur la profondeur

Les nœuds de profondeurln’ont pas de successeurs Exemple pourl = 2

B C

A

(60)

Recherche en profondeur limit´ ee

Algorithme de recherche en profondeur d’abord, mais avec une limitel sur la profondeur

Les nœuds de profondeurln’ont pas de successeurs Exemple pourl = 2

D E

B C

A

37 / 46 Intelligence artificielle N

(61)

Recherche en profondeur limit´ ee

Algorithme de recherche en profondeur d’abord, mais avec une limitel sur la profondeur

Les nœuds de profondeurln’ont pas de successeurs Exemple pourl = 2

B C

A

(62)

Recherche en profondeur limit´ ee

Algorithme de recherche en profondeur d’abord, mais avec une limitel sur la profondeur

Les nœuds de profondeurln’ont pas de successeurs Exemple pourl = 2

D E F G

B C

A

37 / 46 Intelligence artificielle N

(63)

Recherche en profondeur limit´ ee

Algorithme de recherche en profondeur d’abord, mais avec une limitel sur la profondeur

Les nœuds de profondeurln’ont pas de successeurs Exemple pourl = 2

B C

A

(64)

Recherche en profondeur limit´ ee

Complet sil ≥d

Complexit´e en temps : O(bl) Complexit´e en espace : O(bl) Non optimale

38 / 46 Intelligence artificielle N

(65)

Recherche en profondeur limit´ ee

(66)

Recherche en profondeur it´ erative

Profondeur limit´ee, mais en essayant toutes les profondeurs: 0, 1, 2, 3,. . . Evite le probl`eme de trouver une limite pour la recherche profondeur limit´ee

Combine les avantages de largeur d’abord (compl`ete et optimale), mais a la complexit´e en espace de profondeur d’abord

40 / 46 Intelligence artificielle

N

(67)

Recherche en profondeur it´ erative

(68)

Recherche en profondeur it´ erative: l = 0

A A

42 / 46 Intelligence artificielle

N

(69)

Recherche en profondeur it´ erative: l = 1

A A

B C

A

B C

A

B C

(70)

Recherche en profondeur it´ erative: l = 2

A A

B C

A

B C

D E

A

B C

D E

A

B C

D E

A

B C

D E F G

A

B C

D E F G

A

B C

D E F G

44 / 46 Intelligence artificielle

N

(71)

Recherche en profondeur it´ erative

Peut paraˆıtre du gaspillage car beaucoup de nœuds sont ´etendus de multiples fois

Mais la plupart des nouveaux nœuds ´etant au niveau le plus bas, ce n’est pas important d’´etendre plusieurs fois les nœuds des niveaux sup´erieurs Complet

Complexit´e en temps :

(d+ 1)b0+db1+ (d−1)b2+. . .+bd =O(bd) Complexit´e en espace : O(bd)

Optimale : oui, si le coˆut de chaque action est de 1. Peut ˆetre modifi´ee

(72)

R´ esum´ e des algorithmes de recherche

Crit`eres Largeur d’abord

Coˆut uniforme

Prof.

d’abord

Prof.

limit´ee

Prof.

it´erative

Compl´etude Oui Oui Non Oui si

l≥d Oui Temps O(bd+1) O(bdC/e) O(bm) O(bl) O(bd) Espace O(bd+1) O(bdC/e) O(bm) O(bl) O(bd) Optimalit´e -

coˆut d’une action = 1

Oui Oui Non Non Oui

Optimalit´e -

cas g´en´eral Non Oui Non Non Non

46 / 46 Intelligence artificielle

N

Références

Documents relatifs

Ajout d’un nouvel élément... Opérations sur les Arbres binaires

Ce manuel est la partie II de la documentation du produit concernant le nœud de bus et contient des informations permettant la configuration, le paramétrage, la mise en service,

Ainsi, par exemple, le fait que le bébé apparaît de plus en plus comme un sujet à part entière doté de compétences cognitives, sociales, émotionnelles,

intervalle, entre l’arrivée dans la file d’attente des paquets de requête n et n+1, mais peut varier d’un intervalle au suivant : la bande passante disponible pour la connexion

Mais pour x < 0, il se propage sur la corde l’onde incidente et l’onde r´ efl´ echie ; dans un contexte lin´ eaire, il faut comprendre que le d´ eplacement y(x, t) observ´ e

Il vise à réamorcer l’intérêt de terrains ethnologiques portant sur l’architecture des XXe et XXIe siècle, à la fois en présentant quelques recherches existantes sur cet

Si elles ont des rangs inégaux, la racine de plus haut rang devient le parent de la racine de moindre rang, mais les rangs eux-mêmes ne changent pas.. En cas d’égalité entre les

8/ Attacher la perche à l’horizontale avec un Nœud de Brelage. Faire plusieurs tours. Consolider avec des Noeuds de Serrage et Fixer l’assemblage avec un Nœud Plat... Suite et