Guia d'estudi: Intel·ligència Artificial - La Salle
Guia d'estudi: Intel·ligència Artificial - La Salle
Guia d'estudi: Intel·ligència Artificial - La Salle
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Vostè és lliure de:<br />
Creative Commons License Deed<br />
Reconeixement-No comercial-Sense obres derivades 2.5 Espanya<br />
Copiar, distribuir i comunicar públicament l’obra.<br />
Sota els següents condicionants:<br />
Reconeixement.<br />
S’ha de referenciar aquesta obra a Elisabet Golobardes i a Albert Orriols -<br />
Enginyeria <strong>La</strong> <strong>Salle</strong> (Estudis Semipresencials).<br />
No comercial.<br />
No es pot utilitzar aquesta obra per a finalitats comercials.<br />
Sense obres derivades.<br />
No es pot alterar, transformar o generar una obra derivada a partir d’aquesta.<br />
• Quan reutilitzeu o distribuïu l'obra, heu de deixar ben clar els termes de la<br />
llicència de l'obra.<br />
• Alguna d'aquestes condicions pot no aplicar-se si obteniu el permís del titular<br />
dels drets d'autor.<br />
• No hi ha res en aquesta llicència que menyscabi o restringeixi els drets morals<br />
de l'autor.<br />
Els drets derivats d'usos legítims o altres limitacions reconegudes per llei no<br />
queden afectats per l'anterior<br />
Això és un resum fàcilment llegible del text legal (la llicència completa) disponible en els idiomes<br />
següents:<br />
Català Castellà Basc Gallec
CRÈDITS<br />
Autor: Elisabet Golobardes i Albert Orriols<br />
Editor: Lluís Vicent<br />
Coordinació lingüística: Sara <strong>La</strong>so<br />
Revisió lingüística: Sergi Llorca<br />
Maquetació: Sara <strong>La</strong>so<br />
Disseny de portada: Marc Segarra<br />
Aquesta edició ha comptat amb el suport de l’Agència de Gestió<br />
d’Ajuts Universitaris i de Recerca (AGAUR) de la Generalitat de<br />
Catalunya en la Convocatòria d’ajuts a l’edició i la difusió de llibres<br />
de text o manuals universitaris i llibres cientificotècnics, en suport<br />
paper o en suport electrònic, escrits en llengua catalana (DILL 2008).<br />
ISBN: 978-84-935665-6-2
ÍNDEX<br />
SESSIÓ 1: Origen de la intel∙ligència artificial ............................................................. 7<br />
1. Origen de la intel∙ligència artificial ......................................................................... 8<br />
1.1. Introducció ................................................................................................................. 8<br />
1.1.1. Origen de la intel∙ligència artificial ............................................................................................ 8<br />
1.1.2. Temes d’estudi dins de la intel∙ligència artificial ....................................................................... 9<br />
SESSIÓ 2: Exemples dins de la IA ............................................................................... 13<br />
1.2. Exemples dins de la Intel∙ligència <strong>Artificial</strong> ................................................................ 13<br />
1.2.1. Cerca ‐ Jocs .............................................................................................................................. 13<br />
1.2.2. Cerca ‐ Trobar un camí cap a l’objectiu ................................................................................... 14<br />
1.2.3. Cerca ‐ Senzillament trobar una solució .................................................................................. 16<br />
1.2.4. Representació del coneixement .............................................................................................. 16<br />
SESSIÓ 3: Introducció al LISP (1/4) ............................................................................ 19<br />
2. Introducció al LISP ................................................................................................ 20<br />
2.1. Introducció al LISP ..................................................................................................... 20<br />
2.1.1. Introducció: LISP i els llenguatges funcionals .......................................................................... 20<br />
2.1.2. Com usar l’intèrpret de Common LISP? ................................................................................... 21<br />
2.1.3. Tipus de dades i estructures definides pels usuaris ................................................................. 21<br />
2.1.4. Funcions primitives .................................................................................................................. 22<br />
SESSIÓ 4: Introducció al LISP (2/4) ............................................................................ 27<br />
2.1.5. Els predicats i els condicionals ................................................................................................. 27<br />
2.1.6. Definició de noves funcions ..................................................................................................... 29<br />
2.1.7. <strong>La</strong> recursivitat .......................................................................................................................... 29<br />
2.1.8. Definició de variables locals ..................................................................................................... 30<br />
2.1.9. Les funcions MAP ..................................................................................................................... 30<br />
2.1.10. <strong>La</strong> funció LAMBDA ................................................................................................................. 31<br />
2.1.11. Tipus de paràmetres: opcionals, restants i claus ................................................................... 31<br />
SESSIÓ 5: Introducció al LISP (3/4) ............................................................................ 33<br />
2.1.12. Creació de noves estructures ................................................................................................ 33<br />
2.1.13. Estructures propietat‐valor.................................................................................................... 34<br />
2.1.14. Iteracions ............................................................................................................................... 35<br />
2.1.15. Macros ................................................................................................................................... 36<br />
2.1.16. Lectura i escriptura ................................................................................................................ 37<br />
2.1.17. Eines de depuració ................................................................................................................. 38<br />
SESSIÓ 6: Introducció al LISP (4/4) ............................................................................ 41<br />
2.2. Exercicis d’LISP .......................................................................................................... 41<br />
2.2.1. Exercicis a lliurar ...................................................................................................................... 41<br />
SESSIÓ 7: Cerca cega – CERCA (1/9) .......................................................................... 43<br />
3. Resolució de problemes cerca ............................................................................... 44<br />
3.1. Introducció ............................................................................................................... 44<br />
3.1.1. Problemes, espai de cerca i cerca ............................................................................................ 44<br />
3.1.2. Tipus de cerca .......................................................................................................................... 45<br />
1
3.2. Cerca cega ................................................................................................................. 46<br />
3.2.1. Cerca primer en amplada ........................................................................................................ 46<br />
3.2.2. Cerca primer en profunditat .................................................................................................... 47<br />
3.2.3. Depth‐first versus breadth‐first search.................................................................................... 48<br />
SESSIÓ 8: Cerca cega – CERCA (2/9) .......................................................................... 49<br />
3.2.4. Iterative Deepening i broadening search ................................................................................. 49<br />
3.2.5. Cerca sobre grafs ..................................................................................................................... 51<br />
3.2.6. Exercicis de cerca cega amb LISP (optatius) ............................................................................ 52<br />
SESSIÓ 9: Heurístiques – CERCA (3/9)........................................................................ 55<br />
3.3. Cerca heurística ........................................................................................................ 55<br />
3.3.1. Heurístiques ............................................................................................................................. 55<br />
3.3.2. Cerca com a maximització de funcions .................................................................................... 56<br />
SESSIÓ 10: Cerca primer el millor – CERCA (4‐5/9) .................................................... 61<br />
3.3.3. Cerca primer el millor .............................................................................................................. 61<br />
SESSIÓ 11: Cerca basada en restriccions – CERCA (6/9) ............................................. 67<br />
3.3.4. Cerca basada en restriccions ................................................................................................... 67<br />
SESSIÓ 12: Cerca amb adversari – CERCA (7/9) ......................................................... 71<br />
3.4. Cerca amb adversari‐jocs .......................................................................................... 71<br />
3.4.1. Introducció ............................................................................................................................... 71<br />
3.4.2. Algorisme MiniMax .................................................................................................................. 72<br />
3.4.3. Exemple MiniMax .................................................................................................................... 75<br />
SESSIÓ 13: Cerca amb adversari – CERCA (8/9) ......................................................... 77<br />
3.4.4. Problemes del MiniMax ........................................................................................................... 77<br />
3.4.5. Poda alfa‐beta .......................................................................................................................... 78<br />
3.4.6. Exemple poda alfa‐beta ........................................................................................................... 81<br />
3.4.7. Exercici de cerca amb adversari: escacs (optatiu) ................................................................... 82<br />
SESSIÓ 14: Pràctica cerca – CERCA (9/9) ................................................................... 83<br />
3.5. Descripció de la pràctica de cerca .............................................................................. 83<br />
3.5.1. Descripció de la pràctica de cerca (pràctica 1) ........................................................................ 83<br />
SESSIÓ 15: Introducció – Representació del coneixement (1/15) ............................... 87<br />
4. Representació del coneixement ‐ Raonament ....................................................... 87<br />
4.1. Introducció ............................................................................................................... 87<br />
4.1.1. Conceptes ................................................................................................................................ 87<br />
4.1.2. Tipus de coneixement .............................................................................................................. 90<br />
SESSIÓ 16: Representació basada en la lògica – RdC (2/15) ...................................... 95<br />
4.2. Representació del coneixement basada en la lògica .................................................. 96<br />
4.2.1. Com usar la representació del coneixement basada en la lògica? .......................................... 96<br />
4.2.2. Mancances ............................................................................................................................... 97<br />
4.2.3. Exercici: Factorial – deductiu (optatiu) .................................................................................... 98<br />
SESSIÓ 17: Representació basada en regles (I) – RdC (3/15) ...................................... 99<br />
4.3. Representació del coneixement basada en regles ..................................................... 99<br />
4.3.1. Introducció ............................................................................................................................... 99<br />
4.3.2. Sistemes experts – primera generació ................................................................................... 101<br />
2
SESSIÓ 18: Representació basada en regles (II) – RdC (4/15) ................................... 105<br />
4.3.3. Sistemes experts – segona generació .................................................................................... 105<br />
SESSIÓ 19: Representació basada en regles (III) – RdC (5/15) .................................. 111<br />
4.3.4. Emparellament (matching) .................................................................................................... 111<br />
4.3.5. Coneixement control ............................................................................................................. 113<br />
SESSIÓ 20: Raonament no monòton (I) – RdC (6/15) ............................................... 115<br />
4.4. Coneixement incert – Raonament no monòton ....................................................... 115<br />
4.4.1. Introducció: Raonament simbòlic sota incertesa .................................................................. 115<br />
4.4.2. Tipus de raonament no monòton: Raonament per defecte .................................................. 118<br />
4.4.3. Tipus de raonament no monòton: Raonament minimalista .................................................. 120<br />
SESSIÓ 21: Raonament no monòton (II) – RdC (7/15) .............................................. 123<br />
4.4.4. Implementació – Sistema que resol el problema .................................................................................... 123<br />
4.4.5. Implementació – Sistemes de manteniment de la veritat ..................................................... 125<br />
SESSIÓ 22: Raonament estadístic (I) – RdC (8/15) ................................................... 129<br />
4.5. Coneixement incert – Raonament estadístic ............................................................ 129<br />
4.5.1. <strong>La</strong> probabilitat i el teorema de Bayes .................................................................................... 129<br />
4.5.2. Els factors de certesa i sistemes basats en regles.................................................................. 132<br />
SESSIÓ 23: Raonament estadístic (II) – RdC (9/15) .................................................. 137<br />
4.5.3. Xarxes bayesianes .................................................................................................................. 137<br />
4.5.4. <strong>La</strong> teoria de Dempster‐Shafer ................................................................................................ 138<br />
SESSIÓ 24: Raonament estadístic (III) – RdC (10/15) ............................................... 141<br />
4.5.5. <strong>La</strong> lògica difusa ....................................................................................................................... 141<br />
SESSIÓ 25: Xarxes semàntiques, frames i el concepte d’herència – RdC (10/15) ...... 147<br />
4.6. Representació del coneixement estructurada ......................................................... 147<br />
4.6.1. Xarxes semàntiques, frames i el concepte d’herència ........................................................... 147<br />
SESSIÓ 26: Operacions entre frames – Exercicis – RdC (13/15) ................................ 153<br />
4.6.2. Relacions entre frames .......................................................................................................... 153<br />
4.6.3. Exercici: intersecció entre objectes ....................................................................................... 154<br />
4.6.4. Proposta d’exercicis amb d’altres relacions (optatiu) ........................................................... 161<br />
SESSIÓ 27: Exemples de representacions estructurades – RdC (14/15) .................... 163<br />
4.6.5. Exemples de representacions estructurades ......................................................................... 163<br />
4.6.6. Treball a lliurar: fitxa d’un llenguatge de representació del coneixement ............................ 166<br />
SESSIÓ 28: Pràctica representació del coneixement – RdC (15/15) .......................... 169<br />
4.7. Descripció de la pràctica de respresentació del coneixement ...................................................... 170<br />
4.7.1. Descripció de la pràctica de representació del coneixement (pràctica 2) ............................. 170<br />
SESSIÓ 29: Introducció a l’aprenentatge artificial – AR (1‐2/15) ............................. 173<br />
5. Aprenentatge artificial ....................................................................................... 173<br />
5.1. Introducció ............................................................................................................. 173<br />
5.1.1. Aprenentatge artificial ........................................................................................................... 173<br />
5.1.2. Paradigmes de l’aprenentatge artificial ................................................................................. 174<br />
5.1.3. Característiques desitjables – Problemes .............................................................................. 176<br />
5.1.4. Resum dels paradigmes que estudiarem ............................................................................... 180<br />
SESSIÓ 30: Aprenentatge inductiu (I) – AR (3/15) ................................................... 183<br />
3
5.2. Aprenentatge inductiu ............................................................................................ 183<br />
5.2.1. Descripció de l’aprenentatge inductiu ................................................................................... 183<br />
5.2.2. Tipus d’aprenentatge inductiu ............................................................................................... 185<br />
5.2.3. L’algorisme de Winston ......................................................................................................... 186<br />
SESSIÓ 31: Aprenentatge inductiu (II) – AR (4/15) .................................................. 191<br />
5.2.4. Inducció d’arbres de decisió – ID3 ......................................................................................... 191<br />
SESSIÓ 32: Aprenentatge inductiu (III) – AR (5/15) ................................................. 197<br />
5.2.5. Aprenentatge per observació: AUTOCLASS ........................................................................... 197<br />
SESSIÓ 33: Aprenentatge analògic (I) – AR (6/15) ................................................... 201<br />
5.3. Aprenentatge analògic ............................................................................................ 201<br />
5.3.1. Introducció ............................................................................................................................. 201<br />
5.3.2. Un sistema per resoldre analogies geomètriques ................................................................. 204<br />
5.3.3. Analogia transformacional ..................................................................................................... 205<br />
5.3.4. Analogia derivacional ............................................................................................................. 206<br />
SESSIÓ 34: Aprenentatge analògic (II) – AR (7/15) .................................................. 209<br />
5.3.5. Aprenentatge per raonament a partir de precedents ........................................................... 209<br />
5.3.6. Aprenentatge per raonament sobre múltiples analogies ...................................................... 210<br />
SESSIÓ 35: Aprenentatge analògic (III) – AR (8/15) ................................................. 213<br />
5.3.7. Raonament basat en casos .................................................................................................... 213<br />
SESSIÓ 36: Aprenentatge basat en explicacions (I) – AR (9/15) ............................... 221<br />
5.4. Aprenentatge deductiu – Aprenentatge basat en explicacions ................................ 221<br />
5.4.1. Introducció ............................................................................................................................. 221<br />
5.4.2. Descripció d’EBL ..................................................................................................................... 223<br />
SESSIÓ 37: Aprenentatge basat en explicacions (II) – AR (10/15) ............................ 227<br />
5.4.3. Problemes d’EBL .................................................................................................................... 227<br />
5.4.4. Sistemes que usen EBL........................................................................................................... 229<br />
5.4.5. Anàlisi d’EBL ........................................................................................................................... 231<br />
SESSIÓ 38: Aprenentatge evolutiu – AR (11/15) ...................................................... 233<br />
5.5. Aprenentatge evolutiu – Algorismes genètics .......................................................... 233<br />
5.5.1. Introducció ............................................................................................................................. 233<br />
5.5.2. Què són els algorismes genètics? .......................................................................................... 235<br />
5.5.3. Com funcionen els algorismes genètics? ............................................................................... 237<br />
5.5.4. Algorismes genètics i aprenentatge....................................................................................... 241<br />
5.5.5. Conclusions i aplicacions........................................................................................................ 241<br />
SESSIÓ 39: Aprenentatge connexionista (I) – AR (12/15)......................................... 245<br />
5.6. Aprenentatge connexionista – Xarxes neuronals (I) ................................................. 245<br />
5.6.1. <strong>La</strong> neurona natural – Conceptes fonamentals de neurofisiologia ......................................... 245<br />
5.6.2. <strong>La</strong> neurona artificial ............................................................................................................... 249<br />
5.6.3. El perceptró ........................................................................................................................... 250<br />
SESSIÓ 40: Aprenentatge connexionista (II) – AR (13/15)........................................ 253<br />
5.6.4. Les xarxes neuronals backpropagation ................................................................................. 253<br />
5.6.5. Classificació general de les XN ............................................................................................... 259<br />
5.6.6. Conclusions i aplicacions de les XN ........................................................................................ 261<br />
SESSIÓ 41: Aprenentatge artificial – AR (14/15) ..................................................... 265<br />
5.7. Descripció de la pràctica d’aprenentatge artificial ................................................... 266<br />
4
5.7.1. Descripció de la pràctica d’aprenentatge artificial (pràctica 3) ............................................. 266<br />
SESSIÓ 42: Exercicis d’aprenentatge artificial – AR (15/15) ..................................... 269<br />
5.8. Exercicis d’aprenentatge artificial............................................................................ 269<br />
5.8.1. Llista de problemes d’exàmens – Aprenentatge artificial ..................................................... 269<br />
SESSIÓ 43: Introducció – PLANIFICACIÓ (1/9) .......................................................... 275<br />
6. Planificació ......................................................................................................... 275<br />
6.1. Introducció ............................................................................................................. 275<br />
6.1.1. Raonament sobre accions ...................................................................................................... 275<br />
6.1.2. Tipus de planificació .............................................................................................................. 277<br />
6.1.3. Descripció d’un problema de planificació .............................................................................. 280<br />
SESSIÓ 44: STRIPS – PLANIFICACIÓ (2/9) ................................................................. 283<br />
6.2. STRIPS ..................................................................................................................... 283<br />
6.2.1. <strong>La</strong> descripció d’STRIPS............................................................................................................ 283<br />
SESSIÓ 45: Cerca a través dels estats – PLANIFICACIÓ (3/9) .................................... 289<br />
6.3. Cerca a través de l’espai del món dels estats ........................................................... 289<br />
6.3.1. Introducció ............................................................................................................................. 289<br />
6.3.2. Progressió .............................................................................................................................. 290<br />
6.3.3. Regressió ................................................................................................................................ 291<br />
6.3.4. Anàlisi de REGWS i de PROGWS ............................................................................................ 292<br />
SESSIÓ 46: Cerca a través dels plans – PLANIFICACIÓ (4‐5/9) .................................. 295<br />
6.4. Cerca a través de l’espai del plans ........................................................................... 295<br />
6.4.1. Algorisme POP ....................................................................................................................... 295<br />
SESSIÓ 47: Relaxacions de POP – PLANIFICACIÓ (6/9) ............................................. 301<br />
6.4.2. Relaxacions de l’algorisme POP ............................................................................................. 301<br />
SESSIÓ 48: Algorisme UCPOP – PLANIFICACIÓ (7‐8/9) ............................................. 307<br />
6.4.3. Algorisme UCPOP ................................................................................................................... 307<br />
6.4.4. Relaxacions de l’UCPOP ......................................................................................................... 311<br />
SESSIÓ 49: Exercicis de planificació – PLANIFICACIÓ (9/9) ....................................... 313<br />
6.5. Exercicis de planificació ........................................................................................... 313<br />
6.5.1. Llista de problemes d’exàmens – Planificació ....................................................................... 313<br />
SESSIÓ 50: Resolució de problemes ......................................................................... 319<br />
7. Resolució d’un problema usant IA ....................................................................... 320<br />
7.1. Resolució de problemes usant IA............................................................................. 320<br />
7.1.1. Com resoldre un problema usant IA? .................................................................................... 320<br />
7.1.2. Reconeixement de submarins ............................................................................................... 321<br />
7.1.3. Empresa de missatgeria ......................................................................................................... 324<br />
BIBLIOGRAFIA ......................................................................................................... 327<br />
GLOSSARI ............................................................................................................... 333<br />
5
SESSIÓ 1: Origen de la intel·ligència artificial<br />
Nom: Origen de la intel·ligència artificial – INTRODUCCIÓ (1/2)<br />
Tipus: teòrica<br />
Format: no presencial<br />
Durada: 2 hores<br />
Dedicació: 2 hores<br />
Treball a lliurar: no<br />
Material:<br />
o Bibliografia bàsica:<br />
[Ginsberg1993]<br />
[Sales1990]<br />
PRECEDENTS<br />
L’assignatura d’INTEL·LIGÈNCIA ARTIFICIAL usa diferents conceptes que se suposa<br />
que ja s’han vist en assignatures anteriors. Analitzem-los basant-nos en les<br />
assignatures que comprenen els plans d’estudis d’Enginyeria i Arquitectura <strong>La</strong> <strong>Salle</strong>:<br />
Nocions algorísmiques i d’estructura de dades que s’han vist en assignatures com<br />
PROGRAMACIÓ I, PROGRAMACIÓ II i ESTRUCTURES DE DADES. El<br />
coneixement de llenguatges imperatius (e.g. C, C++ o similars) i lògics (e.g.<br />
PROLOG) vistos en assignatures com PROGRAMACIÓ I, PROGRAMACIÓ II,<br />
ESTRUCTURES DE DADES i LÒGICA MATEMÀTICA. I, en darrer lloc, partim de la<br />
base que ja s’han adquirit els coneixements corresponents al càlcul de predicats CP0<br />
i CP1, vistos a l’assignatura de Lògica matemàtica.<br />
OBJECTIUS<br />
L’objectiu d’aquesta primera sessió és conèixer els orígens del que avui es coneix com<br />
a intel·ligència artificial i, per tant, esbrinar què entenem per intel·ligència i per<br />
artificial. Després d’analitzar els seus orígens, i entendre què és ara la intel·ligència<br />
artificial, serà més fàcil de comprendre el temari que es dóna sota una introducció a la<br />
intel·ligència artificial, objectiu d’aquesta assignatura.<br />
CONTINGUTS<br />
En aquesta sessió es descriuran els orígens de la intel·ligència artificial (vegeu<br />
[Sales1990]) i s’estudiarà què s’entén –en aquest context– per intel·ligència i per<br />
artificial (vegeu [Sales1990] i [Ginsberg1993], pàgines 3-10).<br />
7
1. Origen de la intel·ligència artificial<br />
1.1. Introducció<br />
1.1.1. Origen de la intel·ligència artificial<br />
En aquest apartat coneixerem quins van ser els orígens de la intel·ligència artificial. No<br />
només convé saber d’on va sorgir el nom d’intel·ligència artificial, per tal de<br />
comprendre millor el context històric que ha abastat les diferents àrees que avui en dia<br />
comprèn aquest paradigma, sinó que també convé reflexionar sobre què entenem per<br />
intel·ligència i què entenem per artificial.<br />
Per assolir aquests objectius, aquesta secció es basarà en el report de recerca de’n<br />
Ton Sales sobre la intel·ligència artificial –el qual també va ser publicat a la<br />
Vanguardia l’any 1990–, i part del primer capítol d’Essentials of <strong>Artificial</strong> Intelligence<br />
de’n Matt Ginsberg (1993), per explicar els orígens de la intel·ligència artificial i per<br />
definir els conceptes intel·ligència i artificial.<br />
Origen de la IA<br />
Cap a l’any 1956 a Dartmouth (New Hampshire) un grup d’universitaris americans van<br />
decidir formar un grup de treball/recerca per tal de desenvolupar programes que fossin<br />
capaços de reproduir la intel·ligència humana. Coneguts personatges que<br />
intervingueren en aquest grup pioner foren en John McCarthy, en Marvin Minsky, en<br />
Herb Simon, etc. Així doncs, el seu únic objectiu era el d’elaborar programes que<br />
fessin coses/tasques considerades intel·ligents, com ara jugar a escacs, reconèixer<br />
formes, raonar com un expert humà, comprendre i generar el llenguatge natural, etc.<br />
D’aquesta manera, pensaven reunir-se cada 2 o 3 anys i analitzar què havia fet<br />
cadascú. Alguns dels objectius van ser assolits i d’altres encara s’estan intentant<br />
resoldre. En John McCarthy va proposar d’autoanomenar aquest grup intel·ligència<br />
artificial. D’aquí neix aquest nom tan agosarat.<br />
Des d’aquells inicis de la intel·ligència artificial (IA), aquesta disciplina ha tingut molts<br />
alts i baixos i es podria dir que un dels seus punts àlgids va arribar quan, fruit de les<br />
circumstàncies, van confluir dos factors claus: diners ($) i premsa i, per tant, també<br />
se’n va parlar i es va desenvolupar fora de l’entorn universitari.<br />
[Sales1990]<br />
<strong>Intel·ligència</strong>?<br />
S’han donat moltes definicions diferents sobre què és –avui en dia– la intel·ligència<br />
artificial. En Matt Ginsberg (vegeu [Ginsberg1993], pàgina 3) defineix la IA de la<br />
manera següent: “<strong>Artificial</strong> Intelligence is the enterprise of constructing an intelligent<br />
artifact”. Tanmateix, en primer lloc, ens hem de plantejar què entenem per<br />
intel·ligència.<br />
8
Una de les principals propostes que s’han formulat per tal d’esbrinar quan a un sistema<br />
artificial se li pot posar l’etiqueta d’intel·ligent ha estat el test de Turing. Aquest test,<br />
definit pel matemàtic Alan Turing el 1950, proposa avaluar si una màquina es<br />
comporta de manera intel·ligent de la manera següent: Es proposa un escenari amb un<br />
jutge situat en una habitació, mentre que una màquina i un humà es col·loquen en una<br />
altra habitació. Per tant el jutge no pot veure si està parlant amb una màquina o amb<br />
una persona. Llavors el jutge realitza un conjunt de preguntes a ambdós amb l’objectiu<br />
d’identificar qui és la màquina i qui és l’ésser humà. Si el jutge no pot distingir quin dels<br />
dos és la màquina, es diu que aquesta ha passat el test de Turing, doncs ha estat<br />
capaç de comportar-se “humanament”.<br />
Fins a l’actualitat no hi ha hagut cap màquina que hagi estat capaç de passar el test de<br />
Turing. Malgrat això, algunes màquines parladores (chatterbots) són capaces de<br />
mantenir una conversa molt humana.<br />
<strong>Artificial</strong>?<br />
L’altre concepte que hem d’aclarir és què entenem per artificial o, més concretament,<br />
què entenem per artefacte, si el que volem construir és un artefacte intel·ligent que<br />
sigui capaç de passar el test de Turing. Hi ha hagut diverses definicions de què es<br />
considera com a artefacte. En general, un artefacte és quelcom inert que manipula<br />
símbols – típicament, s’assumeix que són símbols en el seu entorn – i treu respostes.<br />
De fet, aquesta definició és agradable, doncs es permet assimilar qualsevol artefacte<br />
amb la màquina de Turing universal.<br />
1.1.2. Temes d’estudi dins de la intel·ligència<br />
artificial<br />
Tornant als orígens de la IA, al voltant d’aquests petits programes que anaven<br />
desenvolupant el grup d’universitaris van anar desenvolupant-se les diferents àrees<br />
que configuren el que actualment anomenem intel·ligència artificial: resolució de<br />
problemes – cerca, representació del coneixement, raonament, sistemes experts,<br />
planificació, aprenentatge artificial, visió artificial, processament del llenguatge artificial,<br />
més totes aquelles àrees que contínuament estan sorgint, com sistemes multiagents<br />
(SMA) – intel·ligència artificial distribuïda (DAI) (vegeu [Sales1990] ).<br />
Tanmateix, el que es proposava aquest grup d’estudiants intrèpids era reproduir<br />
problemes que fessin tasques intel·ligents, però de fet intentaven resoldre problemes<br />
complexos del món real de manera intel·ligent.<br />
Quatre dels aspectes claus que se li demanen a una màquina considerada intel·ligent<br />
per resoldre aquests tipus de problemes són:<br />
1. Cerca<br />
2. Representació del coneixement i raonament<br />
3. Aprenentatge artificial<br />
4. Planificació<br />
Aquests quatre temes es tractaran en detall al llarg d’aquest document, que conformen<br />
els quatre capítols principals del llibre. Cal notar que hi ha un lligam ineludible entre<br />
aquestes quatre àrees:<br />
9
Cerca<br />
Resoldre un problema implica sempre fer una cerca dins de l’espai de cerca del<br />
problema, buscant aquelles solucions possibles o, segons quina sigui la naturalesa del<br />
problema, buscant la millor solució. Per tant, l’algorisme de cerca serà clau per tal de<br />
trobar tant la (millor) solució com el menor cost per trobar-la. Cal pensar que si l’espai<br />
de cerca és molt gran, o bé pot ser que trobem una solució, depenent de l’algorisme,<br />
NP-Hard, o bé que amb els recursos computacionals disponibles no sigui possible<br />
trobar-la.<br />
[Ginsberg1993]p10-p11<br />
Representació del coneixement - Raonament<br />
Tot mètode de cerca que busca la solució a un problema, serà més eficient si usa<br />
coneixement del domini del problema. Per tant, tot el coneixement que tinguem del<br />
domini del problema convé representar-lo de la manera més adequada. Una primera<br />
aproximació que podríem fer és representar el coneixement mitjançant CP1. Per<br />
tant, usarem mètodes deductius per explorar – raonar – sobre la informació que tenim.<br />
Ara bé, què passa si el coneixement és difús, o bé probabilístic, o bé incomplet, o bé<br />
inconsistent? Doncs CP1 no és capaç de representar aquest tipus de coneixement.<br />
Això implica que haurem de buscar noves maneres de representar el coneixement i,<br />
per tant, desenvolupar nous mètodes de raonament lligats a aquesta nova<br />
representació del coneixement.<br />
Com que els problemes reals poden ser inconsistents i no monòtons – és a dir, que el<br />
coneixement canviï al llarg del temps – sorgeix la necessitat de desenvolupar<br />
sistemes de manteniment de la veritat que vetllin per la consistència del sistema.<br />
Vegeu [Ginsberg1993]p11-p13<br />
Exemples i aplicacions de la IA<br />
D’on han sorgit les diferents àrees que comprenen la intel·ligència artificial? <strong>La</strong><br />
resposta a aquesta pregunta ens permetrà comprendre el gran nombre d’àrees que<br />
s’associen sota el paraigües de la intel·ligència artificial, com per exemple: sistemes<br />
experts, sistemes basats en el coneixement, planificació, aprenentatge artificial, visió<br />
artificial, processament del llenguatge artificial i robòtica.<br />
Recordant els inicis de la IA, la IA s’ha desenvolupat –i posteriorment s’ha formalitzat–<br />
perseguint l’objectiu de resoldre problemes (vegeu [Ginsberg1993], pàgines 13-15)<br />
que representin un repte per a la intel·ligència, o bé intentant resoldre diferents<br />
aplicacions (vegeu [Ginsberg1993], pàgines 43-44) considerades intel·ligents.<br />
En la sessió següent analitzarem més detalladament diferents exemples que citarem al<br />
llarg de l’assignatura, al presentar els diferents conceptes del temari, ja que han<br />
esdevingut conceptes benchmark.<br />
10
RESUM<br />
En aquesta primera sessió només es pretén que es conegui l’origen de la intel·ligència<br />
artificial i quines són les àrees associades a la intel·ligència artificial.<br />
11
SESSIÓ 2: Exemples dins de la IA<br />
Nom: Exemples dins de la IA – INTRODUCCIÓ (2/2)<br />
Tipus: teòrica<br />
Format: no presencial<br />
Durada: 2 hores<br />
Dedicació: 2 hores<br />
Treball a lliurar: no<br />
Material:<br />
o Bibliografia bàsica:<br />
[Ginsberg1993]<br />
PRECEDENTS<br />
En la sessió anterior s’han vist els orígens de la IA i les àrees de coneixement que han<br />
anat configurant el que coneixem per intel·ligència artificial. Com vam poder veure,<br />
bona part d’aquestes àrees han sorgit de la necessitat de resoldre certs problemes o<br />
aplicacions considerades benchmarks. En aquesta sessió veurem aquests problemes<br />
o exemples habitualment usats dins de la IA.<br />
OBJECTIUS<br />
L’objectiu d’aquesta sessió serà la de familiaritzar-nos amb els problemes (exemples)<br />
que habitualment s’usen per avaluar i comparar els diferents mètodes i/o algorismes<br />
de la intel·ligència artificial.<br />
CONTINGUTS<br />
En aquesta sessió presentarem les diferents característiques del exemples més<br />
utilitzats, dins de la IA, per tal d’avaluar i comparar els diferents mètodes. Estudiarem<br />
aquests exemples bàsicament des de dos punts de vista: com influencia l’algorisme de<br />
cerca i com influencia la representació del coneixement en el moment de resoldre<br />
un problema.<br />
Al mateix temps, aquests exemples ens ajudaran a anar introduint diferents conceptes<br />
que utilitzarem al llarg de l’assignatura.<br />
1.2. Exemples dins de la <strong>Intel·ligència</strong> <strong>Artificial</strong><br />
1.2.1. Cerca - Jocs<br />
Típicament, el fet de dissenyar un programa que sigui capaç de “jugar a escacs” s’ha<br />
considerat “intel·ligent”. Així doncs, els escacs i altres jocs amb característiques<br />
similars s’han convertit problemes típics dins de la IA. A continuació, ens centrem en<br />
dos jocs: els escacs (chess) i el backgammon.<br />
13
Escacs<br />
El joc d’escacs permet veure amb claredat el paper de la cerca heurística i el<br />
compromís entre el nivell base (base-level) i el meta nivell (metalevel). Quan un<br />
jugador ha de realitzar una jugada hauria d’analitzar un espai de cerca molt gran de<br />
jugades i contra-jugades (les que suposadament farà en el millor dels casos<br />
l’adversari) per tal de decidir quin moviment el beneficia més. Aquest espai de cerca<br />
esdevé NP-Hard, per tant, és molt necessari usar el coneixement del domini per tal de<br />
dissenyar unes bones heurístiques que permetin reduir l’espai de cerca (vegeu<br />
[Ginsberg1993], pàgines 27-28).<br />
Al mateix temps, s’ha d’analitzar una qüestió d’estratègia. Què convé més: dedicar<br />
temps a analitzar el com resoldre el problema (meta nivell), o bé dedicar el temps a<br />
explorar l’espai de cerca intentant resoldre el problema (nivell base). Aquest<br />
compromís esdevindrà clau al llarg de molts problemes (vegeu [Ginsberg1993], pàgina<br />
28).<br />
[Ginsberg1993]p31-p32<br />
Backgammon<br />
En el backgammon cada jugada pot arribar a tenir moltes possibilitats a analitzar. És a<br />
dir, si analitzem l’espai de cerca en forma d’arbre de cerca i ens trobem en un node<br />
donat, tenim que el factor de branqueig pot arribar a esdevenir molt elevat. Per<br />
aquest motiu ens convindrà usar un conjunt de meta heurístiques (meta nivell) per tal<br />
de decidir quina porció de l’espai de cerca –quines branques– explorem.<br />
[Ginsberg1993]p32-p33<br />
1.2.2. Cerca - Trobar un camí cap a l’objectiu<br />
Hi ha molts problemes de cerca que tenen unes característiques comunes: es coneix<br />
l’estat inicial i l’estat objectiu, de tal manera que la solució consisteix a trobar el<br />
camí que uneixi l’inici amb l’objectiu. En aquest tipus de problemes es posa en<br />
evidència el fet d’escollir si convé més fer cerca cap endavant (buscar el camí<br />
començant per l’estat inicial fins a arribar a l’estat final), o bé fer cerca cap endarrere<br />
(buscar el camí partint de l’objectiu retrocedint fins a arribar a l’estat inicial). Al mateix<br />
temps, són problemes que també podrien permetre el fet de realitzar cerca<br />
bidireccional (és a dir, començar al mateix temps una cerca cap endavant i una cerca<br />
cap endarrere fins que ambdues es trobin, tot i que poden no trobar-se).<br />
Així doncs, aquests exemples els citarem força en el capítol de Resolució de<br />
problemes – Cerca.<br />
14
Missioners i caníbals<br />
<strong>La</strong> característica més rellevant d’aquest problema és que l’espai de cerca és idèntic<br />
tant si es busca el camí fent cerca cap endavant com si es busca el camí fent cerca<br />
cap endarrere. Per tant, quin tipus de cerca convé realitzar?<br />
D’altra banda, podem veure que és un problema en el qual no importa diferenciar els<br />
missioners entre ells ni els caníbals entre ells, ja que el que convé és tan sols analitzar<br />
que el nombre de caníbals no superi en tot moment del nombre de missioners. Això<br />
ens ha de fer reflexionar sobre quin coneixement és rellevant o no en tot moment, amb<br />
la finalitat de reduir l’espai de cerca i, per tant, optimitzar l’algorisme de cerca.<br />
[Ginsberg1993]p33-p34<br />
Les torres d’Hanoi<br />
Malgrat que el factor de branqueig d’aquest problema no sigui gaire elevat, la longitud<br />
de la solució sí que és molt gran. Per tant, això el converteix en un problema amb un<br />
espai de cerca que podria esdevenir intractable. <strong>La</strong> clau d’aquest problema es troba en<br />
el fet de plantejar el problema de manera recursiva. És a dir, pensem en el càlcul del<br />
factorial d’un número natural: tothom té clar que el factorial(N) = N*factorial(N-1). Així<br />
doncs, és molt fàcil de plantejar l’algorisme de cerca que resolgui les torres d’Hanoi, si<br />
pensem en col·locar el disc N, suposem que ja es col·locaran els N-1 blocs anteriors.<br />
<strong>La</strong> solució d’aquest problema la treballarem dins dels exercicis d’LISP que realitzarem<br />
en el capítol següent.<br />
[Ginsberg1993]p34-p35<br />
Trencaclosques amb una peça mòbil<br />
Veurem, dins del capítol de Resolució de problemes – Cerca, que alguns algorismes<br />
de cerca heurística per tal de garantir de trobar la millor solució necessiten usar<br />
funcions heurístiques que subestimin la distància real que existeix per trobar la<br />
solució (també anomenades heurístiques admissibles). És a dir, que sempre donin<br />
un valor igual o menor que el que donaria l’heurística perfecta (aquella que sap quina<br />
és la distància real del node actual cap a la millor solució). Aquest problema permet<br />
presentar i avaluar una heurística que té aquestes propietats: la distància de<br />
Manhattan.<br />
[Ginsberg1993]p35-p36<br />
El cub de Rubik<br />
El cub de Rubik és un clar problema amb una dificultat intractable, de tal manera que<br />
és difícil trobar heurístiques que siguin útils. Parlarem de les característiques d’aquest<br />
problema dins del tema de Cerca heurística.<br />
15
[Ginsberg1993]p36<br />
1.2.3. Cerca - Senzillament trobar una solució<br />
En altres problemes de cerca la solució no és el camí que uneix l’estat inicial amb<br />
l’estat final, sinó que tan sols es coneix l’estat inicial i certes restriccions pròpies del<br />
problema. Llavors l’objectiu consisteix a trobar una solució (o totes les solucions).<br />
En aquest tipus de problemes només es pot realitzar cerca cap endavant. Un<br />
problema típic serien els mots encreuats (crossword-puzzle).<br />
Criptoaritmètica<br />
És un problema que fàcilment es podria resoldre usant cerca cega, però l’espai de<br />
cerca esdevindria immens. D’altra banda, és un problema en el qual fàcilment es<br />
poden usar les restriccions del problema amb la finalitat de reduir l’espai de cerca<br />
(cerca basada en restriccions).<br />
[Ginsberg1993]p37<br />
N-reines<br />
El problema de les N-reines és el problema més típic per representar el que abans<br />
hem anomenat cerca basada en restriccions (Constraint-satisfaction problems,<br />
CSP).<br />
Aquest problema el treballarem dins dels exercicis d’LISP.<br />
[Ginsberg1993]p37<br />
El problema del taulell escapçat<br />
El factor de branqueig d’aquest problema és molt elevat, però si hi combinem una<br />
adequada representació del coneixement esdevé molt senzill. Penseu en resoldre’l<br />
basant-vos en col·locar-hi peces de dòmino. Per tant, convé pensar en com resoldre<br />
els problemes.<br />
[Ginsberg1993]p37-p38<br />
1.2.4. Representació del coneixement<br />
Molts problemes són exemples típics dins de la IA atès que la representació del<br />
coneixement, i el raonament associat, són clau per tal d’obtenir la solució.<br />
16
Herència<br />
El problema de l’herència esdevé clau i força a modificar els mètodes de<br />
representació del coneixement i, per tant, els mètodes de raonament.<br />
Suposem que tenim el món que és descrit per les declaracions següents:<br />
1. Els OCELLS volen.<br />
2. Els ESTRUÇOS no volen.<br />
3. Els ESTRUÇOS són OCELLS.<br />
4. En TWEETY és un OCELL.<br />
5. En TWEETY és un ESTRUÇ.<br />
Arribats en aquest punt és quan ens hem de preguntar: en TWEETY vola? Podem<br />
observar que depenent de la representació del coneixement –i del raonament que<br />
usem- la resposta pot ser molt diferent, i no sempre fidel a la realitat.<br />
D’altra banda, aquest problema també ens introdueix un nou concepte: convé que els<br />
mètodes de raonament siguin capaços d’usar el sentit comú (commonsense<br />
knowledge), un propòsit ben difícil d’assolir!<br />
[Ginsberg1993]p40-p41<br />
Missioners i caníbals<br />
Si reconsiderem de nou el problema dels missioners i dels caníbals des de la<br />
perspectiva de la representació del coneixement, podem observar que de nou apareix<br />
el problema del sentit comú. Imagineu que tenim més informació sobre l’entorn d’on<br />
es desenvolupa el problema (del riu, de la barca, de la zona geogràfica, del temps,<br />
etc.). En aquest cas és possible que la millor solució que hem obtingut abans –<br />
únicament des d’una perspectiva de cerca–, deixi de tenir sentit: per exemple si ens<br />
diuen que a 500 metres hi ha un pont en perfecte estat.<br />
[Ginsberg1993]p42<br />
El món dels blocs<br />
El món dels blocs és un exemple que il·lustra la majoria dels problemes de<br />
planificació. Són problemes en els quals és tan necessària la representació del<br />
coneixement com una nova família d’algorismes de cerca.<br />
[Ginsberg1993]p42<br />
RESUM<br />
En aquesta sessió s’han presentat un conjunt de problemes que s’usen contínuament<br />
dins del paradigma de la intel·ligència artificial per tal de mostrar les limitacions amb<br />
17
les quals ens podem trobar i explicar, d’aquesta manera, els mètodes que les saben<br />
tractar.<br />
No només anirem fent referència a aquests problemes al llarg del curs, sinó que<br />
alguns d’ells els treballarem com a exercicis del llenguatge de programació LISP.<br />
18
SESSIÓ 3: Introducció al LISP (1/4)<br />
Nom: Introducció al LISP (1/4)<br />
Tipus: teòrico-pràctica<br />
Format: no presencial<br />
Durada: 2 hores<br />
Dedicació: 3 hores<br />
Treball a lliurar: no<br />
Material:<br />
o Bibliografia bàsica:<br />
[Golobardes2002a]<br />
o Bibliografia complementària:<br />
[Steele1990]<br />
o Recursos de programari i de maquinari: CommonLISP – UNIX<br />
PRECEDENTS<br />
Al llarg de la carrera heu estat treballant principalment amb els llenguatges de<br />
programació anomenats imperatius, com per exemple el PASCAL, el C, el C++, el<br />
JAVA, etc. D’altra banda, a l’assignatura de Lògica matemàtica vau conèixer el<br />
llenguatge de programació lògic PROLOG.<br />
En els orígens de la intel·ligència artificial molts problemes es van desenvolupar usant<br />
una filosofia funcional, i els primers programes com l’ELISA, o bé el MYCIN es van<br />
implementar en LISP. Així doncs, malgrat que intel·ligència artificial no és sinònim<br />
d’LISP, sí que convé conèixer la filosofia dels llenguatges funcionals, per poder<br />
comprendre en tot moment quin d’aquests tres grans paradigmes –imperatiu, lògic o<br />
funcional– és el més adequat per a la resolució d’un problema.<br />
OBJECTIUS<br />
L’objectiu d’aquestes sessions que comprenen el tema d’Introducció al LISP és el de<br />
donar a conèixer a l’estudiant unes nocions bàsiques d’un llenguatge funcional –<br />
podríem dir que el més usat de tots–. Aquestes sessions es realitzaran davant del<br />
mateix entorn: l’intèrpret del Common LISP. Per tant, les diferents sessions<br />
conjuntament amb la documentació de LISP – <strong>Intel·ligència</strong> <strong>Artificial</strong> ajudaran a<br />
l’estudiant a adquirir aquestes nocions bàsiques.<br />
L’objectiu d’aquesta primera sessió d’introducció al LISP consisteix a conèixer<br />
l’intèrpret i les principals primitives del llenguatge.<br />
CONTINGUTS<br />
En aquesta sessió farem una primera introducció al llenguatge de programació LISP:<br />
concepte de llenguatge funcional, l’entorn Common LISP, veurem els tipus de dades i<br />
les estructures predefinides pels usuaris i les principals funcions primitives.<br />
És convenient anar avançant en aquestes sessions a mesura que sobre l’intèrpret de<br />
Common LISP es van provant les instruccions del document de LISP – <strong>Intel·ligència</strong><br />
<strong>Artificial</strong>.<br />
19
2. Introducció al LISP<br />
2.1. Introducció al LISP<br />
2.1.1. Introducció: LISP i els llenguatges funcionals<br />
El sistema de programació LISP –sigles d’LISt Processor– va ser desenvolupat pel<br />
grup d'<strong>Intel·ligència</strong> <strong>Artificial</strong> de la M.I.T. El requeriment principal que es demanava era<br />
un sistema de programació per a la manipulació d'expressions representant sentències<br />
declaratives i imperatives de manera que el sistema pogués extreure'n deduccions.<br />
LISP va evolucionar cap a un llenguatge funcional recursiu.<br />
Els llenguatges imperatius<br />
Els llenguatges imperatius es caracteritzen per tenir un estat implícit que és modificat<br />
per les comandes del llenguatge de programació. Com a resultat aquests llenguatges<br />
solen tenir una notació seqüencial per permetre un control precís i determinístic sobre<br />
l'estat. <strong>La</strong> majoria de llenguatges són imperatius: PASCAL, C. C++, JAVA, etc.<br />
[Golobardes2002a]p4<br />
Els llenguatges lògics<br />
D'altra banda els llenguatges declaratius o lògics es caracteritzen per no tenir cap<br />
estat implícit. En particular, els llenguatges funcionals són llenguatges declaratius on el<br />
model de computació és la funció. En un llenguatge declaratiu les computacions<br />
orientades a estat s'han de controlar mantenint l'estat de forma implícita i les<br />
operacions de bucle s'han de realitzar mitjançant recursivitat en lloc de seqüencialitat.<br />
[Golobardes2002a]p4<br />
Sistema de programació funcional<br />
Un sistema de programació funcional es fonamenta en l'ús d'un conjunt fix de<br />
formes (forms) combinades, anomenat formes funcionals. Aquestes formes i les<br />
definicions simples ens permeten de formar altres funcions a partir de les existents; no<br />
s'utilitzen variables o regles de substitució.<br />
[Golobardes2002a]p4<br />
Els llenguatges funcionals<br />
El primer llenguatge funcional, <strong>La</strong>mbda Calculus, fou desenvolupat per Church<br />
(1932-33,1941). Tot i que és considerat el primer llenguatge funcional, cal tenir en<br />
20
compte que en aquell moment no hi havia computadors on poder executar els<br />
programes, però es considera que tots els altres llenguatges funcionals són evolucions<br />
d’<strong>La</strong>mbda Calculus. <strong>La</strong> idea de Church era crear una forma de càlcul que pogués<br />
representar el comportament de les funcions. Una de les principals aportacions<br />
d’<strong>La</strong>mbda Calculus va ser la recursivitat.<br />
Llenguatges com LISP, Iswim, FP, APL, ML i Miranda són evolucions d’<strong>La</strong>mbda<br />
Calculus. Tots ells partien en essència d'aquest primer llenguatge, tot i que finalment<br />
en alguns d'ells hi juga un paper molt petit.<br />
[Golobardes2002a]p4<br />
2.1.2. Com usar l’intèrpret de Common LISP?<br />
Coneixerem el llenguatge de programació LISP usant l’entorn de Common LISP.<br />
Concretament ens basarem en la versió de Common LISP instal·lada a les màquines<br />
UNIX d’Enginyeria i Arquitectura <strong>La</strong> <strong>Salle</strong>, a les quals teniu accés. Aquesta versió és la<br />
més estàndard que existeix.<br />
Existeixen d’altres entorns LISP, i també existeixen versions per a PCs. Tant les unes<br />
com les altres poden diferir del l’entorn que nosaltres usem. Per aquest motiu el<br />
document segueix fidelment un entorn concret, per tal de no perdre’ns en detalls<br />
anecdòtics pel que fa la pròpia programació funcional.<br />
Common LISP<br />
A les primeres pàgines del document LISP – <strong>Intel·ligència</strong> <strong>Artificial</strong> se us indica com<br />
entrar a l’entorn, carregar un fitxer, editar un fitxer, o bé sortir de l’intèrpret LISP.<br />
[Golobardes2002a]p4-p5<br />
2.1.3. Tipus de dades i estructures definides pels<br />
usuaris<br />
Els tipus de dades en el llenguatge LISP s'anomenen expressions, les quals es<br />
poden dividir en àtoms i en llistes. Els àtoms es composen de números i de símbols,<br />
on els números poden ser enters, racionals, reals o complexos.<br />
Àtoms<br />
Els objectes indivisibles, com per exemple, 56, 2, *, que tenen un significat propi, així<br />
com també els noms de les variables i de les funcions s'anomenen àtoms.<br />
[Golobardes2002a]p5<br />
21
Llistes<br />
Una llista està composta per un parèntesi obert, seguit de cap o més àtoms o llistes<br />
internes, i per un parèntesi tancat. Els components d'una llista s'anomenen elements i<br />
és l'espai en blanc el que fa de separador entre ells.<br />
Un tipus especial de llistes seran les anomenades llistes impròpies.<br />
[Golobardes2002a]p6<br />
2.1.4. Funcions primitives<br />
Els següents conceptes ens ajudaran a conèixer les principals funcions primitives del<br />
LISP, a partir de les quals podrem dissenyar funcions (o bé programes) en LISP.<br />
QUOTE<br />
<strong>La</strong> funció QUOTE també s'expressa amb ‘ i provoca la no avaluació per part de<br />
l’intèrpret d’LISP de l'objecte que la segueix.<br />
Vegeu [Golobardes2002a]p6<br />
SETF i SETQ<br />
Les funcions SETF i SETQ s'encarreguen d'assignar un valor a una variable simbòlica.<br />
A primer cop d’ull potser no s’aprecia la seva diferència, però convé treballar-la perquè<br />
l’ús d’una o de l’altra pot ser clau en algunes situacions.<br />
Vegeu els exemples que es mostren a [Golobardes2002a]p6-p7<br />
CAR/FIRST i CDR/REST<br />
Les funcions CAR/FIRST retornen el primer element de la llista passada com a<br />
argument, mentre que –complementàriament– les funcions CDR/REST retornen la<br />
llista que li passem, excepte el primer element.<br />
Vegeu [Golobardes2002a]p7<br />
EVAL<br />
<strong>La</strong> primitiva EVAL provoca l'avaluació del seu argument i del resultat d'aquest. Serà<br />
molt útil dins de la filosofia LISP.<br />
Treballeu els exemples que es proposen a [Golobardes2002a]p7<br />
22
CONS<br />
<strong>La</strong> funció CONS servirà per crear una nova cel·la per encadenar un element al cap de<br />
la llista que li passem. Si el segon argument es un àtom, es crea una llista impròpia<br />
(dotted list).<br />
Vegeu [Golobardes2002a]p8<br />
APPEND<br />
<strong>La</strong> funció APPEND ajunta els elements de totes les llistes que té com a arguments en<br />
una única llista. Val a dir que tots els seus arguments, excepte l'últim, han de ser<br />
llistes.<br />
LIST<br />
Vegeu els diferents exemples a [Golobardes2002a]p8<br />
<strong>La</strong> primitiva LIST construeix una llista amb els arguments que li passem, de tal manera<br />
que cadascun d'aquests passa a ser un element de la nova llista.<br />
Vegeu [Golobardes2002a]p8-p9<br />
NTHCDR, BUTLAST i LAST<br />
A diferència de les funcions CDR/REST, la funció NTHCDR retorna no només la resta<br />
de la llista sense el primer element, sinó la resta de la llista menys els n primers<br />
elements, valor que se li passa com a primer paràmetre.<br />
En canvi, la funció BUTLAST actua com a complementària de l'anterior, de manera<br />
que el que fa és truncar la llista per als n darrers elements, on n és el segon dels<br />
paràmetres que li passem.<br />
D’altra banda, la primitiva LAST retorna una llista composta per l'últim element de la<br />
llista que li passem com a paràmetre.<br />
Vegeu [Golobardes2002a]p9-p10<br />
LENGTH<br />
<strong>La</strong> funció LENGTH compta el nombre d'elements que conté una llista, tant si els<br />
elements són atòmics com altres si són altres llistes.<br />
Vegeu [Golobardes2002a]p10<br />
23
REVERSE<br />
<strong>La</strong> funció REVERSE construeix el revessat d'una llista d'elements.<br />
Vegeu els exemples següents [Golobardes2002a]p10<br />
ASSOC<br />
<strong>La</strong> primitiva ASSOC permet treballar amb les a-list, que són llistes de subllistes, on el<br />
primer element de cadascuna és la clau per recuperar la resta de la subllista; la seva<br />
funció és la d'obtenir el/s valor/s associat/s a una d'aquestes claus.<br />
[Golobardes2002a]p10<br />
Operacions aritmètiques<br />
LISP té una gran varietat de primitives que ofereixen diferents operacions aritmètiques<br />
(com +, –, *, /) i diferents maneres de trucar o bé d’oferir la resta (com FLOOR,<br />
CEILING, ROUND, REM i TRUNCATE). Totes elles s’usen tipus prefix.<br />
Podeu treballar-les seguint [Golobardes2002a]p11-p13<br />
Funcions matemàtiques<br />
LISP també disposa de diferents primitives, les quals ofereixen operacions<br />
aritmètiques molt específiques. Concretament treballarem: INCF, DECF, SQRT i<br />
EXPT.<br />
[Golobardes2002a]p13-p15<br />
Funcions de comparació<br />
LISP disposa de funcions de comparació molt específiques per als diferents tipus<br />
d’elements que el constitueixen: =, EQ, EQL, EQUAL, MEMBER, ZEROP, PLUSP,<br />
MINUSP, EVENP, ODDP, >,
Vegeu [Golobardes2002a]p15-p17<br />
RESUM<br />
Aquesta sessió ofereix una introducció a les primitives bàsiques d’LISP, les quals<br />
convé anar treballant –in situ– jugant amb l’intèrpret del Common LISP. A la següent<br />
sessió ja començarem a dissenyar funcions usant el llenguatge LISP.<br />
25
SESSIÓ 4: Introducció al LISP (2/4)<br />
Nom: Introducció al LISP (2/4)<br />
Tipus: teòrico-pràctica<br />
Format: no presencial<br />
Durada: 2 hores<br />
Dedicació: 2,5 hores<br />
Treball a lliurar: no<br />
Material:<br />
o Bibliografia bàsica:<br />
[Golobardes2002a]<br />
o Bibliografia complementària:<br />
[Steele1990]<br />
o Recursos de programari i de maquinari: CommonLISP - UNIX<br />
PRECEDENTS<br />
A la sessió anterior vam establir una primera presa de contacte amb l’entorn del<br />
Common LISP. També vam veure les principals primitives del llenguatge LISP.<br />
OBJECTIUS<br />
En aquesta sessió aprendrem a dissenyar funcions en LISP, explotant la seva<br />
capacitat recursiva. De la mateixa manera que la sessió anterior, convé anar seguint el<br />
document LISP – <strong>Intel·ligència</strong> <strong>Artificial</strong> amb el propi intèrpret de Common LISP. Així<br />
doncs, aquesta és de nou una sessió en la qual s’aprèn el llenguatge LISP d’una<br />
manera pràctica.<br />
CONTINGUTS<br />
Tots els continguts d’aquestes sessió estan recollits al document LISP – <strong>Intel·ligència</strong><br />
<strong>Artificial</strong> . Es centraran al voltant dels disseny de les funcions recursives tan pròpies<br />
dels llenguatges funcionals.<br />
Al llarg de la sessió es proposaran alguns exemples-pràctiques, que, malgrat que no<br />
és obligatori lliurar-los, sí que es recomana que es facin per a la bona comprensió de<br />
les sessions i del llenguatge LISP.<br />
2.1.5. Els predicats i els condicionals<br />
Un predicat és un procediment que retorna un valor booleà, és a dir, veritat (true, T) o<br />
mentida (false, NIL). Les diferents estructures condicionals que veurem es basen en<br />
predicats per tal de decidir quin camí seguiran al llarg de l’execució d’un algorisme.<br />
Concretament veurem les estructures condicionals següents: IF, WHEN, UNLESS,<br />
COND i CASE.<br />
Seguirem els exemples següents [Golobardes2002a]p22-p24<br />
27
IF<br />
<strong>La</strong> seva estructura està formada per la paraula reservada IF seguida de la condició –<br />
predicat– que es vol avaluar i de dues opcions, la primera de les quals s'avalua si la<br />
condició és certa, mentre que la segona s'avalua si és falsa.<br />
Vegeu els exemples següents [Golobardes2002a]p22<br />
WHEN<br />
<strong>La</strong> forma condicional WHEN s'utilitza en comptes d'un IF sempre que les operacions<br />
de l'else siguin inexistents.<br />
Vegeu els exemples següents [Golobardes2002a]p22<br />
UNLESS<br />
L’UNLESS s'usa per substituir l'estructura d'un IF en el cas contrari del WHEN, és a<br />
dir, quan les operacions que s'han de realitzar, si la condició és certa, són inexistents.<br />
Podeu observar que tant el WHEN com l’UNLESS poden tenir un nombre indeterminat<br />
d'arguments, el primer dels quals és sempre la condició que cal comprovar i l'últim, les<br />
operacions a realitzar en cada cas. Els altres arguments s'avaluen només com a<br />
efectes laterals.<br />
Vegeu els exemples següents [Golobardes2002a]p23<br />
COND<br />
Amb la instrucció condicional COND podem fer una tria entre un grup d'alternatives. <strong>La</strong><br />
seva estructura és la paraula COND seguida per un conjunt de llistes anomenades<br />
clauses. El seu funcionament es basa en l'avaluació de cada condició fins que trobi<br />
algun valor que sigui ``no-NIL''; llavors interpreta les operacions que té associades. El<br />
valor que retorna és el de l'última d'aquestes operacions, de tal manera que si<br />
n'existeixen d'altres anteriors només es consideren per als efectes laterals.<br />
Vegeu els exemples següents [Golobardes2002a]p23-p24<br />
CASE<br />
L'estructura d’aquest condicional està formada per la paraula reservada CASE seguida<br />
per una clau i un nombre indeterminat de clàusules.<br />
El seu funcionament consisteix a anar comparant la clau principal amb les altres<br />
seguint la primitiva EQL. Si troba algun cas que retorni cert, llavors s'avalua/en la/es<br />
operació/ons que la segueix/en.<br />
28
Vegeu els exemples següents [Golobardes2002a]p24<br />
2.1.6. Definició de noves funcions<br />
Tot llenguatge funcional basa la construcció dels algorismes en la definició de<br />
funcions. Coneguem tot seguit la seva sintaxi.<br />
DEFUN<br />
En LISP disposem d'una primitiva especial DEFUN (DEfine FUNction) que ens<br />
permetrà definir les nostres pròpies funcions. <strong>La</strong> seva estructura és:<br />
(DEFUN () ).<br />
Vegeu [Golobardes2002a]p4-p25<br />
2.1.7. <strong>La</strong> recursivitat<br />
<strong>La</strong> capacitat de la crida recursiva d'un procediment dins de la seva pròpia definició és<br />
una de les capacitats més característiques dels llenguatges funcionals. De fet<br />
existeixen màquines LISP que no segueixen l’estructura Von Newmann sinó que són<br />
completament recursives.<br />
Treballem el concepte de la recursivitat amb els exercicis següents.<br />
Vegeu [Golobardes2002a]p25<br />
Exercici 3: la funció del factorial<br />
Implementeu –de manera recursiva– la funció del factorial. Recordem la seva<br />
definició:<br />
FACTORIAL(n) = FACTORIAL(n-1) * n; per n >= 0<br />
Exercici 4: la funció de Fibonacci<br />
Implementeu –de manera recursiva– la funció de Fibonacci. Recordem la seva<br />
definició:<br />
FIBONACCI(x) = FIBONACCI(x-1) + FIBONACCI(x-2), per x>1<br />
FIBONACCI(0) = 1<br />
FIBONACCI(1) = 1<br />
29
2.1.8. Definició de variables locals<br />
El llenguatge LISP també permet la declaració de variables d’àmbit local. Com als<br />
altres paradigmes de programació és convenient l’ús de variables locals enfront de les<br />
variables globals.<br />
LET<br />
<strong>La</strong> primitiva LET ens permet declarar diverses variables locals dins de l'àmbit<br />
determinat pels seus parèntesis.<br />
Vegeu [Golobardes2002a]p25-p26<br />
2.1.9. Les funcions MAP<br />
El procés de mapping és un mètode per veure com evoluciona l'avaluació d'alguna<br />
expressió i la seva utilitat recau en l'aplicació d'una funció a cada element d'una llista o<br />
subllista. El bon ús d’aquestes estructures és una de les principals aportacions dels<br />
llenguatges funcionals. Llenguatges de programació funcionals, com per exemple<br />
MIRANDA, permeten, fins i tot, l’avaluació de “llistes infinites”.<br />
MAPCAR<br />
<strong>La</strong> primitiva MAPCAR té com a arguments una funció més tantes llistes com<br />
arguments té aquesta funció. Si només té un argument, aplica la funció a tots els<br />
elements de la llista que li passem com a argument: (nom_funció (CAR llista)),<br />
(nom_funció (CAR (CDR llista))), ...<br />
De forma anàloga, si té dos arguments: (nom_funció (CAR llista1) (CAR llista2)),<br />
(nom_funció (CAR (CDR llista1)) (CAR (CDR llista2))), ... fins que una de les dues<br />
llistes estigui buida, i així en general per a n arguments.<br />
Vegeu [Golobardes2002a]p26<br />
Exercici 5: la funció del revessat_total<br />
Definiu la funció revessat_total per tal que revessi completament qualsevol llista<br />
d'elements.<br />
Si els arguments que se li passen no són correctes ha de retornar NIL, però en cap<br />
cas ERROR.<br />
Dissenyeu-la usant la primitiva MAPCAR.<br />
Vegeu exemples del comportament que ha de tenir a [Golobardes2002a]p26<br />
30
2.1.10. <strong>La</strong> funció LAMBDA<br />
De la mateixa manera que estem habituats a tenir variables d’àmbit local, LISP també<br />
permet la definició de funcions d’àmbit local. De fet, així va néixer el llenguatge<br />
<strong>La</strong>mbda Calculus, mare dels llenguatges funcionals.<br />
LAMBDA<br />
Amb aquest tipus de funció es poden definir procediments anònims, és a dir, es<br />
descriu una funció sense assignar-li un nom. <strong>La</strong> seva estructura és molt semblant a la<br />
de la definició amb la primitiva DEFUN: (LAMBDA ).<br />
Per cridar aquest tipus de funcions, s’acostuma a posar la definició en el lloc on<br />
tindríem el nom d'un procediment. Això ens serà útil si només s'ha d'utilitzar un cop. Si<br />
convé cridar-la en diversos llocs, serà millor definir-la amb un DEFUN.<br />
Vegeu [Golobardes2002a]p27<br />
2.1.11. Tipus de paràmetres: opcionals, restants i<br />
claus<br />
Els paràmetres d'un procediment són variables lligades a ell, als quals se'ls assigna<br />
un valor inicial. Parlarem de tres tipus de paràmetres que ofereix el llenguatge LISP:<br />
opcionals, restants i claus.<br />
Paràmetres opcionals<br />
Els paràmetres opcionals són aquells que es poden o no especificar en el moment<br />
de la crida a la funció. <strong>La</strong> seva definició comença per l'expressió &OPTIONAL, així per<br />
exemple, podem definir una funció que, si li passem dos paràmetres, ens retornarà la<br />
seva suma, i si li’n passem tres, el resultat és la resta d'aquest darrer sobre l'anterior<br />
suma.<br />
Si no s’usen els paràmetres opcionals, la funció els assigna el valor de NIL.<br />
Vegeu els exemples que podeu trobar a [Golobardes2002a]p27<br />
Paràmetres restants<br />
Els paràmetres restants s’indiquen amb la paraula clau &REST. Assigna en una llista<br />
tots els valors de la resta d’arguments que se li passi.<br />
Vegeu [Golobardes2002a]p27-p28<br />
31
Paràmetres clau<br />
Els paràmetres clau s'utilitzen quan tenim diversos paràmetres, molts dels quals<br />
s'assignen a valors per defecte. S'indiquen amb la paraula reservada &KEY. Quan es<br />
crida la funció, s'indiquen aquests paràmetres amb dos punts seguits del nom i del<br />
valor que se li assigni.<br />
Val a dir que els tres tipus de paràmetres que hem estat treballant –opcionals, restants<br />
i clau– es poden usar a la vegada seguint l’ordre següent: en primer lloc, els<br />
paràmetres regulars, després els opcionals, seguits d’un únic paràmetre restant i,<br />
finalment, els paràmetres clau.<br />
Vegeu [Golobardes2002a]p28<br />
RESUM<br />
El tema central d’aquesta sessió ha estat les funcions i aquells conceptes que<br />
l’envolten. D’altra banda, s’ha volgut treballar la complicitat que hi ha entre el disseny<br />
d’una funció en un llenguatge funcional i la recursivitat. Així doncs, al llarg de la<br />
sessió s’ha proposat d’implementar algunes funcions força conegudes de manera<br />
recursiva.<br />
32
SESSIÓ 5: Introducció al LISP (3/4)<br />
Nom: Introducció al LISP (3/4)<br />
Tipus: teòrico-pràctica<br />
Format: no presencial<br />
Durada: 2 hores<br />
Dedicació: 2 hores<br />
Treball a lliurar: no<br />
Material:<br />
o Bibliografia bàsica:<br />
[Golobardes2002a]<br />
o Bibliografia complementària:<br />
[Steele1990]<br />
o Recursos de programari i de maquinari: CommonLISP - UNIX<br />
PRECEDENTS<br />
A la sessió anterior vam veure les funcions i la recursivitat.<br />
OBJECTIUS<br />
En aquesta sessió veurem com crear noves estructures, com tractar les entrades i les<br />
sortides i com tractar els algorismes iteratius (tot i que el disseny recursiu ha de ser la<br />
primera opció). De la mateixa manera que en les sessions anteriors, convé anar<br />
seguint el document LISP – <strong>Intel·ligència</strong> <strong>Artificial</strong> amb el propi intèrpret de Common<br />
LISP. Així doncs, esdevé de nou una sessió en la qual s’aprèn el llenguatge LISP<br />
d’una manera pràctica.<br />
CONTINGUTS<br />
Tots els continguts d’aquestes sessió estan recollits al document LISP – <strong>Intel·ligència</strong><br />
<strong>Artificial</strong>. En aquesta sessió veurem: la creació de noves estructures, la funció GET,<br />
les iteracions, les macros, la lectura i l’escriptura i, en darrer lloc, algunes eines de<br />
depuració.<br />
2.1.12. Creació de noves estructures<br />
<strong>La</strong> creació de noves estructures facilita l’abstracció de les dades. Vegem de quina<br />
manera el Common LISP ens permet crear-les i gestionar-les.<br />
Seguirem els exemples següents [Golobardes2002a]p29-p31<br />
Construcció<br />
<strong>La</strong> primitiva DEFSTRUCT ens permet crear noves estructures. Aquesta primitiva no<br />
crea instàncies, sinó que automatitza la creació d’un procediment constructor de<br />
dades, que s’escriu com la combinació de MAKE-NomEstructura. Per tal d’usar-lo<br />
33
ens ajudarem de la primitiva SETF, que és la que realment crearà una instància del<br />
tipus d’aquesta nova estructura.<br />
Vegeu la forma genèrica del DEFSTRUCT i com usar el MAKE- en els exemples<br />
següents [Golobardes2002a]p28-p30<br />
Modificacions<br />
Per modificar els valors dels camps que té la nova estructura, ens ajudarem de la<br />
primitiva SETF.<br />
Cal preveure des de bon principi tots els camps que tindrà la nova estructura, ja que<br />
un cop creada no se’n podran afegir de nous.<br />
Vegeu com realitzar modificacions dels camps usant el SETF a<br />
[Golobardes2002a]p28-p30<br />
Consultes<br />
Al crear una nova estructura també es creen automàticament els mecanismes<br />
associats a ella per realitzar els diferents tipus de consulta:<br />
1. Predicat que consulti si una certa variable és del nou tipus de dades creat:<br />
NomEstructura-P<br />
2. Consulta d’un camp d’aquesta nova estructura: NomEstructura-NomCamp.<br />
3. Consulta d’una variable d’algun tipus d’estructura: DESCRIBE.<br />
Vegeu exemples de consultes sobre estructures a [Golobardes2002a]p28-p30<br />
2.1.13. Estructures propietat-valor<br />
Les primitives SETF, GET i REMPROP ens permetran treballar amb estructures de<br />
dades propietat-valor, les quals seran força útils en les representacions basades en<br />
frames que veurem en el capítol de Representació del coneixement – Raonament.<br />
SETF i GET<br />
<strong>La</strong> primitiva GET permet recuperar el valor assignat a una propietat associada a un<br />
símbol. S’usa de la manera següent: (GET ).<br />
Per assignar una propietat i un valor de propietat a un símbol, s’usa la funció SETF, de<br />
tal manera que: (SETF (GET ) ).<br />
D’aquesta manera, el primer cop que usem aquesta sentència amb un símbol i amb<br />
una propietat particular, el que fem és crear aquesta propietat associada al símbol. Per<br />
tant, SETF esdevé un procés constructor i un procés d’escriptura.<br />
Vegeu [Golobardes2002a]p30<br />
34
REMPROP<br />
<strong>La</strong> primitiva REMPROP permet esborrar una propietat. Cal tenir present que aquesta<br />
primitiva té un efecte lateral: és destructora. Mentre que la majoria de les primitives<br />
LISP sempre són consultores i, per tant, no modifiquen els valors de les “variables”.<br />
Vegeu i treballeu alguns exemples seguint [Golobardes2002a]p30<br />
2.1.14. Iteracions<br />
Malgrat que els llenguatges funcionals tenen una filosofia “recursiva”, també trobem<br />
una sèrie de primitives que ens permeten dissenyar diferents estructures iteratives.<br />
Treballarem les primitives següents: DOTIMES, DOLIST, DO, LOOP i PROG.<br />
Vegeu [Golobardes2002a]p31-34<br />
DOTIMES – Exercici 6: Factorial_DOTIMES<br />
<strong>La</strong> primitiva DOTIMES permet iterar un cert nombre de vegades. Es demana que<br />
implementeu la funció del factorial de manera iterativa i usant la primitiva DOTIMES.<br />
Recordem de nou la seva definició: FACTORIAL(n) = FACTORIAL(n-1) * n; per n >= 0<br />
Vegeu la definició del DOTIMES a [Golobardes2002a]p31<br />
DOLIST<br />
<strong>La</strong> primitiva DOLIST ens permet iterar sobre els elements d’una llista donada. Vegeu<br />
la seva definició i un exemple a LISP – <strong>Intel·ligència</strong> <strong>Artificial</strong> (pàgines 31-32).<br />
[Golobardes2002a]p31-p32<br />
DO – Exercici 7: Factorial_DO<br />
<strong>La</strong> primitiva DO s'usa per fer iteracions quan DOLIST i DOTIMES no són prou flexibles.<br />
En d'altres casos cal evitar-la perquè provoca una complicació innecessària quan es<br />
pot usar una de les dues anteriors. Vegeu l’estructura del DO a [Golobardes2002a] a<br />
les pàgines 32-33.<br />
Es proposa que implementeu –de nou– la funció del factorial de manera iterativa<br />
usant la primitiva DO.<br />
Vegeu [Golobardes2002a]p32-p33<br />
35
LOOP<br />
El funcionament de la primitiva LOOP és molt simple, consisteix a l'avaluació un i<br />
altre cop de les expressions que conté, fins que arriba a un RETURN, fet que l'obliga a<br />
retornar el valor de les seves avaluacions.<br />
Vegeu la seva estructura i un exemple a [Golobardes2002a]p33<br />
PROG1 i PROGN<br />
Les primitives PROG1 i PROGN tracten les seqüències de forma explícita, de manera<br />
que avaluen totes les expressions, menys una, com a efectes laterals i retornen<br />
l'avaluació de la restant, la primera en el cas de PROG1 i l'última en el cas de PROGN.<br />
Vegeu el seu ús a [Golobardes2002a]p33-p34<br />
2.1.15. Macros<br />
Les macros, en un entorn LISP, actuen en dos passos: primer usen els seus<br />
arguments per construir expressions intermèdies i després avaluen aquestes<br />
expressions per produir un valor. Per definir aquest tipus de procediments s’usa la<br />
primitiva DEFMACRO.<br />
DEFMACRO<br />
És convenient que treballeu la primitiva DEFMACRO i comprengueu que s’usarà<br />
aquest tipus de definició –en comptes de la primitiva DEFUN- quan interessi que els<br />
efectes laterals no provoquin una avaluació incorrecta del procediment.<br />
Vegeu [Golobardes2002a]p34-p35<br />
L’apòstrof invertit: ` o BACKQUOTE<br />
<strong>La</strong> tècnica de l’apòstrof invertit (`) o BACKQUOTE facilita crear i completar<br />
expressions com a “plantilles”, en les quals es poden posar variables. Així doncs, amb<br />
aquest mètode s’aconsegueix que cada cop que aparegui una coma (,) en una<br />
expressió iniciada per un apòstrof invertit, se substitueix la subexpressió que la<br />
segueix pel seu valor. Si la variable en qüestió conté una llista, caldrà que darrera de<br />
la ',' es posi el símbol @.<br />
Vegeu alguns exemples del seu funcionament a [Golobardes2002a]p35<br />
36
2.1.16. Lectura i escriptura<br />
En aquest apartat tractarem diferents primitives que serveixen per a la lectura i<br />
l’escriptura de dades. Veurem primitives per llegir i escriure tant de pantalla (PRINT,<br />
READ i FORMAT) com de fitxer (WITH-OPEN-FILE).<br />
PRINT<br />
<strong>La</strong> primitiva PRINT avalua el seu argument i la imprimeix en una nova línia seguida<br />
d'un espai en blanc.<br />
Vegeu [Golobardes2002a]p35-p36<br />
READ<br />
<strong>La</strong> primitiva READ espera que s'escrigui alguna cosa per al teclat.<br />
Vegeu [Golobardes2002a]p36<br />
FORMAT<br />
<strong>La</strong> primitiva FORMAT permet escriure a pantalla amb un format més elegant. El primer<br />
paràmetre indica on volem que s'escrigui el missatge. Si el seu valor és t llavors<br />
s'escriu a pantalla.<br />
Dins d'aquesta primitiva disposem d'una directiva molt usada que és l' a, amb la qual<br />
s’indica que en aquell lloc s’escriu el valor de l'argument addicional que apareix<br />
darrera la cadena del format.<br />
Vegeu [Golobardes2002a]p36<br />
Exercici 8: les Torres d’Hanoi<br />
Un mite ancestral diu que en un temple d’Hanoi el temps es registra pels monjos que<br />
s'ocupen de transferir 64 discs d'una estaca a una altra, d'un total de tres estaques.<br />
L'univers, tal i com el coneixem, s'acabarà quan acabin de fer la transferència. <strong>La</strong> raó<br />
per la qual no cal preocupar-nos és que els moviments dels discs estan restringits per<br />
les regles següents:<br />
- Només es pot moure un disc cada vegada.<br />
- Cada disc té un diàmetre diferent, i cap d’ells no es pot moure sobre un altre de més<br />
petit.<br />
- Inicialment tots els discs es troben sobre una mateixa estaca, i cada disc descansa<br />
sobre un de més gran.<br />
Implementeu una funció tal que escrigui les operacions necessàries per moure n discs<br />
d'una estaca A a una B tot utilitzant l'estaca C com a estaca de traspàs.<br />
37
Tingueu present la descripció recursiva del problema que vam veure en el capítol<br />
d’Introducció.<br />
Vegeu [Golobardes2002a]p36<br />
WITH-OPEN-FILE<br />
<strong>La</strong> primitiva WITH-OPEN-FILE ens permet obrir fitxers per poder-hi escriure, o bé<br />
llegir.<br />
Vegeu la seva definició a [Golobardes2002a]p37<br />
2.1.17. Eines de depuració<br />
L'intèrpret d’LISP ens permet l'ús de diverses eines que ens ajudaran en la depuració<br />
i correcció dels nostres programes. Les eines que presentem són: TRACE, BREAK,<br />
TIME i DRIBBLE.<br />
D’altra banda, a nivell de programari, recordem que els comentaris, dins d’un codi<br />
LISP, s’inserten usant el símbol punt i coma (;) que indica a l'intèrpret que el que hi ha<br />
fins al final de línia no s'ha d'avaluar.<br />
TRACE<br />
<strong>La</strong> funció TRACE rep com a argument el nom de la funció que volem traçar. Un cop<br />
s'ha executat, cada vegada que es faci una crida a la funció especificada, l'intèrpret<br />
escriu a pantalla el nom de la funció i els paràmetres que ha rebut, així com les dades<br />
que retorna.<br />
Per desactivar la funció TRACE s'utilitza la funció UNTRACE.<br />
Vegeu [Golobardes2002a]p38<br />
BREAK<br />
<strong>La</strong> funció BREAK atura l'avaluació. En aquest punt es pot avaluar qualsevol funció o<br />
variable visible en el moment de l'aturada. Per continuar l'execució només cal prémer<br />
la combinació de tecles .<br />
Vegeu [Golobardes2002a]p38-p39<br />
TIME<br />
<strong>La</strong> funció TIME ens permet saber quant temps triga en avaluar-se una funció.<br />
Vegeu el seu ús a [Golobardes2002a]p39<br />
38
DRIBBLE<br />
<strong>La</strong> funció DRIBBLE ens permet escriure una transcripció de la nostra interacció amb<br />
LISP. Cal donar-li el nom del fitxer de sortida.<br />
Per aturar l'escriptura cridarem la funció sense arguments.<br />
Vegeu [Golobardes2002a]p39-p40<br />
RESUM<br />
En aquesta sessió s’ha volgut donar una visió més àmplia de les possibilitats del<br />
llenguatge LISP des d’aspectes ben diferents: conceptes iteratius, estructures de<br />
dades més complexes, entrada–sortida i algunes eines de depuració.<br />
39
SESSIÓ 6: Introducció al LISP (4/4)<br />
Nom: Introducció al LISP (4/4)<br />
Tipus: pràctica<br />
Format: no presencial<br />
Durada: 2 hores<br />
Dedicació: 2 hores<br />
Treball a lliurar: sí<br />
Material:<br />
o Bibliografia bàsica:<br />
[Golobardes2002b]<br />
o Bibliografia complementària:<br />
[Golobardes2002a]<br />
[Steele1990]<br />
o Recursos de programari i de maquinari: Common LISP – UNIX<br />
PRECEDENTS<br />
En les sessions anteriors heu pogut veure una ràpida introducció al LISP. Ara en<br />
aquesta sessió necessitareu mostrar que teniu els coneixements ben apresos.<br />
OBJECTIUS<br />
L’objectiu d’aquesta sessió és avaluar els vostres coneixements en Common LISP.<br />
Recordeu que la nota d’aquesta avaluació serà un 10% de la nota final de la part<br />
pràctica de l’assignatura. A més a més, aquesta part pràctica és obligatòria i s’ha<br />
d’aprovar.<br />
CONTINGUTS<br />
En aquesta sessió anunciarem els diferents exercicis que heu de realitzar en Common<br />
LISP. Aquests exercicis s’hauran de lliurar en la data prevista.<br />
També podeu disposar el manual HTML de Common LISP (vegeu Common LISP –<br />
The <strong>La</strong>nguage) que heu utilitzat a mode de consulta durant les sessions anteriors<br />
d’Introducció al LISP.<br />
2.2. Exercicis d’LISP<br />
2.2.1. Exercicis a lliurar<br />
Tot seguit presentem els exercicis d’LISP que heu de lliurar en la data que es proposa.<br />
DOCUMENT: EXERCICIS LISP – <strong>Intel·ligència</strong> artificial<br />
On podeu trobar el document dels exercicis a lliurar?<br />
El document d’EXERCICIS LISP – <strong>Intel·ligència</strong> <strong>Artificial</strong> el trobareu a la carpeta de<br />
l’ecampus de l’assignatura d’intel·ligència artificial.<br />
41
Què hi ha en el document?<br />
1. L’enunciat dels diferents exercicis a lliurar. Cal recordar que s’han d’implementar<br />
seguint –en la mesura que es pugui– la filosofia pròpia del LISP (recursivitat!).<br />
2. En el document s’indica la data de lliurament dels exercicis, tot i que també la<br />
podeu trobar a l’agenda de l’assignatura.<br />
3. En el document també s’indica on s’han de lliurar els exercicis i quina memòria es<br />
demana.<br />
Criteris de puntuació:<br />
1. <strong>La</strong> memòria ha de tenir tots els punts que es demanen.<br />
2. Recordeu que els exercicis d’LISP s’han de lliurar obligatòriament per aprovar<br />
l’assignatura, i la seva nota ha de ser superior a 5 per tal que s’acceptin.<br />
3. Els exercicis lliurats fora de termini tindran una nota màxima de 5, i ja s’indicaran<br />
les possibles dates de lliurament.<br />
4. Dins de la nota de pràctiques, els exercicis d’LISP compten un 10%. Recordeu que<br />
la part pràctica val el 70% de l’assignatura. Vegeu els criteris de puntuació de<br />
l’assignatura.<br />
Vegeu [Golobardes2002b]<br />
RESUM<br />
En aquesta sessió s’ha presentat l’enunciat dels diferents exercicis d’LISP que s’han<br />
de lliurar. Mentre es realitzen aquests exercicis convé anar seguint les sessions de<br />
teoria.<br />
42
SESSIÓ 7: Cerca cega – CERCA (1/9)<br />
Nom: Cerca cega – CERCA (1/9)<br />
Tipus: teòrica<br />
Format: no presencial<br />
Durada: 2 hores<br />
Dedicació: 3 hores<br />
Treball a lliurar: no<br />
Material:<br />
o Bibliografia bàsica:<br />
[Ginsberg1993]<br />
[Golobardes2002c]<br />
PRECEDENTS<br />
En aquesta sessió es recordaran tant conceptes, ja vistos en el capítol d’Introducció,<br />
com dos algorismes que es consideren prou coneguts pels alumnes, ja que s’han vist<br />
en assignatures anteriors com PROGRAMACIÓ II.<br />
OBJECTIUS<br />
En aquesta sessió es recordaran els conceptes de problema, espai de problema i<br />
cerca, els quals ens serviran per assentar les bases de qualsevol algorisme de cerca.<br />
D’altra banda, es presentaran els principals algorismes de cerca cega, és a dir,<br />
algorismes de cerca que no usen la informació/coneixement del domini en el moment<br />
de buscar la solució. Són algorismes que, per exemple, poden seguir algun ordre<br />
estructural de l’espai del problema. En aquest cas direm que són algorismes de cerca<br />
sistemàtica.<br />
Analitzarem els algorismes de cerca cega sistemàtica següents: cerca primer en<br />
profunditat (depth-first search) i cerca primer en amplada (breadth-first search). En<br />
la sessió següent presentarem altres algorismes de cerca cega que milloren les<br />
prestacions d’aquests algorismes bàsics.<br />
CONTINGUTS<br />
En aquesta sessió es farà una Introducció a tot el capítol de Resolució de problemes –<br />
Cerca, veient els conceptes següents: problema, espai de cerca i cerca; tot recordant<br />
diferents tipus de cerca.<br />
També començarem el tema de Cerca cega. En aquesta sessió es recorden els<br />
algorismes –segurament ja coneguts per vosaltres– de cerca cega següents: cerca<br />
primer en profunditat i cerca primer en amplada. Tot seguit es compararà el<br />
comportament d’ambdós algorismes, tant pel que fa a cost com a memòria o<br />
comportament general.<br />
43
3. Resolució de problemes cerca<br />
3.1. Introducció<br />
3.1.1. Problemes, espai de cerca i cerca<br />
En el primer capítol de l’assignatura vam repassar una sèrie de problemes-exemple,<br />
dins de la intel·ligència artificial, ja vam poder apreciar que l’èxit de la resolució d’un<br />
problema pot estar ben lligat a la bona combinació de tres conceptes: el propi<br />
problema, l’espai de cerca que ofereix aquest problema –depenent de com es tracti–,<br />
i l’algorisme en qüestió de cerca.<br />
Al llarg d’aquest capítol veurem diferents algorismes de cerca i, donades unes<br />
condicions d’igualtat, intentarem comparar-los per tal d’analitzar els avantatges i<br />
inconvenients que ofereix cadascun d’ells, depenent de les característiques del<br />
problema.<br />
Problemes<br />
<strong>La</strong> manera en què es tracti un problema pot ser clau tant per reduir l’espai de cerca<br />
com per determinar un simple algorisme de cerca. Recordeu els exemples que vam<br />
veure a Essentials of <strong>Artificial</strong> Intelligence. Un cas ben extrem, i que exemplifica molt<br />
bé aquesta idea, és el problema dels 4 cavalls (vegeu el document de CERCA –<br />
<strong>Intel·ligència</strong> <strong>Artificial</strong>).<br />
[Ginsberg1993]p18-p20<br />
[Golobardes2002c]<br />
Espai de cerca<br />
L’espai de cerca, sobre el qual buscarem la solució a un problema donat, es pot<br />
representar de maneres molt diverses. Habitualment es representa en forma d’arbre o<br />
bé en forma de graf. Nosaltres, al llarg d’aquest capítol, presentarem els diferents<br />
algorismes suposant que l’espai de cerca és arborescent. Això ens simplificarà les<br />
comparacions entre els diferents algorismes, tot i que fàcilment els diferents<br />
algorismes presentats es poden reescriure suposant que l’espai de cerca és un graf.<br />
[Ginsberg1993]p20-p23<br />
Cerca<br />
Proposem un esquema bàsic de cerca, a partir del qual anirem fent diferents<br />
modificacions, les quals ens portaran als diferents esquemes de cerca. De moment,<br />
suposarem que el factor de branqueig b és finit. També considerarem que anem<br />
generant l’espai de cerca a mesura que l’anem visitant.<br />
44
Algorisme:<br />
1. Sigui L una llista amb els nodes inicials (configuracions inicials) del problema. En<br />
qualsevol moment, L és una llista amb els nodes que encara no han estat examinats<br />
pels algorismes.<br />
2. Si L és buida, llavors acabeu. Si no, escolliu un node n d’L.<br />
3. Si n és un node solució/objectiu/final (goal node), llavors pareu i retorneu-lo<br />
juntament amb el camí associat des del node inicial fins a ell.<br />
4. Altrament, esborreu n de la llista L i afegiu a L tots els nodes fills d’n, etiquetant<br />
cada un amb el seu camí des del node inicial.<br />
5. Retorneu a 2.<br />
Els punts següents són els que faran diferenciar un algorisme de cerca d’un altre i<br />
obtenim aleshores comportaments ben diferenciats:<br />
- Com s’escull n d’L?<br />
- Com es mira si n és un node objectiu?<br />
- Com es generen els nodes fills d’n (expansió d’n)?<br />
- [Com es verifica que un node no hagi estat generat anteriorment?]<br />
Vegeu les transparències [Golobardes2002c]<br />
Vegeu [Ginsberg1993]p20-p23<br />
3.1.2. Tipus de cerca<br />
Fóra bo que féssim un breu repàs dels diferents tipus de cerca que hem anat veient<br />
fins ara: cerca cega versus cerca heurística; cerca sistemàtica versus cerca no<br />
sistemàtica; cerca cap endavant, cerca cap endarrere, cerca bidireccional i cerca amb<br />
adversari – jocs.<br />
Cerca cega – Cerca heurística<br />
Els algorismes de cerca cega (o cerca no informada) no usen la<br />
informació/coneixement del domini en el moment de buscar la solució. En general, això<br />
portarà a explorar un espai intractable i, per tant, aquest tipus d’esquemes no seran<br />
viables. L’alternativa –cerca heurística– consistirà en usar el coneixement del domini<br />
per tal de reduir l’espai de cerca que s’explorarà, amb el perill d’haver descartat la<br />
millor solució.<br />
[Ginsberg1993]p23-p28<br />
Cerca sistemàtica – Cerca no sistemàtica<br />
<strong>La</strong> cerca sistemàtica són algorismes que segueixen algun ordre estructural de l’espai<br />
de cerca del problema en el moment de buscar la solució (independentment de si<br />
s’usa coneixement o no del domini). Per exemple: cerca primer en amplada i cerca<br />
primer en profunditat. Si ens trobem davant d’un espai de cerca molt gran, pot ser<br />
45
que aquest ordre ens porti a explorar durant molt de temps en una zona que no conté<br />
solucions al problema. En aquests casos podria ser interessant fer un salt a una altra<br />
zona de l’espai de cerca (algorismes de cerca no sistemàtica). Alerta amb els perills<br />
que això pot comportar! Per exemple: podem garantir trobar la millor solució si aquesta<br />
existeix i l’espai –malgrat ser molt gran– és finit?<br />
[Ginsberg1993]p62<br />
Cerca bidireccional<br />
Tot algorisme podrà tenir, a grans trets, tres tipus de comportament: cerca cap<br />
endavant, cerca cap endarrere o bé cerca bidireccional. Tanmateix, no sempre<br />
serviran els diferents esquemes. Convé que estudieu els avantatges i inconvenients de<br />
cadascun d’ells, i la seva aplicabilitat.<br />
[Ginsberg1993]p29-p31<br />
Cerca amb adversari – Jocs<br />
Problemes com els escacs necessiten ser resolts per altres esquemes de cerca. En<br />
aquests algorismes –anomenats cerca amb adversari o jocs– cada jugada<br />
(moviment o expansió de nodes) dependrà del que ha fet i del que potser farà<br />
l’adversari. En aquest capítol veurem, concretament, l’algorisme Minimax i la poda<br />
alfa-beta.<br />
3.2. Cerca cega<br />
3.2.1. Cerca primer en amplada<br />
En primer lloc, es faran unes hipòtesis inicials per tal de poder comparar els diferents<br />
algorismes de cerca que s’aniran presentat al llarg del tema de cerca cega. Tot seguit,<br />
ja s’introduirà l’algorisme de cerca primer en amplada, o bé de l’anglès, breadth-first<br />
search (BFS).<br />
Hipòtesis inicials<br />
En el moment de presentar i analitzar els diferents algorismes de cerca cega es tindran<br />
en compte les hipòtesis següents:<br />
1. L’espai de cerca del problema és un arbre de cerca.<br />
2. El factor de branqueig serà b.<br />
3. L’arbre de cerca té una profunditat d.<br />
4. L’espai de cerca té un node solució a la profunditat d.<br />
Evidentment, un problema qualsevol no té per què ser un arbre de cerca, sinó que en<br />
general serà un graf, ni té per què tenir un factor de branqueig constant, ni té per què<br />
46
tenir els nodes solució a la mateixa profunditat que la profunditat de l’arbre de cerca i<br />
ni tan sols –en general– es pot garantir que el problema tingui solució. Per tant, els<br />
diferents algorismes presentats s’hauran d’adaptar a aquestes circumstàncies.<br />
[Ginsberg1993]p49<br />
Algorisme cerca primer en amplada<br />
Donat un arbre de cerca, l’algorisme cerca primer en amplada (Breadth-First<br />
Search o BFS), explora l’espai de cerca expandint els nodes de dalt a baix, és a dir,<br />
explora l’arbre arborescent per nivells.<br />
Algorisme:<br />
1. Sigui L una llista amb els nodes inicials del problema.<br />
2. Si L és buida, llavors acabeu. Si no, sigui n el primer node d’L.<br />
3. Si n és el node objectiu, llavors pareu i retorneu-lo conjuntament amb el camí des<br />
del node inicial fins a ell.<br />
4. Altrament, esborreu n d’L.<br />
5. Expandiu n afegint tots els seus fills al final d’L. Cada fill estarà etiquetat amb el<br />
camí recorregut des del node inicial fins a ell.<br />
6. Retorneu a 2.<br />
[Ginsberg1993]p23-p26,p49-p52<br />
[Golobardes2002c]<br />
3.2.2. Cerca primer en profunditat<br />
Anàlogament a l’algorisme cerca primer en amplada és habitual contrastar-lo amb<br />
l’algorisme de cerca primer en profunditat, o també conegut com a backtracking.<br />
Estudiem-lo tot seguit.<br />
Algorisme cerca primer en profunditat<br />
Donat un arbre de cerca, l’algorisme cerca primer en profunditat (depth-first search<br />
o DFS), explora l’espai de cerca expandint els nodes d’esquerra a dreta, de tal manera<br />
que es tria una branca i es va fins al final, fins a la profunditat màxima.<br />
Algorisme:<br />
1. Sigui L una llista amb els nodes inicials del problema.<br />
2. Si L és buida, llavors acabaeu. Si no, sigui n el primer node d’L.<br />
3. Si n és el node objectiu, llavors pareu i retorneu-lo conjuntament amb el camí des<br />
del node inicial fins a ell.<br />
4. Altrament, esborreu n d’L.<br />
5. Expandiu n afegint tots els seus fills al principi d’L. Cada fill estarà etiquetat amb el<br />
camí recorregut des del node inicial fins a ell.<br />
6. Retorneu a 2.<br />
47
[Ginsberg1993]p23-p26,p52-p54<br />
[Golobardes2002c]<br />
3.2.3. Depth-first versus breadth-first search<br />
Tant l’algorisme primer en amplada com l’algorisme primer en profunditat tenen una<br />
sèrie d’avantatges i inconvenients que en un moment donat, depenent de la naturalesa<br />
del problema, pot convenir a un algorisme o bé l’altre. Per aquest motiu convé<br />
analitzar-los i comparar-los des de tres perspectives: cost, memòria i comportament.<br />
Vegeu [Ginsberg1993]p49-p56 i [Golobardes2002c].<br />
<strong>La</strong> taula següent presenta un resum de les característiques d’ambdós algorismes<br />
estudiats:<br />
RESUM<br />
En aquesta sessió s’ha fet una introducció a tot el capítol que tracta la cerca i també<br />
s’han treballat –concretament– dos algorismes de cerca cega ben coneguts: cerca<br />
primer en amplada i cerca primer en profunditat. Aquests algorismes presenten dos<br />
tipus de cerca sistemàtica que serviran per analitzar i proposar els algorismes que es<br />
veuran al llarg d’aquest capítol i, fins i tot, al llarg del curs.<br />
48
SESSIÓ 8: Cerca cega – CERCA (2/9)<br />
Nom: Cerca cega – CERCA (2/9)<br />
Tipus: teòrica / pràctica<br />
Format: no presencial<br />
Durada: 2 hores<br />
Dedicació: 3 hores<br />
Treball a lliurar: opcional<br />
Material:<br />
o Bibliografia bàsica:<br />
[Ginsberg1993]<br />
[Golobardes2002c]<br />
o Bibliografia complementària:<br />
[Steele1990]<br />
[Golobardes2002a])<br />
o Recursos de programari i de maquinari: Common LISP - UNIX<br />
OBJECTIUS<br />
Davant de les limitacions dels algorismes de cerca primer en amplada i de cerca<br />
primer en profunditat que vam veure en la sessió anterior, en aquesta proposarem<br />
nous esquemes de cerca cega que intenten millorar els problemes anteriors.<br />
CONTINGUTS<br />
En aquesta sessió veurem, en primer lloc, dos algorismes de cerca cega que intenten<br />
millorar les prestacions dels algorismes de cerca primer en profunditat i de cerca<br />
primer en amplada: Iterative Deepening search i iterative broadening search.<br />
D’altra banda, veurem com hauria de ser un algorisme de cerca davant d’un espai de<br />
cerca en forma de graf. Per finalitzar, implementarem en Common LISP els diferents<br />
algorismes de cerca cega vistos fins ara.<br />
3.2.4. Iterative Deepening i broadening search<br />
Els algorismes Iterative Deepening search i iterative broadening search van ser<br />
proposats per en Rick Korf (1985) i per n’Einsberg & en Harvey (1990) respectivament.<br />
Aquests algorismes tenen com a primer objectiu mantenir un comportament que no<br />
caigui en infinitats (tant pel que fa a profunditat com pel que fa a amplada) i al mateix<br />
temps mantenir els costos lineals quant a memòria de l’algorisme de cerca primer en<br />
profunditat.<br />
Algorisme Iterative Deepening search<br />
L’algorisme Iterative Deepening search (IDS) utilitza un esquema de cerca primer en<br />
profunditat (DFS) però limitant la profunditat a la qual arribarà. Si una vegada s’ha<br />
explorat tot l'arbre fins aquella profunditat no s'ha trobat cap solució, s'augmenta la<br />
profunditat màxima fins a la qual es vol explorar i el procés torna a començar des del<br />
49
principi. Així es garanteix tenir un cost en memòria lineal i un comportament com<br />
l’algorisme del primer en amplada (és a dir, no caure en branques infinites).<br />
Algorisme:<br />
1. Sigui c el valor de l’artificial depth cutoff (profunditat a la qual s’aturarà la cerca<br />
DFS). Inicialment el valor és 1.<br />
2. Sigui L una llista amb els nodes inicials del problema.<br />
3. Si L és buida i c=d, llavors acabeu.<br />
4. Si L és buida però c
Comparativa<br />
<strong>La</strong> taula següent mostra una comparativa –a tall de resum– entre l’algorisme<br />
d’Iterative Deepening search i l’algorisme d’iterative broadening search. És un resum a<br />
nivell d’objectius, requeriments de memòria, requeriments quant a temps i dels<br />
diferents problemes que poden presentar.<br />
Vegeu [Ginsberg1993]p56–p62<br />
Vegeu [Golobardes2002c]<br />
3.2.5. Cerca sobre grafs<br />
Habitualment, dins l’espai de cerca d’un problema hi ha diferents situacions (o nodes)<br />
que es repeteixen. Davant d’aquestes situacions potser convindria analitzar un<br />
esquema de cerca que es basi en que l’espai de cerca és un graf (vegeu<br />
[Ginsberg1993]p63-p65). Nosaltres proposem un possible esquema en el concepte<br />
següent (vegeu [Golobardes2002c] ).<br />
Algorisme cerca sobre grafs<br />
Presentem un esquema més genèric de cerca quan l'espai de cerca no està<br />
estructurat en format arborescent, sinó que és un graf. En aquest cas, l'algorisme de<br />
cerca ha de ser adaptat de cara a no repetir nodes.<br />
Què utilitzarem?<br />
Oberts: Conjunt de nodes als quals hem arribat però encara no hem tractat.<br />
Tancats: Conjunt de nodes ja tractats. Són nodes que hauran passat d'oberts a<br />
tancats.<br />
I: Conjunt de nodes inicials des d'on es comença la cerca.<br />
Algorisme:<br />
acció CERCA_SOBRE_GRAF<br />
1. oberts:=I; tancats:=cjt_buit; fi_procés:=fals;<br />
51
2. mentre (oberts != cjt_buit) i (no fi_procés) feu<br />
2.1 n1:=primer(oberts);<br />
2.2 tancats:=inseriu(tancats,n1);<br />
2.3 si (solució(n1)) llavors<br />
2.3.1 fi_procés:=cert;<br />
2.3.2 tracteu_solució; /* Recostruiu cami */<br />
2.4 si no<br />
2.4.1 per_a_tot n2 de succ(n1) feu<br />
2.4.1.1 si no pertany(n2,unió(oberts,tancats))<br />
2.4.1.2 llavors oberts:=inseriu(oberts,n2);<br />
/* Marqueu antecessor */<br />
2.4.1.4 si no *1<br />
2.4.1.5 fi_si<br />
2.4.2 fi_per_a_tot<br />
2.4.3 oberts:=reordeneu(oberts);<br />
2.5 fi_si<br />
3. fi_mentre<br />
4. si no fi_procés<br />
5. llavors /* No s'ha trobat una solució */<br />
6. fi_si<br />
fi_ acció<br />
*1<br />
opció<br />
1. cas pertany(n2,oberts) fer<br />
/* Reconstruiu el camí entre n2 i I pel camí existent i pel nou camí. Guardeu el més<br />
curt. */<br />
2. cas pertany(n2,tancats) fer<br />
/* Reconstruiu el camí entre n2 i I pel camí existent i pel nou camí. Guardeu el més<br />
curt. */<br />
fi_opció<br />
Vegeu [Golobardes2002c]<br />
3.2.6. Exercicis de cerca cega amb LISP (optatius)<br />
Tot seguit es proposa que implementeu els diferents algorismes de cerca cega que<br />
hem estat treballant, usant el llenguatge LISP.<br />
Enunciat<br />
Implementeu en LISP els algorismes de cerca per trobar un node determinat dins d'un<br />
arbre. Donat un objectiu (número enter) cal trobar un node tal que la seva propietat<br />
COST sigui el més similar possible a l'objectiu. Retorneu una llista on el primer<br />
element sigui el node solució i el segon una subllista amb el camí.<br />
Implementeu els algorismes següents:<br />
52
a) Cerca primer en profunditat<br />
b) Cerca primer en amplada<br />
c) Iterative Deepening search<br />
d) iterative broadening search<br />
Per exemple, l'arbre de cerca es pot representar de la manera següent:<br />
- Cada node té tres propietats: FILLS, COST i CAMÍ ASSOCIAT.<br />
- <strong>La</strong> propietat fills del node n és una llista amb els noms dels fills d’n.<br />
- <strong>La</strong> propietat COST del node n, és un enter.<br />
- <strong>La</strong> propietat CAMÍ ASSOCIAT indica el camÍ que cal seguir per arribar al node.<br />
Exemple:<br />
(setf (get 'A 'fills) '(B C)<br />
(get 'A 'cost) 1<br />
(get 'B 'fills) '(D E)<br />
(get 'B 'cost) 2<br />
(get 'C 'fills) '(F G)<br />
(get 'C 'cost) 3<br />
(get 'D 'fills) '(H)<br />
(get 'D 'cost) 4<br />
(get 'E 'fills) '()<br />
(get 'E 'cost) 5<br />
(get 'F 'fills) '()<br />
(get 'F 'cost) 6<br />
(get 'G 'fills) '()<br />
(get 'G 'cost) 7<br />
(get 'H 'fills) '()<br />
(get 'H 'cost) 8<br />
)<br />
Per ordenar les llistes podeu utilitzar la funció SORT ja que permet ordenar la llista<br />
segons l'ordre que especifica la funció del segon paràmetre. Recordeu que la funció<br />
SORT modifica la llista que li doneu com a paràmetre (vegeu [Steele1990] ).<br />
Exemple:<br />
>(sort '(3 5 3 6 7) '(lambda (a b) (< (abs (- a 6)) (abs (- b 6)))))<br />
(6 5 7 3 3)<br />
53
; Ordena la llista segons la proximitat dels elements al número 6.<br />
Un exemple d'execució de l'algorisme cerca primer en profunditat seria:<br />
>(Cerca-profunditat 6 '(A))<br />
A<br />
B<br />
D<br />
H<br />
E<br />
C<br />
F<br />
(F (A C F))<br />
Per tant, s'han de retornar els nodes que visita l'algorisme, més una llista amb el<br />
NODE SOLUCIÓ i el CAMÍ RESULTAT.<br />
RESUM<br />
En aquesta sessió hem acabat de veure els principals algorismes de cerca cega.<br />
Convé que tingueu present els diferents comportaments que ofereix cadascun d’ells<br />
davant d’un espai de cerca donat.<br />
54
SESSIÓ 9: Heurístiques – CERCA (3/9)<br />
Nom: Heurístiques – Cerca com a maximització de funcions – CERCA (3/9)<br />
Tipus: teòrica<br />
Format: no presencial<br />
Durada: 2 hores<br />
Dedicació: 2 hores<br />
Treball a lliurar: optatiu<br />
Material:<br />
o Bibliografia bàsica:<br />
[Ginsberg1993]<br />
[Golobardes2002c]<br />
o Bibliografia complementària:<br />
[Russell1995]<br />
[Steele1990]<br />
[Golobardes2002a]<br />
o Recursos de programari i de maquinari: Common LISP - UNIX<br />
OBJECTIUS<br />
Atès que els algorismes de cega són intractables per a una gran quantitat de<br />
problemes i atès que el seu cost és exponencial, convé reduir l’espai de cerca<br />
mitjançant heurístiques.<br />
Així doncs, presentarem una primera família de cerca heurística amb aquest propòsit.<br />
CONTINGUTS<br />
En aquesta sessió introduirem les heurístiques i veurem la família de cerca<br />
heurística com a maximització de funcions. Concretament treballarem els<br />
algorismes de hill climbing i de simulated annealing. Al final de la sessió, com a<br />
problema, es proposa d’implementar –usant LISP– l’algorisme hill climbing.<br />
3.3. Cerca heurística<br />
3.3.1. Heurístiques<br />
En l’anàlisi dels algorismes de cerca cega hem pogut observar que qualsevol variant<br />
no baixa d’un cost (quant a temps) exponencial de l’ordre O(b^d). Així doncs, l’espai<br />
de cerca esdevé intractable en la majoria de problemes. Aquest ja és un motiu<br />
suficient per plantejar-nos l’ús del coneixement del domini del problema (heurístiques)<br />
per tal de reduir l’espai de cerca a explorar i, per tant, que esdevingui tractable.<br />
Tanmateix convindrà tenir molts aspectes en compte:<br />
1. Amb la reducció de l’espai de cerca, pot ser que haguem perdut la millor solució?<br />
2. Com dissenyem les heurístiques? Ja que poden arribar a ser estretament lligades al<br />
domini del problema.<br />
3. Davant de dues heurístiques, quina és més adient? Convindrà analitzar criteris<br />
d’admissibilitat, i establir un compromís entre el metanivell i el nivell base.<br />
55
Heurístiques<br />
Hi ha moltes heurístiques de moltes menes, algunes de propòsit general i d’altres ad<br />
hoc a un problema. Recordem el problema del trencaclosques amb una peça mòbil,<br />
on vam analitzar dues heurístiques representatives: la que compta el nombre de peces<br />
mal col·locades i la distància de Manhattan. D’altra banda, analitzeu com utilitzar<br />
l’heurística de la distància de Manhattan dins del problema del laberint.<br />
Vegeu [Ginsberg1993]p68-p70<br />
Heurística del veí més pròxim<br />
L’heurística del veí més pròxim (nearest neighbour heuristic) és una heurística de<br />
propòsit general, vàlida per a diversos problemes combinatoris.<br />
Consisteix a seleccionar a cada pas l’alternativa local superior.<br />
Suposem que apliquem aquesta heurística al problema del viatjant de comerç<br />
(TSP):<br />
1. Seleccioneu arbitràriament una ciutat per començar.<br />
2. Per seleccionar la següent ciutat a visitar, ens fixem amb les ciutats que encara no<br />
s’han visitat, i seleccionem aquella que sigui més propera. Aneu a aquesta ciutat.<br />
3. Repetiu fins que totes les ciutats hagin estat visitades.<br />
Aquest algorisme té un cost d’O(n^2). Proveu-ho amb diversos exemples de ciutats i<br />
costos. Podeu garantir que aquesta heurística sempre troba la millor solució? No! però<br />
per a certs problemes NP-Hard pot oferir una bona solució en un temps raonable.<br />
Com inventar heurístiques<br />
Atès que el factor clau serà proposar en tot moment l’heurística més adequada, el<br />
problema es tradueix en: com dissenyar i trobar aquesta heurística? No existeix una<br />
resposta sistemàtica però sí que hi ha diferents tècniques que ens poden ajudar a<br />
dissenyar-les.<br />
Vegeu diferents propostes a [Russell1995]p103-p104<br />
3.3.2. Cerca com a maximització de funcions<br />
Hi ha una sèrie d’algorismes de cerca heurística que els podem agrupar com a<br />
algorismes de cerca com a maximització/minimització de funcions. Normalment<br />
tindrem un conjunt de característiques desitjades que podem expressar en forma de<br />
funció f(n) i l’objectiu serà maximitzar aquesta funció, és a dir, trobar el valor dels<br />
paràmetres desitjats.<br />
En aquest apartat veurem dos algorismes de cerca: hill climbing i simulated<br />
annealing.<br />
56
Hill climbing (o steepest ascent)<br />
L’algorisme hill climbing (o steepest ascent) consisteix a trobar el màxim (o el<br />
mínim) global d'una funció de diverses variables seguint l'estratègia de realitzar<br />
moviments en la direcció en què l'estimació del canvi sigui més gran.<br />
Algorisme:<br />
1. Sigui L una llista amb els nodes inicials del problema, ordenats per les seves<br />
distàncies aproximades cap a l'objectiu (heurística).<br />
2. Si L és buida, llavors acabeu. Si no, sigui n el primer node d’L.<br />
3. Si n és el node objectiu, llavors pareu i retorneu-lo conjuntament amb el camí des<br />
del node inicial fins a ell.<br />
4. Altrament, esborrar n d’L.<br />
5. Expandiu n, afegint tots els seus fills al principi d’L ordenats per les distàncies<br />
estimades a l'objectiu. Cada fill estarà etiquetat amb el camí recorregut des del node<br />
inicial fins a ell.<br />
6. Retorneu al pas 2.<br />
Pel que fa al seu comportament, podeu observar que és una típica implementació d’un<br />
algorisme Greedy; l'algorisme té un aire DFS; i podem observar que l’algorisme és<br />
equivalent a només guardar en tot moment el millor fill.<br />
Si proveu de resoldre el problema del laberint usant l’algorisme hill climbing i usant<br />
l’heurística de la distància de Manhattan, veureu que finalitzareu l’algorisme en un<br />
mínim local que ni tan sols és solució al problema (és a dir, no troba un camí que vagi<br />
de l’estat inicial a l’estat final).<br />
Cal analitzar els seus principals problemes: els mínims locals, els altiplans i les<br />
crestes.<br />
Vegeu [Ginsberg1993]p70-p74<br />
[Golobardes2002c]<br />
Exercici: Hill climbing amb LISP (optatiu)<br />
Reprenem el mateix problema de la sessió anterior:<br />
Implementeu en LISP els algorismes de cerca per trobar un node determinat dins d'un<br />
arbre. Donat un objectiu (número enter) cal trobar un node tal que la seva propietat<br />
COST sigui el més similar possible a l'objectiu. Retorneu una llista on el primer<br />
element sigui el node solució i el segon una subllista amb el camí.<br />
Implementeu l’algorisme següent:<br />
e) Hill climbing<br />
Per exemple, l'arbre de cerca es pot representar de la manera següent:<br />
- Cada node té tres propietats: FILLS, COST i CAMÍ ASSOCIAT.<br />
- <strong>La</strong> propietat fills del node n, és una llista amb els noms dels fills d’n.<br />
- <strong>La</strong> propietat COST del node n, és un enter.<br />
- <strong>La</strong> propietat CAMÍ ASSOCIAT indica el camí que cal seguir per arribar al node.<br />
57
Exemple:<br />
(setf (get 'A 'fills) '(B C)<br />
(get 'A 'cost) 1<br />
(get 'B 'fills) '(D E)<br />
(get 'B 'cost) 2<br />
(get 'C 'fills) '(F G)<br />
(get 'C 'cost) 3<br />
(get 'D 'fills) '(H)<br />
(get 'D 'cost) 4<br />
(get 'E 'fills) '()<br />
(get 'E 'cost) 5<br />
(get 'F 'fills) '()<br />
(get 'F 'cost) 6<br />
(get 'G 'fills) '()<br />
(get 'G 'cost) 7<br />
(get 'H 'fills) '()<br />
(get 'H 'cost) 8<br />
)<br />
Per qualsevol dubte d’LISP recordeu que podeu consultar a [Steele1990] i a<br />
[Golobardes2002a].<br />
Simulated annealing<br />
L’algorisme simulated annealing s’inspira en el procés físic de la cristalització. Té un<br />
aire molt més greedy que el hill climbing, tot i que agafa idees del hill climbing, tot<br />
relaxant certes condicions, incorporant una component estocàstica.<br />
Vegeu l’algorisme a [Golobardes2002c]<br />
Vegeu [Ginsberg1993]p74-p75<br />
58
RESUM<br />
En aquesta sessió hem introduït el concepte de les heurístiques i s’ha presentat una<br />
primera família d’algorismes de cerca heurística: cerca com a maximització de<br />
funcions.<br />
59
SESSIÓ 10: Cerca primer el millor – CERCA (4-5/9)<br />
Nom: Cerca primer el millor – CERCA (4-5/9)<br />
Tipus: teòrica<br />
Format: no presencial<br />
Durada: 4 hores<br />
Dedicació: 5 hores<br />
Treball a lliurar: opcional<br />
Material:<br />
o Bibliografia bàsica:<br />
[Ginsberg1993]<br />
[Golobardes2002c]<br />
o Bibliografia complementària:<br />
[Steele1990]<br />
[Golobardes2002a]<br />
o Recursos de programari i de maquinari: Common LISP - UNIX<br />
OBJECTIUS<br />
En aquesta sessió es pretén treballar una altra família d’algorismes de cerca<br />
heurística: Cerca primer el millor.<br />
CONTINGUTS<br />
En aquesta sessió tractarem diferents algorismes de la família cerca primer el millor i<br />
certs conceptes associats a ella: best-first search, A*, el concepte d’admissibilitat,<br />
branch and bound, A* sobre grafs i IDA*.<br />
Al finalitzar la sessió es proposa implementar en LISP l’algorisme best-first search.<br />
3.3.3. Cerca primer el millor<br />
Aquest text pertany a la presentació d'un apartat de teoria.<br />
Best-first search<br />
El best-first search generalitza el concepte d'ordenació de nodes dins de la llista L.<br />
A diferència del hill climbing, el qual ordenava els fills i els inseria al principi de la llista<br />
L –i a efectes pràctics només tractava el millor fill-. Així s'intentarà trobar una solució<br />
tan ràpid com sigui possible, tot prioritzant l'expansió de nodes propers a la solució. No<br />
s'intenta trobar una solució que estigui a la mínima profunditat dins de l'arbre de cerca,<br />
sinó una tan bona com sigui possible.<br />
Algorisme:<br />
1. Sigui L una llista amb els nodes inicials del problema, ordenats per les seves<br />
distàncies aproximades cap a l'objectiu (heurística).<br />
2. Si L és buida, llavors acabeu. Si no, sigui n el primer node d’L.<br />
3. Si n és el node objectiu, llavors pareu i retorneu-lo conjuntament amb el camí des<br />
del node inicial fins a ell.<br />
61
4. Altrament, esborreu n d’L.<br />
5. Expandiu n, afegint tots els seus fills a L. Cada fill estarà etiquetat amb el camí<br />
recorregut des del node inicial fins a ell.<br />
6. Reorganitzeu L tot ordenant els nodes segons la seva distància a l'objectiu. Al<br />
principi de la llista hi ha d'haver el node que es considera més proper a l'objectiu.<br />
7. Retorneu al pas 2.<br />
Si ara torneu a intentar resoldre el problema del laberint usant l’algorisme best-first<br />
search i usant com a heurística la distància de Manhattan, veureu com sí que trobeu<br />
una solució, i a més a més resulta ser la millor. Tot i així, l’algorisme no sempre<br />
garanteix trobar la millor solució.<br />
[Ginsberg1993]p71<br />
Exercici: best-first search amb LISP (optatiu)<br />
Reprenem el mateix problema de les sessions anteriors:<br />
Implementeu en LISP els algorismes de cerca per trobar un node determinat dins d'un<br />
arbre. Donat un objectiu (número enter) cal trobar un node tal que la seva propietat<br />
COST sigui el més similar possible a l'objectiu. Retorneu una llista on el primer<br />
element sigui el node solució i el segon una subllista amb el camí.<br />
Implementeu l’algorisme següent:<br />
f) Best-first search.<br />
Per exemple, l'arbre de cerca es pot representar de la manera següent:<br />
- Cada node té tres propietats: FILLS, COST i CAMÍ ASSOCIAT.<br />
- <strong>La</strong> propietat fills del node n és una llista amb els noms dels fills d’n.<br />
- <strong>La</strong> propietat COST del node n és un enter.<br />
- <strong>La</strong> propietat CAMÍ ASSOCIAT indica el camí que cal seguir per arribar al node.<br />
Exemple:<br />
(setf (get 'A 'fills) '(B C)<br />
(get 'A 'cost) 1<br />
(get 'B 'fills) '(D E)<br />
(get 'B 'cost) 2<br />
(get 'C 'fills) '(F G)<br />
(get 'C 'cost) 3<br />
62
)<br />
(get 'D 'fills) '(H)<br />
(get 'D 'cost) 4<br />
(get 'E 'fills) '()<br />
(get 'E 'cost) 5<br />
(get 'F 'fills) '()<br />
(get 'F 'cost) 6<br />
(get 'G 'fills) '()<br />
(get 'G 'cost) 7<br />
(get 'H 'fills) '()<br />
(get 'H 'cost) 8<br />
Per qualsevol dubte d’LISP recordeu que podeu consultar a [Steele1990] i a<br />
[Golobardes2002a].<br />
A*<br />
L’algorisme A* parteix de l’algorisme best-first search, modificant-lo covenientment<br />
per tal de no expandir el node amb menys distància respecte l'objectiu, sinó aquell<br />
node que es creu que és més proper qualitativament a un objectiu. Això vol dir que<br />
hem de poder estimar la bondat del lloc al qual podria arribar a partir d'aquí. No es<br />
tractar doncs d'anar a buscar ràpidament un objectiu, sinó de trobar el millor objectiu.<br />
Consideracions:<br />
- Trobeu un objectiu amb el mínim cost (minimitzar funció).<br />
- Assumirem costos positius.<br />
- Funció de cost l’anomenarem: g(n).<br />
- En un esquema bàsic es podria correspondre a la distància des de l'arrel fins el node<br />
n.<br />
- Funció d'estimació del cost (funció heurística) l’anomenarem: h'(n). És la funció que<br />
estima el cost necessari per acabar de construir una configuració parcialment<br />
construïda.<br />
- Cost estimat d'una solució a la qual es pot arribar des d'un node n parcialment<br />
construït:<br />
f(n) = g(n) + h'(n)<br />
- Per tot n tindrem que f(n)>=0, g(n)>=0, h'(n)>=0.<br />
Algorisme:<br />
1. Sigui L una llista amb els nodes inicials del problema.<br />
2. Si L és buida, llavors acabeu.<br />
Si no, sigui n el node d’L tal que f(n) = g(n) + h'(n) és mínim.<br />
3. Si n és el node objectiu, llavors pareu i retorneu-lo conjuntament amb el camí des<br />
del node inicial fins a ell.<br />
4. Altrament, esborreu n d’L.<br />
5. Expandiu n afegint tots els seus fills a L. Cada fill estarà etiquetat amb el camí<br />
recorregut des del node inicial fins a ell.<br />
6. Retorneu al pas 2.<br />
63
Analitzeu bé els casos particulars i/o extrems de l’algorisme A* i vegeu quins són els<br />
seus inconvenients. Per exemple: quin comportament té l’algorisme A* quan h’(n)=0 i<br />
g(n) és la distància de l’arrel al node n?<br />
Vegeu [Ginsberg1993]p75-p81<br />
Admissibilitat<br />
Per poder garantir que un algorisme A* trobi la millor solució si aquesta existeix, convé<br />
que la funció heurística h’(n) sigui admissible (o optimista). Vegeu<br />
[Ginsberg1993]p78-p79.<br />
Tanmateix, no sempre és possible disposar d’una heurística admissible. En altres<br />
casos pot fins i tot interessar que l’heurística no sigui admissible, ja que pot ser que<br />
per a la majoria dels casos trobi la millor solució més ràpidament, malgrat que no pot<br />
garantir sempre trobar la millor solució.<br />
Vegeu el concepte d’admissibilitat a [Ginsberg1993]p78-p79<br />
Branch and bound<br />
Existeixen diferents extensions de l’algorisme A*. Però un cas força conegut és<br />
l’algorisme branch and bound, quan ens trobem sota les condicions següents:<br />
Suposem que definim la funció de cost g(n) de la manera següent:<br />
- Cost de la configuració des de l'arrel fins a la configuració parcial.<br />
- Pot ser el cost total (si el node ja es una solució) o el cost parcial (en cas d'una<br />
configuració parcialment construïda).<br />
D’altra banda, la funció f(n) és igual a una funció g(n) com la descrita anteriorment i<br />
h'(n) és igual a zero.<br />
Vegeu [Ginsberg1993]p81<br />
A* sobre grafs<br />
L’algorisme A* sobre grafs pren la mateixa filosofia de l’algorisme A* tenint en compte<br />
que l’espai de cerca és un graf.<br />
Versió 1 (Vegeu [Ginsberg1993]p81-p82):<br />
- Suposarem que g(n) és el cost del camí més curt fins al node n trobat fins al moment.<br />
- Mantenim només la llista de nodes oberts.<br />
- És suficient si volem trobar una única solució que s'acosti a la millor solució.<br />
- L'esquema resultant és molt similar.<br />
Versió 2 (Vegeu [Golobardes2002c]):<br />
- Agafarem l'esquema bàsic de l'algorisme de cerca sobre grafs (vist a la sessió<br />
corresponent).<br />
- Volem trobar més d'una solució o la millor assegurada.<br />
64
- Mantindrem llista d'oberts i de tancats.<br />
Vegeu per a la versió 1 [Ginsberg1993]p81-p82<br />
Vegeu per a la versió 2 [Golobardes2002c]<br />
IDA*<br />
Atès que l’algorisme A* pot arribar a tenir els mateixos requeriments de memòria que<br />
l’algorisme primer en amplada, es proposa l’algorisme IDA* per tal de modificar aquest<br />
requeriment. Com en la cerca cega, aquest problema es pot minimitzar utilitzant una<br />
política d'Iterative Deepening, d’aquí ve el seu nom: Iterative Deepening A* (IDA*).<br />
En comptes de tallar a partir dels nodes d'una certa profunditat, tallarem els nodes pels<br />
quals l'objectiu més proper està per sota d'una profunditat de tall.<br />
Algorisme:<br />
1. Sigui c el valor de l’artificial depth cutoff. Inicialment el valor és 1.<br />
2. Sigui c' el valor de l’artificial depth cutoff de la propera iteració. Inicialment el valor<br />
és infinit.<br />
3. Sigui L una llista amb els nodes inicials del problema.<br />
4. Si L és buida i c'=infinit, llavors acabeu.<br />
5. Si L és buida però c' és diferent d’infinit, llavors actualitzeu el valor de c amb el valor<br />
de c' i tornat al pas 2 (l’algorisme recomença amb una c diferent).<br />
6. Altrament, poseu a n el primer node de la llista L.<br />
7. Si n és el node objectiu, llavors pareu i retorneu-lo conjuntament amb el camí des<br />
del node inicial fins a ell.<br />
8. Si no, esborreu n d’L.<br />
9. Per cada fill n' d’n, si f(n')
SESSIÓ 11: Cerca basada en restriccions – CERCA (6/9)<br />
Nom: Cerca basada en restriccions – CERCA (6/9)<br />
Tipus: teòrica<br />
Format: no presencial<br />
Durada: 1,5 hores<br />
Dedicació: 2 hores<br />
Treball a lliurar: optatiu<br />
Material:<br />
o Bibliografia bàsica:<br />
[Russell1995]<br />
o Bibliografia complementària:<br />
[Golobardes2002c]<br />
[Golobardes2002a]<br />
o Recursos de programari i de maquinari: CommonLISP<br />
OBJECTIUS<br />
Hi ha una sèrie de problemes anomenats problemes de satisfacció de restriccions que<br />
tenen unes característiques molt concretes, les quals porten a dissenyar esquemes de<br />
resolució adequats per aquest tipus de problema: cerca basada en restriccions. En<br />
aquesta sessió treballarem aquesta família de problemes dins del context de cerca<br />
heurística, ja que habitualment es treballen des de l’Optimització.<br />
CONTINGUTS<br />
En aquesta sessió tractarem la cerca basada en restriccions a través de diferents<br />
conceptes:<br />
- Problema de satisfacció de restriccions (CSP).<br />
- Esquema de resolució.<br />
- Heurístiques per a problemes de satisfacció de restriccions.<br />
- Aplicacions en CSP.<br />
- Al finalitzar la sessió es proposa un exercici: implementar en CommonLISP el<br />
problema de les n-reines, ja que és un problema que permet assimilar i il·lustrar tot el<br />
que s’haurà vist al llarg de la sessió. Si ja el vau fer en el tema d’LISP, es recomana<br />
que el torneu a pensar usant les tècniques que es presenten en aquesta sessió.<br />
3.3.4. Cerca basada en restriccions<br />
<strong>La</strong> cerca basada en restriccions es basa en un tipus de problemes molt concret: els<br />
problemes de satisfacció de restriccions. Aquests problemes permeten que la<br />
cerca es basi en la pròpia naturalesa del problema, per tal de realitzar diferents nivells<br />
de poda en l’espai de cerca. Principalment aquesta poda es pot realitzar quan la<br />
solució parcial, trobada fins al moment, viola les restriccions del domini.<br />
67
Problema de satisfacció de restriccions<br />
Un problema de satisfacció de restriccions (o en anglès contraint satisfaction<br />
problem, o bé CSP) és un tipus de problema (no un algorisme) en el qual les<br />
solucions hauran de satisfer un conjunt de propietats estructurals.<br />
Problemes coneguts que s’identifiquen clarament amb un CSP són, per exemple, el<br />
problema de les n-reines, el problema de la coloració d’un graf (graf-coloring<br />
problem) o bé un problema de criptoaritmètica.<br />
Tots aquests problemes tenen una sèrie de característiques comunes:<br />
- Els estats són definits pels valors d'un conjunt finit de variables.<br />
- Cada variable pren valors d'un conjunt (discret o continu).<br />
- L'objectiu és determinat pel compliment d'un conjunt de restriccions que s'han de<br />
satisfer.<br />
Vegeu [Russell1995]p83-p84<br />
Esquema de resolució<br />
<strong>La</strong> idea general d’un esquema de resolució d’un problema de satisfacció de<br />
restriccions, consisteix a anar assignant possibles valors a les diferents variables que<br />
descriuen el problema. Aquesta assignació es farà en un ordre determinat. Es poden<br />
aplicar moltíssimes filosofies de cerca al respecte, vegem una proposta.<br />
Esquema de resolució:<br />
1. Estat inicial: cap variable té un valor assignat.<br />
2. S'assigna un dels possibles valors a una de les variables seguint un esquema<br />
determinat.<br />
3. Es comprova la satisfacció de les restriccions.<br />
4. Es comprova si la solució està completament construïda.<br />
5. Es torna al pas 2 si cal.<br />
Vegeu [Golobardes2002c]<br />
Heurístiques per a problemes de satisfacció de<br />
restriccions<br />
Hi ha heurístiques de propòsit general específiques per als problemes de<br />
satisfacció de restriccions. Aquestes heurístiques pretenen reduir l’espai de cerca<br />
intentant no restringir la cerca de les solucions.<br />
<strong>La</strong> primera que podem considerar seria en el moment d’escollir la següent variable a la<br />
qual li assignarem un valor. Fóra interessant escollir aquella a la qual li podem<br />
assignar menys possibles valors i, per tant, té un factor de branqueig menor. Aquesta<br />
heurística s’anomena most-contraining variable.<br />
D’altra banda, ens podem plantejar una heurística per tal d’escollir el valor que se li<br />
assignarà a la variable en qüestió. Fóra interessant escollir el valor que exclogui el<br />
menor nombre de valors a les variables connectades a la variable actual per<br />
restriccions. Aquesta heurística s’anomena least-constraining value.<br />
Vegeu l’aplicació d’aquestes heurístiques en el problema de la coloració d’un<br />
mapa [Russell1995]p104-p105<br />
68
Aplicacions en CSP<br />
Existeixen una sèrie d’altres heurístiques en el moment de realitzar aplicacions en<br />
problemes de satisfacció de restriccions, que poden ajudar a reduir de tal manera<br />
l’espai de cerca que per a certes magnituds en les variables dels problemes,<br />
problemes que ja són intractables es poden resoldre en un temps raonable. Són<br />
mètodes que usen heurístiques reparadores (heuristic repair).<br />
Vegeu un exemple d’aquestes heurístiques (min-conflicts heuristic) en Russell i en<br />
Norvig per al problema de les n-reines.<br />
Vegeu [Russell1995]p114<br />
Exercici: n-reines amb LISP<br />
Com posaríeu n-reines sobre un tauler d'escacs d’n x n de manera que no es matin les<br />
unes a les altres? (Recordeu que una reina es pot moure de forma horitzontal, vertical i<br />
diagonal tantes caselles com desitgi.)<br />
Implementeu en CommonLISP les funcions necessàries per tal d'obtenir totes les<br />
solucions al problema per a n-reines i un tauler d’n x n. Per especificar les solucions<br />
podeu fer-ho donant les coordenades de les posicions, dibuixant un petit tauler, ...<br />
RESUM<br />
En aquesta sessió hem vista la família de cerca basada en restriccions. Es recomana<br />
realitzar l’exercici que es proposa per tal d’assimilar millor els conceptes vistos al llarg<br />
de la sessió ja que la realització de l’exercici esdevé la millor autoavaluació.<br />
69
SESSIÓ 12: Cerca amb adversari – CERCA (7/9)<br />
Nom: Cerca amb adversari – CERCA (7/9)<br />
Tipus: teòrica<br />
Format: no presencial<br />
Durada: 2 hores<br />
Dedicació: 2 hores<br />
Treball a lliurar: no<br />
Material:<br />
o Bibliografia bàsica:<br />
[Ginsberg1993]<br />
[Nilsson1998]<br />
o Bibliografia complementària:<br />
[Golobardes2002c]<br />
PRECEDENTS<br />
Al llarg del tema de cerca hem analitzat tant esquemes de cerca cega com esquemes<br />
de cerca heurística. En aquest tema ens basarem en els patrons ja vistos per tal<br />
d’aplicar-los en d’altres dominis: els jocs. És el que en direm cerca amb adversari.<br />
OBJECTIUS<br />
L’objectiu d’aquesta sessió és introduir l’esquema de cerca bàsic, l’algorisme<br />
MiniMax, per a jocs o problemes de cerca amb adversari molt concrets: aquells que<br />
tenen dos jugadors i van alternant les jugades al llarg de la partida.<br />
CONTINGUTS<br />
En aquesta sessió introduirem el algorismes de cerca amb adversari – jocs. En<br />
primer lloc, descriurem les característiques dels dominis (jocs) sobre els quals s’aplica.<br />
Tot seguit presentarem l’esquema bàsic en aquests dominis per avaluar una jugada<br />
qualsevol: l’algorisme MiniMax. Finalment, veurem un exemple d’aplicació d’aquest<br />
algorisme sobre el joc de tres en ratlla.<br />
3.4. Cerca amb adversari-jocs<br />
3.4.1. Introducció<br />
Abans de descriure els algorismes de cerca amb adversari és convenient analitzar<br />
sobre quins problemes s’apliquen i quines característiques tenen.<br />
Cerca amb adversari – Jocs<br />
<strong>La</strong> intel·ligència artificial ha fet recerca amb els jocs de dues persones (dos jugadors),<br />
de tal manera que els jugadors van alternant les jugades, i el joc té una informació<br />
perfecta, on el coneixement disponible per a cada jugador és el mateix.<br />
71
També s’ha fet recerca en dominis més complexos, però la majoria de treballs s’han<br />
centrat en aquest tipus de problemes, els quals veurem al llarg d’aquest tema.<br />
Alguns dels jocs més estudiats han estat: tic-tac-toe (tres en ratlla), escacs, othel·lo,<br />
dames, backgammon, etc.<br />
Vegeu [Ginsberg1993]p86-p88<br />
Característiques<br />
En general, els algorismes que presentarem es centren en jocs que tenen<br />
majoritàriament les característiques següents:<br />
1. Un factor de branqueig b força elevat.<br />
2. <strong>La</strong> diferència entre els dos jugadors es pot mesurar de forma bastant precisa.<br />
Normalment es farà mitjançant una funció heurística h’.<br />
3. Seran jocs considerats amb una informació perfecta. Això vol dir que la informació<br />
disponible per a cada jugador és la mateixa. Com per exemple els escacs. Un exemple<br />
d’informació imperfecta seria el pòquer, ja que un jugador no coneix les cartes de<br />
l’altre.<br />
Vegeu [Ginsberg1993]p86-p88<br />
3.4.2. Algorisme MiniMax<br />
En aquest apartat en primer lloc descriurem l’espai de cerca sobre el qual treballarem<br />
–l’arbre de joc– i, en segon lloc, treballarem l’algorisme MiniMax. Concretament<br />
farem una evolució de l’algorisme en tres etapes amb la finalitat que ajudi en el seu<br />
aprenentatge.<br />
Arbre de joc<br />
Aquest text pertany a una nova plana per a un concepte de teoria/problema/pràctica.<br />
Un arbre de joc mostra un espai de cerca en el qual cada nivell representa les<br />
opcions d’un jugador diferent, per tant, es van alternant.<br />
Entendrem que un node de l'espai de cerca és una configuració del joc (un instant en<br />
el joc). Els successors d'un node són descrits per les jugades que el jugador en<br />
qüestió pot fer des d'aquella posició. Per decidir quina jugada es fa, es genera tot<br />
l'arbre de possibles jugades a partir del node actual. Es fa una certa exploració de<br />
l'arbre. Això és el que provoca variants de l'algorisme. Els jugadors reben el nom de<br />
maximitzador i minimitzador. D’aquí deriva el nom de l’algorisme MiniMax.<br />
Els algorismes que veurem es correspondran a diferents maneres d'avaluar el node<br />
actual.<br />
Vegeu l’exemple d’arbre de joc que es mostra a [Ginsberg1993]p88-p90<br />
72
Algorisme MiniMax – Versió 1<br />
<strong>La</strong> primera versió de l’algorisme MiniMax que presentem es basa en la filosofia<br />
breadth-first search. Així doncs, ja és de preveure que els seus principals defectes es<br />
centraran en un alt cos en memòria i en temps.<br />
Algorisme (Versió 1):<br />
Per avaluar un node n en l'arbre de joc.<br />
1. Expandiu l'arbre sencer per sota del node n.<br />
2. Avalueu els terminals com a guanyadors per al minimitzador o per al maximitzador.<br />
3. Seleccioneu un node no etiquetat tal que a tots els seus fills ja se'ls hi hagi assignat<br />
un valor. Si no quedessin nodes sense etiquetar, llavors retorneu el valor assignat al<br />
node n.<br />
4. Si el node seleccionat correspon a un moviment del minimitzador, assigneu-li el<br />
valor mínim de tots els seus fills.<br />
5. Si el node seleccionat correspon a un moviment del maximitzador, assigneu-li el<br />
valor máxim de tots els seus fills.<br />
6. Retorneu al pas 3.<br />
Si analitzem l’algorisme ja es pot preveure que convindria ampliar-lo en diferents<br />
sentits:<br />
1. Es podria considerar la possibilitat que el joc acabés en taules. Les configuracions<br />
associades a les taules les etiquetaríem amb un zero.<br />
2. Per optimitzar l'algorisme es podria fer una cerca depth-first.<br />
Vegeu [Ginsberg1993]p90<br />
Vegeu l’esquema de l’algorisme a les transparències de [Golobardes2002c]<br />
Algorisme MiniMax – Versió 2<br />
<strong>La</strong> segona versió que presentem de l’algorisme MiniMax, segueix una filosofia depthfirst<br />
search, per tant, la memòria passa a ser lineal però el temps d'execució segueix<br />
essent molt elevat (segueix dins del marc d'exponencialitat).<br />
Algorisme (Versió 2):<br />
Per avaluar un node n en l'arbre de joc.<br />
1. Sigui L la llista de nodes no expandits dins de l'arbre. Inicialment L:={n}.<br />
2. Sigui x el primer node d’L.<br />
3. Si x = n i té un valor assignat, llavors retorneu-lo i acabeu.<br />
4. Si al node x se li ha assignat un valor Vx, llavors ...<br />
4.1. Sigui p el pare d’x i Vp el seu valor actual.<br />
4.2. Si p és un node minimitzador, llavors Vp:=min(Vp, Vx), altrament (p és node<br />
maximitzador) Vp:=max(Vp,Vx).<br />
4.3. Traieu x d’Li retorneu al pas 2.<br />
5. Altrament ... (el node x no té encara cap valor assignat)<br />
5.1. Si x és un node terminal. Llavors ...<br />
5.1.1. Assigneu-li -1 o 1 en funció de si és una jugada guanyadora pel<br />
minimitzador o el maximitzador.<br />
73
5.1.2. En cas de taules, assigneu-li el valor de 0.<br />
5.1.3. Deixeu x a L ja que el seu pare encara no ha estat tractat.<br />
5.1.4. Retorneu al pas 2.<br />
6. Altrament ... (x no és un node terminal)<br />
6.1. Assigneu a x el valor de -infinit si es tracta d'un node maximitzador, o de +infinit<br />
en cas que sigui un node minimitzador.<br />
6.2. Afegiu els fills d’x al principi d’L.<br />
6.3. Retorneu al pas 2.<br />
Una vegada hagueu treballat l’algorisme, podeu veure que es podria ampliar seguint<br />
les observacions següents:<br />
1. A la realitat és inviable explorar tot l'arbre de cerca per sota d'un node. El que es fa<br />
és explorar fins a una profunditat suficient (vegeu la versió 3 de l’algorisme MiniMax).<br />
2. Per tant, arribarem a un node pseudoterminal (aquell que es troba a la profunditat<br />
de tall) i l'avaluarem mitjançant una funció d’estimació (e(n)). Seguint la mateixa<br />
filosofia l'avaluarem entre -1 i +1, passant pel zero. Exemple: escacs i nombre de<br />
peces (o valor):<br />
e(n) = (blaques - negres) / (blaques + negres)<br />
3. S’haurà de tenir en compte el compromís entre el nivell base i el metanivell.<br />
Vegeu el seu funcionament a [Ginsberg1993]p91-p92<br />
Algorisme MiniMax – Versió 3<br />
<strong>La</strong> tercera versió del MiniMax que presentem ja usa un patró de cerca heurística.<br />
L’algorisme només explora l’espai de cerca fins a una profunditat de tall p. Així doncs,<br />
encara que l’esquema segueixi la filosofia d’un algorisme de cerca de primer en<br />
profunditat, no hi ha el perill de caure en una branca infinita.<br />
Algorisme (Versió 3):<br />
Per avaluar un node n en l'arbre de joc.<br />
1. Sigui L la llista de nodes no expandits dins de l'arbre. Inicialment L:={n}.<br />
2. Sigui x el primer node d’L.<br />
3. Si x = n i té un valor assignat, llavors retorneu-lo i acabeu.<br />
4. Si al node x se li ha assignat un valor Vx, llavors ...<br />
4.1. Sigui p el pare d’x i Vp el seu valor actual.<br />
4.2. Si p és un node minimitzador, llavors Vp:=min(Vp, Vx), altrament (p és node<br />
maximitzador) Vp:=max(Vp,Vx).<br />
4.3. Traieu x d’Li retorneu al pas 2.<br />
5. Altrament ... (el node x no té encara cap valor assignat)<br />
5.1. Si x és un node terminal o s'ha decidit no expandir per sota d’x. Llavors ...<br />
5.2. Calculeu el valor d’e(x).<br />
5.3. Deixeu x a L ja que el seu pare encara no ha estat tractat.<br />
5.4. Retorneu al pas 2.<br />
6. Altrament ... (x no és un node terminal)<br />
6.1. Assigneu a x el valor de -infinit si es tracta d'un node maximitzador, o de +infinit<br />
en cas que sigui un node minimitzador.<br />
6.2. Afegiu els fills d’x al principi d’L.<br />
6.3. Retorneu al pas 2.<br />
74
Vegeu [Ginsberg1993]p92-p93<br />
3.4.3. Exemple MiniMax<br />
Veurem un exemple d’aplicació de l’agorisme Minimax. Seguirem l’exemple del tres en<br />
ratlla que ens presenta en Nilsson (1998) a les pàgines 197-202 (l’exemple que volem<br />
il·lustrar comença al tercer paràgraf de la pàgina 199: “A simple example ...”).<br />
Exemple: tres en ratlla<br />
Descriurem tot seguit les diferents consideracions que farem per tal d’aplicar<br />
l’algorisme MiniMax al problema del tres en ratlla:<br />
- Suposem que el MAXimitzador té les fitxes X.<br />
- Suposem que el MINimitzador té les fitxes O.<br />
- Comença jugant el MAX davant del taulell buit. Per tant, haurà de decidir on tirar una<br />
fitxa X.<br />
- Considerarem la funció d’avaluació e(n) –n és el node que avaluem– següent:<br />
e(n) = +infinit, si n és una jugada guanyadora pel MAX.<br />
e(n) = –infinit, si n és una jugada guanyadora pel MIN.<br />
e(n) = (número de files, columnes i/o diagonals que encara sòn obertes pel MAX) -<br />
(número de files, columnes i/o diagonals que encara sòn obertes pel MIN).<br />
- En el moment de generar els successors es tindran en compte les simetries. Per tant,<br />
si hi ha 4 jugades equivalents des d’un punt de vista de simetries, només se’n<br />
considerarà una.<br />
Sota aquestes condicions treballeu i seguiu l’exemple a [Nilsson1998]p197-p202<br />
RESUM<br />
En aquesta sessió hem treballat l’algorisme MiniMax. Un esquema bàsic per als jocs<br />
amb adversari, dos jugadors i informació perfecta, on normalment el factor de<br />
franqueig i, en general, l’espai de cerca és molt elevat.<br />
75
SESSIÓ 13: Cerca amb adversari – CERCA (8/9)<br />
Nom: Cerca amb adversari - CERCA (8/9)<br />
Tipus: teòrica<br />
Format: no presencial<br />
Durada: 2 hores<br />
Dedicació: 2 hores<br />
Treball a lliurar: no<br />
Material:<br />
o Bibliografia bàsica:<br />
[Ginsberg1993]<br />
[Nilsson1998]<br />
PRECEDENTS<br />
Aquesta sessió es basarà bàsicament en l’algorisme de cerca amb adversari analitzat<br />
en l’anterior sessió: l’algorisme Minimax.<br />
OBJECTIUS<br />
L’objectiu principal d’aquesta sessió és el d’analitzar la poda alfa-beta dins d’un<br />
esquema de cerca com l’algorisme Minimax. Prèviament però, s’analitzaran els<br />
problemes que poden sorgir en un algorisme de cerca Minimax.<br />
CONTINGUTS<br />
En aquesta sessió tractarem els apartats següents:<br />
3.4.4. Problemes del Minimax.<br />
3.4.5. Poda alfa-beta.<br />
3.4.6. Exemple poda alfa-beta.<br />
Al finalitzar la sessió es proposa un exercici per tal de treballar els diferents aspectes<br />
de la cerca en un problema de cerca amb adversari.<br />
3.4.4. Problemes del MiniMax<br />
L’algorisme Minimax presenta una sèrie de problemes en el seu comportament, en<br />
funció de l’actitud del seu contrincant. Els problemes més habituals són els de detectar<br />
zones de calma a través d’extensions singulars o bé el problema de l’efecte<br />
horitzó.<br />
Quiescence i extensions singulars<br />
En l’arbre de joc hi ha certes zones que es poden considerar d’interès tàctic. Són<br />
zones en les quals la funció d’estimació e(n) varia bruscament. En aquests casos<br />
s’intentarà fer una cerca de més profunditat dins de l’arbre de joc fins que la funció e(n)<br />
sigui més estable, “estigui més calmada”. Així doncs, s’intentarà buscar una<br />
quiescence. El fet de realitzar aquesta cerca més profunda és el que s’anomena una<br />
extensió singular.<br />
77
Per il·lustrar aquest efecte, suposem que s’implementa un jugador d’escacs que<br />
explora fins a 7 moviments (entre els moviments del nostre judador i de l’adversari).<br />
Imagineu que, donada una situació inicial concreta, es desenvolupa l’arbre de<br />
profunditat 7 i que, justament en l’últim nivell de l’arbre, el nostre jugador és capaç de<br />
matar la reina del jugador contrari, provocant una variació brusca en l’avaluació total.<br />
Per tant, si no cerquem més nivells, probablement triarem aquesta jugada, doncs<br />
maximitzarà l’heurística. Tanmateix, cal notar que, amb altra probabilitat, aquest<br />
moviment pot correspondre a un intercanvi de reines. En aquest cas, si s’hagués<br />
explorat un nivell més profund, s’hagués vist que l’avaluació del següent node<br />
minimitzador hagués patit una altra variació brusca (aquest cop contrària als nostres<br />
interessos; doncs s’hauria fet l’intercanvi de reines). Per tant, si s’hagués tingut<br />
aquesta situació en consideració, probablement s’hagués optat per una altra branca.<br />
Per això és molt important continuar la cerca en aquelles zones “calentes” de l’arbre de<br />
cerca, on la funció d’avaluació pateix canvis bruscos, fins arribar a una zona de calma.<br />
Efecte horitzó<br />
L’efecte horitzó fa referència al fet que el nostre programa de cerca eviti enfrontar-se a<br />
certes amenaces tot fent moviments inúltils que retardin l’aparició de l’amenaça. És a<br />
dir, suposem que s’implementa un jugador d’escacs que explora fins a 7 moviments<br />
(entre els moviments del nostre jugador i del contrari), i que justament en el 7 nivell<br />
trobem un moviment molt negatiu per a nosaltres (per exemple, un escac i mat). A<br />
més, suposem que podem fer un moviment “inútil” que retarda dos moviments l’escac i<br />
mat. Per tant, el mat arribarà al nivell 9; com que només arribem a nivell 7, l’amenaça,<br />
tot i ser existent, ha quedat fora del nostre abast.<br />
Aquest problema té poques solucions efectives. Per una banda, es pot realitzar una<br />
cerca secundària, a l’estil de la utilitzada per buscar l’escena de calma, per explorar<br />
amb més detall l’amenaça. Per una altra banda, es pot usar el tècnica de l’heurística<br />
matadora. Aquesta heurística proposa de recordar quines branques han donat una<br />
millor solució en exploracions prèvies per explorar-la primerament en la cerca actual.<br />
L’objectiu és trobar una bona branca que permeti podar altres branques que tinguin el<br />
problema de l’efecte horitzó.<br />
3.4.5. Poda alfa-beta<br />
L’objectiu de la poda alfa-beta és el de reduir al màxim l'espai de cerca que explora<br />
un algorisme Minimax. Així doncs, partint de l’última versió donada de l’algorisme<br />
MiniMax, l’algorisme es basarà en aplicar una profunditat de tall en un algorisme de<br />
filosofia DFS.<br />
Podem dir que l’objectiu és el d'aplicar la idea de poda basada en la millor solució<br />
en curs generalitzada.<br />
Conceptes<br />
<strong>La</strong> figura següent mostra quatre exemples que serviran per motivar l’ús de la poda<br />
alfa-beta en l’algorisme de min-max:<br />
78
(a) Exemple 1<br />
(c) Exemple 3<br />
79<br />
(b) Exemple 2<br />
(d) Exemple 4<br />
A continuació s’estudia cada exemple en detall.<br />
• Exemple 1. Després d’acabar d’explorar la primera branca i començar a<br />
explorar c, el sistema hauria de detectar ràpidament que c té una jugada<br />
guanyadora per a la branca que acaba en j. Per tant, no cal explorar la resta de<br />
branques.<br />
• Exemple 2. Independentment del què hi hagi en la branca dreta de c, el node<br />
minimitzador escollirà la branca de la seva esquerra, ja que el porta a una acció<br />
guanyadora. Per tant, no cal continuar explorant la branca dreta.<br />
• Exemple 3. El node g es pot podar, ja que la branca germana de l’esquerra té<br />
una avaluació que és menor a la branca esquerra d’a. Per tant, a sempre triarà<br />
moure’s cap a b en comptes de cap a c.<br />
• Exemple 4. Igual que en l’exemple 3, no cal explorar el node g, doncs el node<br />
b té una avaluació millor que la del germà de g, és a dir, f.<br />
Aquests quatre exemples ens porten a les observacions següents:<br />
1. Els nodes maximitzadors tindran associat un valor alfa que serà el millor valor<br />
trobat fins el moment per a aquest node. Aquest valor representarà una fita inferior<br />
del valor d'aquest node. És a dir, el valor d'aquest node serà >= alfa.<br />
2. Els nodes minimitzadors tindran associat un valor beta que serà el millor valor<br />
trobat fins el moment per a aquest node. Aquest valor representarà una fita<br />
superior del valor d'aquest node. És a dir, el valor d'aquest node serà
Així doncs, per tal de realitzar la poda es treballa amb fites superiors i inferiors dels<br />
valors dels avantpassats. En la secció següent es presenta l’algorisme general de la<br />
poda alfa-beta.<br />
Regles generals – mètode poda alfa-beta<br />
A partir dels exemples i els conceptes anteriors podem generalitzar el que serà la poda<br />
alfa-beta de la manera següent:<br />
Poda alfa:<br />
1. Suposem que n és un node de l’arbre de joc (MAXimitzador).<br />
2. Sigui s un node bessó d’n amb un valor Vs assignat.<br />
3. Suposem que < p0, p1, p2, ... , pk > és el camí des de l’arrel fins al node n, on<br />
p0 és l’arrel i pk = n.<br />
4. Els índexs senars corresponen a nodes MINimitzadors, si qualsevol d’aquests<br />
nodes té un bessó amb un valor més gran que Vs, llavors el node pk (i pk-1, és<br />
a dir, el seu pare) es pot podar.<br />
Poda beta:<br />
Es descriu de manera anàloga a la poda alfa, és a dir:<br />
1. Suposem que n és un node de l’arbre de joc (MINimitzador).<br />
2. Sigui s un node bessó d’n amb un valor Vs assignat.<br />
3. Suposem que < p0, p1, p2, ... , pk > és el camí des de l’arrel fins al node n, on<br />
p0 és l’arrel i pk = n.<br />
4. Els índexs parells corresponen a nodes MAXimitzadors, si qualsevol d’aquests<br />
nodes té un bessó amb un valor més gran que Vs, llavors el node pk (i pk-1, és<br />
a dir, el seu pare) es pot podar.<br />
Algorisme MiniMax amb poda alfa-beta<br />
Incorporant la poda alfa-beta a l’algorisme MiniMax queda l’algorisme següent.<br />
Algorisme (MiniMax – versió 3 amb poda alfa-beta):<br />
Per avaluar un node n en l'arbre de joc.<br />
1. Sigui L la llista de nodes no expandits dins de l'arbre. Inicialment L:={n}.<br />
2. Sigui x el primer node d’L.<br />
3. Si x = n i té un valor assignat, llavors retorneu-lo i acabeu.<br />
4. Si al node x se li ha assignat un valor Vx, llavors ...<br />
4.1. Sigui p el pare d’x.<br />
4.2. Es poden podar p i els seus fills?<br />
4.2.1. Si p és un node minimitzador, sigui alfa el valor màxim de tots els valors<br />
actuals assignats als germans de p i als germans dels nodes minimitzadors que són<br />
antecessors de p.<br />
4.2.2. Si no hi ha valors, alfa = – infinit.<br />
4.2.3. Si Vx
4.3.2. Si p és un node minimitzador, llavors Vp:=min(Vp, Vx), altrament (p és<br />
node maximitzador) Vp:=max(Vp,Vx).<br />
4.3.3. Traieu x d’Li retorneu al pas 2.<br />
5. Altrament ... (el node x no té encara cap valor assignat)<br />
5.1. Si x és un node terminal o s'ha decidit no expandir per sota d’x. Llavors ...<br />
5.2. Calculeu el valor d’e(x).<br />
5.3. Deixeu x a L ja que el seu pare encara no ha estat tractat.<br />
5.4. Retorneu al pas 2.<br />
6. Altrament ... (x no és un node terminal)<br />
6.1. Assigneu a x el valor de –infinit si es tracta d'un node maximitzador, o de +infinit<br />
en cas que sigui un node minimitzador.<br />
6.2. Afegiu els fills d’x al principi d’L.<br />
6.3. Retorneu al pas 2.<br />
Observacions<br />
Podem fer les observacions següents de la poda alfa-beta:<br />
1. <strong>La</strong> cerca Minimax amb poda alfa-beta no pot anar pitjor, en termes del resultat<br />
obtingut, que un algorisme Minimax sense poda.<br />
2. L'espai de cerca explorat serà igual o més petit que el que cerqui un algorisme<br />
Minimax sense poda.<br />
3. Normalment la feina a metanivell es veu recompensada per la reducció de feina a<br />
nivell base.<br />
4. Com que s'aplica el principi de poda basada en la millor solució en curs, interessa<br />
trobar bones solucions el més aviat possible. Per aquest motiu és possible que<br />
s'apliqui reordenació dels fills (més feina a metanivell).<br />
5. Vegeu l’eficiència de la poda alfa-beta en termes de costos a [Ginsberg1993]p99p100.<br />
3.4.6. Exemple poda alfa-beta<br />
A continuació es mostra un exemple del tres en ratlla per consolidar els conceptes que<br />
han aparegut en l’explicació de l’algorisme de min-max amb la poda alfa-beta.<br />
Exemple 1: tres en ratlla per d=2<br />
Recordem les característiques de l’exemple del tres en ratlla que vam veure a la<br />
sessió anterior:<br />
- Suposem que el MAXimitzador té les fitxes X.<br />
- Suposem que el MINimitzador té les fitxes O.<br />
- Comença jugant el MAX davant del taulell buit. Per tant, haurà de decidir on tirar una<br />
fitxa X.<br />
81
- Considerarem la funció d’avaluació e(n) –n ès el node que avaluem– següent:<br />
e(n) = +infinit, si n és una jugada guanyadora pel MAX.<br />
e(n) = –infinit, si n és una jugada guanyadora pel MIN.<br />
e(n) = (número de files, columnes i/o diagonals que encara sòn obertes pel MAX) -<br />
(número de files, columnes i/o diagonals que encara sòn obertes pel MIN)<br />
- En el moment de generar els successors es tindran en compte les simetries. Per tant,<br />
si hi ha 4 jugades equivalents des d’un punt de vista de simetries, només se’n<br />
considerarà una.<br />
Si considerem la profunditat de tall com a d=2, podeu observar a què passa<br />
[Nilsson1998]p202-p205. D’una banda, teniu un exemple d’aplicació de l’algorisme<br />
amb poda alfa-beta. Però d’altra banda, podeu constatar que amb una profunditat de<br />
tall de d=2 només es pot realitzar la poda alfa.<br />
Per més exemples de funcionament de la poda alfa-beta, vegeu [Nilsson1998]<br />
3.4.7. Exercici de cerca amb adversari: escacs<br />
(optatiu)<br />
Tot seguit es proposa el joc dels escacs per tal de recordar els diferents conceptes<br />
dels dominis on es pot aplicar cerca amb adversari.<br />
Enunciat<br />
Suposeu que heu d'implementar un jugador d'escacs. Es demana:<br />
1. Quines característiques té el domini d'aquest joc?<br />
2. Quin tipus d'algorisme de cerca seria el més adequat? Justifiqueu la resposta.<br />
3. Quin tipus d’heurístiques serien necessàries a l’avaluar un node n de l’arbre de joc?<br />
4. Proposeu heurístiques i/o tàctiques per tal de detectar les zones de calma<br />
(quiescence) i superar l'efecte horitzó. Justifiqueu i avalueu la proposta donada.<br />
RESUM<br />
En aquesta sessió, d’una banda, s’han analitzat els possibles problemes que pot tenir<br />
un esquema de cerca amb adversari com el Minimax, en funció del comportament del<br />
seu contrincant. D’altra banda, s’ha estudiat com incorporar la poda alfa-beta dins de<br />
l’algorisme Minimax i s’ha il·lustrat amb alguns exemples.<br />
82
SESSIÓ 14: Pràctica cerca – CERCA (9/9)<br />
Nom: Pràctica cerca – CERCA (9/9)<br />
Tipus: pràctica<br />
Format: no presencial<br />
Durada: 1 hora<br />
Dedicació: 1 hora<br />
Treball a lliurar: sí<br />
Material:<br />
o Bibliografia bàsica:<br />
[Golobardes2002d]<br />
o Recursos de programari i de maquinari: vegeu l’enunciat de la<br />
pràctica<br />
PRECEDENTS<br />
Per tal de realitzar la pràctica que proposa aquesta sessió, es necessiten tots els<br />
conceptes que s’han vist al llarg de les diferents sessions del capítol de Resolució de<br />
problemes – Cerca.<br />
OBJECTIUS<br />
L’objectiu d’aquesta sessió és el de presentar l’enunciat de la pràctica corresponent a<br />
aquest capítol cerca (PRÀCTICA 1: CERCA). Us recordem que aquesta pràctica<br />
compta un 30% de la nota final de la part pràctica de l’assignatura (i la part pràctica<br />
compta un 70% del total). Cal recordar que aquesta pràctica és obligatòria i cal<br />
aprovar-la per aprovar l’assignatura.<br />
L’objectiu de la pràctica és que assoliu els diferents conceptes que s’han vist al llarg<br />
del capítol Resolució de problemes – Cerca.<br />
CONTINGUTS<br />
Els continguts d’aquesta sessió estan explicitats en el document [Golobardes2002d],<br />
que trobareu a la carpeta corresponent de l’assignatura a l’ecampus.<br />
Val a dir que el temps d’estimació d’aquesta sessió es centra en una bona lectura i<br />
comprensió de l’enunciat de la pràctica i no en la totalitat de les hores que us portarà<br />
realitzar aquesta pràctica, la qual anireu fent mentre estudieu el següent capítol de<br />
teoria: Representació del coneixement – Raonament.<br />
3.5. Descripció de la pràctica de cerca<br />
3.5.1. Descripció de la pràctica de cerca (pràctica 1)<br />
En aquest apartat es presenta l’enunciat corresponent a la pràctica de cerca.<br />
83
Document PRÀCTICA 1: CERCA – <strong>Intel·ligència</strong> artificial<br />
On podeu trobar el document corresponent a l’enunciat de la pràctica de cerca?<br />
El document de l’enunciat de la PRÀCTICA 1: CERCA – <strong>Intel·ligència</strong> artificial el<br />
trobareu a la carpeta de l’ecampus de l’assignatura d’intel·ligència artificial.<br />
Què hi ha en el document?<br />
1. L’enunciat de la pràctica de cerca a lliurar. bàsicament aquest enunciat presenta<br />
el domini del problema que es vol resoldre.<br />
2. Tot seguit es demanen una sèrie de punts. Aquests punts detallen tant l’ordre en el<br />
qual convé realitzar la pràctica com el contingut de la memòria a lliurar.<br />
Convé destacar que el més important de la pràctica és com s’ha tractat la part<br />
corresponent al capítol de cerca i, en certa manera, tot el treball de camp que s’ha dut<br />
a terme per tal de realitzar-la.<br />
Podeu observar que una vegada s’ha analitzat com realitzar la pràctica des d’un punt<br />
de vista algorísmic i/o “teòric”, llavors es demana que decidiu quin és el llenguatge de<br />
programació més adequat per a la seva implementació –justificant la seva elecció–. No<br />
ho feu en l’ordre invers, ja que condicionareu el disseny al llenguatge de programació i<br />
és possible que, ni de bon tros, sigui el més adequat.<br />
Cal recordar que els diferents aspectes d’interfície no es valoraran, per tant, una<br />
vegada més, cal recordar que es vol donar èmfasi a la part corresponent a la cerca.<br />
3. En el document també es demana una estimació –en hores– del temps que us ha<br />
portat la seva realització i, si pot ser, detallant les diferents parts de la pràctica.<br />
Evidentment, aquesta estimació no serveix per avaluar la pràctica, sinó per contrastar<br />
les diferents estimacions de la càrrega de la pràctica.<br />
4. En el document s’indica la data de lliurament de la pràctica, tot i que també la<br />
podeu trobar a l’agenda de l’assignatura.<br />
5. En el document també s’indica on i com s’ha de lliurar la pràctica.<br />
Criteris de puntuació:<br />
1. <strong>La</strong> memòria ha de tenir tots els punts que es demanen.<br />
2. Recordeu que la pràctica de cerca s’ha de lliurar obligatòriament per aprovar<br />
l’assignatura, i la seva nota ha de ser superior a 5 per tal que s’accepti.<br />
3. Les pràctiques lliurades fora de termini tindran una nota màxima de 5 i ja s’indicarà<br />
quines són les possibles dates de lliurament.<br />
4. Dins de la nota de pràctiques, la pràctica de cerca compta un 30%. Recordeu que<br />
la part pràctica val el 70% de l’assignatura. Vegeu els criteris de puntuació de<br />
l’assignatura.<br />
Vegeu l’enunciat de la pràctica a [Golobardes2002d]<br />
84
RESUM<br />
L’objectiu d’aquesta sessió ha estat el de presentar l’enunciat de la pràctica de cerca<br />
que convé realitzar. Esperem que al finalitzar la sessió tingueu molt clar el domini del<br />
problema i els diferents punts que es demanen per tal de realitzar la pràctica.<br />
85
SESSIÓ 15: Introducció – Representació del coneixement (1/15)<br />
Nom: Introducció - REPRESENTACIÓ DEL CONEIXEMENT (1/15)<br />
Tipus: teòrica<br />
Format: no presencial<br />
Durada: 2 hores<br />
Dedicació: 2 hores<br />
Treball a lliurar: no<br />
Material:<br />
o Bibliografia bàsica:<br />
[Rich1994]<br />
o Bibliografia complementària:<br />
[Russell1995]<br />
PRECEDENTS<br />
En el capítol de Cerca – Resolució de problemes hem analitzat diferents patrons de<br />
cerca per tal de saber triar l’esquema més apropiat en el moment de resoldre un<br />
problema. En aquest capítol de Representació del coneixement – Raonament ens<br />
centrarem en com escollir la representació del coneixement més adequada per a la<br />
resolució d’un problema.<br />
OBJECTIUS<br />
Els objectius d’aquesta sessió són ben senzills: assentar els conceptes bàsics<br />
associats a aquest capítol que iniciem: Representació del Coneixement – Raonament.<br />
Dividirem la sessió en dos temes. El primer introduirà els conceptes generals associats<br />
a tot el capítol. I el segon es centrarà en els diferents tipus de coneixement.<br />
CONTINGUTS<br />
D’una banda, en aquesta sessió s’introduiran diferents conceptes com: coneixement,<br />
representació del coneixement i raonament, aixì com l’estreta relació que hi ha<br />
entre ells. D’altra banda, presentarem diferents tipus de coneixement, com:<br />
relacional, heretable, deductiu i/o procedimental.<br />
4. Representació del coneixement -<br />
Raonament<br />
4.1. Introducció<br />
4.1.1. Conceptes<br />
En aquest tema farem una breu introducció dels conceptes claus associats al llarg de<br />
tot el capítol, tal com són: domini, coneixement, representació del coneixement,<br />
raonament, sistema de manteniment de la veritat i base del coneixement.<br />
87
Així doncs, caldrà tenir clar que no es pot separar la representació del coneixement<br />
–objectiu d’aquest capítol– del domini del problema que es vol resoldre, ni del tipus de<br />
raonament que s’utilitzarà sobre la base del coneixement que haguem creat.<br />
Representació del coneixement<br />
Tot problema sorgeix dins d’un domini, més o menys definit. Quan ens proposem<br />
resoldre aquest problema convé representar el coneixement d’aquest problema<br />
d’alguna manera. Però s’ha d’anar en compte, perquè diferents maneres de<br />
representar el coneixement ens poden portar a un èxit o a un fracàs en la resolució<br />
del problema. Com a exemple, podeu recordar el problema dels quatre cavalls que<br />
vam veure a l’inici del capítol de Cerca – Resolució de problemes.<br />
Al llarg d’aquest capítol ens centrarem a estudiar diferents maneres de representar el<br />
coneixement.<br />
Enginyeria del coneixement<br />
Com hem vist en el concepte anterior, convé representar el coneixement de la millor<br />
manera. Tanmateix, prèviament ens hauríem de formular una altra pregunta: com<br />
s’obté el coneixement? El procés de construir una base de coneixement (BC) és el<br />
que s’anomena enginyeria del coneixement. Dins de l’enginyeria del coneixement cal<br />
deixar clars diferents conceptes. Vegem-los.<br />
Enginyer del coneixement: és qui investiga un domini, decideix quins objectes són<br />
importants (rellevants per a la resolució del problema) i representa formalment els<br />
objectes i les seves relacions.<br />
Adquisició del coneixement: és el procés d’entrevistar-se amb els experts per<br />
aprendre i extraure informació del domini. Com podeu entreveure, serà una tasca que<br />
requerirà força enginy i certa gràcia amb les relacions personals.<br />
Enginyeria ontològica: consisteix en la representació dels conceptes generals, com<br />
poden ser: temps, canvi, objectes, successos, etc.<br />
Raonament<br />
Depenent de com s’hagi decidit representar el coneixement del domini, es necessita<br />
“raonar” sobre aquest coneixement en el moment de resoldre un problema. Per tant, el<br />
tipus de raonament anirà estretament lligat al tipus de representació que s’hagi<br />
escollit. En el tema següent –Tipus de Coneixement- en veurem alguns exemples.<br />
Fases de desenvolupament<br />
Si sintetitzem una mica, podríem resumir el procés de la construcció de la base del<br />
coneixement (BC) en les fases que mostra la figura següent. Diferenciem: el domini<br />
del problema que volem resoldre; el coneixement rellevant per dur a terme aquesta<br />
resolució; la representació més adient i la pròpia implementació, generem així el<br />
que serà la base del coneixement.<br />
88
Així doncs, anomenarem adquisició del coneixement el pas del domini al<br />
coneixement necessari. I anomenarem el pas del coneixement a la representació:<br />
representació del coneixement; fase en la qual ens centrarem al llarg d’aquest<br />
capítol.<br />
A la figura també podeu observar els diferents nivells que trobem en el<br />
desenvolupament d’una BC: nivell conceptual, nivell de representació i nivell<br />
d’implementació.<br />
Mecanisme de manejament<br />
En el moment de resoldre un problema, dins del domini a partir del qual s’ha definit la<br />
base de coneixement (BC), serà un mecanisme o motor de manejament (també<br />
anomenat motor d’inferència en els sistemes experts) el que portarà a terme aquesta<br />
tasca, tot dialogant amb la base de coneixement. Vegeu la figura que il·lustra aquest<br />
diàleg.<br />
Tota resolució d’un problema ben segur que necessitarà de tres grans àrees: cerca,<br />
raonament i aprenentatge artificial. <strong>La</strong> darrera la veurem en el capítol següent.<br />
89
Sistema de manteniment de la veritat<br />
Finament, haurem de tenir present al llarg del capítol un darrer concepte ben<br />
important. Tant en el moment del disseny de la BC com en l’evolució de la mateixa BC,<br />
convindrà garantir en tot moment la seva “consistència”. Aquesta tasca es farà<br />
mitjançant un sistema de manteniment de la veritat (o Truth Maintenance System<br />
– TMS).<br />
4.1.2. Tipus de coneixement<br />
<strong>La</strong> representació del coneixement estarà estretament lligada al tipus de coneixement<br />
del domini del problema. Tanmateix no sempre resulta fàcil decidir de quin tipus de<br />
coneixement estem parlant. Pensar en el tipus de problema ens ajudarà a decidir el<br />
tipus de coneixement. Per exemple, si volem identificar jugades de beisbol, potser el<br />
tipus de coneixement que realment necessitem són regles que especifiquin aquestes<br />
jugades (expressades o bé de forma deductiva o bé de forma procedimental).<br />
Seguirem els exemples que ens mostren n’Elain Rich i en Kevin Knight en el llibre de<br />
A continuació s’expliquen cinc famílies de representació de coneixement, tot posant<br />
exemples per a cadascuna d’elles. En general, s’indentificarà un problema i<br />
s’analitzarà el tipus de coneixement (del coneixement rellevant per resoldre el<br />
problema), a partir del qual es decidirà la representació del coneixement més adient<br />
i el mecanisme de raonament que hi haurà associat a aquesta representació.<br />
A continuació presentarem breument els tipus de coneixement. Al llarg del capítol<br />
s’elaboraran amb més detall diferents tipus de representació del coneixement i el<br />
raonament associat.<br />
Coneixement relacional simple<br />
Començarem definint un tipus de coneixement conegut i utilitzat per tots vosaltres:<br />
coneixement relacional simple. Aquest tipus de coneixement és una aplicació directa<br />
dels conceptes de bases de dades, els quals són habituals en el món de l’enginyeria<br />
informàtica. Per tant, tot i que aquest tipus de coneixement implica una representació<br />
del coneixement no pròpia de la intel·ligència artificial, suposa un bon exercici per<br />
iniciar-se en el tema.<br />
A continuació, es mostra un exemple d’aquest tipus de representació de coneixement i<br />
es discuteix sobre el tipus de raonament necessari per respondre differents tipus de<br />
preguntes.<br />
<strong>La</strong> taula següent mostra un exemple de coneixement relacional simple que guarda la<br />
informació referent al joc de beisbol:<br />
90
Nom jugador Alçada Pes Bateja – Llança<br />
Joan Mateu 180cm 89kg Dreta – dreta<br />
Andreu Corriu 190cm 96kg Dreta – dreta<br />
Llavors es poden plantejar un conjunt de preguntes sobre aquesta representació del<br />
coneixement, amb la restricció que la seva resposta es pugui extreure directament de<br />
la informació de la base de dades. Un exemple d’aquestes preguntes seria demanar<br />
l’alçada, pes o tipus de bateig d’un jugador concret. Per obtenir la resposta, el métode<br />
d’inferència o raonament consistiria en una comanda SQL o fer servir un procediment<br />
com el que s’especifica a continuació:<br />
1. Més_alt := VALOR_MÀXIM;<br />
2. Nom := NO_HI_HA_JUGADORS;<br />
3. Per i =1 fins a MAX_JUGADORS fer<br />
3.1 Si alçada[i] > Més_alt llavors<br />
3.1.1 Més_alt := alçada[i];<br />
3.1.2 Nom := jugador[i];<br />
3.2 Fi_si;<br />
4. Fi_per;<br />
5. Retorna Nom<br />
Per altra banda, hom es podria plantejar la realització de preguntes que necessitin un<br />
procés de raonament o inferència més complex que el de simplement consultar les<br />
dades, ja que no poden ser respostes directament amb la informació de la base de<br />
dades. Un exemple d’aquests tipus de preguntes seria “quin és el jugador més fort?”.<br />
Per respondre aquesta pregunta s’ha de fer servir algun tipus de raonament per<br />
emparellar fort amb la informació de la base de dades.<br />
Coneixement heretable<br />
Mentre que el coneixement relacional simple proposava mantenir la informació de<br />
manera plana en una base de dades, el coneixement heretable pretén usar una<br />
estructura jeràrquica per a tal efecte, de manera que permet l’abstracció d’instàncies<br />
particulars i la formació de classes. A continuació es mostra un exemple d’aquest tipus<br />
de coneixement.<br />
91
En la xarxa semàntica de la figura, els requadres corresponen a objectes o a valors<br />
d’un atribut concret i les fletxes representen atributs. En la xarxa hi ha dos tipus<br />
especials d’atributs: (1) l’atribut “és-un” que inidica que l’objecte connectat hereta del<br />
pare (e.g., “Home-adult” hereta de “Persona”) i (2) l’atribut “instància” que indica que<br />
l’objecte connectat és una instància del pare (e.g., “Joan Mateu” és una instància de<br />
llançador). Noteu que la xarxa en si denota una estructura d’objectes del nostre món,<br />
la qual comença en l’objecte o ens “persona” i acaba en instàncies concretes de dos<br />
jugadors de beisbol.<br />
<strong>La</strong> xarxa semàntica s’interpreta de la següent manera. En el nivell més general hi ha<br />
“Persona”, el qual pot estar descrit per qualsevol atribut. En l’exemple només hi ha<br />
descripció per l’atribut “bateja amb”, el qual indica que, sense tenir més coneixement,<br />
una persona bateja amb la dreta (assumpció més segura, doncs el número de<br />
persones dretanes és més elevat que el número de persones esquerranes). A<br />
continuació aquest coneixement s’especifica en l’objecte “Home-adult”, el qual hereta<br />
tots els atributs de “Persona” i els especialitza. En aquest cas, afageix l’atribut<br />
“alçada”, el qual indica que l’alçada d’un home adult és de 175cm (el qual correspon a<br />
una mitjana de l’alçada entre homes adults). Aquest coneixement és especificat i<br />
complementat en les classes filles “”Jugador beisbol”, “Llançador” i “Jugador de camp”.<br />
En cadascun d’aquests nous objectes s’especifiquen alguns atributs. Finalment, hi ha<br />
una instància especìfica de “Llançador”, en “Joan Mateu”, pel qual s’especifica l’equip<br />
en què juga. A més, també hi ha una instància per “Jugador de camp”, n’”Andreu<br />
Corriu” el qual juga a la “Barceloneta B.C.”.<br />
Hi ha diverses metodologies per raonar sobre aquest coneixement. A continuació<br />
mostrem un algorisme senzill que es basa en l’herència de propietats. Per accedir al<br />
valor V d’un atribut A en una instància I, l’algorisme segueix els cinc passos següents:<br />
1. Trobeu I en la base de coneixement.<br />
92
2. Si l’atribut A té algun valor assignat, retorneu aquest valor.<br />
3. Altrament, comproveu si l’atribut “instància” té algun valor assignat. Si no en té<br />
cap, FALLEU.<br />
4. Altrament, aneu al node identificat per l’atribut “instància” i comproveu si allí<br />
existeix algun valor per a l’atribut A. Si hi és, RETORNEU-LO.<br />
5. Altrament, repetiu fins que l’atribut “és-un” no tingui cap valor assignat o fins a<br />
trobar una resposta.<br />
a. Obtingueu el valor de l’atribut “és-un” i aneu a aquest node.<br />
b. Comproveu si l’atribut A té algun valor. Si el té, RETORNEU-LO.<br />
Aquesta és una versió simple de l’algorisme que no té en compte el tractament<br />
d’inconsistències degudes, per exemple, a l’herència múltiple. És a dir, en cas<br />
d’herència múltiple, pot ser que s’heredin dos valors diferents per a un mateix atribut.<br />
En aquest cas, es necessitarà un sistema de desambiguament per identificar quin dels<br />
dos valors s’ha de prendre com a vàlid.<br />
Coneixement deductiu<br />
L’herència de propietats és una forma molt potent d’inferència però a vegades es<br />
necessita tota la potència de la lògica tradicional. En aquest cas el coneixement<br />
deductiu proposa usar la lògica tradicional com a eina de representació del<br />
coneixement. Així mateix, proposa l’ús de tècniques de procediments deductius, com<br />
pot ser la resolució per la lògica de primer ordre, com a mecanisme d’inferència.<br />
Coneixement operacional o procedimental<br />
Entendrem per coneixement operacional o procedimental aquell que especifica què<br />
fer quan es dóna una determinada situació. És a dir, la base de coneixement consta<br />
d’entitats que determinen el conjunt d’accions a realitzar davant d’una nova entrada.<br />
<strong>La</strong> representació d’aquest tipus de coneixement pot venir especificada de moltes<br />
maneres. <strong>La</strong> manera més intuïtiva és l’ús d’algorismes i funcions per a tal efecte.<br />
D’aquesta manera, la base de coneixement constaria d’un conjunt de funcions que<br />
porten codificat un comportament a realitzar per a unes entrades determinades.<br />
Malgrat la potència que entranya l’ús de funcions, hi ha dos problemes principals que<br />
frenen el seu ús:<br />
1. <strong>La</strong> dificultat d’implementat un programa que es comporti exactament igual que<br />
un altre.<br />
2. L’eficiència adquisicional, és a dir, la dificultat d’actualitzar i depurar trossos de<br />
codi, sobretot quan aquests creixen.<br />
Per aquest motiu, alguns autors van simplificar la representació del coneixement amb<br />
la utilització de regles de producció en comptes d’algorismes. Mentre les regles de<br />
producció es poden veure com un programa limitat – el qual especifica una o vàries<br />
accions a realitzar per a una entrada determinada –, el seu manejament, adquisició,<br />
actualització i depuració és molt més sezill. Per aquest motiu, avui en dia molts<br />
algorismes que cauen sota el coneixement procedimental usen regles.<br />
93
Altres: coneixement distribuït<br />
També podríem parlar d’altres tipus de coneixement, com podria ser el coneixement<br />
distribuït. Un cas particular del coneixement distribuït són les xarxes neurals, les<br />
quals s’inspiren en el cervell humà per proposar una representació del coneixement<br />
basada en una xarxa d’interconnexió de neurones. <strong>La</strong> figura següent mostra un<br />
exemple:<br />
<strong>La</strong> figura mostra que la xarxa consta d’una capa d’entrada (primera capa de<br />
neurones), una capa de sortida (última capa de neurones) i un conjunt de capes<br />
intermitges on les neurones estan connectades entre elles. Les neurones es<br />
comuniquen mitjançant impulsos (senyals que es transmeten entre neurones<br />
connectades). <strong>La</strong> representació del coneixement es troba en les funcions de<br />
transferència de cada neurona. És a dir, cara neurona disposa d’una funció de<br />
transferència que transforma els senyals rebuts per les diferents entrades en una<br />
sortida concreta.<br />
RESUM<br />
Convé que es tinguin clars tots els conceptes que s’han treballat en aquesta sessió.<br />
Tant els relacionats amb la construcció d’una base de coneixement, per a la resolució<br />
d’un tipus determinat de problema, com els que ens ajudaran a distingir els diferents<br />
tipus de coneixement.<br />
94
SESSIÓ 16: Representació basada en la lògica – RdC (2/15)<br />
Nom: Representació basada en la lògica - REPRESENTACIÓ DEL CONEIXEMENT<br />
(2/15)<br />
Tipus: teòrica<br />
Format: no presencial<br />
Durada: 1 hora<br />
Dedicació: 1,5 hora<br />
Treball a lliurar: opcional<br />
Material:<br />
o Bibliografia bàsica:<br />
[Mozota2001]<br />
PRECEDENTS<br />
Aquesta sessió té dos punts de partida: d’una banda ampliar el coneixement deductiu<br />
que s’ha presentat en la sessió anterior. I, d’altra banda, necessita de tots els<br />
coneixements que es van donar en l’assignatura de Lògica matemàtica.<br />
OBJECTIUS<br />
L’objectiu d’aquesta sessió és que l’estudiant faci un repàs de l’assignatura de Lògica<br />
matemàtica des de la perspectiva de la Representació del coneixement – Raonament<br />
que estem analitzant dins d’intel·ligència artificial. Concretament, repassarem com usar<br />
el càlcul de predicats CP0 i CP1 per tal de representar el coneixement mitjançant la<br />
lògica.<br />
Així doncs, la sessió pot ser molt curta o molt llarga, depenent de l’interès que hi aporti<br />
l’estudiant. Si només es fa una llegida de la sessió, difícilment s’hauran assolit ni els<br />
objectius ni els coneixements necessaris. Per tant, animem a que es vagin rellegint les<br />
parts de l’assignatura de Lògica matemàtica que vagin quedant eludides, des del punt<br />
de vista que es demana.<br />
CONTINGUTS<br />
En aquesta sessió recordarem com representar el coneixement mitjançant la lògica,<br />
identificant els quatre rols principals: coneixement, representació del coneixement,<br />
problema i raonament.<br />
Per finalitzar la sessió detectarem quines són les principals mancances dins dels<br />
dominis reals: la completesa, la consistència i la monotonia.<br />
95
4.2. Representació del coneixement basada en<br />
la lògica<br />
4.2.1. Com usar la representació del coneixement<br />
basada en la lògica?<br />
<strong>La</strong> representació del coneixement basada en lògica proposa usar la lògica, ja sigui<br />
lògica d’ordre 0, lògica d’ordre 1, lògica temporal o altres tipus de lògica per<br />
representar el coneixement d’un domini. L’assumpció inicial d’aquest tipus de<br />
representació del coneixement és que el món està representat per fets. Malgrat que<br />
aquesta assumpció pot semblar que debiliti l’ús d’aquest tipus de representació del<br />
coneixement, la seva aplicació continua sent prometedora gràcies a la seva facilitat<br />
d’ús i al fet que inherentment incorpori mecanismes de raonament, és a dir, els<br />
mateixos mecanismes emprats per la lògica per resoldre problemes.<br />
Establint una analogia amb la sessió anterior, el propòsit d’aquesta secció és<br />
proporcionar una introducció a la representació del coneixement basada en lògica.<br />
Amb aquesta idea en ment a continuació s’identifiquen els conceptes següents:<br />
coneixement, representació del coneixement, problema i raonament.<br />
Coneixement<br />
En el món real hi ha molts dominis que es poden expressar de manera deductiva (per<br />
tant, s’interpreten com a coneixement deductiu). Alguns exemples d’aquests dominis<br />
són els coneixements expressats en llenguatge natural, la formalització de conceptes<br />
matemàtics, les relacions – bases de dades o la representació de situació (e.g., el món<br />
dels blocs), etc.<br />
Representació del coneixement<br />
Tots aquells dominis que podem interpretar com a coneixement deductiu es poden<br />
representar fàcilment usant les lògiques de predicats CP0 i/o CP1. Aquesta<br />
representació del coneixement es basa en:<br />
1. Relacions (representades a través de predicats). Per exemple:<br />
x és més gran que y: més_gran(x,y). Seria un predicat secundari.<br />
L’home: home(x). Seria un predicat primari.<br />
2. Funcions (representades mitjançant termes). Per exemple:<br />
x + y: més(x,y). És una funció secundària.<br />
El pare de la Maria: pare(Maria). És una funció primària.<br />
3. Quantificadors. Per exemple:<br />
Tots els Ps són Qs:<br />
( P(<br />
x)<br />
Q(<br />
x)<br />
)<br />
∀<br />
x →<br />
96
Alguns P’s no són Q’s:<br />
( P(<br />
x)<br />
→ Q(<br />
x)<br />
)<br />
∃ x ¬<br />
Problema<br />
Dins de les representacions basades en la lògica, un problema consistirà en preguntar<br />
alguna relació, propietat, etc., que es pugui deduir a partir del coneixement que s’ha<br />
representat. Així doncs, si expressem el problema del factorial i l’objectiu és respondre<br />
“el factorial d’x és y”, expressat com factorial(x,y), una possible pregunta (problema)<br />
que ens podríem plantejar dins d’aquest domini és: quin és el factorial de 3? És a dir,<br />
factorial(3,y)? On esperem que a y s’instanciï el resultat del factorial de 3.<br />
Raonament<br />
Per tal de resoldre un problema expressat en CP0 o CP1, el raonament que s’ha<br />
d’aplicar és la deducció (o mecanisme d’inferència) com la deducció natural o bé la<br />
resolució.<br />
Si per exemple volíem resoldre un problema expressat en CP0 usant la deducció<br />
natural, necessitàvem tota una sèrie de regles/operadors com:<br />
1. Regles d’inferència:<br />
2.<br />
i ∧ , e ∧ , i ∨ , e ∨ , i→<br />
, e → , i¬<br />
, e¬<br />
, H<br />
2. Regles d’inferència derivades:<br />
Sil·logisme inductiu, modus tollens, sil·logisme hipotètic i resolució.<br />
3. Regles de reescriptura, simplificacions, equivalències:<br />
Lleis de Morgan, la propietat commutativa, la propietat associativa, la propietat<br />
distributiva i equivalències en general.<br />
Així doncs, cada tipus raonament necessitarà d’uns operadors determinats per tal de<br />
resoldre el problema, en aquest context expressat en CP0 o CP1.<br />
4.2.2. Mancances<br />
Qualsevol domini expressat en CP0 i/o CP1, per tal de poder aplicar correctament els<br />
mecanismes de raonament associats (com la deducció natural o la resolució),<br />
necessita ser complet i consistent. A més a més, són dominis que tenen un<br />
comportament monòton. Aquest serà el punt feble de la majoria dels dominis reals<br />
quan es volen expressar en CP0 i/o CP1.<br />
97
Dominis reals<br />
En la majoria dels dominis reals no sempre podrem garantir que siguin o bé complets,<br />
o bé consistents, o bé monòtons. <strong>La</strong> solució no passa per concloure que no es pot<br />
resoldre un cert problema, sinó per aplicar el que anomenarem raonament no<br />
monòton. Tanmateix, per poder representar dominis incomplets i raonar de manera no<br />
monòtona necessitarem: 1) Estendre la representació del coneixement. Així doncs, es<br />
proposaran diferents lògiques que permetran estendre la representació de la lògica<br />
CP0 i CP1 per poder expressar (o millor dit evitar) inconsistències i, al mateix temps,<br />
treballar amb incompleteses. I, 2) com a conseqüència del canvi de representació del<br />
coneixement, es necessitarà proposar nous mecanismes de raonament no monòtons,<br />
que permetin resoldre els problemes, malgrat les inconsistències i/o les incompleteses.<br />
Ho veurem en el tema 4.4 Raonament simbòlic sota incertesa.<br />
4.2.3. Exercici: Factorial – deductiu (optatiu)<br />
En aquest apartat es proposa un exercici per tal de recordar la lògica de primer ordre i<br />
veure a què correspon el que fèiem a l’assignatura de Lògica matemàtica respecte<br />
dels conceptes analitzats en aquest capítol.<br />
Enunciat<br />
Donat el problema del factorial d’un nombre natural, distingeix –i dóna– les parts<br />
següents:<br />
a) Què és el coneixement del factorial(x,y)?<br />
b) Representa el coneixement del factorial(x,y) usant CP0 i/o CP1.<br />
c) Identifica diferents problemes que es poden demanar tal i com has expressat el<br />
coneixement. Per exemple, un problema és: (factorial 3,y)?<br />
d) Resol els problemes plantejats en l’apartat c). Per tant, identifica un mètode de<br />
raonament i aplica’l.<br />
e) Què passaria si no haguessis definit el cas trivial?<br />
RESUM<br />
Una vegada finalitzada aquesta sessió heu de tenir clar què és el coneixement<br />
deductiu, en què consisteix la representació del coneixement mitjançant la lògica, què<br />
és un problema en aquest context i com es resol (tipus de raonament).<br />
Al mateix temps heu de tenir clar què passa quan manca coneixement o bé és<br />
inconsistent quan apliqueu els coneixements vists en l’assignatura de la Lògica<br />
matemàtica (centrant-nos en CP0 i CP1).<br />
98
SESSIÓ 17: Representació basada en regles (I) – RdC (3/15)<br />
Nom: Representació basada en regles (I) - REPRESENTACIÓ DEL CONEIXEMENT<br />
(3/15)<br />
Tipus: teòrica<br />
Format: no presencial<br />
Durada: 2 hores<br />
Dedicació: 2 hores<br />
Treball a lliurar: no<br />
Material:<br />
o Bibliografia bàsica:<br />
[Cortés1995]<br />
[Rich1994]<br />
o Bibliografia complementària:<br />
[Norvig1992]<br />
PRECEDENTS<br />
A l’introduir la representació procedimental del coneixement, partirem d’una<br />
comparativa amb la representació declarativa que es va analitzar en la sessió anterior<br />
(on vam veure la representació del coneixement basada en la lògica).<br />
OBJECTIUS<br />
L’objectiu d’aquesta primera sessió –de les que comprenen el tema de Representació<br />
del coneixement basada en la lògica– és situar la representació procedimental i<br />
analitzar quins són els punts claus que la caracteritzen. Així doncs, començarem<br />
analitzant un dels sistemes basats en regles més típics: els sistemes experts.<br />
CONTINGUTS<br />
Aquesta sessió farà, en primer lloc, una introducció al tema de la Representació del<br />
coneixement basada en regles, on tractarà una comparativa entre la representació<br />
declarativa i la procedimental i s’introduirà la representació del coneixement basada en<br />
regles. En segon lloc, es presentaran els sistemes experts, a tall d’exemple un sistema<br />
basat en regles. Concretament, en aquesta sessió ens centraren en els de primera<br />
generació. Així veurem: una descripció dels sistemes experts, l’ELIZA, l’arquitectura<br />
genèrica d’un sistema expert de primera generació i el PROSPECTOR.<br />
4.3. Representació del coneixement basada en<br />
regles<br />
4.3.1. Introducció<br />
Aquest primer apartat del tema de Representació del coneixement basada en regles,<br />
persegueix dos objectius: en primer lloc, analitzar la diferència entre la representació<br />
declarativa del coneixement (vista en la sessió anterior) i la representació<br />
99
procedimental que s’analitza en les sessions que comprenen aquest tema, ja que a<br />
vegades porta a possibles confusions. En segon lloc, volem presentar quins seran els<br />
conceptes que treballarem al llarg d’aquest tema (representació del coneixement<br />
basada en regles).<br />
Representació declarativa versus representació<br />
procedimental<br />
<strong>La</strong> principal diferència entre una representació declarativa (e.g., representació<br />
mitjançant CP1) i una representació procedimental (e.g., representació mitjançant<br />
regles) rau en on es troba la informació de control.<br />
Si ens basem en les representacions presentades en CP1 com a representacions<br />
declaratives del coneixement, podem observar que una representació declarativa és<br />
aquella en la qual el coneixement està especificat, però no se’ns dóna la manera en la<br />
qual aquest coneixement s’ha d’usar. Així doncs, per usar una representació<br />
declarativa s’ha d’augmentar amb un “programa” que especifiquil què s’ha de fer amb<br />
el coneixement i de quina manera s’ha de fer. Per exemple, això seria la resolució<br />
(mecanisme de raonament).<br />
D’altra banda, es podrien considerar les assercions lògiques com a un programa (en<br />
comptes de com a dades d’un programa). Des d’aquest punt de vista, les sentències<br />
d’implicació defineixen els camins del raonament. Així doncs, aquests possibles<br />
camins de raonament defineixen les possibles vies d’execució d’un programa (e.g., SI<br />
condició LLAVORS acció). Per tant, la representació procedimental del<br />
coneixement és aquella en la qual la informació de control necessària per utilitzar el<br />
coneixement es troba dins del propi coneixement. En aquest cas, per utilitzar la<br />
representació procedimental es necessita un “intèrpret” que segueixi les instruccions<br />
donades pel coneixement.<br />
Representació del coneixement basada en regles<br />
Si partim de la base que una representació procedimental es pot fer mitjançant<br />
regles de l’estil:<br />
SI condició LLAVORS acció<br />
Podem observar que és la manera més similar al que hem estat “programant” fins al<br />
moment. De fet, la vostra formació s’ha basat principalment en la programació<br />
imperativa, molt propera a establir algorismes d’aquesta mena. El paradigma que més<br />
ha potenciat i ha exemplificat aquest estil de representació procedimental o<br />
representació del coneixement mitjançant regles han estat els sistemes experts.<br />
Així doncs, la llarg d’aquest tema 4.3 Representació del coneixement basada en regles<br />
veurem, en primer lloc, com a exemple de sistemes basats en regles, els sistemes<br />
experts.<br />
Independentment de si el raonament aplicat sobre les regles és un encadenament cap<br />
endavant, un encadenament cap endarrere o bé un híbrid (vegeu [Rich1994]p194p200),<br />
a cada pas convé escollir la regla adequada per tal de resoldre el problema de<br />
manera satisfactòria. Aquest procés pot ser més o menys costós depenent del volum<br />
100
de regles que comprengui el sistema i de la manera en què s’efectuï la tria. Per tant,<br />
en segon lloc, analitzarem aquest procés anomenat emparellament (o bé usant la<br />
terminologia anglesa: matching). En darrer lloc, analitzarem quin coneixement de<br />
control de cerca convé per al procés de resolució del problema.<br />
4.3.2. Sistemes experts – primera generació<br />
En aquest apartat, introduirem el concepte de sistema expert (objectiu,<br />
característiques i problemes) a tall d’exemple d’un sistema basat en regles. Com que<br />
seguim una perspectiva històrica, començarem analitzant un dels primers sistemes<br />
experts –l’ELIZA– i, tot seguit, analitzarem quina era l’arquitectura d’un sistema expert<br />
de primera generació. A continuació presentarem el PROSPECTOR, el qual, malgrat<br />
ser de primera generació, ja presenta la necessitat d’incorporar raonament estadístic.<br />
Sistemes experts<br />
L’objectiu dels sistemes experts és resoldre problemes que sorgeixen en situacions<br />
que habitualment són considerades com molt especialitzades i complexes i la resolució<br />
de les quals es confia a un expert (humà).<br />
Històricament els sistemes experts han estat considerats com a “poderoses” tècniques<br />
que poden ser definides per classes específiques de problemes, les quals necessiten:<br />
1. accedir a una important base de coneixement sobre el domini en qüestió;<br />
2. utilitzar un o més mecanismes de raonament per aplicar el seu coneixement als<br />
problemes que se li proposen<br />
3. i un mecanisme per explicar als usuaris què és el que han fet.<br />
Tanmateix, tenen un gran problema: “semblen tontos” quan surten del seu domini<br />
específic. És el que s’anomena el problema de la fragilitat (o bé l’expressió anglesa<br />
corresponent: brittleness).<br />
De moment podríem definir un sistema expert de la manera següent:<br />
Sistema expert = coneixement + inferència<br />
Els sistemes experts es caracteritzen per representar el coneixement mitjançant un<br />
sistema basat en regles. En general, quan el coneixement es representa d’altres o de<br />
diferents maneres –amb tot el que això comporti– parlarem de sistemes basats en el<br />
coneixement.<br />
ELIZA (Weizenbaum, 1966)<br />
L’ELIZA (Weizenbaum, 1966) va ser un dels primers programes “raonadors”,<br />
posteriorment anomenats sistemes experts. L’ELIZA és un sistema que simula les<br />
reaccions d’un psicoanalista. Vegeu en [Rich1994]p205 (figura 6.6) la part d’un<br />
possible diàleg amb l’ELIZA.<br />
De l’ELIZA en podem observar les característiques següents:<br />
1. <strong>La</strong> interfície amb l’usuari és mode text (som al 1966!).<br />
2. L’adquisició del coneixement es fa a través d’un expert, que en aquest cas es<br />
tracta d’un psicòleg.<br />
3. <strong>La</strong> representació del coneixement es fa mitjançant esquemes patrons-resposta,<br />
semblants a les regles que es mostren a la figura 6.7 a [Rich1994]p205.<br />
101
4. El llenguatge de representació del coneixement amb el qual es va dissenyar<br />
l’ELIZA és el LISP.<br />
5. El motor d’inferència (també en LISP) va seguint –mentre hi hagi diàleg– els<br />
passos següents:<br />
Pas 1. Fa matching entre l’INPUT i un PATRÓ.<br />
Pas 2. Ho transforma utilitzant un esquema RESPOSTA-TRANSFORMACIÓ.<br />
Com per exemple:<br />
INPUT: “I need a vacation”<br />
PATRÓ: “I need a X”<br />
RESPOSTA: “What would it mean to you if you got a X?”<br />
TRANSFORMACIÓ: “What would it mean to you if you got a vacation?”<br />
Situarem el tipus d’emparellament que realitza l’ELIZA dins de l’apartat 4.3.4<br />
Emparellament (matching).<br />
Ara bé, l’ELIZA pot arribar a “semblar estúpida” si sempre comença a fer matching<br />
amb els mateixos patrons (problema de la fragilitat).<br />
Si voleu conèixer més detalls de la implementació de l’ELIZA com a sistema<br />
basat en regles vegeu [Norvig1992]p151-p167<br />
Arquitectura d’un sistema expert – primera generació<br />
En els primers sistemes experts, com l’ELIZA, l’arquitectura (anomenada de primera<br />
generació) responia a una relació de mòduls com la que presenta la figura següent.<br />
102
On, normalment, la base de coneixement no presentava cap tipus d’organització i no<br />
existia, o no estava explícitament especificat, ni el metaconeixement ni un mòdul<br />
explicatiu del què i el com s’havia deduït el resultat.<br />
PROSPECTOR (Duda et al., 1979)<br />
El PROSPECTOR (Duda et al., 1979) és un sistema expert dissenyat per l’Stanford<br />
Research Institute (SRI) per predir dipòsits de minerals a partir de dades geològiques.<br />
Va tenir dos factors claus que són els que ens porten a presentar-lo en aquest<br />
moment.<br />
D’una banda, gràcies a un descobriment que el PROSPECTOR va fer d’un jaciment de<br />
molibdè (valorat en molts de $), és el sistema expert que va donar a conèixer el grup<br />
d’“intel·ligència artificial” a la premsa i, per tant, es van donar a conèixer els “sistemes<br />
experts”. És a partir del PROSPECTOR que les empreses (externes al món<br />
universitari) prenen interès en “la intel·ligència artificial” i, més concretament, en els<br />
“sistemes experts”.<br />
D’altra banda, i aquest és l’aspecte que més ens interessa des d’un punt de vista de<br />
l’evolució dels sistemes experts, el PROSPECTOR posa en evidència dos fets:<br />
1. Es necessita dotar les regles, les quals representen el coneixement, de probabilitats<br />
associades al coneixement geològic (són dades empíriques que es disposen de<br />
l’entorn, a partir de les quals es poden calcular probabilitats condicionades). A partir<br />
d’aquí, necessitarem ampliar la representació del coneixement basada en regles<br />
(vegeu 4.5 Raonament simbòlic sota incertesa – Raonament estadístic).<br />
2. Es posa en evidència que la probabilitat condicionada del teorema de Bayes no és<br />
viable des d’un punt de vista computacional. A partir d’aquest moment s’han de<br />
proposar diferents teories que estimin la certesa-probabilitat de les dades, que siguin<br />
factibles des d’un punt de vista computacional i correctes des d’un punt de vista<br />
estadístic. PROSPECTOR va fer una primera proposta, el que es van anomenar<br />
nivells de suficiència i nivells de necessitat (vegeu 4.5 Raonament simbòlic sota<br />
incertesa – Raonament estadístic).<br />
El PROSPECTOR presenta les característiques següents:<br />
1. L’adquisició del coneixement es fa a través d’un expert, que en aquest cas és un<br />
geòleg.<br />
2. <strong>La</strong> representació del coneixement es fa mitjançant regles de l’estil:<br />
SI evidència LLAVORS (LS,LN) hipòtesi.<br />
On (LS,LN) indiquen els nivells de suficiència (LS) i de necessitat (LN) associats a<br />
aquesta hipòtesi en el cas de presentar-se l’evidència que indica la regla (vegeu<br />
[Cortés1995]p188-p189 ).<br />
Per exemple:<br />
If: magnetite or pyrite in disseminate or veinlet form is present<br />
then: (2,-4) there is favorable mineralization and texture for the propylitic stage<br />
On LS = 2 i indica que la presència de l’evidència és lleugerament esperançadora. I LN<br />
= -4 i indica que l’absència de l’evidència és fortament descoratjadora per a la<br />
conclusió (hipòtesi).<br />
Concretament el PROSPECTOR constava de 1600 regles.<br />
3. El motor d’inferència consistia a realitzar raonament estadístic/probabilístic, el qual<br />
propaga els factors LS i LN associats a les regles fins a oferir una certa conclusió<br />
(associada a una certa probabilitat, descrita per a aquests nivells LS i LN).<br />
103
RESUM<br />
En aquesta sessió s’ha treballat la diferència entre una representació declarativa i una<br />
representació procedimental, s’han identificat les diferents parts que analitzarem al<br />
llarg del tema de representació basada en regles (sistemes experts, matching i<br />
coneixement de control de cerca) i s’han introduït –des d’una perspectiva històrica– els<br />
primers sistemes experts (sistemes que representen el coneixement mitjançant<br />
regles).<br />
104
SESSIÓ 18: Representació basada en regles (II) – RdC (4/15)<br />
Nom: Representació basada en regles (II) - REPRESENTACIÓ DEL CONEIXEMENT<br />
(4/15)<br />
Tipus: teòrica<br />
Format: no presencial<br />
Durada: 2 hores<br />
Dedicació: 2 hores<br />
Treball a lliurar: no<br />
Material:<br />
o Bibliografia bàsica:<br />
[Cortés1995]<br />
[Rich1994]<br />
o Bibliografia complementària:<br />
[Norvig1992]<br />
[Ginsberg1993]<br />
PRECEDENTS<br />
A la sessió anterior vam introduir els sistemes experts de primera generació. A partir<br />
els seus punts més febles, passarem a analitzar els sistemes experts de segona<br />
generació.<br />
OBJECTIUS<br />
L’objectiu d’aquesta sessió és el de presentar els sistemes experts de segona<br />
generació i, al mateix temps, estudiar les diferents fases que els composen.<br />
CONTINGUTS<br />
En aquesta sessió treballarem els sistemes experts de segona generació. En primer<br />
lloc, presentarem el sistema MYCIN que va aportar alguns trets diferencials respecte<br />
els sistemes experts de primera generació. A partir d’aquest, ja es pot proposar el que<br />
es considera una arquitectura genèrica d’un sistema expert de segona generació. Per<br />
finalitzar, es presenta el que ja seria clarament un sistema expert de segona<br />
generació: el sistema MILORD.<br />
4.3.3. Sistemes experts – segona generació<br />
Els sistemes experts de primera generació presenten, principalment, dos punts febles:<br />
1. No distingeixen el que serien les dades actuals del problema de la base del<br />
coneixement. Ni tan sols es tracten en mòduls diferents respecte del motor<br />
d’inferència.<br />
2. No tenen capacitat explicativa del per què i del com ha arribat a alguna<br />
conclusió. Com a molt són capaços de fer un bolcat de la traça.<br />
Des d’una perspectiva històrica va ser el sistema MYCIN (Buchanan and Shortliffe,<br />
1975) el que va aportar uns trets diferencials respecte els “sistemes raonadors” o<br />
105
“sistemes experts” proposats fins al moment. Així doncs, en primer lloc, analitzarem el<br />
sistema MYCIN; tot seguit presentarem una arquitectura genèrica d’un sistema expert<br />
de segona generació i finalitzarem el tema presentant un sistema expert clarament de<br />
segona generació, el sistema MILORD (Sierra, 1989).<br />
MYCIN (Buchanan and Shortliffe, 1975)<br />
MYCIN és un sistema expert que intenta recomanar teràpies adequades per a pacients<br />
amb infeccions bacterianes a partir dels símptomes del/de la pacient.<br />
MYCIN va donar un salt qualitatiu en el disseny i la concepció dels sistemes experts.<br />
<strong>La</strong> seva proposta no només la treballarem dins del tema 4.5 Raonament simbòlic sota<br />
incertesa – Raonament estadístic, sinó que ens portarà a presentar –en aquesta<br />
sessió– una arquitectura genèrica d’un sistema expert, que anomenarem de<br />
segona generació.<br />
El MYCIN presenta les característiques següents:<br />
1. L’adquisició del coneixement es fa a través d’un expert, que en aquest cas és un<br />
metge especialista en infeccions bacterianes.<br />
2. <strong>La</strong> representació del coneixement es fa mitjançant regles de l’estil:<br />
SI evidència LLAVORS (donat CF(hipòtesi,evidència)) hipòtesi<br />
On CF(hipòtesi,evidència) és un factor de certesa que representa una mesura sobre<br />
la certesa que existeix que la conclusió (hipòtesi) sigui la conseqüència de la regla en<br />
cas que es descrigui el seu antecedent (evidència). Vegeu [Cortés1995] a les pàgines<br />
190-192; en el tema 4.5 Raonament simbòlic sota incertesa – Raonament estadístic<br />
s’explicarà més detalladament.<br />
El coneixement d’expressava mitjançant unes 500 regles.<br />
3. El motor d’inferència segueix un algorisme com el següent:<br />
Pas 1. Troba els organismes culpables.<br />
Pas 2. Determina els organismes significatius.<br />
Pas 3. Decideix quines medicines són potencialment útils (algorisme especial).<br />
Pas 4. Selecciona la millor medicina o medicines (algorisme especial).<br />
Un possible diàleg del MYCIN, durant l’adquisició de les dades fins a recomanar la<br />
teràpia adequada, el podeu trobar a [Ginsberg1993] a la pàgina 383, figura 18.1.<br />
Les primeres propostes del sistema MYCIN estaven implementades en LISP sobre un<br />
PDP-11.<br />
4. Mòdul explicatiu. Sembla lògic que un metge vulgui saber el com i el per què el<br />
sistema ha arribat a la conclusió d’una teràpia determinada. Aquesta va ser una de les<br />
aportacions més importants del MYCIN. Concretament, el sistema TEIRESIAS (Davis,<br />
1982) s’encarregava d’aquesta part. Vegeu en [Rich1994] a les pàgines 610-613 i en<br />
[Ginsberg1993] a la pàgina 389 – a la figura 18.2.<br />
5. El sistema MYCIN proposava com a arquitectura la que presenta la figura següent:<br />
106
Si voleu conèixer més detalls de la implementació del MYCIN vegeu<br />
[Norvig1992]p552-p557<br />
També podeu ampliar les característiques del MYCIN a [Ginsberg1993]p381p392<br />
Arquitectura d’un sistema expert – segona generació<br />
A partir del MYCIN es considera que una arquitectura genèrica d’un sistema expert<br />
(anomenada de segona generació) és representada per la figura següent:<br />
107
Com a principals diferències respecte una de primera generació, podem observar que:<br />
1. <strong>La</strong> base de coneixement acostuma a ser modular (facilita els processos<br />
d’inferència, el procés de manteniment, etc.).<br />
2. Existeix clarament un nivell de metaconeixement (metamòduls) en les<br />
arquitectures.<br />
3. Existeix una component autoexplicativa.<br />
Seguint [Cortés1995]p180-p187 hauríeu d’analitzar el paper de cadascun dels mòduls<br />
que defineixen l’arquitectura i les diferents maneres d’implementar-los. A grans trets<br />
podríem definir els diferents mòduls de la manera següent:<br />
1. El mòdul d’adquisició del coneixement pretén ser l’explicitació i l’anàlisi de les<br />
dades sobre l’experiència, amb la finalitat de construir sistemes experts. Per tant,<br />
l’objectiu serà descobrir i desenvolupar mètodes eficients i no gaire costosos<br />
d’adquisició del coneixement.<br />
2. El mòdul que representa la base del coneixement (BC) –o la base de regles (atès<br />
que els sistemes experts representen el seu coneixement mitjançant regles) o bé usant<br />
l’expressió anglesa Knowledge Base (KB)– conté la informació obtinguda mitjançant<br />
les tècniques d’adquisició del coneixement.<br />
3. <strong>La</strong> memòria de treball (MT) –o base de fets– és on hi ha les dades específiques<br />
del problema que es vol resoldre.<br />
4. El motor d’inferència el podríem descriure com un “intèrpret que treballa amb la<br />
informació de la BC i la informació de la MT per tal de deduir-ne coses”. Analitzeu les<br />
diferències que es presenten quan tenen un comportament deductiu o bé un<br />
comportament inductiu.<br />
5. El mòdul explicatiu permet al sistema justificar el seu raonament i les decisions<br />
preses. Alguns sistemes afegeixen sistemes tutorials per crear aquest mòdul.<br />
108
6. L’objectiu de la interfície amb l’usuari és que aquesta sigui el més ergonòmica<br />
possible.<br />
Vegeu [Cortés1995]p180-p187<br />
MILORD (Sierra, 1989)<br />
El sistema MILORD (Sierra, 1989) és clarament un sistema expert de segona<br />
generació. En aquest cas les regles que expressen el coneixement permeten la lògica<br />
difusa (vegeu [Cortés1995]p192-p195; la lògica difusa la treballarem dins del tema<br />
4.5 Raonament simbòlic sota incertesa – Raonament estadístic).<br />
El MILORD presenta les característiques següents:<br />
1. Adquisició del coneixement. L’expert depèn del sistema expert concret que es<br />
vulgui realitzar, ja que MILORD fa una proposta genèrica d’una arquitectura de sistema<br />
expert, podríem dir que es tracta d’un shell. Concretament l’aplica a dos dominis i obté<br />
els sistemes següents:<br />
- PNEUMON-IA (C. Sierra, 1989): és un domini mèdic, on l’expert és un metge.<br />
- DEPUR (M. Sànchez, 1991): el domini està relacionat amb el tractament de la<br />
depuració de les aigües. En aquest cas l’expert seria un químic.<br />
2. Representació del coneixement. El coneixement és representat mitjançant regles<br />
que permeten incorporar la lògica difusa. Una regla serà expressada de la manera<br />
següent:<br />
si C1<br />
∧ C2<br />
∧K<br />
∧ Cn<br />
llavors concloure q és Vr<br />
On Vr és el valor de certesa de la conclusió q a partir dels valors de certesa associats<br />
a les premises Ci.<br />
3. Motor d’inferència. El motor d’inferència es basa en la regla del modus ponens per<br />
tal d’anar propagant els factors de certesa a mesura que es van encadenant les regles.<br />
Veurem l’algorisme del procés d’inferència en el tema 4.5 Raonament simbòlic sota<br />
incertesa – Raonament estadístic.<br />
El MILORD també va ser implementat en LISP.<br />
4. Arquitectura multinivell del MILORD. El MILORD proposa una arquitectura<br />
multinivell, en la qual es classifiquen els elements en dues dimensions: la dimensió<br />
domini-control, i la dimensió del tipus de coneixement. Vegeu la figura 8.3 de la<br />
pàgina 196 del llibre [Cortés1995], i vegeu la seva descripció al llarg de les pàgines<br />
196-201.<br />
Podeu trobar una explicació detallada del sistema MILORD a [Cortés1995]p196p201<br />
109
RESUM<br />
En aquesta sessió s’ha treballat l’arquitectura genèrica d’un sistema expert de segona<br />
generació. A tall d’exemple hem vist el MYCIN (podríem dir que va ser el primer) i el<br />
MILORD (un sistema expert clarament de segona generació).<br />
110
SESSIÓ 19: Representació basada en regles (III) – RdC (5/15)<br />
Nom: Representació basada en regles (III) - REPRESENTACIÓ DEL CONEIXEMENT<br />
(5/15)<br />
Tipus: teòrica<br />
Format: no presencial<br />
Durada: 2 hores<br />
Dedicació: 2 hores<br />
Treball a lliurar: no<br />
Material:<br />
o Bibliografia bàsica:<br />
[Rich1994]<br />
o Bibliografia complementària:<br />
[Comas1996]<br />
[Norvig1992]<br />
PRECEDENTS<br />
Aquesta sessió conclou el tema que s’ha estat tractant en les dues darreres sessions:<br />
4.3 Representació del coneixement basada en regles.<br />
OBJECTIUS<br />
L’objectiu d’aquesta sessió és analitzar el tema clau dels sistemes basats en regles:<br />
com escollir la següent regla a aplicar per tal d’arribar a l’estat objectiu òptim. Per tant<br />
s’ha d’analitzar tant el propi procés d’emparellament (o matching) entre l’estat actual<br />
i la millor regla a aplicar; com el coneixement de control de cerca, o bé<br />
“metaconeixement” necessari per encaminar correctament el procés de selecció de les<br />
regles que es van aplicant.<br />
CONTINGUTS<br />
En aquesta sessió treballarem els continguts relacionats amb la selecció de regles<br />
(procés de matching): indexació, emparellament amb variables, emparellament<br />
complex i aproximat, i la resolució de conflictes. Per finalitzar, estudiarem el<br />
coneixement de control de cerca necessari.<br />
4.3.4. Emparellament (matching)<br />
Dins d’un sistema basat en regles serà molt important realitzar una cerca intel·ligent<br />
en el moment d’escollir la regla que tot seguit s’ha d’aplicar. Per tant, s’ha de saber<br />
escollir, entre les diferents regles que es poden aplicar en un moment donat, les que<br />
tinguin més probabilitats d’arribar a la solució final. Així doncs, es necessita realitzar un<br />
emparellament entre l’estat actual i les precondicions de les regles.<br />
Analitzarem quatre propostes diferents: la indexació, l’emparellament amb<br />
variables, l’emparellament complex i aproximat, i la resolució de conflictes.<br />
111
Indexació<br />
Imagineu que estem realitzant una cerca per tal de saber quina és la següent jugada a<br />
realitzar en una partida d’escacs. Les possibles regles a aplicar podrien estar<br />
codificades de la manera que es presenta a continuació:<br />
Noteu que l’antecedent de la regla mostra l’estat inicial del tauler i el conseqüent<br />
codifica l’acció a prendre tot mostrant com hauria de ser l’estat final del tauler. Per tant,<br />
la base de coneixement actuaria com una taula d’hash on, donada una entrada,<br />
retornaria l’estat següent desitjat.<br />
Els sistemes d’emparellament de regles per indexació són úlils en entorns com els de<br />
demostració de teoremes o en PROLOG. Malgrat això, aquest tipus d’emparellament<br />
frena la generalització del coneixement; en l’exemple, necessitaríem tenir en la base<br />
de coneixement tots els possibles estats del taulell.<br />
Emparellament amb variables<br />
En l’emparellament amb variables les precondicions no s’han plantejat com<br />
adescriptors exactes de situacions particulars. En aquest cas, l’antecedent de les<br />
regles consta d’un conjunt de variables que poden prendre un conjunt determinat de<br />
valors. Si totes les entrades s’avenen amb aquestes variables i valors, llavors la regla<br />
es pot aplicar.<br />
Un algorisme que representa aquest tipus d’emparellament és l’algorisme RETE (o<br />
xarxa RETE), que fou ideat per en Charles Forgy l’any 1982. Aquest algorisme fou<br />
integrat dins del llenguatge OPS5 –per desenvolupar sistemes experts basats en<br />
regles– (vegeu [Comas1996]). L’algorisme RETE es basa en la naturalesa temporal de<br />
les dades, en la similitud estructural en les regles, i en la persistència en la<br />
consistència de l’enllaç entre les variables (vegeu [Rich1994] a les pàgines 202-204).<br />
Emparellament complex i aproximat<br />
Parlarem d’emparellament complex i aproximat quan les precondicions d’una regla<br />
especifiquen determinades propietats que no s’han establert explícitament en la<br />
descripció de l’estat actual. En aquest cas es necessitarà un conjunt separat de regles<br />
per descriure com algunes propietats es poden infererir a partir d’altres.<br />
Un exemple concret d’aplicacions on els antecedents de les regles s’emparellen<br />
aproximadament amb els estats d’entrada són els programes de reconeixement de la<br />
parla. Aquests tipus de programa ha de tenir regles que mapegin la descripció de certs<br />
tipus d’ones amb fonemes i paraules. Però, a causa de diferents factors com el soroll,<br />
la variació entre la veu de les persones, etc. aquests programes han de cercar un<br />
112
emparellament aproximat entre les regles – que descriuen com hauria de ser el so<br />
perfecte – i els sons pronunciats per l’usuari.<br />
Típicament, aquest tipus d’emparellament acostuma a comportar un increment del<br />
número de regles, ja que s’incrementa la tolerància en l’emparellament. Tot i això,<br />
l’emparellament aproximat és necessari per resoldre aplicacions com el reconeixement<br />
de la parla, les quals no poden ser resoltes per sistemes que usin emparellament per<br />
variables.<br />
Resolució de conflictes<br />
A vegades és útil afegir informació sobre en quin ordre s’aplicaran les regles en el<br />
procés d’emparellament. A aquesta part de matching, s’anomena resolució de<br />
conflictes (vegeu [Rich1994] a les pàgines 206-208). Normalment consistirà en<br />
assignar una preferència basada: en la regla amb la qual s’ha fet l’emparellament, o bé<br />
en els objectes que han fet emparellament, o bé en l’acció que portarà a terme la regla<br />
que ha fet emparellament. Així doncs, parlarem de tres tipus de preferències que es<br />
podrien aplicar:<br />
1. Preferències basades en les regles. Es poden aplicar des de molts punts de vista.<br />
Dos extrems serien: a) considerar les regles segons un ordre predefinit (per exemple<br />
PROLOG); o b) donar prioritat a les regles específiques enfront de les de caire més<br />
general.<br />
2. Preferències basades en els objectes. De nou, dues polítiques extremes a<br />
considerar serien: a) ordenar els emparellaments en funció de la importància dels<br />
objectes que han fet emparellament (com per exemple l’ELIZA); o b) ordenar els<br />
emparellaments en funció de la posició dels objectes a emparellar en la descripció de<br />
l’estat actual.<br />
3. Preferències basades en els estats. Les preferències basades en estats<br />
consistirien a activar totes les possibles regles a aplicar, temporalment, i observar els<br />
resultats que s’obtenen. Es necessitaria d’una funció heurística per avaluar-los. El<br />
principal inconvenient sorgeix en sistemes, com el LISP, on és difícil desfer el camí<br />
avançat.<br />
Vegeu [Rich1994]p206-p208<br />
4.3.5. Coneixement control<br />
Normalment en un sistema basat en regles es necessitarà coneixement que informi<br />
sobre quins camins són els més apropiats per trobar ràpidament un estat objectiu. És<br />
el que anomenarem coneixement de control de cerca.<br />
Coneixement de control de cerca<br />
Segurament convindrà afegir coneixement de control de cerca sobre:<br />
1. Quins estats són preferibles a d’altres.<br />
2. Quines regles es poden aplicar en una situació determinada.<br />
3. El subordre amb el qual s’han de tractar els subobjectius.<br />
4. Les seqüències de regles més útils per aplicar.<br />
113
Ara bé, com més coneixement introduïm, o dit d’una altra manera, com més<br />
“metaregles” afegim, més problemes haurem de considerar:<br />
1. El problema de la utilitat (introduït per en Minton l’any 1988). Analitzeu bé el<br />
problema de la utilitat a [Rich1994], a les pàgines 208-212.<br />
2. Augmenta la complexitat de l’intèrpret del sistema de producció.<br />
Vegeu [Rich1994]p208-p212<br />
RESUM<br />
Amb aquesta sessió finalitzem un conjunt de tres sessions en les quals s’ha treballat la<br />
representació del coneixement basada en regles. Hem analitzat els sistemes<br />
experts (de primera i de segona generació) com a exemples de sistemes basats en<br />
regles i hem treballat els problemes que poden haver-hi en un sistema basat en regles<br />
qualsevol, bàsicament centrats en el procés de matching, moment en el qual es<br />
decideix quina serà la següent regla a aplicar. El sistemes PROSPECTOR, MYCIN i<br />
MILORD han posat en evidència que la representació del coneixement basada en<br />
regles, normalment, requereix que s’augmenti l’expressivitat del raonament<br />
estadístic per tal d’especificar correctament el domini que representen. Ho<br />
analitzarem dins del tema 4.5 Raonament simbòlic sota incertesa – Raonament<br />
estadístic.<br />
114
SESSIÓ 20: Raonament no monòton (I) – RdC (6/15)<br />
Nom: Raonament no monòton (I) - REPRESENTACIÓ DEL CONEIXEMENT (6/15)<br />
Tipus: teòrica<br />
Format: no presencial<br />
Durada: 2 hores<br />
Dedicació: 2 hores<br />
Treball a lliurar: no<br />
Material:<br />
o Bibliografia bàsica:<br />
[Rich1994]<br />
PRECEDENTS<br />
Aquesta sessió estendrà la representació del coneixement basada en la lògica, que ja<br />
vam veure a les primeres sessions del capítol.<br />
OBJECTIUS<br />
L’objectiu d’aquesta sessió és la d’introduir el concepte de raonament simbòlic sota<br />
incertesa. Veurem que es pot analitzar des de diferents perspectives i, en aquesta<br />
sessió, ens centrarem en el raonament no monòton.<br />
CONTINGUTS<br />
En aquesta sessió analitzarem els dominis que requereixen raonament simbòlic sota<br />
incertesa, deixant clars els conceptes d’incompletesa, inconsistència i no monotonia.<br />
Tot seguit ens centrarem en el raonament no monòton i analitzarem alguns<br />
raonaments d’aquest tipus, com ara el raonament per defecte i el raonament<br />
minimalista.<br />
4.4. Coneixement incert – Raonament no<br />
monòton<br />
4.4.1. Introducció: Raonament simbòlic sota<br />
incertesa<br />
Com hem vist fins ara, tant la representació del coneixement basada en la lògica (com<br />
CP0 i CP1) com la basada en regles “pures” necessiten treballar en dominis complets i<br />
consistents. Tanmateix, la majoria de dominis són incomplets i incerts. Així doncs,<br />
necessitarem estendre les representacions anteriors i dotar-les de nous tipus de<br />
raonaments. És el que anomenarem raonament simbòlic sota incertesa.<br />
En aquest apartat veurem una petita història que posarà de manifest les<br />
característiques que poden presentar els dominis incomplets i/o incerts. Tot seguit,<br />
analitzarem com es pot tractar el coneixement incert (raonament monòton i<br />
raonament estadístic). Finalment, ens centrarem en el raonament monòton, que és<br />
l’objectiu del tema present: 4.4 Coneixement incert – Raonament no monòton.<br />
115
Història: Abbott, Babbitt i Cabot<br />
Quine i Ullian, l’any 1978, van proposar la història de l’assassí ABC, on els principals<br />
sospitosos són n’Abbott, en Babbitt i en Cabot. Aquesta història presenta, d’una<br />
manera molt amena, alguns dels problemes que habitualment presenten els dominis<br />
amb coneixement incert, difús i/o canviant. Aquesta història s’explica a continuació.<br />
Resulta que tenim tres personatges, n’Abbot, en Babbit i en Cabot, sospitosos<br />
d’assessinat. En la interrogació, cadascun dels tres sospitosos dóna la coartada<br />
següent:<br />
1. N’Abbot tenia un registre en un hotel molt respectable a Albània.<br />
2. El cunyat de’n Babbit testifica que en Babbit l’estava visitant a Brooklyn<br />
quan es va cometre l’assessinat.<br />
3. En Cabot diu que estava mirant una competició d’esquí a Catskills, però<br />
només tenim la seva paraula.<br />
A partir de l’evidència, nosaltres com a humans – de manera similar al que faria un<br />
sistema d’aprenentatge – podem extreure les hipòtesis següents:<br />
1. N’Abbot no va cometre el crim perquè té una coartada consistent.<br />
2. En Babbit no va cometre el crim perquè així ho diu el seu cunyat.<br />
Però abans de passar a dir res sobre en Cabot, afirmem la hipòtesi següent:<br />
3. Algú dels tres, n’Abbot, en Babbit o en Cabot va cometre l’assessinat.<br />
Per tant, tot sembla indicar que en Cabot va cometre el crim. Però just en arribar a<br />
aquesta conclusió, en nostre coneixement s’amplia amb la informació següent: una<br />
càmera va gravar en Cabot en la competició d’esquí. Per tant, això es porta a valorar<br />
la hipòtesi següent:<br />
4. En Cabot no va cometre el crim perquè estava mirant una competició<br />
d’esquí.<br />
I, en conseqüència, entrem en una contradicció. Noteu que aquest tipus de raonament<br />
és molt habitual en els sers humans. Per tant, s’ha de rebutjar una de les quatre<br />
hipòtesis. Analitzem tot seguit el nostre nivell de creença en cadascuna d’elles.<br />
<strong>La</strong> base per (1) és un hotel respectable. Per tant, confiem que la coartada és<br />
certa.<br />
<strong>La</strong> base per (2) és un cunyat, el qual podria estar mentint per protegir un<br />
familiar seu.<br />
<strong>La</strong> base per (3) és que sembla que ningú més tenia cap motiu per cometre<br />
l’assessinat. A més, no hi ha hagut robatori ni cap altra acció. Per tant, tot<br />
apunta que l’assassí és un dels tres.<br />
Les dues evidències més febles són (2) i (3). Per tant, si rebutgem (2) o (3), estaríem<br />
fent una de les dues accions següents:<br />
Incriminar en Babbitt.<br />
Augmentar el nostre ventall de sospitosos, considerant altres persones.<br />
116
Si rebutgem (2), cal que revisem la nostra creença que el cunyat de’n Babbit estava<br />
dient la veritat. Si rebutgem (3), rebutgem la hipòtesi que ningú més que ells tres es<br />
beneficiava de l’assessinat.<br />
En aquest punt podem seguir moltes estratègies, les quals es veuran al llarg d’aquest<br />
capítol. Una estratègia general seria reduir el conjunt d’hipòtesis fins a trobar el<br />
subconjunt mínim que encara té contradicció. En aquest punt, segurament podrem<br />
entrar noves creences al sistema i eliminar-ne d’altres.<br />
Com tractar el coneixement incert?<br />
Els problemes que comporten el coneixement incert, incomplet i/o canviant es poden<br />
tractar des de diferents enfocaments. Cadascun d’ells tracta alguns dels problemes<br />
que sorgeixen. Al llarg d’aquest capítol en treballarem dos: el raonament no monòton<br />
(com a extensió del que hem vist en la representació del coneixement basada en la<br />
lògica) i el raonament estadístic (com a extensió del que hem presentat com a<br />
representació del coneixement basada en regles).<br />
1. Raonament no monòton. Els axiomes i/o les regles d’inferència s’estenen per tal<br />
que sigui possible raonar amb informació incompleta. Mantenen el fet que en un<br />
moment donat un sentència pot ser certa, falsa o bé cap de les dues anteriors.<br />
(L’estudiarem al llarg d’aquest tema: 4.4 Coneixement incert – Raonament no<br />
monòton).<br />
2. Raonament estadístic. S’estén la representació per permetre algun tipus de<br />
mesura numèrica sobre la certesa (en comptes de cert o fals) per associar a cada<br />
sentència (o regla). (L’estudiarem al llarg del tema següent: 4.5 Coneixement incert –<br />
Raonament estadístic).<br />
Vegeu [Rich1994]p216-p217<br />
Sistemes de raonament no monòton<br />
Els sistemes de raonament no monòton es dissenyen perquè puguin resoldre<br />
problemes en els quals pot no aparèixer una de les propietats següents: completesa,<br />
consistència i/o monotonia.<br />
Quins aspectes s’hauran de tractar? (vegeu [Rich1994] a les pàgines 217-219)<br />
1. Com poden estendre’s les bases de coneixement per permetre inferències<br />
realitzades tant sobre l’absència de coneixement com sobre una presència del<br />
mateix?<br />
2. De quina manera es pot actualitzar correctament la base del coneixement quan<br />
s’afegeix un nou fet (o quan s’elimina qualsevol anterior)?<br />
3. Com pot usar-se el coneixement per ajudar a resoldre els conflictes que sorgeixen<br />
quan es poden usar diferents inferències no monòtones inconsistents?<br />
En el moment de tractar els sistemes de raonament no monòton (vegeu [Rich1994]<br />
a les pàgines 219-221) analitzarem diferents aspectes. D’una banda, diferents tipus<br />
de raonament no monòton com el raonament per defecte (vegeu 4.4.2 Tipus de<br />
raonament no monòton: Raonament per defecte) i el raonament minimalista (vegeu<br />
117
4.4.3 Tipus de raonament no monòton: Raonament minimalista). D’altra banda,<br />
analitzarem diferents aspectes relacionats amb la pròpia implementació dels<br />
sistemes, com el tipus de problem solver (o el sistema que resol el problema; vegeu<br />
4.4.4 Implementació – Problem solver) i el sistema de manteniment de la veritat<br />
(vegeu 4.4.5 Implementació – Sistemes de manteniment de la veritat), associat al<br />
sistema, per tal de garantir en tot moment la consistència de les dades.<br />
Vegeu [Rich1994]p217-p221<br />
4.4.2. Tipus de raonament no monòton: Raonament<br />
per defecte<br />
El raonament per defecte (o bé la seva expressió anglesa: default reasoning)<br />
intenta arribar a unes conclusions basades en què és més probable que sigui cert.<br />
Existeixen diferents propostes per tractar el raonament per defecte. Com a<br />
representació del coneixement, veurem la proposta que fa la lògica no monòtona i,<br />
com a possibles raonaments, veurem l’abducció i l’herència.<br />
Lògica no monòtona<br />
<strong>La</strong> lògica no monòtona (NML) va ser proposada per en McDermott i en Doyle l’any<br />
1980.<br />
<strong>La</strong> idea fonamental d’aquesta lògica és un sistema que proporciona una base per<br />
raonar per omissió, on el llenguatge de la lògica de predicats de primer ordre<br />
s’augmenta amb un operador modal M, el qual es llegeix com “és consistent” (vegeu<br />
[Rich1994] a les pàgines 221-223 ).<br />
Per exemple, l’expressió:<br />
∀ x, y : Amics(<br />
x,<br />
y)<br />
∧ M Està _ d'<br />
acord(<br />
x,<br />
y)<br />
→ Defensarà(<br />
x,<br />
y)<br />
es llegeix de la manera següent: “per tot x i y, si x i y són Amics i si el fet que x s’hagi<br />
posat d’acord amb y és consistent amb tota la resta de suposicions, llavors es<br />
conclou que x Defensarà a y”.<br />
Raoneu sobre l’exemple següent descrit usant la lògica no monòtona:<br />
( 1)<br />
∀ x : ocell(<br />
x)<br />
∧ M vola(<br />
x)<br />
→ vola(<br />
x)<br />
( 2)<br />
∀ x : estruç(<br />
x)<br />
∧ M ¬ vola(<br />
x)<br />
→ ¬ vola(<br />
x)<br />
( 3)<br />
ocell ( FRED)<br />
( 4)<br />
estruç ( FRED)<br />
Què conclouen les diferents inferències?<br />
Suposem que apliquem dos ordres diferents d’inferència: ordre1 (1)+(2); i ordre2 (2) +<br />
(1).<br />
• Ambdós ordres arriben a la mateixa conclusió: “FRED vola”.<br />
• Ambdós ordres arriben a la mateixa conclusió: “FRED no vola”.<br />
L’ordre1 arriba a la conclusió que “FRED vola”, ja que si apliquem (1) es<br />
conclou que “FRED vola” i a l’utilitzar (2) s’obté que “no és consistent assumir<br />
que FRED no vola” i, per tant, no es pot aplicar. Mentre que l’ordre 2 arriba a la<br />
conclusió que “FRED no vola”.<br />
118
• L’ordre1 arriba a la conclusió que “no FRED vola”, ja que si apliquem (1) es<br />
conclou que “FRED vola” i a l’utilitzar (2) s’obté que “FRED no vola”, ja que (4)<br />
indica que FRED és una estruç. Així doncs, l’ordre1 arriba a la conclusió final<br />
que “FRED no vola”. Mentre que l’ordre 2 arriba a la conclusió que “FRED<br />
vola”.<br />
Aquesta teoria, en aquest exemple, conclou que no es pot determinar res sobre si<br />
FRED vola o no vola, ja que existeixen diferents inferències no monòtones<br />
inconsistents. És una postura conservadora.<br />
Raonaments no monòtons: Abducció<br />
Existeixen classes comunes de raonament no monòton. Un d’aquests tipus de<br />
raonament és l’abducció.<br />
<strong>La</strong> lògica estàndard porta a terme deduccions. Així doncs, si seguim l’exemple<br />
següent:<br />
( 1)<br />
∀ x : Varicel·<br />
la(<br />
x)<br />
→ Granets(<br />
x)<br />
( 2)<br />
Varicel · la(<br />
JOAN)<br />
Podem concloure –per deducció– que:<br />
( 3)<br />
Granets ( JOAN)<br />
Però què passa si en comptes de saber que en JOAN té la varicel·la només podem<br />
observar que en JOAN té granets? Podem arribar a alguna conclusió? Encara que<br />
potser no tingui la varicel·la, és possible que davant de l’absència d’altres evidències,<br />
arribéssim a la conclusió que “en Joan té la varicel·la”. Aquest tipus de raonament per<br />
defecte s’anomena raonament per abducció.<br />
Podem definir el raonament per abducció de la manera següent: “donades dues fbf<br />
(formes ben fonamentades) AB i B, per qualsevol expressió A i B, si és consistent<br />
assumir A, fer-ho”. Vegeu [Rich1994], pàgina 224.<br />
Vegeu [Rich1994]p224<br />
Raonaments no monòtons: Herència<br />
El raonament no monòton s’utilitza freqüentment en l’herència dels valors dels<br />
atributs, des de la descripció prototipus d’una classe cap a les entitats individuals que<br />
pertanyen a la classe. Per a la descripció de les excepcions (no resolubles usant CP1)<br />
s’ajuda de regles per defecte com la següent:<br />
: ¬ AB(<br />
x)<br />
¬ AB(<br />
x)<br />
<strong>La</strong> qual s’interpreta com “si és consistent assumir que no existeix cap ABnormalitat<br />
sobre x, AB(x), assumir-ho”.<br />
Així doncs, podríem descriure el domini següent<br />
119
usant sentències de l’estil:<br />
( 1)<br />
∀ x : ocell(<br />
x)<br />
∧ ¬ abocell<br />
( x)<br />
→ vola(<br />
x)<br />
( 2)<br />
∀ x : estruç(<br />
x)<br />
∧ ¬ abestruç<br />
( x)<br />
→ ¬ vola(<br />
x)<br />
( 3)<br />
∀ x : estruç(<br />
x)<br />
→ ocell(<br />
x)<br />
( 4)<br />
∀ x : avió(<br />
x)<br />
→ vola(<br />
x)<br />
( 5)<br />
∀ x : coet(<br />
x)<br />
→ vola(<br />
x)<br />
( 6)<br />
estruç ( FRED)<br />
( 7)<br />
ocell ( TWEETY)<br />
Podem observar que poden existir diferents tipus d’abnormalitats. Per exemple, si un<br />
estruç va en avió podria volar. Per aquest motiu, pot convenir distingir les<br />
abnormalitats relacionades amb “ocell” de les abnormalitats relacionades amb “estruç”.<br />
Amb aquestes sentències es podria arribar a concloure que el tipus “estruç” és una<br />
“abnormalitat dels ocells”.<br />
Si apliquem la lògica per defecte a aquest exemple, segons com l’haguéssim descrit,<br />
de nou podríem obtenir diferents inferències que portessin a diferents conclusions<br />
inconsistents. Per tant, necessitaríem un mecanisme per decidir quina extensió és la<br />
correcta.<br />
Vegeu [Rich1994]p224-p226<br />
4.4.3. Tipus de raonament no monòton: Raonament<br />
minimalista<br />
El raonament minimalista pretén oferir mètodes per referir-se a un tipus específic i<br />
útil de coses que són certes en general (vegeu [Rich1994] a la pàgina 226). Aquests<br />
models es basen en la idea de trobar el model mínim. De manera general, direm que<br />
un model és mínim si no existeixen altres models en els quals siguin certes menys<br />
coses.<br />
Un dels raonaments minimalistes més usats és l’assumpció d’un món tancat.<br />
L’assumpció d’un món tancat (CWA)<br />
L’ assumpció d’un món tancat (close-world assumption – CWA en anglès) va ser<br />
proposada per en Reiter l’any 1978. <strong>La</strong> CWA es basa en que els únics objectes que<br />
120
satisfan el predicat P són aquells que ho han de fer. <strong>La</strong> CWA és una tècnica força<br />
poderosa i força usada per a les bases de dades (vegeu [Rich1994] a les pàgines 227 i<br />
228). Per exemple, si demanen si una certa persona treballa en una empresa, es pot<br />
respondre que no si aquesta no surt a la llista de treballadors, la qual cosa no té per<br />
què implicar que no hi treballa. El llenguatge de programació PROLOG es basa en la<br />
CWA.<br />
Malgrat la seva potència en alguns entorns, l’assumpció del món tancat té dues<br />
debilitats:<br />
1. Aquesta assumpció no sempre és certa en el món real.<br />
2. És un procés de raonament purament sintàctic.<br />
A continuació, aquests dos problemes s’expliquen amb més detall.<br />
<strong>La</strong> primera debilitat de l’assumpció del món tancat és que hi ha algunes aplicacions en<br />
què el domini no és tancat. Per exemple, en la història ABC, el coneixment no és<br />
estàtic i la informació es va afegint incrementalment; a més, al conèixer noves<br />
evidències, s’invaliden algunes de les hipòtesis prèvies. En aquests casos, no serà<br />
possible usar aquesta estratègia.<br />
Segonament, el raonament basat en l’assumpció del món tancat és un raonament<br />
purament sintàtic i no semàntic. Per il·lustrar els problemes que això pot suposar,<br />
considerem l’exemple següent. Suposem que volem expressar qui està solter entre un<br />
conjunt de persones que estan representades en el nostre domini. Per a tal efecte,<br />
s’usen els predicats següents:<br />
Solter (Joan)<br />
Solter (Maria)<br />
Per tant, si ara demanem si una tercera persona, en Toni, està soltera, el programa<br />
verificarà el predicat !Solter(Toni), concloent que en Toni no està casat. Malgrat això,<br />
suposeu que la representació considera les persones que estan casades. Per tant, el<br />
coneixement anterior s’hauria d’expressar de la manera següent:<br />
!Casat (Joan)<br />
!Casat (Maria)<br />
En aquest cas, si fem la mateixa pregunta de si en Toni està casat, és a dir,<br />
!Casat(Toni), la resposta serà negativa. Per tant, per assumpció del món tancat, se<br />
suposarà que en Toni sí que està casat, quan, de fet, no tenim informació sobre l’estat<br />
cívil de’n Toni. Aquest exemple mostra una de les febleses més importants de<br />
l’assumpció del món tancat.<br />
RESUM<br />
En aquesta sessió s’ha introduït el concepte de raonament simbòlic sota incertesa.<br />
És important que hagi quedat clar quan es produeix incompletesa, inconsistència o<br />
no monotonia.<br />
Ens hem centrat en el raonament no monòton (com a extensió de la representació del<br />
coneixement basada en la lògica que oferia CP1). Concretament, hem analitzat<br />
diferents tipus de raonaments no monòtons: el raonament per defecte i el<br />
raonament minimalista.<br />
121
122
SESSIÓ 21: Raonament no monòton (II) – RdC (7/15)<br />
Nom: Raonament no monòton (II) - REPRESENTACIÓ DEL CONEIXEMENT (7/15)<br />
Tipus: teòrica<br />
Format: no presencial<br />
Durada: 2 hores<br />
Dedicació: 2 hores<br />
Treball a lliurar: no<br />
Material:<br />
o Bibliografia bàsica:<br />
[Rich1994]<br />
PRECEDENTS<br />
En la sessió anterior es va començar a estudiar el raonament no monòton. A partir del<br />
que ja vam veure en la sessió anterior considerarem diferents aspectes de la<br />
implementació d’aquests mètodes de raonament.<br />
OBJECTIUS<br />
L’objectiu d’aquesta sessió és completar el tema de raonament no monòton com a<br />
extensió de la representació del coneixement basada en la lògica. Concretament, en<br />
aquesta sessió focalitzarem la nostra atenció en els detalls d’implementació per als<br />
sistemes de raonament no monòton.<br />
CONTINGUTS<br />
Els continguts d’aquesta sessió es centraran en els diferents aspectes d’implementació<br />
per als mecanismes de raonament no monòton. Analitzarem les conseqüències dels<br />
diferents tipus de raonament que pot oferir el sistema que resol el problema i veurem<br />
els sistemes de manteniment de la veritat, concretament, estudiarem els basats en<br />
justificacions.<br />
4.4.4. Implementació – Sistema que resol el problema<br />
En el moment d’implementar un mecanisme de raonament no monòton, basat en un<br />
sistema lògic, sorgeixen clarament dos mecanismes imprescindibles. D’una banda el<br />
sistema que resol el problema (o en anglès problem solver) i, d’altra banda, un<br />
sistema de manteniment de la veritat (en anglès truth maintenance system o<br />
TMS).<br />
En aquest apartat farem una breu introducció sobre la necessitat de la implementació<br />
d’aquests mecanismes i, tot seguit, ens centrarem en el sistema que resol el problema,<br />
en funció de si realitza: 1) un raonament cap endarrere, 2) un raonament cap endavant<br />
o bé 3) un sistema híbrid.<br />
123
Implementacions per als mecanismes de raonament no<br />
monòton<br />
Existeixen diferents problemes en els sistemes lògics davant dels sistemes reals:<br />
1. <strong>La</strong> forma de derivar exactament aquelles conclusions no monòtones que són<br />
rellevants per resoldre el problema.<br />
2. Com actualitzar gradualment el coneixement mentre progressa la resolució del<br />
problema.<br />
3. És freqüent que, en els sistemes de raonament no monòton, les regles<br />
d’inferència disponibles permetin més d’una interpretació dels fets coneguts.<br />
4. En general, les teories –que vam veure en la sessió anterior– són<br />
computacionalment ineficaces, ja que cap d’elles és decidible.<br />
En el moment d’implementar un mecanisme de raonament no monòton, necessitarem<br />
que el procés de raonament consideri dos conceptes (o mòduls) diferents: el sistema<br />
que resol el problema i el sistema de manteniment de la veritat, el qual ha de<br />
localitzar les inferències no monòtones de manera que els canvis en la base de dades<br />
es tractin de forma adequada.<br />
Tot seguit veurem les implicacions que poden tenir les diferents maneres de raonar del<br />
sistema que resol el problema.<br />
Vegeu [Rich1994]p229-p230<br />
Raonament cap endarrere<br />
En el moment de resoldre un problema es pot raonar cap endarrere per tal<br />
determinar si alguna expressió P és certa (o bé trobar un conjunt de vincles entre les<br />
variables que facin que sigui cert). Aquests sistemes poden proporcionar algunes de<br />
les característiques següents:<br />
– Que permetin clàusules per defecte a les regles cap endarrere. Expressions de l’estil<br />
EXCEPTE-QUE:<br />
Sospitós(<br />
x)<br />
←<br />
Es _ beneficia(<br />
x)<br />
EXCEPTE − QUE<br />
Coartada(<br />
x)<br />
– Que suportin algun tipus de debat en el qual s’intentin generar tant arguments a<br />
favor de P com en contra.<br />
Analitzeu l’exemple que mostra la figura 7.2, de la pàgina 232 de’n [Rich1994], el qual<br />
es basa en la història que vam presentar del cas d’assassinat ABC. Observeu diferents<br />
fets:<br />
– Objectiu: Sospitós(x)?<br />
– Canvia el resultat (el sospitós) en funció de l’ordre en el qual s’apliquen les regles?<br />
– Una possible solució seria realitzar un debat. En aquest cas, convindrà realitzar<br />
algun tipus de tria sobre qui es considera més sospitós en base a una sèrie<br />
d’heurístiques/regles, normalment ad hoc al domini.<br />
124
– Què passa si després de trobar un possible sospitós ens arriba nova informació?<br />
Podeu observar que el raonament cap endarrere no és capaç de detectar que alguna<br />
cosa ha canviat. En aquests casos convindria el raonament cap endavant.<br />
Vegeu [Rich1994]p230-p232<br />
Raonament cap endavant<br />
<strong>La</strong> resolució d’un problema també es pot fer raonant cap endavant, a partir de les<br />
dades de què es disposa.<br />
Les conclusions que es deriven de forma no monòtona es manipulen de la mateixa<br />
manera que les que es deriven de forma monòtona.<br />
Els sistemes de raonament no monòton que suporten aquest tipus de raonament<br />
permeten que les regles estàndard d’encadenament cap endavant s’estenguin amb<br />
clàusules, de l’estil EXCEPTE-QUE, que proporcionen la base del raonament per<br />
defecte. Com per exemple:<br />
Si : Es _ beneficia(<br />
x),<br />
EXECEPTE − QUE<br />
llavors Sospitós(<br />
x)<br />
Coartada(<br />
x),<br />
Analitzeu l’exemple que mostra la figura 7.3, de la pàgina 233 de’n [Rich1994], el qual<br />
es basa en la història que vam presentar del cas d’assassinat ABC, aquesta vegada<br />
raonant cap endavant.<br />
Vegeu [Rich1994]p232-p233<br />
Sistemes híbrids<br />
En general, pot convenir combinar el raonament cap endarrere amb el raonament cap<br />
endavant, proporcionant sistemes de raonament híbrids.<br />
En aquests casos, per exemple en la història del cas d’assassinat ABC, podríem<br />
utilitzar una regla cap endarrere per tal de trobar un sospitós. Mentre que les regles<br />
cap endavant s’haurien d’activar com a conseqüència de l’aparició de nous fets que es<br />
considerin rellevants per a la tasca de trobar un sospitós.<br />
Vegeu [Rich1994]p232<br />
4.4.5. Implementació – Sistemes de manteniment de<br />
la veritat<br />
Dins d’un sistema de raonament no monòton existeixen inferències monòtones i<br />
inferències no monòtones. Són les inferències no monòtones les que poden passar a<br />
ser invàlides a l’obtenir nou coneixement dins de la base de coneixement, ja que les<br />
conclusions a les quals es pot arribar amb la nova informació poden ser inconsistents<br />
respecte les que s’havien formulat anteriorment. Els sistemes de manteniment de la<br />
125
veritat seran els encarregats de localitzar aquestes inferències no monòtones, de tal<br />
manera que els canvis en la base del coneixement (BC) es tractin de forma adequada.<br />
A tall d’exemple, veurem els sistemes de manteniment de la veritat basats en<br />
justificacions.<br />
Tècniques pel manteniment de la veritat<br />
Existeixen diferents tipus de tècniques de manteniment de la veritat. Podríem agruparles<br />
en dues famílies diferents: aquelles que es basen en cerca primer en profunditat, o<br />
bé les que es basen cerca primer en amplada.<br />
Cerca primer en profunditat. Dins d’aquesta família podríem posar com a exemple<br />
tres tècniques diferents:<br />
1. Backtracking dirigit per dependències. En el moment que el backtracking ha de<br />
reconsiderar un camí, desfà només allò que ha provocat la contradicció i no pas allò<br />
que és independent de la contradicció (vegeu [Rich1994] a les pàgines 233-236).<br />
Recordeu que el backtracking cronològic reconsidera els camins en base a un ordre<br />
estructural (o cronològic) i no en base a dependències entre els diferents fets, és a dir,<br />
realitza una cerca cega.<br />
2. Sistemes basats en justificacions. Permeten connectar assercions mitjançant una<br />
xarxa de dependències. Aquest sistema l’analitzarem en el concepte següent, vegeu<br />
[Rich1994] a les pàgines 236-245.<br />
3. Sistemes basats en la lògica. Permeten detectar contradiccions automàticament<br />
mitjançant la lògica (vegeu [Rich1994] a la pàgina245 ).<br />
Cerca primer en amplada. Dins d’aquesta família podríem considerar com a exemple<br />
la tècnica següent:<br />
1. Sistemes basats en suposicions. Manté en paral·lel diversos contextos, cadascun<br />
dels quals conté un conjunt de suposicions consistents. A l’evolucionar el raonament,<br />
l’univers de contextos va podant-se a mesura que es detecten contradiccions (vegeu<br />
[Rich1994] a les pàgines 245-249 ).<br />
Vegeu [Rich1994]p233-p249<br />
Sistemes de manteniment de la veritat basats en<br />
justificacions<br />
Analitzarem els sistemes de manteniment de la veritat basats en justificacions (o<br />
JTMS), a tall d’exemple per analitzar un possible sistema de manteniment de la veritat.<br />
Els sistemes basats en justificacions permeten connectar assercions mitjançant una<br />
xarxa de dependències. L’objectiu és que de manera “automàtica” es puguin detectar i<br />
solventar les inconsistències.<br />
Una asserció (o node) d’aquesta xarxa de dependències es creu (és a dir, és creïble)<br />
quan té una justificació vàlida. Direm que una justificació és vàlida si es creu en totes<br />
les assercions de la llista_in i no es creu en cap asserció de la llista_out. El<br />
funcionament d’aquesta xarxa de dependències es basa en la definició d’aquests dos<br />
tipus de llistes: les llistes_in i les llistes_out. Direm que en una llista_in totes les<br />
assercions es connecten a la justificació mitjançant enllaços “+”; mentre que en una<br />
llista_out les assercions es connecten a la justificació mitjançant enllaços “-”.<br />
126
Així doncs, la regla:<br />
Sospitós(<br />
x)<br />
←<br />
Es _ beneficia(<br />
x)<br />
EXCEPTE − QUE<br />
Coartada(<br />
x)<br />
es representaria de la manera que es mostra a la figura 7.5, a la pàgina 238 del<br />
[Rich1994] per l’Abbott.<br />
Els nodes (assercions) s’etiqueten amb un IN si s’ha de creure en l’asserció que es<br />
correspon amb el node. I s’etiqueta amb un OUT si no existeix un bona raó per creure<br />
en l’asserció. Així doncs, davant del fet Es_beneficia(Abbott) la xarxa quedaria de la<br />
manera que es mostra a figura 7.6, a la pàgina 239 del [Rich1994].<br />
A partir d’aquest senzill funcionament es considerà que es satisfà el criteri de<br />
consistència quan cada node IN se suporta com a mínim per una justificació vàlida i<br />
tots els altres nodes estan a OUT. Així doncs, serà vàlid si la llista_in està etiquetada<br />
com a IN i la llista_out està etiquetada com a OUT.<br />
Seguiu l’exemple que es mostra a les pàgines 236-245 del [Rich1994] seguint la<br />
història del cas de l’assassinat ABC. Observeu diferents característiques:<br />
– la necessitat de la bona fonamentació per evitar cicles;<br />
– la utilització del raonament minimalista usant l’assumpció del món tancat (CWA);<br />
– la manera amb la qual es detecten contradiccions usant les etiquetes IN i OUT;<br />
– l’ús de la idea del backtracking dirigit per dependències;<br />
– quan i com s’usa el raonament abductiu;<br />
– etc.<br />
Vegeu [Rich1994]p236-p245<br />
RESUM<br />
En aquesta sessió hem analitzat consideracions a nivell d’implementació per als<br />
mecanismes de raonament no monòton. Concretament hem vist diferents qüestions<br />
sobre el sistema que resol el problema i sobre el sistema de manteniment de la<br />
veritat. Així doncs, en aquesta sessió, conjuntament amb la sessió anterior, s’ha<br />
estudiat el raonament no monòton, com a extensió de la representació del<br />
coneixement basada en la lògica.<br />
127
128
SESSIÓ 22: Raonament estadístic (I) – RdC (8/15)<br />
Nom: Raonament estadístic (I) - REPRESENTACIÓ DEL CONEIXEMENT (8/15)<br />
Tipus: teòrica<br />
Format: no presencial<br />
Durada: 2,5 hores<br />
Dedicació: 3 hores<br />
Treball a lliurar: no<br />
Material:<br />
o Bibliografia bàsica:<br />
[Rich1994]<br />
o Bibliografia complementària:<br />
[Lucas1991]<br />
o Recursos de programari i de maquinari<br />
PRECEDENTS<br />
Aquesta sessió parteix dels coneixements vistos en la representació del coneixement<br />
basada en regles.<br />
OBJECTIUS<br />
Els objectius d’aquesta sessió són els d’analitzar com introduir coneixement incert en<br />
un sistema basat en regles, de tal manera que sigui viable des d’un punt de vista<br />
computacional.<br />
CONTINGUTS<br />
En aquesta sessió introduirem el raonament estadístic analitzant, en primer lloc, la<br />
viabilitat de la probabilitat i el teorema de Bayes. En segon lloc, ja passarem a analitzar<br />
el mètode de raonament estadístic usat pel sistema MYCIN: els factors de certesa.<br />
4.5. Coneixement incert – Raonament<br />
estadístic<br />
4.5.1. <strong>La</strong> probabilitat i el teorema de Bayes<br />
Quan hom es proposa incorporar raonament estadístic dins d’un sistema basat en<br />
regles, el primer amb el qual pensa és en la probabilitat i en el teorema de Bayes.<br />
En aquest primer apartat del tema 4.5 Coneixement incert – Raonament estadístic,<br />
començarem analitzant què entenem per raonament estadístic i, tot seguit, analitzarem<br />
la possibilitat de realitzar-lo mitjançant els mecanismes que ens pot proporcionar la<br />
probabilitat i el teorema de Bayes.<br />
129
Raonament estadístic<br />
En algunes resolucions de problemes és convenient descriure les creences sobre les<br />
quals no es té certesa però que alhora, tanmateix, són recolzades per certes<br />
evidències.<br />
Sota aquest marc, podríem distingir dos tipus de problemes:<br />
1. Problemes en els quals es dóna una certa aleatorietat. Com per exemple, els jocs<br />
com el bridge i el blackjack.<br />
2. Problemes en els quals el món no és aleatori. És a dir, tot és “normal” fins que<br />
sorgeix alguna excepció. Com per exemple les tasques en les quals es necessita el<br />
sentit comú, on a vegades és útil alguna mesura estadística.<br />
En aquest tema es presentaran mesures per a aquells tipus de problemes que<br />
necessiten alguna mesura de probabilitat, certesa o creença.<br />
Com a documentació complementària a totes les sessions relacionades amb el tema<br />
4.5 Coneixement incert – Raonament estadístic, es recomana el capítol 5: Reasoning<br />
with Uncertainty, del llibre [Lucas1991].<br />
Vegeu [Rich1994]p253-p254<br />
Vegeu com a documentació complementària al tema 4.5 Coneixement incert –<br />
Raonament estadístic, el capítol 5 del llibre [Lucas1991]p253-p335<br />
<strong>La</strong> probabilitat i el teorema de Bayes<br />
El concepte fonamental de les estadístiques bayesianes és la probabilitat<br />
condicionada, p(H/F), la qual es llegeix com: “la probabilitat de la hipòtesi H atès que<br />
s’observa el fet F”.<br />
Recordem el teorema de Bayes:<br />
p(<br />
F / Hi<br />
) ⋅ p(<br />
Hi<br />
)<br />
p(<br />
Hi<br />
/ F)<br />
= K<br />
p(<br />
F / H ) ⋅ p(<br />
H )<br />
∑<br />
n=<br />
1<br />
n<br />
n<br />
On Hn formen un conjunt exhaustiu d’hipòtesis mútuament excloents i K és el nombre<br />
total de possibles hipòtesis. Sigui p(Hi/F) la probabilitat que la hipòtesi Hi sigui certa<br />
donat el fet F. Sigui p(F/Hi) la probabilitat que s’observi el fet F donada la hipòtesi Hi<br />
com a certa. I sigui p(Hi) la probabilitat a priori que la hipòtesi Hi sigui certa,<br />
independentment de qualsevol fet específic.<br />
Vegeu [Rich1994]p254-p255<br />
Exemple d’aplicació: PROSPECTOR<br />
El sistema PROSPECTOR (que ja el vam presentar com a sistema expert de primera<br />
generació, vegeu la sessió corresponent) és un sistema expert dissenyat per predir<br />
dipòsits de minerals a partir de dades geològiques.<br />
130
Ens podríem plantejar de representar el coneixement del sistema usant el teorema de<br />
Bayes, de tal manera que, per exemple, podríem intentar resoldre el problema de la<br />
manera següent:<br />
Imaginem que el nostre objectiu és saber si trobarem el mineral U en una zona rocosa,<br />
és a dir, volem saber p(U/Rocosa). Sabent que el conjunt exhaustiu i independent de<br />
possibles hipòtesis està format per U, C i F. Per tant, per calcular p(U/Rocosa) hem de<br />
conèixer les dades següents (per exemple): p(U) = 0.001, p(C) = 0.05, p(F) = 0.2,<br />
p(Rocosa/U) = 0.6, p(Rocosa/C) = 0.3 i p(Rocosa/F) = 0.7. Ara, a partir d’aquestes<br />
dades, ja podeu calcular p(U/Rocosa). Quant val?<br />
Ara bé, suposem que tenim dos fets i aquests no són independents entre ells, això vol<br />
dir que no els podem considerar per separat. Per tant, si coneixem un fet a priori f i un<br />
nou fet F recordem que és necessari efectuar el càlcul següent:<br />
p(<br />
f / F,<br />
H )<br />
p( H / F,<br />
f ) = p(<br />
H,<br />
F)<br />
⋅<br />
p(<br />
f / F)<br />
Podem observar que en un món mínimament complex això creix exponencialment pel<br />
nombre de proposicions diferents a considerar (2^n). Així doncs, des d’un punt de vista<br />
computacional, la resolució d’aquest sistema usant Bayes esdevé intractable.<br />
Analitzem en el concepte següent els problemes que sorgeixen quan s’aplica la<br />
probabilitat i el teorema de Bayes.<br />
Vegeu [Rich1994]p254-p255<br />
Problemes<br />
<strong>La</strong> probabilitat i el teorema de Bayes resulten inaplicables, com a raonament<br />
estadístic, per diferents motius:<br />
- El problema de l’adquisició del coneixement és inabordable.<br />
- Les persones estimen erròniament (de fet això serà inherent a quasi tots els mètodes<br />
de raonament estadístic, però és una característica que cal tenir present).<br />
- L’espai necessari per emmagatzemar totes les probabilitats és massa gran.<br />
- El temps utilitzat per calcular les probabilitats és massa elevat.<br />
Un cop es van detectar aquests problemes, es van començar a proposar diferents<br />
mecanismes per tal que aquesta teoria fos tractable. Per exemple, el sistema<br />
PROSPECTOR va desenvolupar els nivells de suficiència (també coneguts com<br />
level of sufficiency (LS), o likelihood ratio (lambda)) i els nivells de necessitat<br />
(també coneguts com level of necessity (LN) o negative likelihood ratio (lambda<br />
negada)) com a mesures de probabilitat, associades a les regles del seu sistema<br />
(vegeu-los a [Lucas1991]p270-p280 ).<br />
Al llarg del tema analitzarem els mecanismes, propostes o bé teories següents:<br />
1. Incorporació de factors de certesa a les regles.<br />
2. Xarxes bayesianes.<br />
3. Teoria de Dempster-Shafer.<br />
4. <strong>La</strong> lògica difusa.<br />
Vegeu [Rich1994]p255-p256<br />
131
4.5.2. Els factors de certesa i sistemes basats en<br />
regles<br />
El sistema MYCIN, que vam presentar com a primer sistema expert de segona<br />
generació (vegeu la sessió corresponent), va introduir els factors de certesa com una<br />
mesura de probabilitat que s’associava a les regles. Vegem la seva definició, utilització<br />
i quins problemes resulten d’aquesta proposta.<br />
El sistema MYCIN i els factors de certesa<br />
El sistema MYCIN és un sistema expert que intenta recomanar teràpies adequades<br />
per a pacients amb infeccions bacterianes. El sistema proposa assignar a cada regla<br />
un factor de certesa, CF(h,e), que representi una mesura sobre l’evidència que<br />
existeix que la conclusió (h) sigui la conseqüència de la regla, en el cas que es<br />
descrigui el seu antecedent (e): SI e LLAVORS CF(h,e) h.<br />
MYCIN utilitza les regles per tal de realitzar un raonament cap endarrere de les dades<br />
clíniques disponibles a partir de l’objectiu de trobar organismes significatius causants<br />
de malalties.<br />
Vegeu [Rich1994]p256-p257<br />
Definició del factor de certesa: CF(h,e)<br />
El factor de certesa CF(h,e) es defineix a partir de dues components: MB(h,e) i<br />
MD(h,e). MB(h,e) mesura la creença que la hipòtesi h proporcioni l’evidència e. Així<br />
doncs, MB dóna una mesura de fins a quin punt l’evidència suporta la hipòtesi. Atès<br />
que MB(h,e) pertany a l’interval [0,1], interpretarem que un 0 significa que l’evidència<br />
no suporta la hipòtesi. Vegeu la seva definició a [Lucas1991] a la pàgina 281.<br />
D’altra banda, MD(h,e) mesura sobre la incredulitat que la hipòtesi h proporcioni<br />
l’evidència e. Per tant, MD dóna una mesura de fins a quin punt l’evidència suporta la<br />
negació de la hipòtesi. En aquest cas, si tenim que MD(h,e) també pertany a l’interval<br />
[0,1], tindrem que un 0 indica que l’evidència suporta la hipòtesi. Vegeu la seva<br />
definició a [Lucas1991] a la pàgina 281.<br />
A partir d’ambdues mesures es desprèn la definició del factor de certesa, CF(h,e),<br />
següent:<br />
e,<br />
h ∈ Ω<br />
MB(<br />
h,<br />
e)<br />
− MD(<br />
h,<br />
e)<br />
CF(<br />
h,<br />
e)<br />
=<br />
1−<br />
min<br />
Ω Ω<br />
CF : 2 × 2 →<br />
{ MB(<br />
h,<br />
e),<br />
MD(<br />
h,<br />
e)<br />
}<br />
[ −1,<br />
1]<br />
Interpretarem que un –1 significa que la hipòtesi h és desconfirmada per l’evidència e;<br />
un 1 que la hipòtesi h és confirmada per l’evidència e; i un 0 significarà que l’evidència<br />
e no influencia en la creença de la hipòtesi h.<br />
Vegeu [Rich1994]p257<br />
Vegeu més detalladament la seva definició a [Lucas1991]p280-p286<br />
132
Com es combinen les regles?<br />
Un cop tenim el coneixement del sistema representat mitjançant fets i regles, les quals<br />
incorporen els factors de certesa assignats pels experts, necessitem saber com<br />
combinar-los en el moment d’encadenar les regles fins a obtenir la “solució al<br />
problema”.<br />
Voldrem que es satisfacin les propietats següents:<br />
a) Les funcions de combinació haurien de ser commutatives i associatives, ja que<br />
l’ordre en el qual es troben les evidències és arbitrari.<br />
b) Fins que no es trobi la certesa, les evidències addicionals que confirmin han<br />
d’incrementar MB (i anàlogament MD).<br />
c) Si les inferències incertes s’encadenen juntes, el resultat ha de ser de menor<br />
certesa que cadascuna de les inferències per separat.<br />
Analitzem les combinacions següents (vegeu [Lucas1991] a les pàgines 286 i 287):<br />
Co-conclusió: si es pot arribar a h per dos camins diferents, quin és el seu factor de<br />
certesa? Gràficament ho podríem il·lustrar de la manera següent:<br />
I la fórmula corresponent que se’n deriva és:<br />
⎧CF(<br />
h,<br />
e1'<br />
) + CF(<br />
h,<br />
e2'<br />
)( 1−<br />
CF(<br />
h,<br />
e1'<br />
)),<br />
⎪<br />
CF(<br />
h,<br />
e1'<br />
) + CF(<br />
h,<br />
e2')<br />
CF(<br />
h,<br />
e1'<br />
co e2'<br />
) = ⎨<br />
,<br />
⎪1−<br />
min{<br />
CF(<br />
h,<br />
e1'<br />
) , CF(<br />
h,<br />
e2'<br />
) }<br />
⎪<br />
⎩CF(<br />
h,<br />
e1'<br />
) + CF(<br />
h,<br />
e2'<br />
)( 1+<br />
CF(<br />
h,<br />
e1'<br />
)),<br />
133<br />
si CF(<br />
h,<br />
e ')<br />
> 0,<br />
si<br />
per i = 1,<br />
2<br />
−1<br />
< CF(<br />
h,<br />
e ')<br />
⋅CF(<br />
h,<br />
e ')<br />
≤ 0<br />
si CF(<br />
h,<br />
e ')<br />
< 0,<br />
i<br />
i<br />
1<br />
per i = 1,<br />
2<br />
And i or: quan les evidències estan combinades per and i/o or a les regles. Vegem-ho<br />
gràficament:<br />
Les fórmules que se’n deriven són:<br />
CF(<br />
e1<br />
and e2,<br />
e')<br />
= min<br />
CF(<br />
e or e , e')<br />
= max<br />
1<br />
2<br />
{ CF(<br />
e1,<br />
e'),<br />
CF(<br />
e2,<br />
e')<br />
}<br />
{ CF(<br />
e , e'),<br />
CF(<br />
e , e')<br />
}<br />
1<br />
2<br />
Propagació: Vegem com es propaga el factor de certesa en l’encadenament de<br />
regles. Vegem-ho gràficament:<br />
2
I la fórmula corresponent és:<br />
{ 0,<br />
CF(<br />
e,<br />
')<br />
}<br />
CF( h,<br />
e')<br />
= CF(<br />
h,<br />
e)<br />
⋅ max e<br />
Una vegada definits els diferents operadors definits en els factors de certesa, passem<br />
a veure un exemple (concepte següent).<br />
Vegeu [Rich1994]p257-p261<br />
Vegeu també [Lucas1991]p286-p287<br />
Exercici<br />
Suposem que tenim un sistema basat en regles, el qual estima la incertesa amb els<br />
factors de certesa, format per les regles següents:<br />
R1<br />
: if<br />
R2<br />
: if<br />
R3<br />
: if<br />
R4<br />
: if<br />
R : if<br />
5<br />
a and ( b or c)<br />
then<br />
d and f then b0<br />
f or g then h0.<br />
40<br />
a then d 0.<br />
75 fi<br />
i then g fi<br />
0.<br />
30<br />
. 60<br />
h0<br />
fi<br />
fi<br />
. 80<br />
fi<br />
De tal manera que la regla R1 té assignat el factor de certesa: CF(h, a and (b or c)) =<br />
0.80.<br />
Suposem que usem el coneixement a priori d’e’ respecte els fets a, c, f i i:<br />
CF(a,e’) = 1.00<br />
CF(c,e’) = 0.50<br />
CF(f,e’) = 0.70<br />
CF(i,e’) = -0.40<br />
Entenem que els coeficients de certesa associats a les regles indiquen el cas que els<br />
fets de les condicions són totalment coneguts, malgrat que pot ser que només<br />
sapiguem quelcom en certa mesura.<br />
L’objectiu és la hipòtesi h, és a dir, què podeu dir d’h? Recordeu que realitzarem<br />
encadenament cap endarrere de les regles. Feu l’exercici fins a resoldre’l a partir de<br />
les definicions anteriors. El resultat que us hauria de donar és 0.568.<br />
Vegeu [Lucas1991]p287-p289<br />
134
Problemes dels factors de certesa<br />
Un dels problemes fonamentals dels factors de certesa és que no garanteixen la<br />
independència entre les evidències, per tant, en aquest punt no segueix el teorema de<br />
Bayes. Això podria portar a conclusions errònies, com ara que, pel fet d’haver regat,<br />
s’arribés a la conclusió que ha plogut (vegeu [Rich1994], pàgines 261-262 ).<br />
Autors com en Pearl també van argumentar en contra del fet que donada la probabilitat<br />
condicionada p(h/e)=x, llavors p(h negada/e) sigui (1-x). A partir d’aquí sorgeixen altres<br />
propostes com les xarxes bayesianes.<br />
Vegeu [Rich1994]p261-p262<br />
RESUM<br />
En aquesta sessió hem analitzat els inconvenients d’usar la probabilitat i el teorema de<br />
Bayes per realitzar el raonament estadístic quan s’introdueix coneixement incert en un<br />
sistema de representació del coneixement basat en regles. També hem analitzat els<br />
factors de certesa, introduïts pel sistema MYCIN, per tal de solventar els problemes del<br />
teorema de Bayes.<br />
135
136
SESSIÓ 23: Raonament estadístic (II) – RdC (9/15)<br />
Nom: Raonament estadístic (II) - REPRESENTACIÓ DEL CONEIXEMENT (9/15)<br />
Tipus: teòrica<br />
Format: no presencial<br />
Durada: 2 hores<br />
Dedicació: 2 hores<br />
Treball a lliurar: no<br />
Material:<br />
o Bibliografia bàsica:<br />
[Rich1994]<br />
o Bibliografia complementària:<br />
[Lucas1991]<br />
PRECEDENTS<br />
A la sessió anterior vam analitzar la proposta que feia el sistema MYCIN com a<br />
raonament estadístic per tal de tractar el coneixement incert: els factors de certesa. En<br />
aquesta veurem dues propostes més que sorgeixen a partir dels problemes que vam<br />
poder observar.<br />
OBJECTIUS<br />
L’objectiu d’aquesta sessió és analitzar dues propostes de raonament estadístic: les<br />
xarxes bayesianes i la teoria de Dempster-Shafer.<br />
CONTINGUTS<br />
En aquesta sessió veurem el concepte de les xarxes bayesianes com a alternativa<br />
dels factors de certesa. Tanmateix, ens centrarem en la teoria de Dempster-Shafer,<br />
ja que proposa una manera de realitzar el raonament estadístic totalment diferent dels<br />
mecanismes que hem vist fins al moment.<br />
4.5.3. Xarxes bayesianes<br />
En J. Pearl va criticar diferents aspectes dels factors de certesa, com per exemple que<br />
com que no garanteixen la independència entre les evidències poden portar a<br />
conclusions errònies. Aquests diferents aspectes el van portar a proposar i justificar les<br />
xarxes bayesianes l’any 1988. Aquestes han estat molt utilitzades, tot i així només<br />
veurem el seu concepte com a mètode de raonament estadístic alternatiu i no les<br />
analitzarem en detall (ja que queda fora de l’abast dels objectius de l’assignatura).<br />
Concepte de les xarxes bayesianes<br />
En J. Pearl argumenta que per descriure el món no és necessari utilitzar una taula de<br />
probabilitats immensa en la qual es llisten les probabilitats de totes les combinacions<br />
possibles de successos, ja que la majoria de successos són independents entre ells.<br />
137
En aquest sentit proposa usar una representació del coneixement més local, on s’hi<br />
descriguin grups de successos que interactuïn.<br />
Així doncs, proposa diferenciar: 1) les proposicions que influencien en les probabilitats<br />
dels seus indicis; i 2) el fet que l’observació d’un indici afecti la probabilitat de totes les<br />
possibles causes.<br />
A partir d’aquesta idea proposa de construir un graf (o xarxa) acíclic dirigit, el qual<br />
representi les relacions de causabilitat entre les variables (vegeu la figura 8.2, a la<br />
pàgina 263 de [Rich1994] ).<br />
Les variables del graf poden ser proposicionals (cert o fals) o també variables que<br />
adoptin valors d’algun tipus (per exemple, d’alguna malaltia específica).<br />
Per tal que aquesta representació del coneixement permeti realitzar un mecanisme de<br />
raonament estadístic es necessita que a cada node hi hagi la informació següent:<br />
1. De cada node pare es necessita saber quina evidència proporciona sobre els valors<br />
que puguin adoptar els fills. Per exemple, una taula de probabilitats condicionades<br />
(vegeu la figura 8.3, a la pàgina 264 de [Rich1994] ).<br />
2. Un mecanisme que calculi la influència d’un node arbitrari sobre un altre.<br />
3. I un mecanisme que garanteixi que les probabilitats es transmeten correctament pel<br />
graf.<br />
Vegeu [Rich1994]p262-p265<br />
4.5.4. <strong>La</strong> teoria de Dempster-Shafer<br />
<strong>La</strong> teoria de Dempster-Shafer és el resultat dels treballs realitzats per en Dempster<br />
l’any 1968 i per en Shafer l’any 1976. Proposa un mètode de raonament estadístic<br />
que assigna intervals de creences a diferents conjunts de proposicions.<br />
Grau de creença<br />
A tot conjunt de proposicions s’assigna un interval: [Creença, Plausibilitat].<br />
<strong>La</strong> creença (belief) mesura la força de l’evidència a favor d’un conjunt de<br />
proposicions. El seu valor pertany a l’interval [0,1], entenent que un 0 indica que<br />
l’evidència és nul·la i un 1 indica certesa.<br />
D’altra banda, la plausibilitat (Plausibility) es defineix a partir de la creença:<br />
Pl(<br />
s)<br />
= 1−<br />
Bel(<br />
¬ s)<br />
Pl(<br />
s)<br />
∈<br />
[ 0,<br />
1]<br />
Mesura l’abast en el qual l’evidència a favor de negat s deixa espai per la creença en<br />
s. Així doncs, es satisfarà la propietat següent:<br />
Si<br />
Bel(<br />
¬ s)<br />
= 1 llavors Pl(<br />
s)<br />
= 0 i Bel(<br />
s)<br />
= 0<br />
Així doncs, l’interval [Creença, Plausibilitat] mesura: 1) el nivell de creença sobre<br />
algunes proposicions; i 2) la quantitat d’informació que es té.<br />
Vegeu [Rich1994]p265-p266<br />
138
<strong>La</strong> teoria Dempster-Shafer versus un sistema bayesià<br />
És important comprendre de quina manera interpreta el coneixement incert del domini<br />
un sistema bayesià respecte la teoria de Dempster-Shafer.<br />
Suposem que tenim tres hipòtesis rivals A, B i C. Si no es disposa de cap informació<br />
conforme siguin certes, la teoria Dempster-Shafer assignaria a cadascuna d’elles<br />
l’interval [0,1]. Aquesta teoria, a mesura que vagi disposant de més informació, anirà<br />
restringint l’interval.<br />
D’altra banda, un sistema bayesià “pur” a cadascuna de les hipòtesis li assignaria la<br />
probabilitat 1/3.<br />
Vegeu [Rich1994]p266<br />
Conceptes<br />
Univers: definirem l’univers com el marc de discerniment, també conegut pel símbol:<br />
Θ<br />
Així, per exemple, l’univers d’un problema de diagnosi pot ser:<br />
Θ = { Al · lèrgia,<br />
Grip,<br />
Re fredat,<br />
Pneumònia}<br />
L’objectiu serà assignar una mesura de creença a cadascun dels components de<br />
l’univers. Tot i així, s’haurà de tenir present que tota evidència no té perquè suportar<br />
els elements individuals de l’univers. Per exemple, l’evidència “febre” podria només<br />
suportar el subconjunt {Grip, Refredat, Pneumònia}.<br />
També considerarem que els elements de l’univers són mútuament excloents, de tal<br />
manera que l’evidència sobre quelcom podria tenir algun efecte sobre la creença<br />
respecte dels altres.<br />
Així doncs, aquesta teoria permet tractar les interaccions manipulant directament els<br />
conjunts d’hipòtesis.<br />
Funció de densitat de probabilitats m. Aquesta teoria usa la funció de densitat de<br />
probabilitats, anomenada m, de tal manera que m(p) mesura la quantitat de creença<br />
que es té sobre el conjunt d’hipòtesis p, en base a la informació de què es disposa.<br />
Aquesta funció m es defineix per tots els possibles subconjunts de l’univers, de tal<br />
manera que satisfà:<br />
∑<br />
m ( p)<br />
= 1,<br />
∀p<br />
⊆ Θ<br />
Hi haurà molts subconjunts p que no tindran sentit, pels quals m(p) adoptarà el valor 0.<br />
Bel(p). A partir de la funció m podrem definir la creença que tenim sobre un conjunt p:<br />
∑<br />
q⊆<br />
p<br />
Bel ( p)<br />
= m(<br />
q)<br />
Mecanisme de raonament. Suposem que tenim definides diferents funcions de<br />
densitat (o de creença) per a diferents evidències: com podem raonar? És a dir, com<br />
podem combinar-les?<br />
Siguin m1 i m2 dues funcions de creença.<br />
Sigui X el conjunt dels subconjunts de l’univers pels quals m1 té un valor diferent de 0.<br />
139
Sigui Y el conjunt dels subconjunts de l’univers pels quals m2 té un valor diferent de 0.<br />
Així doncs, definirem m3 de la manera següent:<br />
x<br />
m3<br />
( X ∩Y<br />
) = m3(<br />
Z)<br />
=<br />
1−<br />
∑<br />
∑<br />
∩ y≠<br />
m1(<br />
x)<br />
⋅ m2(<br />
y)<br />
∅<br />
,<br />
m1(<br />
x)<br />
⋅ m2(<br />
y)<br />
x∩<br />
y=<br />
∅<br />
Vegeu [Rich1994]p266-p267<br />
140<br />
on<br />
x ⊆ X , y ⊆ Y<br />
Vegeu més detalladament la seva definició a [Lucas1991]p300-p312<br />
Exemple<br />
Per tal de comprendre la teoria de Demster-Shafer seguiu atentament l’exemple que<br />
es detalla en les pàgines 267-270, de [Rich1994] sobre el problema de diagnosi.<br />
Veureu que es van calculant diverses funcions de creences a mesura que van arribant<br />
diferents evidències com: “febre”, a partir de la qual es defineix m1; “mucositat nasal”,<br />
a partir de la qual es defineix m2; es combinen i obtenim m3; apareix el símptoma<br />
“desapareix la febre quan el pacient se’n va de viatge”, a partir de la qual es defineix<br />
m4 i, si es combina amb m3, s’obté m5.<br />
Preguntes:<br />
1. Un cop teniu calculada m3:<br />
- Quant val Bel({Refredat,Pneumònia})?<br />
- Quant val Bel(univers)?<br />
- Quin subconjunt p de l’univers (diferent de l’univers) té un Bel(p) més gran?<br />
2. Heu comprès com s’escalen els valors en el càlcul d’m5?<br />
3. Per què han aparegut conjunts buits en el càlcul d’m5? Què significa?<br />
Vegeu [Rich1994]p267-p270<br />
RESUM<br />
En aquesta sessió s’ha revisat la proposta d’en Pearl, les xarxes bayesianes, i s’ha<br />
estudiat la teoria de Dempster-Shafer. Són dos mecanismes per tractar el<br />
coneixement incert usant el raonament estadístic.
SESSIÓ 24: Raonament estadístic (III) – RdC (10/15)<br />
Nom: Raonament estadístic (III) - REPRESENTACIÓ DEL CONEIXEMENT (10/15)<br />
Tipus: teòrica<br />
Format: no presencial<br />
Durada: 2 hores<br />
Dedicació: 2 hores<br />
Treball a lliurar: no<br />
Material:<br />
o Bibliografia bàsica:<br />
[Brule1985]<br />
[Cortés1995]<br />
o Bibliografia complementària:<br />
[Rich1994]<br />
[Garriga1995]<br />
PRECEDENTS<br />
Aquesta sessió està estretament lligada a les dues sessions anteriors, que conforma el<br />
bloc de sessions que descriuen el raonament estadístic.<br />
OBJECTIUS<br />
L’objectiu d’aquesta sessió és el de treballar la lògica difusa i comprendre com es pot<br />
usar dins d’un sistema basat en regles.<br />
CONTINGUTS<br />
En aquesta sessió analitzarem la lògica difusa presentant diferents conceptes: la<br />
necessitat de la lògica difusa; els conceptes bàsics que la descriuen; les operacions<br />
que defineixen un conjunt difús; com s’interpreta un sistema probabilístic respecte d’un<br />
sistema difús; com es realitza la composició dels valors difusos i com seria un procés<br />
d’inferència dins d’un sistema basat en regles que usa la lògica difusa, com per<br />
exemple el sistema MILORD.<br />
4.5.5. <strong>La</strong> lògica difusa<br />
Podem entendre la lògica difusa (fuzzy logic) com una altra proposta de raonament<br />
estadístic per calcular la confiança en els valors de certesa. <strong>La</strong> lògica difusa va ser<br />
introduïda per n’L.A. Zadeh l’any 1965, malgrat que els seus orígens ja els podríem<br />
trobar en la vella filosofia grega.<br />
Necessitat de la lògica difusa<br />
Hi ha una clara necessitat de l’ús de la lògica difusa, ja des d’una perspectiva del<br />
llenguatge natural. El llenguatge usa expressions clarament vagues i imprecises, com<br />
per exemple:<br />
141
L’Anna és alta.<br />
Avui fa molta calor.<br />
Si busquem més precisió en aquestes frases, moltes vegades perdem algun dels seus<br />
valors semàntics, ja que per exemple podríem dir:<br />
“L’alçada de l’Anna és de 152 cm” o bé<br />
“L’alçada de l’Anna és 1.2 la desviació estàndard de la mitjana de l’alçada de la seva<br />
edat i la seva cultura”.<br />
A partir d’aquí podrien sorgir preguntes de l’estil:<br />
“Una dona amb una alçada 1.199999 de desviació estàndard de la mitjana de l’alçada<br />
de la seva edat i la seva cultura, també s’ha de considerar alta?”; “A quina cultura<br />
pertany l’Anna?”; “En quina mesura hi pertany?”<br />
Així doncs, sembla que és més ric dir “L’Anna és alta”.<br />
[Brule1985]<br />
Vegeu una idea del concepte a [Rich1994]p270-p271<br />
Conceptes bàsics<br />
Els valors de certesa o de pertinença en un sistema difús (fuzzy system) es troben<br />
definits sobre el rang de valors [0.0, 1.0]. On 0.0 representa l’absoluta falsedat i l’1.0<br />
representa l’absoluta certesa.<br />
Així doncs, si per exemple tenim la frase “l’Anna és gran”, sabent que l’Anna té 75<br />
anys, podríem assignar un valor de certesa de 0.80. D’aquesta manera estarem<br />
interpretant la frase anterior com: “L’Anna és un membre del conjunt de la gent gran” i<br />
seria representat per:<br />
mGRAN(Anna) = 0.80<br />
On m és la funció de pertinença, en aquest cas del conjunt de la gent gran (GRAN) i<br />
retorna un valor entre 0.0 i 1.0. En aquest exemple retornaria el valor 0.80.<br />
Observeu la diferència conceptual entre els sistemes probabilístics i els sistemes<br />
difusos:<br />
Aproximació probabilística:<br />
“Hi ha un 80% de probabilitats que l’Anna sigui gran”<br />
Aproximació difusa:<br />
142
“L’Anna pertany al conjunt de la gent gran amb un grau de 0.80”<br />
[Brule1985]<br />
Operacions<br />
Un sistema difús basat en els conjunts difusos es regeix per la definició de diferents<br />
operacions. Depenent de com siguin aquestes podem obtenir sistemes difusos que<br />
estimen la certesa de manera diferent. Proposem un exemple de definicions,<br />
d’aquestes operacions, el més simple possible:<br />
Definició 1: Sigui X algun conjunt d’objectes amb els elements notats com a x. Així X<br />
= {x}.<br />
Definició 2: Un conjunt difús (fuzzy set) A dins d’x es caracteritza per una funció de<br />
pertinença mA(x), la qual associa a cada element d’x un valor de l’interval [0.0, 1.0].<br />
Com més s’aproxima mA(x) a 1.0, més s’incrementa el grau de pertinença d’x dins d’A.<br />
Definició 3: A és un conjunt buit si, i només si<br />
∀x : mA(<br />
x)<br />
= 0.<br />
0<br />
Definició 4: A = B si, i només si (mA = mB):<br />
∀ x : mA(<br />
x)<br />
= mB(<br />
x)<br />
Definició 5: Complementari (not): mA’ = 1 - mA<br />
Definició 6: A es troba inclòs dins de B si, i només si:<br />
mA ≤ mB<br />
Definició 7: C = A unió B, on mC = max { mA(x), mB(x) }<br />
Definició 8: C = A intersecció B, on mC(x) = min { mA(x), mB(x) }<br />
Si en comptes de treballar amb conjunts difusos treballem amb sistemes difusos<br />
basats en regles, necessitarem parlar de les funcions de combinació, com la<br />
“propagació” que vam veure en els factors de certesa (la qual anomenarem funció<br />
d’implicació dins dels sistemes difusos). En aquest context es defineix de moltes<br />
maneres la “implicació”, depenent de com s’hagin definit les operacions<br />
complementari, unió i intersecció. Pel que fa a les conjuncions dels termes<br />
(“intersecció”), se les anomena t-normes (o T); pel que fa a les disjuncions (“unions”),<br />
se les anomena t-conormes (o S); i pel que fa a la negació (“complementari”), se<br />
l’anomena negació forta (o N).<br />
143
[Brule1985]<br />
Probabilitat versus lògica difusa<br />
És important que al llarg de les sessions que parlen de raonament estadístic sigueu<br />
capaços de diferenciar les diferents maneres de raonar i d’interpretar els valors de<br />
certesa que proposa cada sistema. Per exemple, si suposem que hem definit un<br />
sistema que funciona a partir de conjunts difusos (definit per les operacions anteriors)<br />
analitzem en què es diferenciaria d’un sistema probabilístic.<br />
Podem observar que l’operació intersecció (AND) en un sistema probabilístic es<br />
calcula mitjançant la “multiplicació” mentre que en aquest sistema difús es calcula<br />
mitjançant el “mínim”. Vegem què implica:<br />
Suposem que:<br />
x = Joan<br />
S és el conjunt difús de la gent simpàtica.<br />
T és el conjunt difús de la gent alta.<br />
Així doncs,<br />
Si mS(x) = 0.90 i mT(x) = 0.90 el resultat probabilístic és mS(x)*mT(x) = 0.81, mentre<br />
que el resultat difús és min{ mS(x), mT(x) } = 0.90<br />
Com s’interpreta des d’un punt de vista lingüístic?<br />
Normalment s’interpreta que molt equival a 0.90 i bastant a 0.81, així doncs des d’un<br />
punt de vista probabilístic hem obtingut: “Si en Joan és molt simpàtic AND en Joan és<br />
molt alt llavors en Joan és bastant simpàtic, alt”.<br />
D’altra banda, des d’un punt de vista del sistema difús: “Si en Joan és molt simpàtic<br />
AND en Joan és molt alt llavors en Joan és molt simpàtic, alt”.<br />
De la mateixa manera, si l’AND fos sobre 5 molts obtindríem:<br />
- Probabilitats: 0.59, que s’interpreta com una mica.<br />
- Difús: 0.90, que s’interpreta com a molt.<br />
Què passaria amb la interpretació de l’OR, si entenem que en probabilitats l’OR =<br />
(A+B – A*B), mentre que en un sistema difús el podem interpretar com a “màxim”?<br />
[Brule1985]<br />
144
Composició dels valors<br />
Dins de la lògica difusa necessitarem parlar de la composició de valors des del<br />
moment que treballem en valors qualitatius com: molt, bastant, més o menys, una<br />
mica, etc. De tal manera que es necessita sistematitzar el procés de saber quan som<br />
en un llindar o en un altre dins d’un conjunt difús. És a dir, com transformem el fet de<br />
parlar sobre “L’Anna és gran” a “L’Anna és molt gran”. Una de les maneres per les<br />
quals es pot definir aquesta relació és mitjançant una transformació de l’estil:<br />
2<br />
mMOLTA ( x)<br />
= mA(<br />
x)<br />
Per tant, si mGRAN(Maria) = 0.8 llavors mMOLTGRAN(Maria) = 0.64.<br />
És habitual fixar un nombre d’n llindars per a cada conjunt difús i associar vectors d’nelements,<br />
on cada element té un valor entre 0.0 i 1.0.<br />
Per exemple, si n=7, podem definir MOLT i POC en un conjunt difús de la manera<br />
següent:<br />
MOLT<br />
POC<br />
0.<br />
0<br />
1.<br />
0<br />
0.<br />
0<br />
1.<br />
0<br />
0.<br />
1<br />
0.<br />
7<br />
0.<br />
3<br />
0.<br />
3<br />
0.<br />
7<br />
0.<br />
1<br />
1.<br />
0<br />
0.<br />
0<br />
1.<br />
0<br />
0.<br />
0<br />
I cada eix el podem interpretar des d’un punt de vista lingüístic per etiquetes com: molt,<br />
bastant, ... , una mica, poc, gens. On la “precisió” dependrà d’n.<br />
Aquests vectors, o matrius, serviran per passar tant d’una escala a una altra, com<br />
d’una interpretació difusa a una quantitativa i viceversa. En el segon cas, és el que en<br />
podríem dir processos de “fuzzificació” i de “desfuzzificació”.<br />
[Brule1985]<br />
Procés d’inferència: MILORD<br />
Si tenim un sistema basat en regles que usa la lògica difusa necessitarem adequar el<br />
raonament del motor d’inferència per tal que propagui els valors de certesa<br />
correctament.<br />
Suposem que som davant del sistema MILORD (que ja vam veure en una sessió<br />
anterior ).<br />
El motor d’inferència del MILORD es basa en la regla del modus ponens per tal d’anar<br />
propagant els factors de certesa a mesura que es van encadenant les regles. Així<br />
doncs, si teníem que una regla era definida de la manera següent:<br />
si C ∧ C ∧K<br />
∧ C<br />
1<br />
2<br />
n<br />
llavors<br />
concloure q<br />
On Vr és el valor de certesa de la conclusió q a partir dels valors de certesa associats<br />
a les premises Ci.<br />
El procés d’inferència associat es defineix segons l’algorisme següent:<br />
Pas 1. Obteniu el valor de certesa de les condicions:<br />
C ∧ C ∧K<br />
∧ C<br />
1<br />
2<br />
n<br />
145<br />
és<br />
V<br />
r
I són aquests valors:<br />
V ∧V ∧K<br />
∧V<br />
1<br />
2<br />
n<br />
Pas 2. Combineu els valors de certesa de les condicions usant una t-norma (T), la qual<br />
modela l’operació AND:<br />
Vcomb K n−<br />
n<br />
= T ( V1,<br />
T ( V2<br />
, T ( ( V 1,<br />
V ) K )))<br />
Pas 3. Combineu el valor obtingut en el pas 2 amb el valor de certesa de la regla,<br />
utilitzant la regla que modela l’operació de modus ponens:<br />
V I<br />
propagat = mI<br />
( Vcomb<br />
, Vr<br />
), on m és la funció d'implicació.<br />
Pas 4. En el cas que q tingués un valor de certesa Vq-v, previ a l’aplicació d’aquesta<br />
regla, aquest valor s’ha de combinar amb el valor propagat usant una t-conorma (S) –<br />
la qual modela l’operació OR– :<br />
Vq − nou =<br />
−<br />
S(<br />
Vpropagat<br />
, Vq<br />
r )<br />
Com podeu observar, cada sistema dependrà de com s’hagin dissenyat les operacions<br />
T, S, etc. Aquest és el motiu pel qual hi ha en la literatura tantes propostes diferents de<br />
sistemes difusos.<br />
Vegeu [Cortés1995]p199-p200<br />
Vegeu una altra proposta de sistema difús a [Garriga1995]<br />
RESUM<br />
En aquesta sessió s’ha presentat la lògica difusa com una manera més de realitzar el<br />
raonament estadístic. Així doncs, amb aquesta sessió s’ha finalitzat un bloc de 3<br />
sessions, en què s’han presentat diferents alternatives per treballar amb coneixement<br />
incert des de la perspectiva del raonament estadístic. Cadascuna d’elles estima<br />
d’alguna manera la certesa associada al resultat final, encara que aquest valor<br />
s’interpreta d’una manera diferent per a cada model.<br />
146
SESSIÓ 25: Xarxes semàntiques, frames i el concepte<br />
d’herència – RdC (10/15)<br />
Nom: Xarxes semàntiques, frames i el concepte d’herència - REPRESENTACIÓ (11-<br />
12/15)<br />
Tipus: teòrica<br />
Format: no presencial<br />
Durada: 3 hores<br />
Dedicació: 4 hores<br />
Treball a lliurar: no<br />
Material:<br />
o Bibliografia bàsica:<br />
[Rich1994]<br />
[Frikes1985]<br />
OBJECTIUS<br />
L’objectiu d’aquesta sessió és donar els fonaments de la representació del<br />
coneixement estructurada. Analitzant tant els principals tipus de representació<br />
estructurada com el mecanisme de raonament associat.<br />
CONTINGUTS<br />
Els continguts d’aquesta sessió se centren en la descripció tant els principals tipus de<br />
representació estructurada (característiques generals, xarxes semàntiques i frames)<br />
com en el treball del raonament associat: el concepte d’herència. Concretament<br />
parlarem d’herència estructural, herència múltiple i herència no monòtona.<br />
4.6. Representació del coneixement<br />
estructurada<br />
4.6.1. Xarxes semàntiques, frames i el concepte<br />
d’herència<br />
Quan parlem de representacions estructurades (també anomenades estructures<br />
d’slot and filler) parlarem de xarxes semàntiques i/o frames. En aquest apartat<br />
descriurem les característiques d’aquestes estructures i el seu mètode de raonament:<br />
l’herència.<br />
Una explicació paral·lela i/o complementària a aquest apartat la podeu trobar a<br />
[Rich1994]p275-p301.<br />
Característiques<br />
<strong>La</strong> representació estructurada, en general, es defineix per les característiques<br />
següents:<br />
147
1. Aquestes estructures suporten adequadament el concepte herència, al llarg dels<br />
enllaços que anomenarem ÉS_UN i INSTÀNCIA_DE.<br />
2. Indexen les assercions del coneixement que representen en base a les entitats<br />
(objectes, símbols o classes) que representen.<br />
3. <strong>La</strong> representació que es proposa (la veurem en els conceptes següents) permet que<br />
la descripció de propietats sigui molt més senzilla que les representacions del<br />
coneixement que hem estudiat fins ara.<br />
4. Aquesta representació del coneixement és una forma de programació orientada a<br />
objectes, amb tots els avantatges que això implica, com la pròpia modularitat.<br />
Parlarem de dues representacions: xarxes semàntiques i frames. Ambdues aporten<br />
les mateixes facilitats. Es diferencien per la seva implementació.<br />
[Rich1994]p275-p276<br />
Xarxes semàntiques<br />
Les xarxes semàntiques es fonamenten en la idea que el significat d’un concepte<br />
depèn de la manera en la qual es troba connectat amb d’altres conceptes.<br />
<strong>La</strong> seva representació originària es basava en un graf orientat i etiquetat on els nodes<br />
representen objectes, conceptes, predicats, etc., mentre que els arcs representen<br />
relacions (etiquetes definides per una semàntica fixa). Així doncs, tindrem regles<br />
d’inferència associades als tipus de les etiquetes dels arcs. L’estructura de la pròpia<br />
xarxa servirà per efectuar una cerca associativa.<br />
Vegem un exemple de la modelització de la memòria del regne animal que proposava<br />
en Quillian l’any 1968:<br />
148
Herència estructural<br />
L’herència és el mètode de raonament de les representacions estructurades. Aquest<br />
mètode de raonament implica diferents coses:<br />
- lliga una propietat amb una determinada relació;<br />
- una relació pot fer heretar moltes propietats.<br />
L’herència de estructural hereta totes les propietats dels seus avantpassats.<br />
Distingirem tres tipus d’herència de estructural:<br />
a) De propietats-valors. Aquesta és la més utilitzada. Quan consultem tot el que<br />
sabem sobre un cert objecte ens retornarà totes les propietats i valors que hagi pogut<br />
heretar. Per exemple, si consultem tot el que podem saber del concepte CANARI,<br />
aplicant l’herència obtindríem: pot cantar; és groc; té ales; pot volar; té plomes (refina<br />
el valor té pell del regne ANIMAL); pot moure’s; respira i menja. <strong>La</strong> instància PEPE<br />
heretaria el mateix que CANARI, exceptuant el color, ja que obtindríem que és de color<br />
verd. Així doncs, tal i com ja vam veure a la introducció d’aquest capítol (vegeu<br />
coneixement heretable), l’herència serà un mecanisme molt eficient per tractar<br />
excepcions.<br />
b) De propietats. Aquest tipus d’herència estructural només hereta les propietats,<br />
però no els valors assignats a aquestes propietats en els seus avantpassats. Així<br />
doncs, HILARI heretaria l’atribut color, però no heretaria que aquest hagi de ser de<br />
color groc.<br />
c) De propietats-valors per defecte. Aquest tipus d’herència estructural actuaria igual<br />
que l’herència de propietats-valors, exceptuant els valors. En aquest cas s’heretarien<br />
aquells valors que s’haguessin definit per defecte quan un atribut (propietat) no té cap<br />
valor assignat.<br />
Podem observar que amb aquests mecanismes es pot tractar fàcilment l’herència<br />
d’excepcions.<br />
Herència múltiple<br />
L’herència múltiple es produeix quan per més d’un camí un objecte pot heretar<br />
diferents valors d’una mateixa propietat (els quals podrien ser contradictoris). <strong>La</strong> idea<br />
consisteix a heretar aquell valor que correspon a l’avantpassat més proper, ja que serà<br />
el valor més restrictiu.<br />
Vegem un parell d’exemples:<br />
a) Exemple 1. Suposem que tenim el coneixement següent:<br />
149
C vola? Podem observar que de l’objecte B heretem que és fals, mentre que de<br />
l’objecte A heretem que és cert. Quina és la resposta correcta? L’herència múltiple<br />
resol aquest conflicte analitzant quin és l’avantpassat més proper. Per tant, ens hem<br />
de preguntar: B és avantpassat d’A? No. A és avantpassat de B? Sí. Així doncs, A és<br />
un avantpassat de B i de C, per tant, B és un avantpassat de C més pròxim que no pas<br />
A. Per tant, la resposta correcta és fals.<br />
Observeu que la distància pot ser enganyosa en el moment d’analitzar quin<br />
avantpassat és més pròxim.<br />
b) Exemple 2. Suposem que ens trobem davant del coneixement que representa la<br />
figura següent:<br />
Ara ens preguntem de nou: C vola? Podem observar que per a B1 hereta fals, mentre<br />
que per a B2 hereta cert. Intentem esbrinar quin avantpassat és més proper: B1 és<br />
avantpassat de B2? No. B2 és avantpassat de B1? No. Així doncs, és tan proper B1<br />
com B2 i, per tant, no hi ha manera de saber si hem d’heretar cert o fals. En aquest<br />
cas es produeix una contradicció.<br />
Podrien haver-hi mecanismes propis del sistema per desfer aquest tipus de<br />
contradiccions com: no acceptar el coneixement que porti a situacions contradictòries<br />
(ús d’un TMS en el moment d’afegir nou coneixement a la BC); o bé usar heurístiques<br />
sobre quins objectes prevalen per sobre d’altres; o bé preguntar a l’usuari si vol<br />
especificar explícitament si C vola o no vola; etc.<br />
Herència no monòtona<br />
Herència no monòtona. L’entendrem en el sentit que els valors de les instàncies no<br />
tenen perquè donar-se tots alhora, sinó que es poden donar de forma incremental. En<br />
aquest cas, convé treballar amb valors per defecte. O bé quan es poden anar<br />
modificant al llarg del temps. En aquests casos necessitarem sistemes de<br />
manteniment de la veritat.<br />
150
Frames<br />
Els frames són una altra manera de representar les xarxes semàntiques. <strong>La</strong> seva<br />
representació s’assembla més als llenguatges orientats a objectes.<br />
Per entendre una possible proposta d’un sistema basat en frames seguirem l’article<br />
de’n Frikes i de’n Kehler (1985) en el qual presenten el sistema KEE. Què heu<br />
d’analitzar?<br />
1. <strong>La</strong> manera en la qual es defineix un objecte (per exemple, el que es mostra la figura<br />
2 de l’article).<br />
En general, entendrem que un objecte (o classe o frame o unit) es defineix per un<br />
conjunt d’atributs (o slots). Cada atribut es defineix per un conjunt de<br />
característiques (o facets).<br />
Les característiques amb les quals habitualment treballarem per descriure un atribut<br />
seran:<br />
* Nom de l’atribut<br />
* Tipus. Per exemple: enter.<br />
* Rang. Per exemple: [1 .. 19]. Són els valors que pot adoptar l’atribut.<br />
* Cardinalitat mínima: indica el nombre mínim de valors que ha de tenir l’atribut.<br />
* Cardinalitat màxima: indica el nombre màxim de valors que pot tenir l’atribut.<br />
* Valors.<br />
[* Valor per defecte].<br />
Podeu observar en l’article que el sistema KEE distingeix els atributs member (els<br />
quals poden ser heretats) dels atributs own (atributs propis de la classe en qüestió).<br />
2. KEE permet definir classes de valors (ValueClass) mitjançant operadors lògics que<br />
connecten diverses propietats. El sistema haurà de vigilar que no siguin incompatibles<br />
els nous coneixements que s’incorporen a la BC. Vegeu la figura 4.<br />
3. Existeixen diferents maneres de calcular els atributs (slots). En el cas del sistema<br />
KEE podem distingir (vegeu la figura 5):<br />
* per nom. Correspon al nom d’un procediment associat. Per tant, a l’executar la funció<br />
es calcularà el valor associat corresponent.<br />
Per ara, podem entendre que el sistema KEE conté representació estructurada +<br />
llenguatge de representació (o representació procedimental).<br />
* valors actius (computació dirigida per les dades). Analitzeu el seu comportament.<br />
4. El sistema KEE també permet incloure regles de classificació (vegeu la figura 6). Ho<br />
podem veure com la inclusió d’un sistema de producció (o sistema basat en regles).<br />
En aquest punt ja podem dir que disposem de: representació estructurada + llenguatge<br />
de programació + sistema de producció.<br />
151
5. Podem observar que serà difícil trobar un sistema de representació del coneixement<br />
que només usi una manera de representació, ja que les diferents propostes que s’han<br />
analitzat al llarg del capítol es complementen fàcilment entre elles.<br />
Seguiu l’article [Frikes1985]<br />
RESUM<br />
En aquesta sessió s’han estudiat els fonaments de la representació estructurada.<br />
D’una banda, les dues principals representacions: xarxes semàntiques i frames. I<br />
d’altra banda, el concepte d’herència, la clau per al tractament d’excepcions.<br />
152
SESSIÓ 26: Operacions entre frames – Exercicis – RdC (13/15)<br />
Nom: Operacions entre frames – Exercicis – REPRESENTACIÓ (13/15)<br />
Tipus: de problemes<br />
Format: no presencial<br />
Durada: 2 hores<br />
Dedicació: 2-4 hores<br />
Treball a lliurar: opcional<br />
PRECEDENTS<br />
A la sessió anterior es van presentar els conceptes bàsics per tal de seguir l’exercici<br />
que es proposa al llarg d’aquesta sessió: xarxes semàntiques, frames i herència.<br />
OBJECTIUS<br />
L’objectiu d’aquesta sessió és el de comprendre com afecten diferents tipus de<br />
relacions entre els objectes, als algorismes d’herència d’un sistema de representació<br />
estructurada. Concretament basada en frames.<br />
CONTINGUTS<br />
Aquesta sessió descriurà d’altres relacions entre objectes (d’un sistema basat en<br />
frames). Aquestes relacions es poden treballar tant seguint l’exercici que es resol al<br />
llarg de la sessió com realitzant els problemes que es proposen (per això la duració<br />
està estimada entre 2 i 4 hores, ja que dependrà de la vostra dedicació!).<br />
4.6.2. Relacions entre frames<br />
En la descripció dels frames vam veure que es descriu un sistema estructurat<br />
relacionant els diferents objectes (classes o frames) mitjançant les relacions És-un i<br />
Instància-de. A partir d’aquestes relacions es defineixen els algorismes d’herència.<br />
Tanmateix, pot ser que en un sistema de representació del coneixement existeixin<br />
altres tipus de relacions, les quals s’hauran de tenir en compte en els diferents<br />
algorismes d’herència (veurem un exemple en l’apartat següent). Relacions habituals<br />
són les que descriurem a continuació: Mútuament-excloent-amb, És-coberta-per i<br />
Partició.<br />
Mútuament-excloent-amb<br />
<strong>La</strong> relació mútuament-excloent-amb relaciona una classe amb una altra (o altres) de<br />
la qual se sap amb seguretat que no té elements comuns amb la primera.<br />
153
És-coberta-per<br />
<strong>La</strong> relació és-coberta-per relaciona una classe amb un conjunt de subclasses, la unió<br />
de les quals donarà com a resultat la classe original.<br />
Partició<br />
Si una classe és-coberta-per un conjunt C de classes mútuament-excloents, llavors<br />
C s’anomena partició de la classe.<br />
4.6.3. Exercici: intersecció entre objectes<br />
En un sistema de representació estructurada volem afegir la relació intersecció. És a<br />
dir, un fill hereta la intersecció de les propietats i valors dels pares (herència<br />
estructural). Per tant, un objecte és fruit de la intersecció d’n pares, essent n > 0.<br />
Anirem resolent el problema a mesura que ens plantegem els punts següents:<br />
1. Estructura genèrica d’un objecte.<br />
2. Descripció de la relació intersecció.<br />
3. Creació de la intersecció entre objectes.<br />
4. Algorisme d’herència de la intersecció.<br />
5. Algorisme d’herència del sistema.<br />
6. Sistema de manteniment de la veritat.<br />
Evidentment, s’haurà de tenir present com pot afectar a la nova relació l’herència<br />
múltiple i l’herència no monòtona. En aquesta segona s’haurà de decidir realment<br />
quina informació podem suportar d’afegir de manera incremental.<br />
Aquest exercici correspon a l’enunciat del problema 2 de l’examen del juny del 2001.<br />
(El podeu trobar a l’ecampus).<br />
1. Estructura genèrica d’un objecte<br />
Per tal de resoldre aquest exercici, suposarem que l’estructura genèrica d’un objecte<br />
(objecte – atributs – característiques) és descrita de la manera següent:<br />
Cada objecte (o classe) és descrit per:<br />
* Pares: especifica qui són els seus pares i quin tipus de relació té amb ells (Per<br />
exemple: És_un, Instància_de, Intersecció).<br />
* un conjunt d’atributs<br />
I cada atribut (o propietat) es descriu per les característiques següents:<br />
* Nom de l’atribut.<br />
* Tipus.<br />
* Rang.<br />
* Cardinalitat mínima.<br />
* Cardinalitat màxima.<br />
154
* Valors.<br />
En aquest exercici no tindrem en compte ni els valors desconeguts, ni el fet que els<br />
valors puguin ser calculats per alguna funció, etc. Ens centrarem en comprendre què<br />
implica una nova relació. Evidentment, deixem per a l’estudiant que després es<br />
plantegi com considerar altres característiques.<br />
2. Descripció de la relació intersecció<br />
En el moment de descriure una nova relació pot anar bé començar plantejant-se com<br />
afecta la relació a nivell d’atribut. És a dir, en el fons interpretarem (o descriurem) la<br />
relació –en aquest cas la intersecció– a partir de les diferents característiques que<br />
descriuen un atribut. Així doncs, descriguem ara característica a característica un<br />
mateix atribut, quan es vol fer la intersecció entre dos objectes donats:<br />
Siguin A1 i A2 dos objectes qualsevol. Sigui B l’objecte que volem que sigui la<br />
intersecció d’ambdós. Per un mateix atribut entendrem la intersecció de la manera<br />
següent:<br />
Nom<br />
Si A1.atribut_i.nom = A2.B.atribut_j.nom<br />
Llavors B.atribut_k.nom = A1.atribut_i.nom<br />
Si no, no es tracta del mateix atribut, per tant, no té sentit fer la intersecció de dos<br />
atributs diferents. Així doncs, estem considerant que reconeixem un atribut pel nom.<br />
Fi_Si<br />
Tipus<br />
Si A1.atribut_i.tipus = A2.B.atribut_j.tipus<br />
Llavors B.atribut_k.tipus = A1.atribut_i.tipus<br />
Si no, FALLEU. No es pot fer la intersecció per a aquest atribut ja que són de tipus<br />
diferents. En aquest no afegiríem aquest atribut a l’objecte B. És una possible decisió<br />
de disseny, es podrien analitzar altres possibilitats.<br />
Fi_Si<br />
Rang<br />
1. Realitzeu la intersecció entre els rangs de A1.atribut_i.rang i A2.atribut_j.rang:<br />
Vegeu dos exemples suposant que el tipus dels atributs és l’enter:<br />
[ 1K 10]<br />
∩ [ 20K50]<br />
= ∅<br />
[ 1K 10]<br />
∩ [ 2K50]<br />
= [ 2K10]<br />
Així doncs, la intersecció entre rangs consisteix en retornar el [màxim dels mínims ...<br />
mínim dels màxim]. Si el “màxim dels mínims” > “mínim dels màxims” llavors el rang<br />
resultant és el conjunt buit.<br />
155
Suposem que disposem de la funció intersecció_rangs(A1, A2, nom_atribut) la qual<br />
retornarà la intersecció dels rangs per l’atribut nom_atribut. Evidentment, aquesta<br />
s’haurà de definir per a cada possible tipus de l’atribut (penseu-la!).<br />
En el problema que es demana de tractar l’operació unió, veureu que aquesta funció<br />
passa a ser una mica més complexa.<br />
2. Analitzeu el resultat:<br />
Si la intersecció entre rangs és el conjunt buit<br />
Llavors FALLEU. En aquest cas no té sentit la intersecció entre ambdós atributs, ja<br />
que no hi haurà possibles valors.<br />
Si no, B_atribut_k.rang = resultat_intersercció_rangs<br />
Fi_Si<br />
Cardinalitats<br />
Podrien haver diferents decisions de disseny en el moment de justificar com es fa la<br />
intersecció entre les cardinalitats mínimes i màximes. Considerem tot seguit diferents<br />
possibilitats:<br />
Versió 1: similar al càlcul de la intersecció dels rangs.<br />
B.atribut_k.cardinalitat_mínima =<br />
màxim{A1.atribut_i.cardinalitat_mínima, A2.atribut_j.cardinalitat_mínima}<br />
B.atribut_k.cardinalitat_màxima =<br />
mínim{A1.atribut_i.cardinalitat_màxima, A2.atribut_j.cardinalitat_màxima}<br />
Si B.atribut_k.cardinalitat_mínima > B.atribut_k.cardinalitat_màxima<br />
Llavors FALLEU. No és possible la intersecció per a aquest atribut.<br />
Fi_Si<br />
En aquest cas estem considerant que el nombre de valors possibles per a l’atribut es<br />
calcula de la mateixa manera que la idea que tenim sobre la intersecció entre conjunts.<br />
Versió 2: el nombre de valors no té res a veure amb la relació intersecció.<br />
Si màxim{A1.atribut_i.cardinalitat_mínima, A2.atribut_j.cardinalitat_mínima} ><br />
mínim{A1.atribut_i.cardinalitat_màxima, A2.atribut_j.cardinalitat_màxima}<br />
Llavors FALLEU. No té sentit la intersecció per a aquest atribut<br />
Si no<br />
B.atribut_k.cardinalitat_mínima =<br />
A1.atribut_i.cardinalitat_mínima + A2.atribut_j.cardinalitat_mínima<br />
B.atribut_k.cardinalitat_màxima =<br />
A1.atribut_i.cardinalitat_màxima + A2.atribut_j.cardinalitat_màxima<br />
Fi_Si<br />
En aquest cas estem considerant que el nombre de valors possibles per a l’atribut no<br />
té res a veure amb el concepte intersecció.<br />
Versió 3: etc.<br />
Podrien haver moltes altres consideracions. Sempre convindrà que estiguin ben<br />
justificades i argumentades. En aquest cas poden ser igualment correctes.<br />
156
En aquest punt, s’ha de decidir per una versió, ja que la resta de l’exercici en pot<br />
dependre. De totes maneres, al llarg d’aquesta sessió plantejarem l’exercici de la<br />
manera més genèrica possible, per tal d’anar reflexionant sobre les diferents<br />
possibilitats.<br />
Valors<br />
En aquest punt se suposa que s’utilitzen tots els algorismes d’herència estructural i<br />
múltiple propis del sistema en el moment de consultar els valors dels pares A1 i A2.<br />
Això garantirà la consistència de la base del coneixement.<br />
Valors_A1 = tots els A1.atribut_i.valors tals que es trobin dins de B.atribut_k.rang<br />
Valors_A2 = tots els A2.atribut_i.valors tals que es trobin dins de B.atribut_k.rang<br />
Valors_B = Valors_A1 U Valors_A2<br />
Si (B.atribut_k.cardinalitat_mínima > Cardinalitat(Valors_B)) o<br />
(B.atribut_k.cardinalitat_màxima < Cardinalitat(Valors_B))<br />
Llavors B.atribut_k.valors = VALORS_DESCONEGUTS<br />
Vol dir que hi ha menys valors que la cardinalitat mínima o més valors que la<br />
cardinalitat màxima. En aquest cas deixem el camp valors “sense valors”. L’usuari sí<br />
que podrà assignar valors propis de B –a posteriori– si satisfà les característiques de<br />
l’atribut.<br />
Podem observar que VALORS_DESCONEGUTS serà una etiqueta especial que no<br />
violarà la cardinalitat mínima si aquesta és superior a 0. En aquest cas tindrien una<br />
gran importància els “valors per defecte”.<br />
Si no B.atribut_k.valors = Valors_B<br />
Fi_Si<br />
Observacions diverses sobre el tractament dels valors:<br />
1. No hem fet la “intersecció de valors”, sinó la intersecció sobre la descripció de<br />
l’atribut. Si es considera oportú, un altre possible disseny podria fer també la<br />
intersecció entre els valors:<br />
Valors_B = Valors_A1 INTERSECCIÓ Valors_A2<br />
En aquest cas, potser s’hauria de dissenyar la cardinalitat mínima i màxima d’una<br />
manera diferent de les proposades, ja que la majoria de les vegades es violaria la<br />
cardinalitat mínima.<br />
2. Podem observar que, segons com haguem dissenyat la cardinalitat mínima i<br />
màxima, la cardinalitat del conjunt Valors_B mai violarà els llindars mínim i màxim.<br />
3. En aquest punt només hem definit quins haurien de ser els valors de B a l’efectuar<br />
la intersecció entre els atributs d’A1 i A2. Tanmateix, quan creem realment l’objecte B<br />
no es baixaran aquests valors (seria redundant!), sinó que es com els consultarà el<br />
mecanisme d’herència sobre la intersecció. Sí que hi afegirem els valors que afegim a<br />
B, sempre i quan sigui consistent.<br />
157
3. Creació de la intersecció entre objectes<br />
A partir de la descripció que hem fet sobre com entenem la relació intersecció,<br />
proposem com seria la creació d’un nou objecte B com a resultat de realitzar la<br />
intersecció entre n objectes pares (A1, A2, ... , AN), per n > 0.<br />
Farem la intersecció entre els n pares a partir d’anar fent la intersecció per a cada<br />
atribut. Considerarem que si un atribut no es troba a tots els pares, aquest atribut no<br />
s’inclourà en l’objecte B.<br />
Funció Creeu_intersecció (A1, ... , AN : objectes) retorna B : objecte<br />
1. B = Creeu_objecte()<br />
2. B.Pares = Intersecció(A1, ... , AN)<br />
3. Conjunt_Atributs = tots els noms dels atributs d’A1<br />
4. Per a cada nom de Conjunt_Atributs feu<br />
5. Si algun dels objectes A1, ..., AN no té l’atribut nom<br />
6. Llavors FALLEU (aquest atribut no s’inclou a l’objecte B). Torneu al pas 4.<br />
7. Fi_Si<br />
/* ES REALITZA LA INTERSECCIÓ PER a L’ATRIBUT nom */<br />
/* El nom de l’atribut serà nom */<br />
8. nom_atribut = nom<br />
/* Busquem el tipus */<br />
9. Si tots els atributs tenen el mateix tipus<br />
10. Llavors tipus_atribut = A1.atribut_j1.tipus<br />
/* se suposa que l’atribut j1 d’A1 és el que li correspon al nom nom, de fet això<br />
dependrà del llenguatge de programació que utilitzarem, per tant, no entrarem en<br />
detalls d’implementació, només en el concepte */<br />
11. Si no FALLEU. Torneu al pas 4.<br />
12. Fi_Si<br />
/* Busquem el rang */<br />
13. rang_atribut = intersecció_rangs(A1, ... , AN, nom_atribut)<br />
14. Si rang_atribut és el conjunt buit<br />
15. Llavors FALLEU. Torneu al pas 4.<br />
16. Fi_Si<br />
/* Busquem les cardinalitats, per exemple seguint la versió 1 */<br />
17. cardinalitat_mínima_atribut =<br />
màxim{A1.atribut_j1.cardinalitat_mínima, ... , AN.atribut_jN.cardinalitat_mínima}<br />
18. cardinalitat_màxima_atribut =<br />
mínim{A1.atribut_j1.cardinalitat_màxima, ... , AN.atribut_jN.cardinalitat_màxima}<br />
19. Si cardinalitat_mínima_atribut > cardinalitat_màxima_atribut<br />
20. Llavors FALLEU. Torneu al pas 4.<br />
21. Fi_Si<br />
/* No afegim explícitament els valors a l’objecte B, ja que aquests o bé es consultaran<br />
per herència quan es necessitin, o bé es refinaran afegint-ne de propis de B (a<br />
158
posteriori de la creació) consistents en la descripció de les característiques obtingudes<br />
com a fruït de la intersecció */<br />
/* PODEM AFEGIR EL RESULTAT DE LA INTERSECCIÓ PER A L’ATRIBUT nom A<br />
L’OBJECTE B */<br />
22. B = Afegiu_atribut (B, nom_atribut, tipus_atribut, rang_atribut,<br />
cardinalitat_mínima_atribut, cardinalitat_màxima_atribut)<br />
23. Fi_Per<br />
/* Podria ser que retornés un objecte sense atributs */<br />
24. Retorna B<br />
Fi_Funció<br />
4. Algorisme d’herència de la intersecció<br />
Entendrem l’algorisme d’herència de la intersecció com la funció que consulta els<br />
valors de l’atribut S de l’objecte B. Creiem que així quedarà més clar.<br />
Funció consulta_valors_intersecció ( B : objecte; S : atribut ) retorna conjunt de valors<br />
Si hi ha valors definits a B.S.valors<br />
Llavors retorna B.S.valors<br />
Si no<br />
Pares = B.Pares;<br />
Valors_B = conjunt_buit;<br />
Per cada P de Pares fer<br />
Valors_B = Valors_B U {tots els P.S.valors tals que es trobin dins de B.S.rang}<br />
Fi_Per<br />
Si (B.S.cardinalitat_mínima > Cardinalitat(Valors_B)) o<br />
(B.S.cardinalitat_màxima < Cardinalitat(Valors_B))<br />
Llavors Valors_B = VALORS_DESCONEGUTS<br />
Fi_Si<br />
Retorna Valors_B<br />
Fi_Si<br />
Fi_Funció<br />
Hem dissenyat aquesta funció seguint la descripció de la relació intersecció que hem<br />
proposat. Si n’haguéssim proposat alguna altra, aquesta funció s’hauria de definir<br />
segurament d’una altra manera.<br />
Estem suposant que cada vegada que consultem els valors dels pares, aquests<br />
s’obtindran aplicant els algorismes d’herència corresponents.<br />
159
5. Algorisme d’herència del sistema<br />
L’algorisme d’herència del sistema serà el que hi hagi definit segons l’herència<br />
estructural (en aquest cas herència de propietats-valors) i l’herència múltiple.<br />
Com quedarà modificat l’algorisme herència per incloure l’herència per a la relació<br />
intersecció?<br />
Senzillament, l’algorisme aplica l’herència depenent de la relació que relaciona cada<br />
objecte amb els seus pares. Així doncs, quan un objecte sigui la intersecció dels seus<br />
pares, per tal d’heretar els valors utilitzarà el procediment que s’ha descrit a:<br />
consulta_valors_intersecció ( B : objecte; S : atribut ).<br />
Convé destacar que l’herència múltiple, només considerant les relacions de tipus<br />
És_un, queda ampliada respecte la que vam explicar en la sessió anterior, al<br />
considerar la cardinalitat mínima i màxima. Per exemple, davant de la situació següent:<br />
En aquest cas:<br />
Si C.Atribut1.cardinalitat_mínima = C.Atribut1.cardinalitat_màxima = 1 llavors<br />
continuarà produint-se una contradicció.<br />
D’altra banda, si per exemple<br />
C.Atribut1.cardinalitat_mínima = 1 i C.Atribut1.cardinalitat_màxima = 3<br />
llavors no hi haurà contradicció i C.Atribut1.valors = {a, b} (suposant que aquests<br />
pertanyin a C.Atribut1.rang).<br />
6. Sistema de manteniment de la veritat<br />
En un sistema de representació estructurada, com el que hem estat plantejant, pot<br />
fàcilment dissenyar el sistema de manteniment de la veritat (TMS) a partir dels<br />
algorismes d’herència. L’objectiu fonamental del TMS seria el de garantir la<br />
consistència de les dades.<br />
Quan s’hauria d’utilitzar el TMS?<br />
Atès que s’intenta que es pugui afegir dinàmicament nova informació a la BC (tant<br />
creant nous objectes, com afegint propietats a objectes ja creats, com afegint valors a<br />
propietats d’objectes ja creats, com creant noves relacions, etc.), en el moment<br />
d’incorporar aquesta nova informació, s’haurien de llançar els diferents mecanismes<br />
d’herència per tal de garantir que no es produeixen contradiccions. Si es detecta una<br />
contradicció, la postura més radical pot portar a negar la incorporació de la nova<br />
160
informació. D’altres polítiques podrien intentar establir un diàleg amb l’usuari per<br />
informar de la contradicció i que ell decideixi com evitar-la.<br />
4.6.4. Proposta d’exercicis amb d’altres relacions<br />
(optatiu)<br />
Aquest text pertany a l'enunciat d'un problema.<br />
<strong>La</strong> relació diferència<br />
Vegeu l’enunciat del problema 3 corresponent a l’examen del gener del 2001. (El<br />
podeu trobar a l’ecampus). Resoleu-lo tractant els diferents punts que hem analitzat en<br />
la relació intersecció.<br />
<strong>La</strong> relació unió<br />
Vegeu l’enunciat del problema 2 corresponent a l’examen del setembre del 2001. (El<br />
podeu trobar a l’ecampus). Resoleu-lo tractant els diferents punts que hem analitzat en<br />
la relació intersecció.<br />
<strong>La</strong> relació partició<br />
Vegeu l’enunciat del problema 3 corresponent a l’examen del gener del 2002. (El<br />
podeu trobar a l’ecampus). Resoleu-lo tractant els diferents punts que hem analitzat en<br />
la relació intersecció.<br />
RESUM<br />
En aquesta sessió s’han treballat les relacions que poden haver-hi entre els diferents<br />
objectes d’un sistema de representació estructurada basada en frames.<br />
Per completar la sessió, és important que s’intentin realitzar els diferents exercicis que<br />
es proposen.<br />
161
162
SESSIÓ 27: Exemples de representacions estructurades – RdC<br />
(14/15)<br />
Nom: Exemples de representacions estructurades - REPRESENTACIÓ (14/15)<br />
Tipus: teòrica<br />
Format: no presencial<br />
Durada: 2 hores<br />
Dedicació: 2 hores<br />
Treball a lliurar: sí<br />
Material:<br />
o Bibliografia bàsica:<br />
[Rich1994]<br />
PRECEDENTS<br />
Aquesta sessió, conjuntament amb les dues anteriors, conclou el tema de<br />
representació estructurada.<br />
OBJECTIUS<br />
L’objectiu d’aquesta sessió consisteix a presentar llenguatges de representació del<br />
coneixement estructurada i a treballar amb algun llenguatge de representació del<br />
coneixement en general (treball a lliurar).<br />
CONTINGUTS<br />
En aquesta sessió es presenten tres exemples de representacions estructurades:<br />
Dependència Conceptual, Scripts i CYCL.<br />
Al finalitzar la sessió es demana un treball per tal de treballar un llenguatge de<br />
representació del coneixement qualsevol.<br />
4.6.5. Exemples de representacions estructurades<br />
En aquest apartat presentarem tres llenguatges de representació del coneixement<br />
basats en una representació estructurada: dependència conceptual (CD), scripts i<br />
CYC.<br />
Normalment s’anomenen estructures de slot-and-filler fortes ja que s’estableixen<br />
compromisos en relació amb el contingut de les representacions.<br />
Dependència conceptual<br />
<strong>La</strong> dependència conceptual (en anglès conceptual dependency o CD) va ser<br />
proposada per n’Shank els anys 1973 i 1975. Pretenia ser una teoria sobre la<br />
representació del coneixement sobre els successos que normalment apareixen en les<br />
frases del llenguatge natural.<br />
163
Objectiu<br />
L’objectiu fonamental consistia a representar el coneixement de tal manera que:<br />
a) faciliti extraure inferències de les frases;<br />
b) sigui independent del llenguatge (idioma) en el qual estan les frases originalment.<br />
L’any 1977 va ser implementat per n’Shank i n’Abelson.<br />
Descripció de la teoria<br />
Per tal de representar qualsevol frase independentment de l’idioma origen, van<br />
estructurar la teoria que proposa la dependència conceptual en (vegeu [Rich1994], a<br />
les pàgines 303-307):<br />
1. Accions primitives (vegeu les pàgines 304 i 305 de [Rich1994]).<br />
2. Dependències permeses entre les conceptualitzacions descrites en una frase<br />
(vegeu la pàgina 305 de [Rich1994]).<br />
3. Temps conceptuals (vegeu la pàgina 307 de [Rich1994]).<br />
4. Regles (vegeu les pàgines 305-307 de [Rich1994]).<br />
A partir d’aquestes definicions o estructuracions del llenguatge natural es poden<br />
representar les frases de la manera que s’il·lustra en la figura 10.1 (pàgina 304) i en la<br />
figura 10.4 (pàgina 309) de [Rich1994].<br />
<strong>La</strong> dependència conceptual facilita el raonament:<br />
1. Es necessiten menys regles d’inferència de les que serien necessàries si el<br />
coneixement no estigués classificat en primitives.<br />
2. Moltes inferències ja estan contingudes en la mateixa representació.<br />
3. L’estructura inicial que es construeix per representar la informació continguda en<br />
una frase tindrà forats que serà necessari omplir. Aquests forats poden ser com<br />
centres d’atenció pel programa que ha de comprendre les frases resultants.<br />
Vegeu [Rich1994]p303-p311<br />
Scripts<br />
Els guions (o scripts) van ser proposats per n’Shank i n’Abelson l’any 1977. Volien<br />
proporcionar un mecanisme de representació del coneixement de seqüències<br />
comunes de successos.<br />
Definició:<br />
Un script és una estructura que descriu una seqüència estereotipada de successos en<br />
un context concret. Podríem dir que està format per un conjunt d’atributs (slots).<br />
Components importants d’un guió (vegeu la pàgina 311 de [Rich1994] ):<br />
Entry xonditions: condicions que s’han de satisfer abans que puguin ocórrer els<br />
successos que es descriuen en el guió.<br />
Result: condicions que hauran de ser certes després que succeeixin els successos<br />
que es descriuen al guió.<br />
Props: atributs que representen objectes que apareixen involucrats en els successos<br />
descrits en el guió.<br />
164
Roles: atributs que representen a gent que es troba involucrada en els successos<br />
descrits en el guió.<br />
Track: la variació específica sobre un patró més general representat per aquest guió<br />
concret.<br />
Scenes: <strong>La</strong> seqüència de successos que succeeixen. Els successos es representen<br />
usant el formalisme de les dependències conceptuals.<br />
Exemple:<br />
Podeu veure un guió que representa els possibles successos d’un restaurant a<br />
[Rich1994], a les pàgines 311-315 (vegeu la figura 10.5).<br />
CYC<br />
Vegeu [Rich1994]p311-p315<br />
El projecte CYC (enCYClopaedia Britannica) està dirigit per en Lenat i en Guha (1990).<br />
És el projecte d’una gran base de coneixement, el propòsit del qual consisteix a<br />
capturar tot el coneixement humà (= Enciclopèdia Britànica) i el seu sentit comú. Així<br />
doncs, és un projecte que inclou representacions de successos, d’objectes, d’actituds,<br />
etc.<br />
Motivacions<br />
Per què construir grans bases de coneixement? Ho justifiquen principalment per tres<br />
motius (vegeu les pàgines 315 i 316 de [Rich1994]):<br />
1. Per evitar el problema de la fragilitat, que vam veure en els sistemes experts.<br />
2. Per centrar-se en el contingut i no en la forma de les bases de coneixement.<br />
3. Per obtenir coneixement compartit.<br />
Problema<br />
Com adquirir el coneixement de forma automàtica? Bàsicament podríem sospesar<br />
dues possibilitats: 1) fent ús de l’aprenentatge artificial o bé 2) tractant la comprensió<br />
del llenguatge natural.<br />
Tanmateix, CYC “codifica a mà els 10 milions de fets que cobreixen el coneixement del<br />
sentit comú” (= l’Enciclopèdia Britànica). Així, bona part del projecte està dirigit a la<br />
introducció de dades i no a la pròpia recerca. Tot i així, a posteriori s’hi apliquen alguns<br />
mètodes més automatitzats.<br />
El llenguatge CYCL<br />
CYCL és el llenguatge amb el qual està codificat el coneixement del projecte CYC<br />
(vegeu les pàgines 316-318 de [Rich1994], especialment la figura 10.6 mostra un<br />
exemple del llenguatge CYCL). Les seves principals característiques són:<br />
- És un sistema basat en frames: generalitza la noció d’herència (inclou altres relacions<br />
a part d’“és-un” i “instància-de”).<br />
- Conté un llenguatge de restriccions amb el qual és possible representar qualsevol<br />
expressió en CP1.<br />
- CYC suporta uns 20 mecanismes d’inferència eficients.<br />
- Porta a terme una verificació de la consistència i una resolució de conflictes.<br />
165
Vegeu [Rich1994]p315-p321<br />
Llenguatges basats en frames<br />
S’han creat molts llenguatges de representació del coneixement basats en frames (o<br />
estructurats en generals). Una llista dels primers pot ser la següent:<br />
KRL (Bobrow and Winograd, 1977)<br />
FRL (Roberts and Goldstein, 1977)<br />
RLL (Greiner and Lenat, 1980)<br />
KL-ONE (Brachman, 1979; Brachman and Schmolze, 1985)<br />
KRYPTON (Brachman et al., 1985)<br />
NIKL (Kaezmarck et al., 1986)<br />
CYCL (Lenat and Guha, 1990)<br />
Grafs conceptuals (Sowa, 1984)<br />
THEO (Mitchell et al., 1989)<br />
FRAMEKIT (Nyberg, 1988)<br />
4.6.6. Treball a lliurar: fitxa d’un llenguatge de<br />
representació del coneixement<br />
Tot seguit es proposa un treball que haureu de lliurar. Per fer-lo, haureu de consultar<br />
per internet o bé en revistes o en llibres de biblioteca, etc. No us hauria de portar molt<br />
de temps. Què heu de buscar? Un llenguatge de representació del coneixement, el<br />
més actual possible. (Un treball per grup de pràctiques!).<br />
Enunciat<br />
Heu de buscar per internet, revistes, llibres de biblioteca, etc., un llenguatge de<br />
representació del coneixement, el més actual possible. (Un treball per grup de<br />
pràctiques!).<br />
Què es demana?<br />
Haureu de dipositar a la carpeta pou corresponent de l’ecampus, “una fitxa del<br />
llenguatge” (una o dues cares) que contingui:<br />
- Nom del llenguatge.<br />
- Tipus (lògic, funcional, estructurat -basat en xarxes semàntiques o frames-, etc.).<br />
- Autors i any (recordeu: busqueu un llenguatge que sigui el més recent possible!).<br />
- Referències.<br />
- Breu descripció de les seves principals característiques (en cap moment es demana<br />
que sigueu experts del llenguatge).<br />
- Altres ad hoc al llenguatge.<br />
Data de lliurament<br />
Us ho indicarem en el tauler o via correu electrònic. De totes maneres, serà per abans<br />
del període d’exàmens corresponent al primer quatrimestre.<br />
166
RESUM<br />
Amb aquesta sessió finalitzem la teoria del capítol de Representació del coneixement<br />
– Raonament. En la pròxima es detallarà la pràctica a lliurar.<br />
Concretament, en aquesta sessió s’han vist alguns exemples de llenguatges de<br />
representació del coneixement estructurats.<br />
A continuació es proposa a l’estudiant un treball de cerca d’informació (llenguatge de<br />
representació) que s’haurà de lliurar abans del període d’exàmens corresponent al<br />
primer quatrimestre. Vegeu tot seguit el que es demana.<br />
167
168
SESSIÓ 28: Pràctica representació del coneixement – RdC<br />
(15/15)<br />
Nom: Pràctica representació del coneixement – REPRESENTACIÓ (15/15)<br />
Tipus: pràctica<br />
Format: no presencial<br />
Durada: 1 hora<br />
Dedicació: 1 hora<br />
Treball a lliurar: sí<br />
Material:<br />
o Bibliografia bàsica:<br />
[Golobardes2002e]<br />
o Recursos de programari i de maquinari: vegeu l’enunciat de la<br />
pràctica<br />
PRECEDENTS<br />
Per tal de realitzar la pràctica que proposa aquesta sessió es necessiten tots els<br />
conceptes que s’han vist al llarg de les diferents sessions del capítol de Representació<br />
del coneixement – Raonament.<br />
OBJECTIUS<br />
L’objectiu d’aquesta sessió és el de presentar l’enunciat de la pràctica corresponent a<br />
aquest capítol de representació del coneixement (PRÀCTICA 2: REPRESENTACIÓ<br />
DEL CONEIXEMENT). Us recordem que aquesta pràctica compta un 30% de la nota<br />
final de la part pràctica de l’assignatura (i la part pràctica compta un 70% del total). Cal<br />
recordar que aquesta pràctica és obligatòria i cal aprovar-la per aprovar l’assignatura.<br />
L’objectiu de la pràctica és que assoliu els diferents conceptes que s’han vist al llarg<br />
del capítol de Representació del coneixement – Raonament.<br />
CONTINGUTS<br />
Els continguts d’aquesta sessió estan explicitats en el document [Golobardes2002e],<br />
que trobareu a la carpeta corresponent de l’assignatura a l’ecampus.<br />
Val a dir que el temps d’estimació d’aquesta sessió es centra en una bona lectura i<br />
comprensió de l’enunciat de la pràctica i no en la totalitat de les hores que us portarà<br />
realitzar aquesta pràctica, que anireu fent mentre avanceu en el següent capítol de<br />
teoria.<br />
169
4.7. Descripció de la pràctica de respresentació del<br />
coneixement<br />
4.7.1. Descripció de la pràctica de representació del<br />
coneixement (pràctica 2)<br />
En aquest apartat es presenta l’enunciat corresponent a la pràctica de representació<br />
del coneixement.<br />
Document PRÀCTICA 2: REPRESENTACIÓ DEL<br />
CONEIXEMENT – <strong>Intel·ligència</strong> artificial<br />
On podeu trobar el document corresponent a l’enunciat de la pràctica de representació<br />
del coneixement?<br />
El document de l’enunciat de la PRÀCTICA 2: REPRESENTACIÓ DEL<br />
CONEIXEMENT – intel·ligència artificial el trobareu a la carpeta de l’ecampus de<br />
l’assignatura d’intel·ligència artificial.<br />
Què hi ha en el document?<br />
1. L’enunciat de la pràctica de representació del coneixement a lliurar.<br />
2. Tot seguit es demanen una sèrie de punts. Aquests punts detallen tant l’ordre en el<br />
qual convé realitzar la pràctica com el contingut de la memòria a lliurar.<br />
Convé destacar que el més important de la pràctica és com s’ha tractat la part<br />
corresponent al capítol de representació del coneixement - raonament i, en certa<br />
manera, tot el treball de camp que hi hagut per tal de realitzar-la.<br />
Podeu observar que una vegada s’ha analitzat com realitzar la pràctica des d’un punt<br />
de vista algorísmic i/o teòric, llavors es demana que decidiu quin és el llenguatge de<br />
programació més adequat per a la seva implementació –justificant la seva elecció–. No<br />
ho feu en l’ordre invers, ja que condicionareu el disseny al llenguatge de programació i<br />
és possible que, ni de bon tros, sigui el més adequat.<br />
Cal recordar que els diferents aspectes d’interfície no es valoraran, per tant, una<br />
vegada més, cal recordar que es vol donar èmfasi a la part corresponent a la<br />
representació del coneixement – raonament.<br />
3. En el document també es demana una estimació –en hores– del temps que us ha<br />
portat la seva realització i, si pot ser, detallant les diferents parts de la pràctica.<br />
Evidentment, aquesta estimació no serveix per avaluar la pràctica, sinó per contrastar<br />
les diferents estimacions de la càrrega de la pràctica.<br />
4. En el document s’indica la data de lliurament de la pràctica, tot i que també la<br />
podeu trobar a l’agenda de l’assignatura.<br />
5. En el document també s’indica on i com s’ha de lliurar la pràctica.<br />
Criteris de puntuació:<br />
1. <strong>La</strong> memòria ha de tenir tots els punts que es demanen.<br />
170
2. Recordeu que la pràctica de representació del coneixement s’ha de lliurar<br />
obligatòriament per aprovar l’assignatura, i la seva nota ha de ser superior a 5 per tal<br />
que s’accepti.<br />
3. Les pràctiques lliurades fora de termini tindran una nota màxima de 5 i ja s’indicarà<br />
quines són les possibles dates de lliurament.<br />
4. Dins de la nota de pràctiques, la pràctica de representació del coneixement compta<br />
un 30%. Recordeu que la part pràctica val el 70% de l’assignatura. Vegeu els criteris<br />
de puntuació de l’assignatura.<br />
Vegeu l’enunciat de la pràctica a [Golobardes2002e]<br />
RESUM<br />
L’objectiu d’aquesta sessió ha estat el de presentar l’enunciat de la pràctica de<br />
representació del coneixement que convé realitzar. Esperem que al finalitzar la sessió<br />
tingueu molt clar el domini del problema i els diferents punts que es demanen per tal<br />
de realitzar la pràctica.<br />
171
172
SESSIÓ 29: Introducció a l’aprenentatge artificial – AR (1-2/15)<br />
Nom: Introducció a l’aprenentatge artificial – APRENENTATGE ARTIFICIAL (1-<br />
2/15)<br />
Tipus: teòrica<br />
Format: no presencial<br />
Durada: 3-4 hores<br />
Dedicació: 3-4 hores<br />
Treball a lliurar: no<br />
Material:<br />
o Bibliografia bàsica:<br />
[Cortes1995]<br />
[Cortes1994]<br />
PRECEDENTS<br />
En els capítols anteriors hem vist com resoldre un problema o com dissenyar un<br />
sistema fent un bon ús de la cerca, la representació del coneixement i el raonament.<br />
Ara veurem que en alguns dominis aquests mètodes no són suficients.<br />
OBJECTIUS<br />
L’objectiu d’aquesta sessió és el de donar els conceptes bàsics de l’aprenentatge<br />
artificial i el d’emmarcar aquesta disciplina.<br />
CONTINGUTS<br />
Per tal de realitzar una introducció de l’aprenentage artificial veurem: l’objectiu de<br />
l’aprenentatge artificial –des del punt de vista més “pur”–; per què és necessari<br />
l’aprenentatge artificial; els diferents paradigmes de l’aprenentatge artificial; les<br />
característiques que voldríem que tingués un sistema d’aprenentatge i quins<br />
problemes poden sorgir; com avaluar un sistema d’aprenentatge i, finalment, un resum<br />
dels paradigmes que estudiarem.<br />
5. Aprenentatge artificial<br />
5.1. Introducció<br />
5.1.1. Aprenentatge artificial<br />
En aquest primer tema volem presentar l’objectiu últim de l’aprenentatge artificial i<br />
veure quan és necessari l’ús de l’aprenentatge artificial.<br />
173
Objectiu de l’aprenentatge artificial<br />
L’objectiu de l’aprenentatge artificial consisteix a construir sistemes que siguin<br />
capaços d’adaptar-se, dinàmicament i sense un entrenament previ, a situacions noves<br />
i aprendre com a resultat d’haver resolt un problema (o problemes) derivat d’aquestes<br />
situacions.<br />
Així doncs, podríem resumir l’aprenentatge artificial segons la fórmula següent:<br />
Aprenentat ge =<br />
Selecció +<br />
Vegeu [Cortes1995]p115-p117<br />
Adaptació<br />
O bé a l’edició anterior del mateix llibre [Cortes1994]p109-p111<br />
Per què aprenentatge artificial?<br />
Fins ara ja sabem dissenyar sistemes que resolguin problemes, ja sigui usant “cerca”<br />
com fins i tot dissenyant un “sistema expert”. Així doncs, per què o quan és necessari<br />
l’ús de l’aprenentatge artificial? Direm que l’aprenentatge artificial és especialment<br />
indicat quan ens trobem en algunes de les situacions següents:<br />
en molts dominis on l’experiència és escassa (i, per tant, disposem de poques<br />
dades);<br />
quan el coneixement del domini és incomplet;<br />
quan el coneixement del domini és inexistent;<br />
quan el problema és NP-Complet o NP-Hard;<br />
quan tenir tot el coneixement és complex;<br />
quan tenir tot el coneixement és costós en termes econòmics ($);<br />
quan tenir tot el coneixement és costós en termes computacionals (O(n));<br />
quan tenir tot el coneixement és perillós (tant en dominis mèdics, que pot<br />
requerir de proves que requereixen cert risc per als pacients; com en dominis<br />
que puguin causar una contaminació medioambiental);<br />
quan es poden introduir fàcilment errors;<br />
quan les dades poden ser inconsistents;<br />
quan les dades poden ser incertes;<br />
quan les dades poden ser incompletes;<br />
quan les dades poden presentar soroll;<br />
...<br />
Així doncs, podem observar que en la majoria de “dominis reals” pot ser necessari l’ús<br />
de l’aprenentatge artificial.<br />
5.1.2. Paradigmes de l’aprenentatge artificial<br />
Els diferents paradigmes d’aprenentatge artificial es poden calssificar des de molts<br />
punts de vista diferents. Nosaltres presentarem dues visions: A) segons el tipus de<br />
selecció i d’adaptació que facin els algorimes i B) segons el tipus d’estratègia i<br />
d’ajudes que rebin els algorismes.<br />
174
Evidentment, a la bibliografia hi ha moltes altres possibles classificacions. Nosaltres<br />
ens centrarem en aquestes perquè s’ajusten millor al temari que veurem al llarg del<br />
capítol.<br />
Segons el tipus de selecció i d’adaptació<br />
Una primera classificació dels paradigmes d’aprenentatge artificial pot ser segons el<br />
tipus de selecció i d’adaptació. Concretament parlarem d’aprenentatge inductiu,<br />
d’aprenentatge deductiu, d’aprenentatge analògic, d’aprenentatge evolutiu i<br />
d’aprenentatge connexionista. Aquests paradigmes corresponen als diferents temes<br />
d’aquest capítol.<br />
A [Cortes1995]p118-p119 (o bé a l’edició anterior [Cortes1994]p112-p113) podeu<br />
veure una classificació més detallada.<br />
Aprenentatge inductiu<br />
<strong>La</strong> font d’inspiració de l’aprenentatge inductiu la podem trobar en la cerca heurística.<br />
Aquest tipus d’aprenentatge consisteix –a grans trets– en induir la descripció d’un<br />
concepte a partir d’una sèrie d’exemples i contraexemples o bé en determinar una<br />
descripció jeràrquica o en classificar un grup d’objectes.<br />
Dins de l’aprenentatge inductiu trobem també el paradigma de l’aprenentatge per<br />
descobriment, el qual es porta a terme quan no es disposa de cap tipus d’informació<br />
del que s’està buscant.<br />
Aprenentatge deductiu<br />
<strong>La</strong> font d’inspiració de l’aprenentatge deductiu la trobem en la lògica matemàtica.<br />
En aquest cas, l’aprenentatge es realitza a partir d’una seqüència d’inferències<br />
deductives, usant fets o regles conegudes. Aquests mètodes se centren en millorar<br />
l’eficiència del sistema i no en obtenir noves descripcions de conceptes.<br />
Dins d’aquest paradigma també hi té cabuda l’aprenentatge analític, el qual intenta<br />
formular generalitzacions després d’analitzar algunes instàncies (o exemples o casos)<br />
en termes del coneixement del sistema.<br />
Aprenentatge analògic<br />
<strong>La</strong> font d’inspiració de l’aprenentatge analògic rau en els estudis de la memòria<br />
humana.<br />
Consisteix a resoldre un problema a partir de la possible semblança amb problemes<br />
vistos anteriorment i adaptant de forma convenient la solució que es va trobar per al<br />
problema ja resolt anteriorment.<br />
Dins d’aquest paradigma hi ha famílies conegudes com: instance-based learning i<br />
case-based learning.<br />
Aprenentatge evolutiu (algorismes genètics)<br />
<strong>La</strong> font d’inspiració de l’aprenentage evolutiu la trobem en l’evolució (Darwin) i en les<br />
lleis de Mendel.<br />
Són mètodes que estan clarament inspirats en la selecció natural de Darwin i en les<br />
mutacions i altres canvis que succeeixen en els organismes durant la reproducció<br />
biològica d’una generació a la següent. Cerquen la solució que s’adapta millor al<br />
problema.<br />
Aprenentatge connexionista (xarxes neuronals)<br />
L’aprenentatge connexionista realitza analogies amb la neurobiologia.<br />
175
A grans trets, el sistema és una xarxa de nodes interconnectats, que té associada una<br />
regla de propagació de valors, els arcs dels quals estan etiquetats amb pesos. Davant<br />
d’un conjunt d’exemples, el sistema reacciona modificant els pesos. El sistema aprèn<br />
si adapta els pesos per tal de donar una sortida correcta per a totes (o la majoria) de<br />
les entrades.<br />
Vegeu [Cortes1995]p118-p119<br />
O bé a l’edició anterior del mateix llibre [Cortes1994]p112-p113<br />
Segons el tipus d’estratègia i les ajudes que rep<br />
Una altra classificació que habitualment es fa dels mètodes d’aprenentatge es basa en<br />
el tipus d’estratègia que segueixen i d’ajudes que reben. Hi ha dos grans paradigmes<br />
més un tercer que està a mig camí entre un extrem i l’altre: aprenentatge supervisat,<br />
aprenentatge no supervisat i aprenentatge per reforçament.<br />
Aprenentatge supervisat. Són mètodes d’aprenentatge en els quals els exemples<br />
proporcionats com a entrada són necessaris per satisfer els objectius de<br />
l’aprenentatge.<br />
És com aprendre amb un professor. En aquest tipus de mètodes es donen exemples i<br />
s’especifica de quin concepte són exemples.<br />
Aprenentatge no supervisat. L’aprenentatge no supervisat cerca nous coneixements<br />
mitjançant el descobriment de regularitats en les dades. Aquests mètodes no estan<br />
dirigits per objectius.<br />
Aprenentatge per reforçament. L’aprenentatge per reforçament està a mig camí dels<br />
dos paradigmes anteriors. Es proposen problemes per resoldre al sistema, de tal<br />
manera que l’aprenentatge es realitza únicament amb una senyal de reforçament<br />
proporcionada per un professor o per l’entorn, com a indicador de si s’ha resolt<br />
correctament el problema.<br />
Vegeu [Cortes1995]p119-p120<br />
O bé a l’edició anterior del mateix llibre [Cortes1994]p113-p114<br />
5.1.3. Característiques desitjables – Problemes<br />
Davant d’un mètode d’aprenentatge artificial, buscarem que aquest tingui una sèrie de<br />
característiques que l’aproximin a l’objectiu que ens plantejàvem a l’inici de la sessió.<br />
Per exemple que siguin algorismes robustos, tolerants al soroll, que tingui capacitat<br />
d’abstracció i de generalització a partir d’exemples, etc. D’altra banda, ens trobarem<br />
que poden sorgir una sèrie de problemes depenent de com es busquin aquestes<br />
característiques.<br />
Tractem tot seguit cadascun d’aquests aspectes.<br />
També analitzarem com avaluar la qualitat d’aprenentatge d’un sistema donat.<br />
176
Generalitat / Capacitat d’abstracció<br />
L’objectiu principal dels sistemes d’aprenentatge és el d’aprendre a partir d’exemples,<br />
és a dir, generalitzar. Per tant, tenir una certa capacitat d’abstracció.<br />
Amb la generalitat es busca en certa manera la completesa del domini.<br />
Exemple 1: Imaginem que volem aprendre f(x) i aprenem g(x)! Podem veure il·lustrada<br />
aquesta idea en la gràfica següent:<br />
Què ha passat?<br />
Pot ser que disposem de pocs exemples per aprendre. Però en moltes<br />
situacions, no podrem fer-hi res, ja que “és el que hi ha”.<br />
Pot ser que disposem d’exemples poc representatius. En molts casos això no<br />
ho sabrem, ja que justament estem intentant descobrir el domini del problema<br />
que volem resoldre. Si no, sí que convé aprendre a partir de mètodes<br />
representatius del problema (domini) que es vol resoldre.<br />
Pot ser que hi hagi hagut un sobreaprenentatge. Aquest problema és força<br />
habitual en mètodes com les xarxes neuronals. El que ha passat és que s’ha<br />
forçat excessivament al sistema a aprendre els exemples d’entrenament fins a<br />
perdre la capacitat de generalització del domini.<br />
Un problema podria haver estat, per exemple en les xarxes neuronals, un mal<br />
disseny de l’arquitectura (ja ho veurem en el tema corresponent), ja que se li<br />
han donat pocs graus de llibertat per aprendre la funció objectiu.<br />
Observació:<strong>La</strong> tria dels exemples és molt important!<br />
Problema: es pot produir un biaix, és a dir, que segons com es presentin els<br />
exemples d’entrenament, el sistema pot aprendre una cosa o una altra, depenent de<br />
l’ordre d’entrada.<br />
Exemple 2: Imaginem de nou que volem aprendre f(x) i aprenem g(x)! Essent f(x) i<br />
g(x) les funcions que es mostren a la figura següent:<br />
177
Què ha passat? De nou ens podem plantejar les qüestions anàlogues a l’exemple<br />
anterior:<br />
Pocs exemples?<br />
Exemples poc representatius?<br />
Molts graus de llibertat?<br />
Potser ara hem obtingut un infraaprenentatge?<br />
Robustesa<br />
Entendrem robustesa com l’habilitat del sistema per treballar amb conjunts d’exemples<br />
d’entrenament que poden contenir soroll i informació parcialment equivocada.<br />
(Implica no monotonia).<br />
Qüestió que ens podem plantejar: Convé entrenar amb soroll? Millor que no! El que<br />
passa és que a vegades és inevitable tenir dades amb soroll. Per exemple, disposem<br />
d’imatges de mala qualitat, etc.<br />
Qualitat de l’aprenentatge<br />
Un dels principals objectius d’un mètode d’aprenentatge seria “que aprengués bé”.<br />
Com podem avaluar la qualitat d’aprenentatge d’un sistema? Hi ha moltes tècniques -<br />
majoritàriament estadístiques- per fer-ho. Ens centrarem en l’stratified ten-fold<br />
crossvalidation:<br />
Sigui X el conjunt d’exemples d’entrenament que disposem. Tot seguit podem dividir el<br />
conjunt X en 10 subconjunts Xi (anomenats folds) amb la mateixa proporció<br />
d’exemples (si el nombre d’exemples no és divisible entre 10, s’igualen tant com es<br />
pugui pel que fa al nombre d’exemples que conté cada subconjunt).<br />
Tot seguit es fan 10 proves: una primera en la qual s’entrena el sistema usant els 9<br />
primers subconjunts i es testeja (s’avalua) el sistema si usem el subconjunt que fa 10.<br />
Així doncs, les 10 execucions-proves corresponen a les 10 possibles combinacions<br />
dels conjunts per tal de realitzar aquesta prova.<br />
De cada execució se’n poden treure diferents dades, com per exemple el percentatge<br />
d’encerts. Així doncs, promitjant les 10 execucions (acompanyat de la desviació<br />
178
estàndard) es poden oferir resultats fiables (des d’un punt de vista estadístic) del<br />
percentatge d’encerts del sistema –per a un problema concret–, etc.<br />
Fiabilitat. Depenent del domini, per exemple si ens trobem en entorns mèdics, serà<br />
molt important la fiabilitat del sistema. Si per exemple el sistema intenta predir si un/a<br />
pacient té càncer o no, no serà el mateix que s’equivoqui quan el/la pacient té càncer,<br />
dient que no en té; que quan diagnostica que el/la pacient té càncer, quan en realitat<br />
no en té. Normalment, això es mesura en termes anomenats de sensibilitat i<br />
d’especificitat.<br />
Costos computacionals. També és important disposar de dades sobre el cost<br />
computacional del sistema (tant en termes d’O(n) dels algorismes, com en termes de<br />
temps de CPU) per tal d’avaluar la rapidesa de l’aprenentatge del sistema. Serà un<br />
terme més o menys important depenent del domini, però cal sempre disposar d’ell.<br />
% encerts (conjunts d’entrenament i de test).<br />
Costos a posteriori<br />
Seguint amb el concepte anterior, també és important avaluar els costos<br />
computacionals, no només en la fase d’aprenentatge del sistema, sinó en la fase<br />
d’explotació (costos a posteriori). Igualment serà important conèixer el cost en<br />
memòria del sistema.<br />
Mitjançant el cost computacional a posteriori, ens podríem plantejar si realment<br />
compensa un mètode d’aprenentatge en aquells entorns on hi ha altres mètodes<br />
alternatius. Per exemple, imaginem que tenim una agència de viatges: cada vegada<br />
que bé un client podem “planificar-li” el seu viatge, o bé tenir un sistema que hagi<br />
“après” a proposar viatges en funció de les característiques/necesisitats dels clients a<br />
partir de l’historial dels clients. És possible que en la majoria d’aquests dominis ens<br />
interessi un sistema híbrid, de tal manera que, si no podem oferir una solució prou<br />
bona, siguem capaços de “planificar el viatge partint de zero”.<br />
Capacitat explicativa<br />
En molts dominis, com per exemple en els dominis mèdics, quan s’ofereix una solució<br />
(o diagnòstic) convé adjuntar-hi una explicació plausible. Des d’aquest punt de vista,<br />
convindria que els sistemes tinguessin una certa capacitat explicativa.<br />
Hi ha sistemes, com les xarxes neuronals, que difícilment poden disposar d’aquesta<br />
característica. En aquests casos direm que actuen com a caixes negres. Per tant,<br />
serà un problema d’alguns mètodes d’aprenentatge.<br />
Determinista<br />
Convé que el sistema d’aprenentatge tingui un comportament determinista. És a dir,<br />
si per a un problema e1 en un temps t1, la seva solució és s1, llavors pel mateix<br />
problema e1 en un temps t2 la seva solució també hauria de ser s1.<br />
179
Val a dir que és una característica que ha de tenir tot sistema independentment de si<br />
l’entorn és no monòton o no estacionari o no determinístic.<br />
Objectivitat versus subjectivitat<br />
Existeix un dilema filosòfic entre l’aprenentatge supervisat i l’aprenentatge no<br />
supervisat: quin és més objectiu? Condicionem en la tria del conjunt d’exemples<br />
d’entrenament –en el cas dels mètodes supervisats–? I en la tria de les<br />
característiques (rellevants?) d’un exemple?<br />
Exemple. Un benchmark clàssic, dins de l’aprenentatge artificial, és el problema de les<br />
esponges marines. Existeixen milers de tipus d’esponges marines i els experts<br />
encara no han trobat una manera de classificar-les, fins a l’extrem que quan dos<br />
experts descriuen una mateixa esponja a partir de les seves característiques poden<br />
pensar que estan parlant d’esponges diferents. Així doncs, sembla que l’aprenentatge<br />
no supervisat podria trobar una classificació “objectiva”, mentre que l’aprenentatge<br />
supervisat és guiat per exemples proporcionats per experts i, per tant, classificats<br />
segons el seu criteri, així doncs podria proporcionar una classificació “subjectiva”.<br />
Tot i així, l’aprenentatge no supervisat “no és un oracle”, i sempre convé usar la<br />
informació de la qual disposem. Deixem el dilema a l’aire ...<br />
Com avaluar un sistema d’aprenentatge?<br />
Serà necessari poder avaluar un sistema d’aprenentatge respecte d’un altre. Una<br />
manera de fer-ho seria analitzant totes les característiques que hem estat comentant<br />
fins al moment. És el que exigirem al llarg d’aquest capítol per tal de comparar els<br />
diferents algorismes que estudiarem.<br />
D’altra banda, a la bibliografia s’han proposat diferents maneres genèriques de fer-ho.<br />
Com exemple proposem la que es descriu a [Cortes1995]p120 (o a l’edició anterior:<br />
[Cortes1994]p114). Concretament, es proposa com mesurar l’eficàcia d’un sistema, i<br />
es defineix de la manera següent:<br />
eficàcia =<br />
f ( generalitat,<br />
eficiència,<br />
robustesa)<br />
On generalitat = com és de fàcil adaptar el mètode a diferents aplicacions en dominis<br />
diversos; eficiència = cost temporal necessari per construir les estructures de<br />
representació que permetin descriure l’objectiu a partir d’unes estructures de<br />
representació inicials; i robustesa = ídem a la definició anterior de robustesa. Per tant,<br />
podem entendre l’eficàcia com la capacitat global del sistema.<br />
5.1.4. Resum dels paradigmes que estudiarem<br />
Abans de finalitzar aquesta introducció a l’aprenentatge artificial resumirem i<br />
establirem un ordre entre els diferents paradigmes que estudiarem. Els classificarem<br />
des d’una perspectiva simbòlica, subsimbòlica o bé des d’una perspectiva diferent.<br />
180
Val a dir que, malgrat que establim un ordre entre els paradigmes en el moment<br />
d’estudiar-los, tots ells van néixer contemporàniament, com a fruit de les diferents fonts<br />
d’inspiració.<br />
Perspectiva simbòlica<br />
Dins de la perspectiva simbòlica hi trobarem l’aprenentatge inductiu,<br />
l’aprenentatge deductiu i l’aprenentatatge analògic. Veiem quina relació/justificació<br />
establirem entre ells en el moment d’estudiar-los.<br />
Inferència. <strong>La</strong> inferència (estratègia en la qual es basa l’aprenentatge inductiu) és un<br />
mètode per fer extensible o revisar el coneixement de manera sistemàtica.<br />
Quines limitacions té?<br />
1. El resultat d’un procés d’inferència s’ha d’obtenir a partir de quelcom; això requereix<br />
un conjunt de premisses (seeded).<br />
2. Els mecanismes d’inferència habituals no permeten la transició des d’un<br />
coneixement actual K fins a K’, en els casos que K i K’ són representativament disjunts<br />
(cross-domain).<br />
=> Per tal de solventar aquest problema, podríem donar peu a l’aprenentatge analògic.<br />
3. Preserven la falsedat, però no la veracitat.<br />
=> Aquest problema no el tenen els mètodes deductius (basats en explicacions).<br />
Perspectiva subsimbòlica<br />
Podem veure la perspectiva subsimbòlica com una alternativa a la perspectiva<br />
simbòlica. Aquí dins hi cabrien molts paradigmes. Un d’ells és l’aprenentatge<br />
connexionista (pensem en les xarxes neuronals).<br />
L’argument que els partidaris d’aquesta perspectiva donen és “nosaltres no pensem a<br />
partir de regles, o de símbols, al cap i a la fi tenim xarxes de neurones”: per què no<br />
desenvolupar mètodes que funcionin en aquesta línia?<br />
Diferent<br />
Una altra perspectiva, difícil de classificar entre simbòlica o subsimbòlica, seria<br />
l’aprenentatge evolutiu (com per exemple, els algorismes genètics). És un paradigma<br />
que troba la seva justificació observant la natura. <strong>La</strong> seva font d’inspiració és l’evolució<br />
natural de’n Darwin i les lleis de’n Mendel: al cap i a la fi “nosaltres som una solució<br />
d’existència dins del planeta Terra”.<br />
181
RESUM<br />
En aquesta sessió hem vist una introducció a l’aprenentatge artificial des de diferents<br />
perspectives: quin és l’objectiu de l’aprenentatge artificial? Quan és necessari<br />
l’aprenentatge artificial? Quins paradigmes d’aprenentatge hi ha? Quines<br />
característiques voldríem que tingués un sistema d’aprenentatge? Com avaluar-les?<br />
etc.<br />
Els conceptes que s’han donat els utilitzarem al llarg de tot el capítol.<br />
182
SESSIÓ 30: Aprenentatge inductiu (I) – AR (3/15)<br />
Nom: Aprenentatge inductiu (I) – APRENENTATGE ARTIFICIAL (3/15)<br />
Tipus: teòrica<br />
Format: no presencial<br />
Durada: 2 hores<br />
Dedicació: 2 hores<br />
Treball a lliurar: no<br />
Material:<br />
o Bibliografia bàsica:<br />
[Moreno1994]<br />
[Winston1992]<br />
PRECEDENTS<br />
Una vegada centrats els objectius de l’aprenentatge artificial, en aquesta sessió<br />
començarem a treballar el paradigma de l’aprenentatge inductiu.<br />
OBJECTIUS<br />
El objectius d’aquesta sessió són dobles. D’una banda, introduir el paradigma de<br />
l’aprenentatge inductiu i, d’altra banda, estudiar un algorisme d’aquesta família.<br />
CONTINGUTS<br />
En aquesta sessió veurem: una descripció general de l’aprenentatge inductiu, una<br />
jerarquia de les diferents famílies de l’aprenentatge inductiu i l’algorisme Winston (de la<br />
subfamília supervisada que realitza l’aprenentatge de descripcions a partir<br />
d’exemples).<br />
5.2. Aprenentatge inductiu<br />
5.2.1. Descripció de l’aprenentatge inductiu<br />
En aquest apartat descriurem l’aprenentatge inductiu de la manera més general<br />
possible. És a dir, descriurem en què consisteix “l’aprenentatge” des d’una perspectiva<br />
d’un “algorisme de cerca”.<br />
Aquest concepte engloba sota el mateix paraigües tant l’aprenentatge inductiu<br />
supervisat com l’aprenentatge inductiu no supervisat.<br />
Definició<br />
L’aprenentatge inductiu consisteix en l’adquisició del coneixement després de<br />
realitzar inferència inductiva (inducció) sobre les dades proporcionades per l’entorn o<br />
per un mestre.<br />
183
Si recordem la sessió anterior, la font d’inspiració de l’aprenentatge inductiu es trobava<br />
en la cerca heurística. Així doncs, aquest procés es podria caracteritzar com una cerca<br />
heurística en un espai d’estats on:<br />
Estat inicial: són les dades d’entrada.<br />
Estat: és una descripció simbòlica de major o menor generalitat.<br />
Operadors: són regles d’inferència (o heurístiques d’inferència), les quals ens<br />
permetran passar a un estat de major o menor generalitat. Aquestes regles són<br />
fonamentalment de dos tipus: regles (o heurístiques) d’especialització i regles (o<br />
heurístiques) de generalització. Les detallarem en els conceptes següents.<br />
Estat final. L’estat final pretén satisfer tres punts: implica les dades d’entrada satisfà el<br />
coneixement de recolzament del problema i maximitza el criteri de preferència.<br />
Vegeu [Moreno1994]p19-p22<br />
Heurístiques d’especialització<br />
Les heurístiques d’especialització, tal i com diu el seu nom, especialitzen el<br />
concepte que s’està aprenent.<br />
En el cas de l’aprenentatge supervisat, normalment s’usen quan s’analitza un<br />
contraexemple (o un quasi exemple).<br />
Un contraexemple és un exemple negatiu del que es vol aprendre. Per exemple, si<br />
volem aprendre quin és el domini dels animals salvatges, un exemple negatiu seria<br />
una gallina. D’altra banda, un quasi exemple és quasi un exemple positiu del que es<br />
vol aprendre. De tal manera que el converteix en exemple negatiu una única diferència<br />
respecte de la descripció d’un exemple positiu. Si per exemple volem aprendre el<br />
concepte d’arc, un quasi exemple seria un “arc” en el qual les columnes estan juntes,<br />
per tant, no és un arc.<br />
Heurístiques de generalització<br />
Les heurístiques de generalització s’usen per tal d’obtenir una definició més<br />
genèrica del concepte que es vol aprendre.<br />
En el cas de l’aprenentatge supervisat, normalment s’usen quan s’analitza un<br />
exemple positiu (o exemple).<br />
Un exemple positiu, o senzillament exemple, és aquell que representa un cas del<br />
domini/problema/concepte/etc. que es vol aprendre. Així doncs, en el cas dels animals<br />
salvatges, un exemple positiu seria un tigre.<br />
Les heurístiques de generalització normalment es classifiquen en dos tipus:<br />
184
1. Regles de selecció. Són aquelles regles en les quals tots els descriptors apareixen<br />
en l’expressió generalitzada ja que estaven presents en les descripcions inicials del<br />
concepte.<br />
Les regles de selecció poden consistir -per exemple- en: la supressió de conjuntants,<br />
l’addició de disjuntants, tancar intervals, realitzar un canvi de constants per variables o<br />
per pujar dins de l’arbre de generalització (vegeu [Moreno1994], a les pàgines 20 i 21).<br />
2. Regles constructives. Són regles que generen assercions inductives, les quals<br />
contenen descriptors que no existien en les descripcions originals.<br />
Les regles constructives poden ser de l’estil: comptar el nombre d’objectes que<br />
satisfan una certa condició, generar propietats en una cadena d’elements o bé detectar<br />
dependències entre descriptors (vegeu [Moreno1994], a la pàgina 21).<br />
[Moreno1994]p20-p21<br />
5.2.2. Tipus d’aprenentatge inductiu<br />
Fins ara hem vist que l’aprenentatge inductiu el podríem resumir com la suma de tres<br />
parts: un mètode de cerca, una estratègia de control i una funció de maximització.<br />
Tot seguit presentarem les principals famílies de l’aprenentatge inductiu: l’adquisició<br />
de conceptes i l’aprenentatge a partir de l’observació.<br />
Adquisició de conceptes<br />
L’adquisició de conceptes es caracteritza per l’existència d’un professor que<br />
proporciona al programa la descripció d’alguns objectes ja classificats en una o més<br />
classes (o conceptes).<br />
Així doncs, la hipòtesi que s’indueix pot ser vista com una regla de reconeixement del<br />
concepte. Això significa que, si un objecte satisfà les condicions de la regla, llavors<br />
representa el concepte.<br />
Aquesta família es basa en l’aprenentatge supervisat, per tant, el professor tindrà un<br />
paper clau durant l’aprenentatge mostrant exemples, quasi exemples, o bé contraexemples,<br />
depenent de l’algorisme.<br />
Destacarem dues subfamílies. L’aprenentatge de descripcions a partir d’exemples,<br />
de la qual veurem l’algorisme de Winston, i la inducció d’arbres de decisió, de la<br />
qual estudiarem l’algorisme ID3 bàsic.<br />
[Moreno1994]p22<br />
Aprenentatge a partir de l’observació<br />
L’aprenentatge a partir de l’observació (o la generalització descriptiva) té com a<br />
objectiu determinar una descripció general que caracteritzi un conjunt d’observacions.<br />
Així doncs, aquesta família es basa en l’aprenentatge no supervisat.<br />
185
D’aquesta família hi dues grans subfamílies: l’agrupació conceptual i la formació de<br />
conceptes. <strong>La</strong> diferència entre ambdues rau en el fet que la segona ofereix un<br />
aprenentatge incremental, mentre que la primera no. Analitzarem l’algorisme<br />
AUTOCLASS, el qual és un mètode de l’agrupació conceptual.<br />
[Moreno1994]p22<br />
5.2.3. L’algorisme de Winston<br />
Els mètodes que engloba l’aprenentatge de descripcions a partir d’exemples<br />
intenten induir la descripció d’una classe d’objectes, després d’analitzar una sèrie<br />
d’instàncies positives (exemples positius o bé senzillament exemples), i en alguns<br />
casos també a partir d’instàncies negatives (o exemples negatius) i/o quasi exemples<br />
de la classe.<br />
En aquest apartat estudiarem l’algorisme Winston, tot i que hi ha molts altres<br />
mètodes que pertanyen a aquesta família, i força diferents entre ells, com per exemple<br />
l’espai de versions.<br />
L’algorisme de Winston W<br />
L’algorisme de Winston W usa exemples proporcionats pel professor i en un cert ordre<br />
–proposat pel mateix professor–. Els exemples que proporciona el professor poden ser<br />
de dos tipus: exemples positius i exemples negatius.<br />
En el llibre [Moreno1994] podem veure diferents exemples del concepte ARC. Les<br />
figures 2.5 i 2.6 (vegeu [Moreno1994]p25) mostren exemples positius del concepte<br />
ARC. <strong>La</strong> figura 2.7 (vegeu [Moreno1994]p26) mostra un exemple negatiu del mateix<br />
concepte. I la figura 2.8 (vegeu [Moreno1994]p27) il·lustra un quasi exemple.<br />
Vegem l’esquema de l’algorisme de Winston W.<br />
Algorisme de Winston W<br />
Pas 1. Preneu com a descripció inicial del concepte que es vol aprendre la descripció<br />
del primer exemple positiu.<br />
Pas 2. Per a tots els exemples que vinguin a continuació del primer, feu:<br />
Pas 2.1 Si l’exemple és un quasi exemple useu l’algorisme d’especialització.<br />
Pas 2.2 Si l’exemple és un exemple positiu useu l’algorisme de generalització.<br />
Fi algorisme<br />
En els conceptes següents analitzarem les heurístiques que necessiten els algorismes<br />
d’especialització i de generalització i els esquemes d’ambdós algorismes.<br />
[Moreno1994]p23-p32<br />
186
[Winston1992]p349-p359<br />
Heurístiques que usa l’algorisme de Winston<br />
Per tal de realitzar l’ESPECIALITZACIÓ i la GENERALITZACIÓ d’un concepte,<br />
l’algorisme W usa una sèrie d’heurístiques d’inducció. Concretament dues<br />
heurístiques d’especialització: enllaç necessari (require-link) i enllaç prohibit (forbidlink);<br />
i quatre heurístiques de generalització: pujar l’arbre (climb-tree), estendre un<br />
conjunt (enlarge-set), caiguda d’enllaç (drop-link) i tancament d’interval (close-interval).<br />
Vegem-les.<br />
1. L’heurística require-link s’usa quan un model que s’està evolucionant té un lligam<br />
(enllaç o link) en un lloc on el quasi exemple no el té. En aquest cas el link del model<br />
s’ha de convertir en un link de tipus MUST (HA DE).<br />
2. L’heurística forbid-link s’usa quan un quasi exemple té un link en el lloc on el model<br />
que s’està evolucionant no hi és. En aquest cas s’afegeix una forma MUST NOT (NO<br />
HA DE) en el model que s’està desenvolupant.<br />
3. L’heurística climb-tree s’usa quan un objecte del model que s’està evolucionant<br />
correspon a un objecte diferent d’un exemple. En aquest cas, els links MUST-BE-A<br />
han d’apuntar a la classe comuna més específica dins de l’arbre de classificació entre<br />
l’objecte model i l’objecte exemple.<br />
4. L’heurística enlarge-set s’usa quan un objecte dins del model que s’està<br />
evolucionant correspon a un objecte diferent dins d’un exemple, i els dos objectes no<br />
estan relacionats per d’altres dins de l’arbre de classificació. En aquest cas, els links<br />
MUST-BE-A passen a apuntar cap a una nova classe formada per la unió de les<br />
classes dels objectes.<br />
5. L’heurística drop-link s’usa quan els objectes que són diferents dins del model que<br />
s’està evolucionant i dins de l’exemple formen un conjunt exhaustiu.<br />
També s’usa quan el model que s’està evolucionant té un link que no es troba a<br />
l’exemple.<br />
En aquests casos, el link s’elimina del model.<br />
6. L’heurística close-interval s’usa quan un número o un interval dins del model que<br />
s’està evolucionant correspon a un número dins de l’exemple.<br />
Si el model usa un número, el número es substitueix per un interval que abasta el<br />
número del model i el número de l’exemple.<br />
Si el model usa un interval, l’interval s’augmenta per tal d’incloure el número de<br />
l’exemple.<br />
[Winston1992]p356<br />
Algorisme d’especialització<br />
L’algorisme d’especialització s’usa per construir un model més restrictiu. Recordeu que<br />
els exemples amb els quals treballa aquest algorisme són els quasi exemples.<br />
187
Algorisme d’especialització<br />
Pas 1. Associeu (match) el model que s’està evolucionant amb el quasi exemple, per<br />
tal d’establir correspondències entre ambdues parts.<br />
Pas 2. Determineu si hi ha una única diferència que sigui important entre el model<br />
que s’està evolucionant i el quasi exemple.<br />
Pas 2.1 Si hi ha una única diferència important:<br />
Pas 2.1.1 Si el model que s’està evolucionant té un link que no hi és en el quasi<br />
exemple, apliqueu l’heurística require-link.<br />
Pas 2.1.2 Si el quasi exemple té un link que no hi és en el model, apliqueu l’heurística<br />
forbid-link.<br />
Pas 2.2 Altrament, ignoreu l’exemple<br />
Fi algorisme<br />
Podem observar que si hi ha més d’una diferència important, l’algorisme ignora el<br />
quasi exemple. Es pot interpretar que és difícil decidir sobre quina diferència actuar i<br />
en quin ordre fer-ho.<br />
[Winston1992]p356<br />
Algorisme de generalització<br />
L’algorisme de generalització s’usa per tal de construir un model més permissible.<br />
Recordeu que els exemples amb els quals treballa l’algorisme són els exemples<br />
positius.<br />
Algorisme de generalització<br />
Pas 1. Associeu (match) el model que s’està evolucionant amb el quasi exemple, per<br />
tal d’establir correspondències entre ambdues parts.<br />
Pas 2. Per a cada diferència, determineu el tipus de diferència i:<br />
Pas 2.1 si un link apunta a una classe dins del model que s’està evolucionant diferent<br />
de la classe a la qual apunta el link de l’exemple i<br />
Pas 2.1.1 si les classes són parts de l’arbre de classificació, useu l’heurística climbtree.<br />
Pas 2.1.2 Si les classes formen un conjunt exhaustiu, useu l’heurística drop-link.<br />
Pas 2.1.3 Altrament, useu l’heurística enlarge-set.<br />
Pas 2.2 Si el link no es troba en l’exemple, useu l’heurística drop-link.<br />
Pas 2.3 Si la diferència són números diferents, o un interval i un número fora de<br />
l’interval, useu l’heurística close-interval.<br />
188
Pas 2.4 Altrament, ignoreu la diferència.<br />
Fi algorisme<br />
[Winston1992]p357<br />
Exemple de l’algorisme de Winston<br />
En el llibre de’n [Winston1992] podem veure alguns exemples de l’algorisme Winston<br />
W i quina heurística convé aplicar en les diferents situacions que es presenten.<br />
Suposem que volem aprendre el concepte d’ARC, i el concepte que tenim après fins al<br />
moment és el que es mostra a la figura 16.2(a) –pàgina 352–. L’arc que es mostra a la<br />
figura 16.2(b) és un quasi exemple que ens arriba, per tant, haurem d’aplicar<br />
l’algorisme d’especialització. Donada la diferència que dectectem, l’heurística a aplicar<br />
serà la require-link i obtindrem una nova definició del concepte ARC, que es mostra a<br />
la figura 16.2(c).<br />
Alerta: en realitat en aquests exemples que ens mostra el propi Winston l’algorisme no<br />
faria res, ja que hi ha DUES diferències! Entengueu només el que vol il·lustrar amb<br />
aquests exemples.<br />
Suposeu que ens arriba de nou un quasi exemple, com el que mostra la figura 16.3(b)<br />
–pàgina 353–. De nou haurem d’aplicar l’algorisme d’especialització. En aquest cas<br />
l’heurística a aplicar serà la forbid-link i obtindrem una nova definició del concepte<br />
ARC més específica, com la que mostra la figura 16.3(c).<br />
<strong>La</strong> figura 16.4(a) –pàgina 355– mostra el concepte d’ARC que tenim fins al moment.<br />
Imagineu que ens arriba un exemple d’ARC –vegeu la figura 16.4(b)– , en aquest cas<br />
haurem d’aplicar l’algorisme de generalització. Concretament aplicarem l’heurística<br />
climb-tree i obtindrem un concepte més permissible d’ARC (vegeu la figura 16.4(c)).<br />
[Winston1992]p350-p355<br />
Observacions<br />
Hi ha una sèrie d’observacions i/o principis que es van derivar d’aquest tipus<br />
d’aprenentatge:<br />
- Si existeix qualsevol dubte sobre el que s’ha d’aprendre, millor no aprendre-ho.<br />
- Principi de no alteració (no-altering principle). Quan quelcom és una instància<br />
positiva d’un concepte i aquest no se li assembla, llavors és millor crear una excepció.<br />
- Llei de Martin. L’aprenentatge artificial es realitza a passos molt petits,<br />
seqüencialment, refinant les idees.<br />
- Podeu observar que l’algorisme funciona com “una cerca primer en profunditat”.<br />
189
- Podeu observar que aquest algorisme és molt sensible a l’ordre d’entrada dels<br />
exemples, per tant, és esbiaixat a l’ordre d’entrada.<br />
En general, hauríeu de saber valorar sobre aquest algorisme les diferents<br />
característiques que vam estudiar a la primera sessió que correspon al capítol<br />
d’aprenentatge artificial.<br />
RESUM<br />
Aquesta sessió és la primera de tres corresponent a l’aprenentatge inductiu. En<br />
primer lloc s’ha descrit l’aprenentatge inductiu i els tipus d’aprenentatge inductiu que hi<br />
ha, i tot seguit hem estudiat l’algorisme Winston W, concretament, dins de la família<br />
de l’aprenentatge de descripcions a partir d’exemples.<br />
190
SESSIÓ 31: Aprenentatge inductiu (II) – AR (4/15)<br />
Nom: Aprenentatge inductiu (II) – APRENENTATGE ARTIFICIAL (4/15)<br />
Tipus: teòrica<br />
Format: no presencial<br />
Durada: 2 hores<br />
Dedicació: 2 hores<br />
Treball a lliurar: no<br />
Material:<br />
o Bibliografia bàsica:<br />
[Moreno1994]<br />
PRECEDENTS<br />
Aquesta sessió és la segona de tres sessions corresponents a l’aprenentatge inductiu.<br />
A la sessió anterior ja vam veure la descripció de l’aprenentatge inductiu.<br />
OBJECTIUS<br />
L’objectiu d’aquesta sessió és presentar l’algorisme ID3, corresponent a la inducció<br />
d’arbres de decisió. És una subfamília de l’aprenentatge inductiu molt utilitzada per a<br />
problemes de classificació.<br />
CONTINGUTS<br />
En aquesta sessió treballarem la inducció d’arbres de decisió. Així doncs, en primer<br />
lloc descriurem què entenem per un arbre de decisió i quins criteris s’usen per tal<br />
d’avaluar-los.<br />
En segon lloc, estudiarem un algorisme clàssic d’inducció d’arbres de decisió: ID3.<br />
Veurem la seva filosofia, l’algorisme en si, la funció de guany, proposarem un exercici<br />
per tal de comprendre l’algorisme i hauríeu de reflexionar sobre les propietats que<br />
aquest algorisme ofereix des de la perspectiva de l’aprenentatge artificial.<br />
5.2.4. Inducció d’arbres de decisió – ID3<br />
<strong>La</strong> inducció d’arbres de decisió engloba una sèrie d’algorismes que tenen per objectiu<br />
la construcció d’un arbre de decisió que expliqui un cert domini de la manera més<br />
compacta possible, segons certs criteris d’avaluació. Concretament, estudiarem<br />
l’algorisme ID3.<br />
Arbres de decisió<br />
Un arbre de decisió és una possible representació dels processos de decisió<br />
involucrats en tasques inductives de classificació.<br />
191
Els atributs s’utilitzen per crear particions de conjunts d’exemples. En aquesta figura<br />
els atributs són representats per: Ai, Aj i Ak, mentre que els valors que poden adoptar<br />
aquests atributs són representats per V(Ai), V(Aj) i V(Ak).<br />
Els nodes de l’arbre de decisió corresponen als noms o identificadors dels atributs,<br />
mentre que les branques d’un node representen els possibles valors que pot adoptar<br />
l’atribut del node.<br />
Les fulles són conjunts ja classificats d’exemples.<br />
L’estratègia de construcció de l’arbre consisteix a seleccionar –en cada moment–<br />
l’atribut potencialment més útil per a la classificació, entenent com a tal aquell que<br />
promet generar el millor arbre a partir d’aquest moment.<br />
[Moreno1994]p49-p50<br />
Criteris d’avaluació dels arbres de decisió<br />
Hi ha diferents criteris per decidir, davant de dos arbres de decisió que classifiquen el<br />
mateix problema, quin és el millor:<br />
Cost: quant costa (de mitjana) anar de l’arrel a una fulla.<br />
Depèn de dos factors: la longitud del camí (#atributs consultats) i el cost de cada<br />
consulta.<br />
Bondat: capacitat de predicció de l’arbre per discriminar un conjunt independent<br />
d’exemples (la bondat s’acostuma a mesurar mitjançant el percentatge d’encerts).<br />
Legibilitat: de l’arbre (aquest només s’usa en el cas d’empat dels dos anteriors).<br />
[Moreno1994]p49-p50<br />
ID3 bàsic<br />
L’algorisme ID3, proposat per en Quinlan l’any 1979, pertany a la família TDIDT (topdown<br />
induction of decision trees).<br />
192
L’objectiu d’aquest algorisme consisteix a construir un arbre de decisió que expliqui<br />
tots els exemples de la manera més compacta possible, segons els criteris<br />
d’avaluació. Així doncs, l’algorisme ID3 construeix un arbre de decisió seleccionant en<br />
tot moment el millor atribut segons una certa mesura heurística. Ho podem veure com<br />
una cerca hill-climbing.<br />
Un exemple és descrit per un conjunt d’atribut més el valor que adopta cadascun<br />
d’ells, més la classe a la qual pertany l’exemple en qüestió: exemple = {(a1,v1), … ,<br />
(an,vn), (classe,c)}<br />
On:<br />
V(a) és el conjunt de valors que pot adoptar l’atribut a.<br />
Pa(X,a,v) és un subconjunt d’exemples d’x tals que per l’atribut a adopten el valor v.<br />
crear_arbre(c) és una funció que crea un arbre amb un únic node etiquetat pel valor c.<br />
afegir_branca(arbre1,arbre2,v) és una funció que a l’arbre1 li afegeix una branca<br />
etiquetada pel valor v on hi penja l’arbre2.<br />
G(X,a) és la funció de guany. Vegem-la en el concepte següent.<br />
Quan no queden atributs disponibles i les diferents instàncies d’x pertanyen a diferents<br />
classes, l’algorisme original de’n Quinlan etiquetava el node fulla per a la CLASSE<br />
MAJORITÀRIA. Ara bé, en certs dominis com els mèdics és preferible etiquetar-la com<br />
a CLASSE_DESCONEGUDA abans de donar un diagnòstic incorrecte. Per tant, la<br />
193
decisió que prenguem sobre com etiquetar aquest tipus de nodes fulles dependrà del<br />
domini sobre el qual estiguem treballant.<br />
<strong>La</strong> funció de guany<br />
[Moreno1994]p50-p52<br />
<strong>La</strong> funció de guany és clau dins de l’algorisme ID3, ja que depenent d’aquesta l’arbre<br />
de decisió final pot ser completament diferent. <strong>La</strong> funció de guany que va proposar en<br />
Quinlan per a l’ID3 s’inspira en la teoria de la informació, concretament, en l’entropia<br />
de Shannon.<br />
<strong>La</strong> seva formulació és la següent:<br />
G(<br />
X , a)<br />
= I(<br />
Pc(<br />
X )) − E(<br />
X , a)<br />
I(<br />
Pc(<br />
X )) = − p(<br />
X , c)<br />
log p(<br />
X , c)<br />
On:<br />
∑<br />
c∈Pc(<br />
X )<br />
# ( X ∧ c)<br />
p(<br />
X , c)<br />
=<br />
# X<br />
E(<br />
X , a)<br />
= ∑<br />
# x<br />
I(<br />
Pc(<br />
x))<br />
# X<br />
x∈Part(<br />
X , a)<br />
Pc(X) és la partició d’x segons les classes de C.<br />
Part(X,a) és la partició d’x segons V(a).<br />
p(X,c) és la probabilitat que una certa instància d’x pertanyi a c, definida com la<br />
proporció d’elements d’x que també pertanyen a c.<br />
I(Pc(X)) estima l’aleatorietat de la distribució de les instàncies d’x sobre les classes de<br />
C. Per tant, mesura la quantitat d’Informació necessària per obtenir la classe, d’entre<br />
les de C, d’un element d’x.<br />
E(X,a) estima l’aleatorietat amb la qual les instàncies estan distribuïdes entre les<br />
classes, consistint en la mitjana ponderada de la quantitat d’informació requerida per<br />
les particions generades pels valors de l’atribut a.<br />
Podem observar que aquesta fórmula equival a seleccionar l’atribut que minimitzi<br />
E(X,a), ja que I(Pc(X)) és igual per a tots els atributs.<br />
[Moreno1994]p52<br />
Exercici d’aplicació de l’ID3<br />
2<br />
Us proposem que trobeu l’arbre de decisió que obtindria l’algorisme ID3 per tal de<br />
classificar el domini que presenta la taula següent. Així doncs, una fila mostra un<br />
194
exemple. En total X conté 8 exemples, A conté 3 atributs (alçada, cabell i ulls) i C està<br />
format per 2 classes (C1 i C2).<br />
Vegeu [Moreno1994]p52-p54<br />
Observacions<br />
Podem observar que:<br />
- L’algorisme ID3 no és esbiaixat a l’ordre d’entrada dels exemples, tal i com succeïa<br />
amb l’algorisme Winston, ja que tracta en tot moment el CONJUNT d’exemples.<br />
Fóra bo que us plantegéssiu les preguntes següents:<br />
- Què vol dir (o què implica) que un node s’hagi d’etiquetar per a<br />
CLASSE_DESCONEGUDA? Analitzeu la resposta no només a nivell del propi ID3,<br />
sinó a nivell de com està representat el domini (els atributs que determinen un<br />
exemple).<br />
- Què vol dir (o què implica) que l’arbre de decisió que representa un cert domini no<br />
utilitzi tots els atributs disponibles?<br />
D’altra banda:<br />
- Què passa si arriben noves dades (nous exemples) que representen casos que no<br />
estan contemplats en l’arbre de decisió? Podeu observar que l’ID3 no és un algorisme<br />
incremental, per tant hauríem de crear l’arbre de decisió de nou. Per tal de solucionar<br />
aquest problema, dins de la família dels TDIDT s’han anat d’altres problemes que són<br />
incrementals, com: ID4, ID4R, ID5 i ID5R. Alguns d’ells l’arbre de decisió resultant és<br />
equivalent a fer un ID3 amb totes les dades, i d’altres no.<br />
RESUM<br />
En aquesta sessió hem estudiat l’algorisme ID3 bàsic, que és l’algorisme que millor<br />
representa la família d’algorismes que es basen en la inducció d’arbres de decisió, tot i<br />
que posteriorment s’han proposat molts altres algorismes, fins i tot amb aprenentatge<br />
no supervisat.<br />
195
196
SESSIÓ 32: Aprenentatge inductiu (III) – AR (5/15)<br />
Nom: Aprenentatge inductiu (III) – APRENENTATGE ARTIFICIAL (5/15)<br />
Tipus: teòrica<br />
Format: no presencial<br />
Durada: 1,5 hora<br />
Dedicació: 1,5 hora<br />
Treball a lliurar: no<br />
Material:<br />
o Bibliografia bàsica:<br />
[Moreno1994]<br />
o Bibliografia complementària:<br />
[Cheeseman1995]<br />
PRECEDENTS<br />
Aquesta sessió va acompanyada de les dues sessions anteriors, ja que entre totes tres<br />
es presenta l’aprenentatge inductiu.<br />
OBJECTIUS<br />
L’objectiu d’aquesta sessió és el de presentar la vessant no supervisada de<br />
l’aprenentatge inductiu.<br />
CONTINGUTS<br />
En aquesta sessió descriurem l’aprenentatge per observació (la vessant no<br />
supervisada de l’aprenentatge inductiu). Concretament veurem l’algorisme<br />
AUTOCLASS.<br />
5.2.5. Aprenentatge per observació: AUTOCLASS<br />
L’aprenentatge a partir de l’observació (o la generalització descriptiva) té com a<br />
objectiu determinar una descripció general que caracteritzi un conjunt d’observacions.<br />
Així doncs, aquesta família es basa en l’aprenentatge no supervisat.<br />
D’aquesta família hi dues grans subfamílies: l’agrupació conceptual i la formació de<br />
conceptes. <strong>La</strong> diferència entre ambdues rau en el fet que la segona ofereix un<br />
aprenentatge incremental, mentre que la primera no. Analitzarem l’algorisme<br />
AUTOCLASS, que és un mètode de l’agrupació conceptual.<br />
Aprenentatge per observació<br />
<strong>La</strong> idea principal de l’aprenentatge per observació és la de crear una classificació a<br />
partir d’un conjunt d’observacions. Podem observar que aquest tipus de classificació<br />
no és la que hem vist fins ara (assignar una classe a un exemple donat) sinó que<br />
volem descobrir les classes, és a dir, agrupar els exemples en classes.<br />
197
Així doncs, l’objectiu de l’aprenentatge per observació serà el de descobrir patrons<br />
comuns entre les dades, els quals permetin separar els exemples en classes o<br />
jerarquies de classes.<br />
D’aquesta manera es podran extreure caracteritzacions o bé ens permetrà predir<br />
característiques o deduir relacions útils (agrupació o clustering).<br />
Per tant, l’aprenentatge per observació és clarament un aprenentatge no supervisat.<br />
<strong>La</strong> font d’inspiració de l’aprenentatge per observació es troba en la psicologia<br />
cognitiva. Concretament sobre com els humans establim les definicions i com<br />
caracteritzem grups d’objectes que considerem que pertanyen a un mateix concepte.<br />
Les diferents tècniques d’aprenentatge automàtic que configuren l’aprenentatge per<br />
observació es poden classificar de la manera següent:<br />
<strong>La</strong> diferència fonamental entre ambdues es basa en dividir els mètodes que realitzen<br />
l’adquisició del coneixement de manera incremental (formació de conceptes) dels<br />
mètodes que no ho fan (agrupació conceptual).<br />
[Moreno1994]p74<br />
Agrupació conceptual<br />
L’agrupació conceptual, segons en Michalski (1980), es pot definir de la manera<br />
següent: “Agrupar objectes en classes -conceptualment simples- basades en els valors<br />
dels atributs, prenent en consideració tot el coneixement sobre les relacions<br />
semàntiques entre els atributs dels objectes o qualsevol concepte global que pugui ser<br />
usat per caracteritzar les classes que es formen.”<br />
Per exemple, suposem que tenim el coneixement que expressa aquesta figura:<br />
198
Podem observar que una funció típica de similitud agruparia A i B dins d’una mateixa<br />
classe, ja que no comptaria amb cap informació addicional. Si ens hi fixem millor, l’A<br />
pertany a l’estructura d’un cercle, mentre que la B pertany a l’estructura d’un triangle,<br />
per tant, sembla que pertanyen a dos conceptes diferents, malgrat el que es pot intuir<br />
al primer cop d’ull. Així doncs, certes consideracions “semàntiques” s’hauran de tenir<br />
en compte quan es volen agrupar les diferents dades d’entrada.<br />
Hi ha diferents models dins de l’agrupació de conceptes, alguns d’ells són: CLUSTER<br />
(Michalski, 1986); WITT (Hanson and Bauer, 1986) i AUTOCLASS (Cheeseman et al.,<br />
1988).<br />
Concretament, presentarem l’AUTOCLASS al llarg d’aquesta sessió.<br />
[Moreno1994]p74-p76<br />
Formació de conceptes<br />
<strong>La</strong> formació de conceptes té el mateix objectiu que l’agrupació conceptual: obtenir<br />
una classificació d’un conjunt d’observacions i una caracterització de les classes<br />
obtingudes que permetin identificar els diferents grups, amb una especial èmfasi en la<br />
construcció d’una jerarquia que permeti relacionar conceptes.<br />
Així doncs, la diferència rau en que l’aprenentatge, dins de la formació de conceptes,<br />
és una tasca incremental.<br />
Des d’un punt de vista de cerca, podríem dir que l’aprenentatge es realitza “a la hill<br />
climbing, però l’objectiu també va canviant. Tanmateix, en tot moment només hi ha una<br />
única solució en curs.<br />
Inconvenients d’aquest tipus d’aprenentatge: la majoria de mètodes presenten un<br />
biaix a l’ordre d’entrada de les observacions. I acostumen a ser força sensibles al<br />
soroll que poden presentar les descripcions.<br />
Alguns dels models que es troben dins de la formació de conceptes són: EPAM<br />
(Feigenbaum, 1961;1984); UNIMEM (Lebowitz, 1987) i CYRUS (Kolodner, 1983);<br />
COBWEB (Fisher, 1987); i CLASSIT (Genari et al., 1989).<br />
[Moreno1994]p87<br />
AUTOCLASS<br />
L’AUTOCLASS va ser proposat per en Cheeseman et al. l’any 1988. És un model de<br />
l’agrupació conceptual, per tant, no realitza l’aprenentatge de manera incremental.<br />
L’AUTOCLASS es basa en l’aplicació del teorema de Bayes i les funcions de<br />
distribució que presenten els atributs que descriuen les dades. Les categories<br />
(classes) que s’obtenen no són disjuntes i les observacions tenen un grau de<br />
pertinença a cadascuna d’elles.<br />
199
Característiques de l’AUTOCLASS:<br />
- El nombre de classes es determina automàticament.<br />
- Els objectes no s’assignen a classes de manera única.<br />
- Es poden barrejar dades descrites al mateix temps per atributs quantitatius i<br />
qualitatius.<br />
- Tots els atributs es valoren de la mateixa manera.<br />
Algorisme AUTOCLASSS<br />
Pas 1. Estimeu els paràmetres:<br />
r r<br />
θ i π<br />
Pas 2. Determineu el nombre de classes J òptim<br />
Fi algorisme<br />
Tal que,<br />
O : conjunt d’observacions.<br />
J : nombre de classes<br />
I : nombre d’instàncies (o exemples, o dades, o objectes)<br />
θ j<br />
És la distribució dels atributs d’una classe j a partir de la mitjana i la variància.<br />
π j<br />
És la probabilitat que un objecte qualsevol pertanyi a la classe j.<br />
Vegeu en detall el càlcul dels diferents paràmetres a [Moreno1994], a les pàgines 84-<br />
86.<br />
[Moreno1994]p84-p86<br />
[Cheeseman1995]<br />
RESUM<br />
Amb aquesta sessió hem finalitzat tres sessions amb les quals hem treballat<br />
l’aprenentatge inductiu.<br />
Hem pogut veure que l’aprenentatge inductiu inclou tots aquells processos en els quals<br />
s’adquireix nou coneixement després de realitzar inferència inductiva sobre les dades<br />
d’entrada.<br />
En total hem presentat tres algorismes: WINSTON, ID3 i l’AUTOCLASS.<br />
200
SESSIÓ 33: Aprenentatge analògic (I) – AR (6/15)<br />
Nom: Aprenentatge analògic (I) – APRENENTATGE ARTIFICIAL (6/15)<br />
Tipus: teòrica<br />
Format: no presencial<br />
Durada: 2 hores<br />
Dedicació: 2 hores<br />
Treball a lliurar: no<br />
Material:<br />
o Bibliografia bàsica:<br />
[Cortes1994]<br />
OBJECTIUS<br />
Aquesta sessió –conjuntament amb les dues següents– té per objectiu presentar<br />
l’aprenentatge analògic.<br />
En aquesta sessió ens centrarem en el concepte general de l’aprenentatge analògic i<br />
veurem alguns sistemes clàssics.<br />
CONTINGUTS<br />
En aquesta sessió veurem el concepte d’aprenentatge analògic i les diferents famílies<br />
que hi ha dins d’aquest paradigma.<br />
En segon lloc, analitzarem tres sistemes clàssics: l’ANALOGY, l’analogia<br />
transformacional i l’analogia derivacional.<br />
5.3. Aprenentatge analògic<br />
5.3.1. Introducció<br />
El raonament analògic és una estratègia de pensament que permet explotar<br />
l’experiència acumulada (coneixement de recolzament) al resoldre problemes, per tal<br />
de tractar problemes nous.<br />
En aquest apartat presentarem tant el concepte i la filosofia del raonament analògic<br />
com les diferents famílies que existeixen dins d’aquest paradigma.<br />
Concepte d’analogia<br />
El concepte d’analogia (o procés d’analogia) es basa en la suposició següent: “si<br />
dues situacions són similars en algun aspecte llavors poden ser-ho en algun altre”.<br />
Així doncs, per exemple podríem establir una analogia entre el funcionament d’un<br />
circuit RLC i el comportament d’un sistema de forces (vegeu [Cortes1994] la figura 1.1<br />
a la pàgina 158). Per tant, estem entenent un nou domini a partir d’una analogia amb<br />
un domini ja conegut. Si recordeu, un dels problemes de l’aprenentatge inductiu era<br />
201
justament que no sabia treballar en diferents dominis al mateix temps (el problema del<br />
cross-domain).<br />
Tanmateix s’ha d’anar en compte, perquè també existeixen moltes falses analogies.<br />
Podríeu provar d’imitar el vol dels ocells des de dalt d’un campanar ... òbviament,<br />
millor no fer-ho!<br />
Vegeu [Cortes1994]p157-p158<br />
Raonament analògic<br />
El raonament analògic consisteix a transformar una inferència vàlida en una situació<br />
(e.g. A -> B) en una situació similar, per exemple, A’.<br />
Així, a partir de la semblança entre A i A’, s’obté una situació B’ similar a B, que és la<br />
conclusió del raonament analògic. Vegeu la figura següent.<br />
Si es considera que existeix una inferència beta que és coneguda i que indica una<br />
relació de dependència entre A i B, es diu que beta és una relació de causalitat. A<br />
més a més, existeix la relació de similitud alfa entre A i A’. Per tant, beta s’estableix<br />
entre objectes del mateix domini, mentre que alfa és una relació entre dominis<br />
diferents.<br />
Per tant, el procés d’analogia consisteix a calcular la relació beta’ que aplicada a A’<br />
generarà la conclusió B’.<br />
[Cortes1994]p157-p159<br />
Analogia i aprenentatge<br />
Quina relació podem establir entre el concepte d’analogia i l’aprenentatge? Es diu<br />
que hi ha aprenentatge quan un agent s’enfronta a una nova situació (desconeguda) i<br />
“descobreix” que l’estructura de la nova situació és similar a una altra, en un altre<br />
domini que ja coneixia, i llavors pot utilitzar el seu coneixement de recolzament per<br />
afrontar-la.<br />
Així doncs, la idea de l’aprenentatge analògic sembla molt senzilla. Però darrera d’ella<br />
amaguen una sèries de problemes:<br />
202
- Com s’identifica la correspondència entre A i A’?<br />
- Com es compara la resta de l’estructura d’ambdues situacions?<br />
És a dir, necessitem fer un procés de descripció, a més un procés de matching.<br />
Com ja vam veure dins del capítol de Representació del coneixement – Raonament, el<br />
procés de matching comporta una sèrie de problemes. Problemes del matching al<br />
realitzar raonament analògic:<br />
1. Com és l’espai dels matchings possibles?<br />
2. Què ha de ser considerat com el quantum d’evidència per a un matching?<br />
3. Com s’obté a partir dels quanta una mesura de similitud global entre dues<br />
situacions?<br />
Totes aquestes qüestions s’hauran de resoldre quan es vulgui realitzar un sistema<br />
basat en l’aprenentatge analògic.<br />
[Cortes1994]p158-p159<br />
Famílies de l’aprenentatge analògic<br />
Actualment existeixen diferents famílies dins de l’aprenentatge analògic. Algunes<br />
d’elles són:<br />
* Exemplar-based reasoning (Kibler & Aha, 1987; Porter & Bareiss, 1986). Consisteix<br />
a definir un concepte de manera extensional, és a dir, a partir d’un conjunt d’exemples.<br />
* Instance-based reasoning (Aha & Kliber, 1991). És una especialització de<br />
l’exemplar-based reasoning. Són diferents aproximacions per cercar exemples per tal<br />
de donar un coneixement més intensiu del concepte. Per exemple, el sistema<br />
PROTOS.<br />
* Memory-based reasoning (Stanfill, 1988; Kolodner, 1988; Kitano, 1993). Aquest<br />
tipus de raonament s’usa per a grans/llargues memòries de casos (exemples). Usa el<br />
raonament com un procés d’accés i cerca en aquesta memòria. S’ha treballat en<br />
processos paral·lels.<br />
* Case-based reasoning (Riesbeck & Shank 1989; Kolodner 1993). Consisteix a<br />
adaptar les solucions que es van trobar per resoldre vells problemes, per tal de<br />
resoldre problemes nous. El raonament basat en casos el descriurem en més detall a<br />
la tercera sessió dedicada a l’aprenentatge analògic.<br />
* Analogy-based reasoning (Veloso, 1993; Kedar-Cabelli, 1988; Hall 1989). Aquesta<br />
subfamília és la que segueix més fidelment el que fins ara hem descrit per<br />
raonament/aprenentatge analògic.<br />
203
Què veurem?<br />
Al llarg d’aquest tema dedicat a l’aprenentatge analògic –aquesta sessió i les dues<br />
següents–, veurem en primer lloc alguns sistemes clàssics, els quals van ser, en<br />
certa manera, pioners i van anar aportant el que avui en dia configuren les diferents<br />
famílies de l’aprenentatge analògic:<br />
1. Un sistema per resoldre analogies geomètriques – Analogy.<br />
2. Analogia transformacional.<br />
3. Analogia derivacional.<br />
4. Aprenentatge per raonament a partir de precedents.<br />
5. Aprenentatge per raonament sobre múltiples analogies.<br />
I d’altra banda, presentarem en més detall el raonament basat en casos (casebased<br />
reasoning – CBR).<br />
5.3.2. Un sistema per resoldre analogies<br />
geomètriques<br />
En T. Evans va proposar l’any 1968 un sistema per resoldre analogies geomètriques,<br />
anomenat ANALOGY.<br />
T. Evans va ser el primer en dissenyar un programa per simular el raonament analògic.<br />
Analogy<br />
El funcionament del sistema ANALOGY està dirigit a l’elaboració d’una llista de<br />
correspondències entre les instàncies i el concepte objectiu.<br />
<strong>La</strong> descripció dels objectes es realitza mitjançant l’ús d’una xarxa semàntica.<br />
Si observeu l’exemple que es mostra a [Cortes1994], a la figura 7.3 de la pàgina 159,<br />
serà més fàcil entendre l’algorisme que segueix l’ANALOGY:<br />
Algorisme<br />
Pas 1. Descrigueu la regla que transforma la instància A en la figura B (A -> B) i<br />
descrigueu les regles que transformen la figura C en les figures objectiu Xi (C -> Xi).<br />
Pas 2. Emparelleu la regla A -> B amb cadascuna de les regles C -> Xi i descrigueu<br />
les diferències.<br />
Pas 3. Seleccioneu la regla C -> Xi que més s’assembli a la regla A -> B.<br />
Pas 4. Designeu la Xi com a resposta.<br />
Fi algorisme<br />
Vegeu [Cortes1994]p159-p160<br />
204
Observacions<br />
Davant d’aquest primer sistema basat en analogies, les observacions següents es<br />
poden considerar els trets més rellevants del sistema:<br />
1. El mecanisme d’emparellament (matching) d’estructures utilitzat pel procés<br />
d’analogia ha de ser flexible. Ha d’admetre l’existència de relacions sense emparellar.<br />
2. L’ANALOGY utilitza mecanismes de valoració (scoring) per catalogar la rellevància<br />
de les regles C -> Xi.<br />
Per tant, la rellevància de les regles està en funció de la semblança entre les regles.<br />
Però com es mesura aquesta semblança? Segurament es necessitaran heurístiques<br />
per als emparellaments inexactes.<br />
3. Podem observar que l’ANALOGY resol l’analogia en tres passos: el pas 1, el pas 2 i<br />
el pas 3 de l’algorisme.<br />
4. <strong>La</strong> referència original de l’ANALOGY és:<br />
T. Evans<br />
“A Heuristic Program to Solve Geometric Analogy”<br />
In Semantic Information Processing, M. Minsky (editor)<br />
MIT Press (1968)<br />
Vegeu [Cortes1994]p159-p160<br />
5.3.3. Analogia transformacional<br />
En J. Carbonell va presentar l’any 1983 l’analogia transformacional. Vegem la seva<br />
proposta al llarg dels conceptes següents.<br />
Analogia transformacional<br />
En J. Carbonell considera que existeix un espai (T-space) en el qual la solució<br />
(coneguda) pot ser transformada, usant una sèrie d’operadors (els quals anomena<br />
operadors T), fins a convertir-la en la solució del nou problema. Vegeu [Cortes1994] la<br />
figura 7.4, a la pàgina 161.<br />
Podem observar que el plantejament per resoldre problemes no mira com es pot<br />
resoldre el problema, sinó que la solució sigui equivalent.<br />
En l’exemple següent podrem entendre millor el seu funcionament:<br />
Es vol construir una prova per mostrar que dos segments RN i OY són iguals (vegeu<br />
[Cortes1994]p162, figura 7.5). En aquest cas, els operadors T són les propietats de<br />
reflexivitat, transitivitat i additivitat –i, a més, aplicats en aquest ordre–.<br />
Ara suposem que tenim el problema que es mostra a [Cortes1994]p162, a la figura 7.6.<br />
Vegeu com es resol el problema dels angles fent una analogia amb el cas anterior.<br />
205
Vegeu [Cortes1994]p160-p161<br />
Observacions<br />
Aquesta aproximació presenta molts problemes. Concretament, un dels punts més<br />
febles és el fet que per resoldre problemes no mira com es pot resoldre el problema,<br />
sinó que la solució sigui equivalent, ja que la cerca en l’espai de les transformacions és<br />
molt més complexa que la cerca en l’espai original del problema.<br />
<strong>La</strong> referència original és:<br />
J. Carbonell<br />
“Learning by analogy: Formulating and generalizing plans from past experience”<br />
In Machine Learning. An AI aproach, R.S. Michalski, J.G. Carbonell and T.M. Mitchell<br />
(editors)<br />
Morgan Kaufmann Publishers, Inc. (1983) pp. 137-161<br />
Vegeu [Cortes1994]p160-p161<br />
5.3.4. Analogia derivacional<br />
Després de les crítiques que es van fer de l’analogia transformacional, el mateix<br />
Carbonell va proposar l’analogia derivacional l’any 1986.<br />
Analogia derivacional<br />
L’analogia derivacional descriu la solució analògica d’un problema com l’objectiu d’una<br />
tasca jeràrquica que emmagatzema informació detallada de la solució. Així, el pla<br />
generat es descompon en subplans i, per tant, permet traçar el curs de la solució.<br />
D’aquesta manera es pot dir que la solució és incremental.<br />
Construcció de la traça d’un procés d’analogia derivacional (vegeu<br />
[Cortes1994]p163 figura 7.7):<br />
Donat un problema (target):<br />
Pas 1. El sistema intenta recuperar un pla:<br />
Si existeix i si resol el problema llavors acabeu (ja està resolt el problema!).<br />
Pas 2. Si no, ha d’elaborar una solució i intentar descompondre el problema en<br />
subproblemes, els quals en principi són més fàcils de resoldre.<br />
Mecanisme per seleccionar el subproblema a resoldre:<br />
Si al tractar el subproblema escollit es falla a l’intentar resoldre’l, s’emmagatzema la<br />
seqüència i, si existeix, se li associa una explicació.<br />
206
Si no (progressa) s’emmagatzema la seqüència d’operadors fins a arribar a la<br />
solució.<br />
Després es construeix una justificació per a cada node.<br />
<strong>La</strong> tria d’un operador està relacionada amb la informació derivacional present, per tant,<br />
quan falla una branca, el sistema intenta cercar altres fonts.<br />
Fi construcció<br />
[Cortes1994]p161-p163<br />
Observacions<br />
<strong>La</strong> principal aplicació que se li ha donat a l’analogia derivacional ha estat usar-la per<br />
cercar noves solucions a problemes ja resolts, per tal d’intentar optimitzar les antigues.<br />
Així, l’analogia derivacional pot ser vista com un sistema d’inferència que pot ser<br />
aplicat com un mètode operatiu de raonament a partir d’experiments.<br />
L’aspecte més rellevant que va oferir aquesta proposta va ser la noció de justificació.<br />
No només per facilitar la reconstrucció d’una solució, sinó perquè permet avaluar el<br />
que s’ha après.<br />
A més a més, és una eina poderosa d’adquisició incremental d’experiències.<br />
<strong>La</strong> referència original és:<br />
J.G. Carbonell<br />
“Derivacional Analogy: A Theory of Reconstructive Problem Solving and Expertice<br />
Acquisition”<br />
In Machine Learning. An AI aproach, Volume II, R.S. Michalski, J.G. Carbonell and<br />
T.M. Mitchell (editors)<br />
Morgan Kaufmann Publishers, Inc. (1986) pp. 371-392<br />
Vegeu [Cortes1994]p161-p163<br />
RESUM<br />
En aquesta sessió hem vist la primera part del tema que tracta l’aprenentatge analògic.<br />
Concretament, hem vist una introducció de l’aprenentatge analògic i hem analitzat tres<br />
sistemes clàssics: l’ANALOGY, l’analogia transformacional i l’analogia derivacional.<br />
207
208
SESSIÓ 34: Aprenentatge analògic (II) – AR (7/15)<br />
Nom: Aprenentatge analògic (II) – APRENENTATGE ARTIFICIAL (7/15)<br />
Tipus: teòrica<br />
Format: no presencial<br />
Durada: 1 hora<br />
Dedicació: 1 hora<br />
Treball a lliurar: no<br />
Material:<br />
o Bibliografia bàsica:<br />
[Cortes1994]<br />
PRECEDENTS<br />
Aquesta sessió va estretament lligada a l’anterior, ja que mostra dos sistemes clàssics<br />
d’aprenentatge analògic.<br />
OBJECTIUS<br />
L’objectiu d’aquesta sessió és el de mostrar dos sistemes clàssics més d’aprenentatge<br />
analògic.<br />
CONTINGUTS<br />
En aquesta sessió veurem els sistemes clàssics basats en aprenentatge analògic<br />
següents:<br />
- un sistema d’aprenentatge per raonament a partir de precedents;<br />
- i CARL, un sistema d’aprenentatge per raonament sobre múltiples analogies.<br />
5.3.5. Aprenentatge per raonament a partir de<br />
precedents<br />
L’aprenentatge per raonament a partir de precedents va ser proposat per en P.H.<br />
Winston, l’any 1982. <strong>La</strong> idea era la de construir un sistema d’aprenentatge i de<br />
raonament per analogia, supervisat per un tutor.<br />
Aprenentatge per raonament a partir de precedents<br />
El sistema d’aprenentatge per raonament a partir de precedents, funciona amb un<br />
tutor que proporciona com a entrada:<br />
1. <strong>La</strong> descripció d’una història. Aquesta història és una seqüència de fets causalment<br />
relacionats i són representats mitjançant una xarxa semàntica.<br />
2. Un precedent o la resolució d’un problema.<br />
<strong>La</strong> tasca del sistema serà la següent:<br />
209
1. Resoldre (usant l’analogia descrita anteriorment) un cas nou.<br />
2. El sistema aprendrà un principi general o una regla a partir de l’analogia realitzada.<br />
<strong>La</strong> fase d’aprenentatge també inclou el refinament de regles quan apareixen<br />
excepcions de la regla derivada.<br />
Vegeu l’exemple que es mostra a [Cortes1994] a la pàgina 164.<br />
[Cortes1994]p162-p165<br />
Observacions<br />
Les principals contribucions d’aquest sistema són:<br />
- <strong>La</strong> importància de la noció de causalitat.<br />
- El fet de resumir el procés d’analogia entre diferents fets en una regla.<br />
<strong>La</strong> referència original d’aquesta proposta és:<br />
P.H. Winston<br />
“Learning new principles from precedents and exercises”<br />
<strong>Artificial</strong> Intelligence 19 (1982) pp. 321-350<br />
[Cortes1994]p162-p165<br />
5.3.6. Aprenentatge per raonament sobre múltiples<br />
analogies<br />
A. Burnstein l’any 1983 va proposar un sistema d’aprenentatge per raonament sobre<br />
múltiples analogies anomenat CARL.<br />
CARL<br />
El sistema CARL modela la manera en la qual un estudiant aprèn el concepte de<br />
variable –en el llenguatge de programació BASIC– mitjançant l’ús de diferents<br />
analogies sobre objectes i situacions familiars (estereotipades) i ben conegudes per<br />
l’alumne.<br />
Així doncs, seguint l’exemple que es proposa a [Cortes1994] a la pàgina 165, veureu<br />
com va reaccionant el sistema a mesura que se li presenten analogies que pot<br />
entendre un/a nen/a (que representa CARL) com són: el concepte capsa i la igualtat<br />
algebraica.<br />
Vegeu [Cortes1994]p165<br />
210
Observacions<br />
Aquest sistema mostra un exemple senzill de com els humans anem aprenent a partir<br />
de múltiples analogies amb conceptes ben apresos per nosaltres. Aquests conceptes<br />
seran contextuals al nostre temps, cultura, estudis, etc.<br />
Referència original:<br />
A. Burnstein<br />
“A model of learning in analogical problem solving”<br />
Proceedings of the AAAI (1983) pp. 45-48<br />
[Cortes1994]p165<br />
RESUM<br />
Amb aquesta sessió que hem finalitzat hem vist dos sistemes clàssics –basats en<br />
l’aprenentatge analògic–: un sistema d’aprenentatge per raonament a partir de<br />
precedents i CARL, un sistema d’aprenentatge per raonament sobre múltiples<br />
analogies.<br />
211
212
SESSIÓ 35: Aprenentatge analògic (III) – AR (8/15)<br />
Nom: Aprenentatge analògic (III) – APRENENTATGE ARTIFICIAL (8/15)<br />
Tipus: teòrica<br />
Format: no presencial<br />
Durada: 2 hores<br />
Dedicació: 2 hores<br />
Treball a lliurar: no<br />
Material:<br />
o Bibliografia bàsica:<br />
[Golobardes2001]<br />
PRECEDENTS<br />
Aquesta sessió juntament amb les dues anteriors descriu l’aprenentatge analògic.<br />
OBJECTIUS<br />
L’objectiu d’aquesta sessió és el d’estudiar el raonament basat en casos i veure com<br />
es podria usar en aplicacions reals.<br />
CONTINGUTS<br />
En aquesta sessió veurem en què consisteix el raonament basat en casos (CBR) i<br />
analitzarem com resoldre tres problemes usant el CBR:<br />
- Exemple de les biòpsies.<br />
- Exemple de les Microcalcificacions.<br />
- Exemple d’un entorn educatiu.<br />
5.3.7. Raonament basat en casos<br />
El raonament basat en casos (case-based reasoning – CBR) va ser proposat per<br />
en Riesbesk i n’Shank l’any 1989. Van definir-lo de la manera següent: “A case-based<br />
reasoner solves new problems by adapting solutions that were used to solve old<br />
problems”.<br />
En aquest apartat veurem en què consisteix un cicle de raonament basat en casos i<br />
alguns exemples que il·lustren com aplicar el CBR en entorns reals.<br />
Cicle del raonament basat en casos<br />
El raonament basat en casos resol nous problemes recuperant casos –ja resolts<br />
prèviament– que s’assemblin al cas nou i adequa la solució que se’ls va donar per tal<br />
de resoldre el cas nou. Per tant, el CBR necessita d’una memòria de casos (o base<br />
de casos). Aamodt i Plaza, l’any 1994, van descriure un cicle del raonament basat en<br />
casos de la manera que es mostra a la figura següent. Així doncs, un cicle depèn<br />
clarament de quatre fases: la fase de recuperació (retrieval phase), la fase<br />
213
d’adaptació (reuse phase), la fase de revisió (revise phase) i la fase<br />
d’emmagatzematge (retain phase). Aquestes fases tenen una relació constant amb la<br />
memòria de casos (case memory).<br />
En els conceptes següents detallarem: què entenem per cas i per memòria de casos;<br />
si convé o no realitzar un preprocés de les dades (inicialització); la fase de<br />
recuperació; la fase d’adaptació; la fase de revisió i la fase d’emmagatzematge.<br />
Cas<br />
[Golobardes2001]<br />
Direm que un cas conté la informació disponible per resoldre una nova situació d’un<br />
problema donat. Així doncs, un cas ja resolt anteriorment contindrà:<br />
1. Una especificació de la situació que representa.<br />
2. <strong>La</strong> solució que es va obtenir de la seva resolució.<br />
D’altra banda, un cas nou (per resoldre), només contindrà:<br />
1. Una descripció de la nova situació que es vol resoldre.<br />
[Golobardes2001]<br />
214
Memòria de casos<br />
<strong>La</strong> memòria de casos (o base de casos) és una representació d’un conjunt de casos<br />
ja resolts anteriorment d’un cert problema.<br />
En el moment de construir aquesta memòria de casos voldríem que satisfés una sèrie<br />
d’objectius:<br />
- Ha de ser representativa.<br />
- Ha de ser el més compacta possible.<br />
- Ha de tenir una bona organització.<br />
El fet d’aconseguir aquests objectius serà clau per tal d’obtenir un bon rendiment del<br />
sistema final i, al mateix temps, aconseguir un bon percentatge d’encerts en les<br />
solucions que es proposin (accuracy).<br />
Quan parlem de memòria de casos, haurem de considerar en tot moment tres<br />
aspectes:<br />
1. El contingut de cada cas.<br />
2. <strong>La</strong> representació del contingut de cada cas. Possibles maneres de fer-ho podrien<br />
ser mitjançant: a) un conjunt de parells d’atribut-valor; o bé b) descrivint les relacions<br />
de part-subpart; o bé c) amb una xarxa d’atributs; etc.<br />
3. L’organització del conjunt de casos de l’MC. Per exemple, l’organització podria ser o<br />
bé una llista de casos o bé un arbre d’índexs.<br />
[Golobardes2001]<br />
Inicialització/Preprocessament<br />
És possible, que depenent de les dades, o bé del disseny del sistema de CBR, es<br />
necessiti realitzar una fase prèvia (sigui d’inicialització o de preprocés de les dades).<br />
<strong>La</strong> seva necessitat s’entendrà millor en els exemples que es presentaran al llarg<br />
d’aquesta sessió.<br />
L’objectiu d’aquesta fase prèvia seria:<br />
- <strong>La</strong> sol·licitud dels valors dels atributs que defineixen el cas que es vol resoldre.<br />
- <strong>La</strong> transformació d'aquesta informació en un format de treball (sense resoldre).<br />
- <strong>La</strong> identificació de les característiques rellevants, si aquesta informació es coneix a<br />
priori.<br />
[Golobardes2001]<br />
215
Fase de recuperació<br />
L’objectiu d’aquesta fase consisteix a recuperar de la memòria de casos, el cas (o<br />
casos) més similar al cas nou que es vol resoldre. Això, en general, pot comportar:<br />
1. Identificació de les característiques (o atributs):<br />
- Identificació de les característiques rellevants de l'especificació del cas que es vol<br />
resoldre.<br />
- Organització d'aquests atributs: identificació de les característiques crítiques;<br />
assignació de pesos a aquestes característiques i agrupament de les característiques.<br />
- I, finalment, retorna com a resultat del patró per realitzar el procés de matching.<br />
En aquest punt, serà clau el fet d’obtenir una bona ponderació de la importància (o<br />
rellevància) dels atributs.<br />
2. Cerca dins de la memòria de casos:<br />
- Obtenció del patró per realitzar el procés de matching;<br />
- Repetició per a tots els casos rellevants: 1) determinació del grau de similitud entre el<br />
cas recuperat i el patró del cas que es vol resoldre i 2), si la similitud trobada és<br />
superior a un cert llindar, llavors s'afegeix el cas recuperat a la llista de casos<br />
recuperats.<br />
En aquest punt serà clau el criteri o funció de similitud que s’usi per recuperar els<br />
casos més semblants.<br />
- Retorna la llista dels casos recuperats.<br />
3. Selecció:<br />
- Ordenació dels casos recuperats segons la seva similitud amb el cas nou.<br />
- Selecció de quin és el cas recuperat més similar (o casos més similars) al cas nou.<br />
- Retorna el cas o els casos seleccionats.<br />
En aquest darrer punt, la clau es troba en una bona funció de recuperació.<br />
Aquesta fase serà la més important del cicle de raonament basat en casos i el seu èxit<br />
estarà estretament lligat: a la ponderació dels atributs, a la funció de similitud, a la<br />
funció de recuperació i, de retruc, a la memòria de casos.<br />
[Golobardes2001]<br />
Fase d’adaptació<br />
L’objectiu d’aquesta fase consisteix en l’adaptació del cas (o casos) recuperat per tal<br />
de donar solució al problema.<br />
Si la naturalesa del problema no requereix una adaptació, llavors retorna la solució del<br />
cas recuperat.<br />
Altrament, si la naturalesa del problema sí que requereix una adaptació, llavors<br />
l’adapta.<br />
<strong>La</strong> complexitat d’aquesta fase dependrà completament del domini, ja que, per<br />
exemple, per a problemes de classificació es pot limitar a proposar la mateixa classe a<br />
216
la qual pertany el cas recuperat com a més similar. Mentre que, per a problemes de<br />
planificació, convindrà adaptar el pla (o plans) per tal de resoldre el nou problema, i<br />
aquesta tasca no és gens senzilla.<br />
[Golobardes2001]<br />
Fase de revisió<br />
<strong>La</strong> fase de revisió té per objectiu l’avaluació de la solució proposada. Els criteris de<br />
revisió poden dependre molt del domini del problema.<br />
En general, podríem considerar que aquesta fase realitza un bucle de repetició fins<br />
que la solució es consideri bona, o bé es decideixi que no es pot resoldre el problema.<br />
A cada volta:<br />
- Reparació de la solució proposada.<br />
- Retorna la solució pel cas nou.<br />
Pot ser que per a alguns casos es retorni que no hi ha possibilitat de trobar solució<br />
amb els casos disponibles a la memòria de casos.<br />
[Golobardes2001]<br />
Fase d’emmagatzematge<br />
L’objectiu de la fase d’emmagatzematge consisteix a integrar la informació rellevant<br />
obtinguda de la resolució del cas nou; més una revisió de la memòria de casos si<br />
s’escau.<br />
Evidentment, aquesta fase no s’hauria de realitzar fins que no es conegués si la<br />
solució que s’ha proposat és correcta o no.<br />
Per tant, en aquesta fase s’incorpora l’aprenentatge dins de la resolució del problema!<br />
[Golobardes2001]<br />
Aplicacions<br />
S’han realitzat moltes aplicacions usant el CBR en dominis molt diferents:<br />
Planificació: procés de produir una seqüència d’accions (pla) per tal d’assolir un<br />
objectiu, a partir d’una situació inicial, i la teoria del domini.<br />
En aquests dominis s’aplica el CBR amb l’objectiu de recordar plans anteriors per tal<br />
de construir un pla nou.<br />
Diagnosi: situem-nos en un sistema de diàleg on es poden explicar els símptomes del<br />
cas que es vol diagnosticar. En aquest cas el CBR pot usar casos anteriors per<br />
suggerir explicacions plausibles al cas que s’estigui tractant.<br />
217
Classificació: assignar una classe a un objecte o a una situació donada. En aquest<br />
tipus de problemes, el CBR s’usa per buscar un objecte/situació tan semblant a l’actual<br />
com sigui possible.<br />
Help Desks: sistemes d’assistència dels coneixements dels tècnics.<br />
S’inclou el CBR per tal de resoldre els problemes dels usuaris basant-se en<br />
l’experiència de problemes anteriors.<br />
Configuració: identificació i agrupació de les diferents parts -o peces- d’un sistema<br />
per tal de disposar-les en una certa forma.<br />
S’incorpora el CBR per seleccionar la configuració més similar com a punt de partida<br />
de la nova.<br />
Disseny: conjunt de requeriments que s’han de satisfer. Genera un mètode/es que<br />
satisfan tots els requeriments.<br />
El CBR permet recuperar casos de dissenys anteriors i adaptar-los.<br />
Interpretació: interpretar un cas nou a partir d’interpretacions anteriors. E.g.<br />
raonament legal i arbitratge.<br />
Tutoria: sistemes automàtics de tutoria. Objectius pedagògics.<br />
El CBR permet donar la millor ajuda a partir de les ajudes que es van donar a casos<br />
anteriors molt semblants.<br />
Adquisició del coneixement: ajudar l’enginyer del coneixement a extraure la<br />
informació necessària i suficient.<br />
Podem usar el CBR com una eina d’ajuda a l’adquisició automàtica del coneixement.<br />
A continuació veurem com usar el CBR en aplicacions reals. Ens centrarem en<br />
dominis de classificació, diagnosi i/o predicció, els quals en alguns problemes es<br />
poden tractar de la mateixa manera.<br />
[Golobardes2001]<br />
Exemple – Biòpsies<br />
El problema de les biòpsies consisteix a crear un sistema d’ajuda de diagnòstic<br />
automàtic. És a dir, ens arriba una biòpsia de teixit de glàndula mamària, es tracta la<br />
imatge (mitjançant tècniques de tractament de la imatge) i es proporciona una sèrie de<br />
característiques (o atributs) que descriuen cada imatge. A partir d’aquestes<br />
característiques, un sistema basat en aprenentatge artificial (e.g. CBR) diagnosticarà<br />
la biòpsia com a cancerígena o no cancerígena. Vegeu [Golobardes2001]p19-p24.<br />
Mostrem tot seguit una manera senzilla d’aplicar el CBR en aquest problema:<br />
1. Convé preprocessar les dades?<br />
Cada imatge (cas) és descrit per 24 atributs, cadascun dels quals està definit sobre un<br />
rang de valors diferents. Segurament convé normalitzar les dades abans d’utilitzar-les.<br />
2. Fase de recuperació.<br />
218
Podríem aplicar com a funció de similitud la mètrica de’n Minkowski:<br />
F<br />
Similitud( Cas _ x,<br />
Cas _ y)<br />
= r ∑<br />
i=<br />
1<br />
On Cas_x i Cas_y són els casos pels quals es vol comparar la seva semblança; xi i yi<br />
és el valor que adopten –respectivament– el Cas_x i el Cas_y per a l’atribut i; i wi és el<br />
pes (la rellevància) de l’atribut i. Per exemple, per a r=2, tenim la distància euclidiana.<br />
Com es computa wi? Si no tenim informació al respecte podem tractar tots els atributs<br />
de la mateixa manera (wi = 1), o bé incloure algun mètode automàtic que calculi els wi<br />
a partir dels casos que hi hagi a la memòria de casos. Aquests mètodes no són trivials.<br />
Funció de recuperació. Podríem anar ordenant els casos de la memòria de casos de<br />
més similar a menys similar i recuperar el més similar. Aquesta funció de recuperació<br />
també pot ser coneguda per 1-NN.<br />
3. Fase d’adaptació.<br />
Podem retornar la mateixa classe que el cas recuperat com a més similar.<br />
4. Fase de revisió. Poden haver-hi criteris ad hoc al problema per tal d’establir si el<br />
resultat és realment fiable.<br />
5. Fase d’emmagatzematge. Si a posteriori coneixem del cert si la biòpsia era<br />
cancerígena o no, podem aprendre d’aquesta nova resolució. Per exemple,<br />
incorporem el cas nou a la memòria de casos si el CBR ha fallat o no ha pogut<br />
diagnosticar el cas nou.<br />
[Golobardes2001]<br />
Exemple – Microcalcificacions<br />
r<br />
w × | ( x − y ) |<br />
i<br />
L’objectiu d’aquest problema és el mateix que l’anterior, amb la diferència que es<br />
pretén no haver de realitzar proves invasives (biòpsies) als pacients per tal d’establir<br />
un diagnòstic. En aquest cas es vol fer a partir d’analitzar les microcalcificacions d’una<br />
mamografia que s’ha realitzat a una pacient. <strong>La</strong> gran diferència rau en com arriben les<br />
dades: ara cada mamografia és descrita per una matriu, on el nombre de columnes<br />
són els atributs que descriuen una microcalcificació i les files són el nombre de<br />
microcalcificacions que hi ha en una mamografia. Aquest nombre de<br />
microcalcificacions és variable per a cada cas (imatge). Vegeu [Golobardes2001]p25p30.<br />
Si volem resoldre el problema de la mateixa manera que el problema de les biòpsies,<br />
resulta imprescindible una bona fase de preprocessament. Per exemple, si volem usar<br />
com a funció de similitud la mètrica de Minkowski, convindrà “aplanar” els casos en un<br />
únic vector.<br />
Si no es vol “aplanar” les dades, ja que es pot perdre informació, convindrà buscar<br />
d’altres funcions de similitud o, fins i tot, d’altres funcions de recuperació.<br />
219<br />
i<br />
i
[Golobardes2001]<br />
Exemple – Entorn educatiu<br />
Suposem ara que tenim un entorn educatiu –per exemple no presencial–. El nostre<br />
objectiu serà el de predir en tot moment el rendiment de l’alumne. És a dir, amb el que<br />
ha fet fins al moment (avaluació continua, exàmens, pràctiques, etc.) quina nota es<br />
preveu que obtindrà a juny. L’objectiu d’aquesta predicció és la d’oferir l’ajuda<br />
adequada al seu nivell, per tal que a finals de curs obtingui com a mínim l’aprovat.<br />
Vegeu [Golobardes2001]p31-p40.<br />
Mentre en els exemples anteriors el fet d’establir un diagnòstic incorrecte era molt<br />
crític, en aquest cas si ens equivoquem en classes veïnes no és gaire problemàtic, ja<br />
que vol dir que l’ajuda serà més o menys complexa, però força similar. Sí que seria<br />
crític que un/a alumne que va per a NP li proposéssim un problema de matrícula, ja<br />
que l’ensorrarem del tot. I, al revés, l’avorriríem o el desmotivaríem.<br />
<strong>La</strong> diferència fonamental amb el problema de les biòpsies es troba en que els atributs<br />
que descriuen un/a alumne poden ser tant continus com discrets. Per tant, s’haurà de<br />
modificar la funció de similitud, ja que no té sentit que, si dos alumnes pertanyen a<br />
classes diferents, la diferència depengui del nom del grup. És a dir, si un va al grup A i<br />
l’altre al grup B, la diferència seria “1”, mentre que si un va al grup A i l’altre al grup D,<br />
la diferència seria “3”, i això no té sentit. Senzillament van a classes diferents. Per tant,<br />
la semblança per a cada atribut, dependrà del tipus d’atribut. Per exemple, podríem<br />
definir la funció de similitud de la manera següent:<br />
Similitud(<br />
Cas _ x,<br />
Cas _ y)<br />
⎧ xi<br />
− yi<br />
⎪<br />
dif ( x = ⎨ si x = y<br />
i , yi<br />
) 0,<br />
i i<br />
⎪<br />
⎩1,<br />
si xi<br />
≠ yi<br />
[Golobardes2001]<br />
RESUM<br />
F<br />
= r ∑<br />
i=<br />
1<br />
⎫<br />
⎬<br />
⎭<br />
r<br />
w × dif ( x , y )<br />
i<br />
si x<br />
i<br />
si x<br />
i<br />
i<br />
i<br />
y<br />
y<br />
i<br />
i<br />
són continuos<br />
són discrets<br />
Amb aquesta sessió hem finalitzat l’aprenentatge analògic. Si ens centrem en el<br />
raonament basat en casos, podem observar que integra d’una manera molt natural la<br />
resolució d’un problema amb l’aprenentatge!<br />
i<br />
220<br />
i
SESSIÓ 36: Aprenentatge basat en explicacions (I) – AR (9/15)<br />
Nom: Aprenentatge basat en explicacions (I) – APRENENTATGE ARTIFICIAL<br />
(9/15)<br />
Tipus: teòrica<br />
Format: no presencial<br />
Durada: 2 hores<br />
Dedicació: 2 hores<br />
Treball a lliurar: no<br />
Material:<br />
o Bibliografia bàsica:<br />
[Moreno1994]<br />
PRECEDENTS<br />
En l’estudi de l’aprenentatge deductiu és bo tenir, com a punt de partida, ben apresos<br />
els conceptes generals de l’aprenentatge artificial i les característiques de<br />
l’aprenentatge inductiu.<br />
OBJECTIUS<br />
L’objectiu d’aquesta sessió és el de presentar el concepte i el mètode que proposa<br />
l’aprenentatge deductiu.<br />
CONTINGUTS<br />
En aquesta sessió veurem una introducció de l’aprenentatge deductiu o aprenentatge<br />
basat en explicacions, on recordarem quins eren els punts febles de l’aprenentatge<br />
inductiu i també veurem quins han estat els orígens de l’aprenentatge deductiu.<br />
Tot seguit realitzarem una descripció d’EBL. Primer a nivell intuïtiu i, després, de<br />
manera més formal. Comprendrem el seu funcionament a través d’un exemple.<br />
5.4. Aprenentatge deductiu – Aprenentatge<br />
basat en explicacions<br />
5.4.1. Introducció<br />
En aquest tema tractarem l’aprenentatge deductiu, més conegut com a<br />
aprenentatge basat en explicacions – EBL. Començarem analitzant el paper de<br />
l’aprenentatge deductiu per tal de superar un punt feble de l’aprenentatge inductiu.<br />
Veurem que l’aprenentatge basat en explicacions és una manera de treballar que<br />
agrupa idees de diferents orígens.<br />
221
Problema de l’aprenentatge inductiu<br />
Un dels problemes que vam veure que tenien els mètodes inductius–a les sessions<br />
d’introducció de l’aprenentatge artificial– és el fet que preserven la falsedat, però no la<br />
veracitat. És a dir, si quelcom era fals abans de generalitzar, ho seguirà essent<br />
després. D’altra banda, no hi ha la seguretat que la generalització realitzada sigui<br />
certa, ja que, en general, només pot ser justificada per un nombre finit d’exemples.<br />
Des d’aquesta perspectiva, podríem dir que una possible solució seran els mètodes<br />
deductius o analítics.<br />
[Moreno1994]p121<br />
Aprenentatge basat en explicacions – EBL<br />
L’aprenentatge deductiu pretén que la solució obtinguda per a un problema estigui<br />
plenament justificada i pugui ser generalitzada. Per tal de fer-ho, necessitarà una gran<br />
quantitat d’informació del domini. Tanmateix, serà suficient un sol exemple d’entrada<br />
per generalitzar correctament.<br />
Des dels anys 1980, els mètodes deductius d’aprenentatge, també s’anomenen<br />
aprenentatge basat en explicacions (o EBL).<br />
EBL és la convergència de 4 línies de recerca:<br />
1. Generalització justificada.<br />
Donat un cert coneixement del domini i un conjunt d’exemples positius i negatius,<br />
aquesta línia de recerca busca un concepte que inclogui els positius i exclogui els<br />
negatius. Aquest nou concepte ha de ser una conseqüència lògica del coneixement del<br />
domini i dels exemples (Russell 1986).<br />
2. Chunking.<br />
Chunking és l’agrupació d’una seqüència de regles o operadors en un únic<br />
macrooperador que tingui el mateix efecte que la seqüència original (Rosenbloom i<br />
Newell, 1986). Per exemple, el sistema SOAR. Aquesta línia és força usada en<br />
planificadors.<br />
3. Operacionalització.<br />
L’operacionalització consisteix a convertir en operacional una expressió escrita en<br />
termes d’accions que poden ser executades directament pel sistema (Mostow 1983).<br />
4. Analogia justificada.<br />
L’analogia justificada, com diu el seu nom, s’inspira en l’aprenentatge analògic.<br />
Definició: donat coneixement del domini, un exemple X i un concepte objectiu Y, es<br />
tracta de cercar una característica F tal que, si F(x) és certa, s’infereix de forma<br />
deductiva que F(Y) és certa (Davies i Russell, 1986).<br />
[Moreno1994]p121-p122<br />
222
5.4.2. Descripció d’EBL<br />
<strong>La</strong> manera en què s’utilitzi l’EBL anirà estretament lligada al domini i al sistema en el<br />
qual s’incorpori. En aquest apartat analitzarem la idea en la qual consisteix l’EBL i<br />
veurem un esquema general de funcionament d’aquest tipus d’aprenentatge.<br />
Descripció intuïtiva d’EBL<br />
L’EBL té dues vessants/aplicacions diferenciades, vegem un descripció intuïtiva de<br />
cadascuna d’elles:<br />
1. Els mètodes EBL intenten modelitzar el tipus d’aprenentatge mitjançant el qual amb<br />
un sol exemple d’un concepte, som capaços de reconèixer un objecte de la mateixa<br />
classe.<br />
Per exemple, suposem que el nostre concepte objectiu és la descripció d’un “vehicle<br />
terrestre”.<br />
Si per exemple ens diuen que un cert cotxe de color blau és un vehicle terrestre,<br />
llavors davant d’un cotxe vermell o d’un autocar o d’un tren, també hauríem de<br />
reconèixer que es tracta de vehicles terrestres.<br />
2. Un mètode EBL pot associar-se a un sistema de resolució de problemes, de manera<br />
que ens permetrà aprendre regles de control que milloraran la seva eficiència.<br />
Per exemple la resolució d’integrals. Es coneixen a priori les regles que regeixen les<br />
integrals. Davant de la resolució d’una nova integral podríem refinar les regles –el<br />
coneixement– que tenim d’aquestes.<br />
EBL com a mètode d’aprenentatge ha suscitat diverses crítiques: hi ha qui diu que no<br />
aprèn, ja que només refina o millora el coneixement que ja tenim. Mentre d’altres<br />
considera que aquest refinament ja és un tipus d’aprenentatge. Deixarem aquests<br />
matisos “filosòfics” i seguirem amb la descripció d’EBL.<br />
Així doncs, podríem descriure un mètode EBL de la manera següent:<br />
Hipòtesi: suposem que la teoria del domini és completa i consistent (com podeu<br />
observar és una hipòtesi molt forta i restrictiva que estem fent del domini).<br />
Objectiu d’un mètode EBL: millorar la teoria del domini existent a partir d’un sol<br />
exemple d’entrada. Per tant, donat l’objectiu es necessita, inicialment, una teoria del<br />
domini completa que permeti:<br />
a) demostrar de forma deductiva que nous conceptes pertanyen a la mateixa classe, o<br />
bé<br />
b) deduir noves regles de control de manera que puguin resoldre’s problemes de<br />
manera més eficient.<br />
Un mètode EBL mai incorpora coneixement nou.<br />
223
[Moreno1994]p122-p123<br />
Descripció formal d’EBL - Definició<br />
A grans trets podríem veure l’EBL com una caixa negra que té per entrades la teoria<br />
del domini, el concepte objectiu i un exemple. I dóna com a resultat una nova teoria del<br />
domini.<br />
Teoria del domini. És la informació específica del domini particular sobre el que tracta<br />
l’aplicació. Suposem que aquesta teoria és completa i consistent, és a dir, que conté<br />
tota la informació necessària per deduir noves coses sobre el domini, i que no conté<br />
informació incorrecta.<br />
Concepte objectiu. Ha de determinar una definició efectiva i operacional d’aquest<br />
concepte.<br />
Efectiva: que permeti arribar a la solució més ràpidament.<br />
Operacional: que pugui ser utilitzada pel sistema.<br />
Depenent de l’aplicació, aquest concepte objectiu pot ser o bé una classificació; o un<br />
teorema a demostrar; o un pla per aconseguir un objectiu; o una regla de control per a<br />
la resolució d’un cert problema; etc.<br />
Exemple. És una instància positiva del concepte objectiu. Aquest exemple permet<br />
descobrir quines característiques del problema poden ser més rellevants en el futur.<br />
Nova teoria del domini. Aquesta teoria és la mateixa que la que es tenia inicialment,<br />
però millorada amb el resultat de la resolució del nou problema. Per exemple, pot<br />
contenir una nova definició operacional d’un concepte ja conegut, o una nova regla de<br />
control.<br />
[Moreno1994]p123-p124<br />
Descripció formal d’EBL - Algorisme<br />
El mètode d’EBL es podria descriure per un algorisme bàsic, el qual consisteix en dos<br />
grans passos:<br />
224
Pas 1. Construeix una explicació que justifiqui perquè l’exemple és una instància<br />
positiva del concepte objectiu.<br />
Pas 2. Generalitza aquesta explicació, de tal manera que en el futur pugui ser aplicada<br />
a situacions similars.<br />
Aquests passos es poden detallar per diferents tasques a nivell de coneixement, com<br />
s’il·lustra a la figura següent:<br />
Veurem les diferents tasques a nivell de coneixement a través d’un exemple.<br />
[Moreno1994]p123-p124<br />
Descripció formal d’EBL - Exemple<br />
Per comprendre les diferents tasques a nivell de coneixement d’EBL, seguirem<br />
l’exemple que es proposa a [Moreno1994] de la pàgina 124 a la pàgina 129.<br />
Problema<br />
El problema que volem resoldre és descrit a [Moreno1994]p125, figura 4.3. Podem<br />
observar que el nostre concepte objectiu és la descripció d’un TIGRE, i la teoria del<br />
domini consisteix en 8 regles. El nostre exemple és la descripció d’un tigre concret<br />
(podem pensar en una instància de tigre).<br />
Resolució del problema<br />
Aquesta tasca ha de ser capaç de trobar el concepte objectiu ajudant-se de la teoria<br />
del domini i de l’exemple. Per tant, ha de resoldre el problema.<br />
Aquesta tasca com a resultat ha d’oferir un traça que contingui tota la informació que<br />
ha estat activada en el curs de la resolució del problema. Vegeu [Moreno1994]p124p126,<br />
concretament la figura 4.4.<br />
225
Anàlisi de la traça<br />
L’anàlisi de la traça és el primer pas que permetrà la construcció d’una explicació.<br />
L’explicació és la part de la traça que conté la informació que es preveu útil en un futur<br />
per a la resolució de nous problemes. Per tant, té com a objectiu retornar la traça amb<br />
la informació classificada. Vegeu [Moreno1994]p125-p126.<br />
Filtrat<br />
Aquesta tasca construeix l’explicació separant la informació marcada com a rellevant<br />
de la informació que no ho és. Vegeu [Moreno1994]p126-p127, figura 4.5<br />
Generalització de l’explicació<br />
Normalment el procés de generalització consisteix a substituir constants per variables,<br />
o estructures variables, de manera que l’explicació segueixi essent vàlida.<br />
El mètode més usat és l’algorisme de regressió d’objectius: regressionar una<br />
fórmula F a través d’una regla R és un mecanisme per determinar les condicions<br />
necessàries i suficients sota les quals pot usar-se la regla R per inferir F.<br />
Aquesta tasca obté com a resultat una explicació generalitzada. Vegeu<br />
[Moreno1994]p126-p128, figura 4.6.<br />
Construcció de nova informació<br />
Una vegada generalitzada l’explicació, aquesta ha de ser operacionalitzada, és a dir,<br />
traduïda al format adequat perquè pugui ser usada en el futur.<br />
En aquest exemple, mirant la figura 4.6, la nova regla que se’n dedueix es construeix<br />
posant a la part esquerra (condició) una conjunció de les fulles de l’arbre de<br />
l’explicació generalitzada, i a la part dreta (conclusió) el concepte objectiu:<br />
NOVA REGLA: Si RALLAT(x) i DENTS(x) i DÓNA-LLET(x) i TÉ-CUA llavors<br />
TIGRE(x)<br />
Així doncs, l’objectiu d’aquesta tasca és la de crear nova informació.<br />
En el moment de construir noves regles podria ser que se’n creessin més d’una. En<br />
general, convindrà analitzar si les noves regles són realment útils. Ho veurem a la<br />
sessió següent.<br />
Incorporació de nova informació<br />
Finalment aquesta darrera tasca, té per objectiu incorporar les noves regles creades<br />
per tal que quedin disponibles, de manera que puguin utilitzar-se en la resolució de<br />
nous problemes. Per tant, s’obté una nova teoria del domini.<br />
[Moreno1994]p124-p129<br />
RESUM<br />
En aquesta sessió hem presentat el concepte de l’aprenentatge deductiu o<br />
aprenentatge basat en explicacions – EBL.<br />
Hem analitzat un esquema general de funcionament, a través d’un exemple, d’aquesta<br />
família de mètodes.<br />
226
SESSIÓ 37: Aprenentatge basat en explicacions (II) – AR (10/15)<br />
Nom: Aprenentatge basat en explicacions (II) – APRENENTATGE ARTIFICIAL<br />
(10/15)<br />
Tipus: teòrica<br />
Format: no presencial<br />
Durada: 2 hores<br />
Dedicació: 2 hores<br />
Treball a lliurar: no<br />
Material:<br />
o Bibliografia bàsica:<br />
[Moreno1994]<br />
PRECEDENTS<br />
Aquesta sessió conjuntament amb l’anterior presentem l’aprenentatge deductiu, o<br />
aprenentatge basat en explicacions – EBL.<br />
OBJECTIUS<br />
L’objectiu d’aquesta sessió és analitzar els problemes que pot comportar l’EBL, veure<br />
com aquest mètode es pot usar dins d’un sistema, i fer una anàlisi d’aquest paradigma.<br />
CONTINGUTS<br />
En aquesta sessió veurem:<br />
1. Els avantatges i inconvenients d’EBL.<br />
Concretament ens centrarem en els seus inconvenients per tal de veure quan es<br />
poden produir, i com es poden solucionar.<br />
2. Sistemes que usen EBL: STRIPS, EBG, SOAR i PRODIGY.<br />
3. Una anàlisi d’aquest paradigma.<br />
5.4.3. Problemes d’EBL<br />
A la sessió anterior vam veure quin seria el funcionament d’un mètode que utilitzés<br />
l’aprenentatge basat en explicacions. Aquest paradigma té certs avantatges, però<br />
també comporta una sèrie d’inconvenients que convé analitzar i tenir presents.<br />
Els principals problemes d’EBL són de dos tipus: uns d’ells es solucionen amb una<br />
reformulació de la teoria, mentre que els altres necessiten una revisió de la teoria.<br />
227
Avantatges i inconvenients<br />
L’EBL té com a principal avantatge proporcionar mètodes que són de gran ajuda per<br />
millorar l’eficiència de la resolució de problemes (sota una teoria completa i<br />
consistent).<br />
Els principals inconvenients es troben quan es treballa en dominis reals, ja que<br />
normalment no són ni complets ni consistents.<br />
D’altra banda, s’ha de garantir que la informació apresa és realment útil, en parlarem a<br />
la reformulació de la teoria.<br />
I finalment, hi ha problemes que són conseqüència del contingut de la teoria del domini<br />
disponible, en parlarem a la revisió de la teoria.<br />
[Moreno1994]p129<br />
Reformulació de la teoria<br />
<strong>La</strong> incorporació sistemàtica de la informació apresa (de la nova informació) pot portar<br />
alguns problemes:<br />
1. S’incorpora informació inútil.<br />
2. Les regles són més complexes. És a dir, les regles apreses (normalment) són més<br />
complexes que les inicials, de tal manera que el cost del matching de les condicions<br />
inicials per veure si una regla és aplicable pot ser més gran!<br />
Així doncs, hi ha diferents motius pels quals es degrada la teoria amb la incorporació<br />
de nova informació:<br />
- Baixa freqüència d’aplicació d’algunes regles. Cal recordar que les noves regles<br />
s’han deduït amb el que ja sabíem, per tant, no representen informació que no<br />
tinguéssim abans.<br />
- Alt cost d’associar les regles.<br />
- Baix benefici.<br />
Possibles solucions: aplicar heurístiques. Per exemple, estimar, abans de<br />
generalitzar, si determinada informació es preveu útil i si val la pena la seva<br />
generalització.<br />
[Moreno1994]p129-p131<br />
Revisió de la teoria<br />
En dominis reals és difícil especificar tot el coneixement.<br />
Per tant, la teoria pot ser:<br />
228
1. incompleta,<br />
2. incorrecta,<br />
3. inconsistent,<br />
4. intractable.<br />
1. Teoria incompleta<br />
Direm que una teoria és incompleta quan la teoria no pot explicar algun exemple<br />
perquè no disposa de tota la informació necessària.<br />
Solució: intentar explicar al màxim l’exemple i identificar i conjecturar noves regles<br />
que completarien l’explicació. Cal destacar que la nova informació s’obté de forma no<br />
deductiva, per tant, no es pot assegurar que la nova teoria sigui una teoria correcta. De<br />
fet, sorgeix a causa del concepte de no monotonia.<br />
2. Teoria incorrecta<br />
Direm que una teoria és incorrecta quan el sistema fa alguna errada de predicció.<br />
Solució:<br />
1) identificar la causa (algorisme d’assignació de culpa); i<br />
2) intentar modificar convenientment la teoria. En aquest cas, normalment es disposa<br />
de regles específiques del domini, de manera que per a cada tipus d’error es dóna una<br />
manera de solucionar-lo, atès que és capaç d’identificar les seves possibles causes.<br />
3. Teoria inconsistent<br />
Direm que una teoria és inconsistent quan el sistema arriba a prediccions<br />
contradictòries.<br />
<strong>La</strong> inconsistència pot ser a causa de: la pròpia teoria; o bé a inconsistències entre la<br />
teoria i les observacions.<br />
Un exemple de teoria inconsistent serien les teories promíscues: capaces de donar<br />
una explicació plausible per a qualsevol situació.<br />
Solució: de forma similar a la teoria incorrecta.<br />
4. Teoria intractable<br />
Direm que una teoria és intractable quan per donar una predicció es necessiten més<br />
recursos dels quals es disposa.<br />
Per exemple, el joc d’escacs: si per a cada jugada s’examinessin totes les possibilitats<br />
de moviment, el joc seria interminable i, a més a més, esgotaria tots els recursos<br />
computacionals d’espai i de memòria.<br />
Solució: heurístiques que permetin restringir l’espai de cerca.<br />
L’acotament de l’espai de cerca a partir de l’heurístiques, fa que aquestes teories es<br />
comportin com si fossin incompletes o incorrectes, ja que poden no donar solució, o<br />
donar una solució errònia. Amb les heurístiques es corre el perill de convertir-la en<br />
inconsistent.<br />
[Moreno1994]p131-p132<br />
5.4.4. Sistemes que usen EBL<br />
L’aprenentatge deductiu normalment s’usa dins d’algun sistema. Per tant, és difícil<br />
donar mètodes d’aprenentatge deductiu. El que sí que hi ha són sistemes que usen<br />
EBL. Comentarem els quatre sistemes següents: STRIPS, EBG, SOAR i PRODIGY.<br />
229
STRIPS<br />
STRIPS va ser proposat per Fikes, Hart i Nilsson l’any 1972.<br />
STRIPS és un planificador que genera i recorda plans que li permetin aconseguir un<br />
determinat objectiu. De fet es considera un dels precursors de l’EBL, ja una vegada ha<br />
obtingut un pla, intenta generalitzar-lo i incorporar-lo com un nou operador (anomenat<br />
macrooperador) dins de la teoria del domini. De tal manera que un problema és descrit<br />
de la manera següent:<br />
Exemple = estat inicial<br />
Concepte objectiu = estat objectiu<br />
Teoria del domini = conjunt d’operadors<br />
Ouput = el pla obtingut (macrooperador), el qual s’incorporarà dins de la teoria del<br />
domini.<br />
Es considera el precursor d’EBL, perquè una vegada ha generat un pla, intenta<br />
explicar perquè satisfà l’objectiu. El procés que segueix STRIPS es pot veure com<br />
chunking.<br />
Vegeu com STRIPS aplica EBL a [Moreno1994]p133-p138. Veurem el sistema<br />
STRIPS, com a planificador, dins del Capítol 5 – Planificació.<br />
EBG<br />
[Moreno1994]p133-p138<br />
EBG o la generalització basada en explicacions, va ser proposada per en Mitchell l’any<br />
1986.<br />
Aquest formalisme és un intent d’agrupar els elements essencials de sistemes ja<br />
existents. L’objectiu d’EBG és aprendre noves descripcions operacionals de<br />
conceptes.<br />
[Moreno1994]p138-p140<br />
SOAR<br />
El sistema SOAR va ser dissenyat per <strong>La</strong>ird, Newell i Rosenbloom l’any 1986. És una<br />
arquitectura que combina aprenentatge i resolució de problemes.<br />
<strong>La</strong> unitat organitzativa fonamental de SOAR és l’espai de problemes i el seu<br />
paradigma central és la cerca.<br />
[Moreno1994]p139-p145<br />
PRODIGY<br />
PRODIGY va ser proposat per en Minton l’any 1988.<br />
230
És una arquitectura integrada que intenta unificar la resolució de problemes, la<br />
planificació i diversos mètodes d’aprenentatge. Concretament intenta integrar EBL,<br />
analogia derivacional, abstracció de plans i experimentació.<br />
[Moreno1994]p145-p152<br />
5.4.5. Anàlisi d’EBL<br />
En aquest apartat veurem una anàlisi de l’aprenentatge deductiu (o EBL) i el<br />
compararem amb l’aprenentatge inductiu.<br />
És convenient que amplieu aquesta anàlisi seguint els diferents conceptes que es van<br />
donar a les sessions introductòries de l’aprenentatge artificial.<br />
Comparativa d’EBL respecte de l’aprenentatge inductiu<br />
Aquesta taula comparativa de mètodes deductius versus mètodes inductius, se centra<br />
en les característiques generals d’ambdós mètodes. Evidentment, per a un problema i<br />
un algorisme donat, s’haurien de concretar.<br />
Us proposem que estudieu la comparativa seguint l’ordre que es proposa dins de la<br />
taula, és a dir, seguint en ordre els diferents punts.<br />
231
MÈTODES DEDUCTIUS MÈTODES INDUCTIUS<br />
1. Necessiten una teoria del domini completa i<br />
consistent per funcionar bé ⇒ en el món real<br />
moltes vegades serà inaplicable.<br />
3.<br />
– Problema de fons: hi ha autors que no el<br />
consideren un mètode d’aprenentatge, ja<br />
que no aprenen nou coneixement, sinó<br />
que expliciten coneixement que ja tenien<br />
de forma implícita.<br />
– Només poden produir-se regles correctes<br />
segons la teoria del domini i<br />
independentment del context, i moltes<br />
vegades podria interessar aprendre<br />
regles no correctes lògicament, però sí<br />
heurísticament.<br />
– Necessita gran quantitat del domini.<br />
4. Generalitza els camins deductius que<br />
porten a la solució d’un problema.<br />
[Moreno1994]p152-p153<br />
RESUM<br />
232<br />
2. Són a priori millors candidats per tractar<br />
amb el món real, però tenen diversos<br />
inconvenients:<br />
– Els exemples d’entrada han de ser<br />
suficientment representatius per tal<br />
d’assegurar un bon aprenentatge.<br />
– S’han de donar les característiques<br />
rellevants dels conceptes.<br />
– Les generalitzacions no estan justificades<br />
⇒ Aprenentatge deductiu<br />
4. Generalitza a partir d’exemples usant les<br />
característiques contingudes en aquests.<br />
5. Els mecanismes d’inferència habituals no<br />
permeten la transició des d’un coneixement<br />
actual K fins a K’, en els casos en què K i K’<br />
són representacionalment disjunts.<br />
⇒ Aprenentatge analògic<br />
En aquesta sessió s’han analitzat els problemes que pot comportar EBL, s’han vist<br />
alguns sistemes que usen EBL, i s’ha fet una anàlisi d’aquest paradigma i se l’ha<br />
comparat principalment amb l’aprenentatge inductiu.<br />
Així doncs, amb aquesta sessió finalitzem l’aprenentatge deductiu i, en general, els<br />
paradigmes d’aprenentatge que hem considerat simbòlics: aprenentatge inductiu,<br />
aprenentatge analògic i aprenentatge deductiu.
SESSIÓ 38: Aprenentatge evolutiu – AR (11/15)<br />
Nom: Aprenentatge evolutiu – APRENENTATGE ARTIFICIAL (11/15)<br />
Tipus: teòrica<br />
Format: no presencial<br />
Durada: 3 hores<br />
Dedicació: 3 hores<br />
Treball a lliurar: no<br />
Material:<br />
o Bibliografia bàsica:<br />
[Garrell2002a]<br />
PRECEDENTS<br />
Al llarg de les sessions anteriors hem analitzat tres famílies d’aprenentatge artificial<br />
simbòliques: la inductiva, l’analògica i la deductiva. En aquesta sessió veurem<br />
l’aprenentatge evolutiu, que es basa en una perspectiva diferent.<br />
OBJECTIUS<br />
L’objectiu d’aquesta sessió és el d’estudiar el paradigma de l’aprenentatge evolutiu i,<br />
més concretament, els algorismes genètics.<br />
CONTINGUTS<br />
Analitzarem els algorismes genètics i seguirem els punts següents:<br />
1. Farem una introducció a l’evolució natural (font d’inspiració d’aquest<br />
paradigma), i donarem una perspectiva històrica dels algorismes genètics<br />
2. Definirem què són els algorismes genètics.<br />
3. A través d’un exemple d’optimització, veurem com funcionen els algorismes<br />
genètics.<br />
4. Analitzarem com utilitzar un algorisme genètic per resoldre un problema<br />
d’aprenentatge.<br />
5. Finalitzarem amb unes conclusions, llistarem algunes aplicacions dels<br />
algorismes genètics i suggerirem la bibliografia bàsica del paradigma.<br />
5.5. Aprenentatge evolutiu – Algorismes<br />
genètics<br />
5.5.1. Introducció<br />
L’objectiu d’aquest apartat d’introducció, del paradigma de l’aprenentatge evolutiu –<br />
algorismes genètics (genetic algorithms – GA), és posar en comú un conjunt de<br />
termes i conceptes generals utilitzats després en els algorismes genètics.<br />
En primer lloc, farem una introducció a l’evolució natural i a les lleis de l’herència. I en<br />
segon lloc, donarem una perspectiva històrica dels algorismes genètics.<br />
233
Introducció a l’evolució natural<br />
Els conceptes que més ens interessen de l’evolució natural (per a aquest paradigma<br />
d’aprenentatge artificial) se centren al voltant de dos grans personatges: en Darwin i<br />
en Mendel.<br />
Darwin – selecció natural<br />
Darwin, a finals dels anys 1830, ja tenia la seva teoria força clara, però no va ser fins a<br />
finals dels 1850 quan va publicar la seva teoria en el llibre: “L’origen de les espècies a<br />
través de la selecció natural”. Darwin va ser molt criticat en el seu temps. Si bé hi havia<br />
gent, com en Russel, que tenien teories molt similars.<br />
Així doncs, com evoluciona la vida?<br />
* A partir de petits canvis. És el que més endavant en direm mutacions. Canvis quasi<br />
imperceptibles que, acumulativament, poden produir una millora important.<br />
* Procés de selecció natural. Només els bons individus són els que sobreviuen. Si els<br />
petits canvis fan millorar els individus (els enforteixen), aquests tenen més possibilitats<br />
de sobreviure.<br />
Mendel – concepte d’herència<br />
Mendel, a finals del segle passat, va iniciar la formalització de les lleis de l’herència.<br />
Així doncs, apareix el concepte d’herència:<br />
* Els fills són la barreja dels pares.<br />
* Els fills hereten la informació genètica dels pares.<br />
* Els pares transmeten als fills els seus petits canvis o millores.<br />
* Els fills, hipotèticament, esdevindran cada cop millors.<br />
En general ...<br />
<strong>La</strong> informació genètica es codifica en cromosomes.<br />
Els cromosomes estan funcionalment separats en gens.<br />
Els gens estan continguts en cadenes de nucleòtids anomenats ADN.<br />
Aquesta macromol·lècula fou descoberta per Watson i Crick durant els 50.<br />
En resum ...<br />
“Els individus som solucions a un problema”.<br />
“L’atzar juga un paper fonamental en l’evolució”.<br />
[Garrell2002a]<br />
Perspectiva històrica dels algorismes genètics<br />
Vegem una breu perspectiva històrica del algorismes genètics:<br />
* A finals dels anys 1950. Grups de biòlegs van utilitzar ordinadors per realitzar<br />
simulacions de sistemes biològics.<br />
* A finals dels 1960, principis dels 1970s. John Holland i el seu equip de la Universitat<br />
de Michigan van crear el paradigma dels GA.<br />
234
* Actualment s’està produint un boom en la utilització dels GA. Aquest boom s’ha pogut<br />
produir per la confluència de molts factors: una maduració progressiva de la teoria i<br />
dels conceptes bàsics; l’existència de variants i millores de les eines bàsiques; i la<br />
disponibilitat de cada cop més potència de càlcul.<br />
[Garrell2002a]<br />
5.5.2. Què són els algorismes genètics?<br />
En aquest apartat definirem els algorismes genètics, introduirem conceptes associats a<br />
aquest model i donarem l’algorisme general d’aquest paradigma.<br />
Concepte<br />
Els algorismes genètics són un algorisme basat (inspirat) en l’evolució de les<br />
espècies de’n Darwin i les lleis de la genètica de’n Mendel. Així doncs, hi haurà<br />
individus que viuran en un cert entorn. Aquests individus tindran la capacitat de<br />
reproduir-se i, òbviament, podran morir. Els individus millor adaptats seran els que<br />
tindran més possibilitats de sobreviure, mentre que els més febles no en tindran<br />
tantes. Per tant, els individus estaran sotmesos a una selecció natural. Existirà una<br />
força selectiva que actuarà sobre cada un del individus.<br />
Cal tenir present que els GA no són una simulació del procés d’evolució natural, tan<br />
sols estan inspirats en aquesta teoria.<br />
[Garrell2002a]<br />
Vocabulari<br />
Vegem diferents conceptes que configuren el vocabulari associat als algorismes<br />
genètics: individus, cromosomes, gen, entorn – funció d’avaluació, reproducció,<br />
reproducció sexual – creuament, i mutació.<br />
Individus:<br />
Són solucions potencials a un cert problema (al problema que es vulgui resoldre).<br />
Els individus reals representem solucions al problema de l’existència en aquest<br />
planeta.<br />
Cromosomes:<br />
Per simplificació, serà la codificació d’un individu. Informació genètica o genotip.<br />
Gen:<br />
Parts funcionalment diferents d’un cromosoma.<br />
Entorn:<br />
Eina que mesura el grau d’adaptació d’un individu. L’entorn és el que jutja si un<br />
individu és bo o no. És un dels conceptes més importants d’un GA. L’entorn<br />
s’implementarà a través de la funció d’avaluació.<br />
235
Reproducció:<br />
Des d’un cert punt de vista, la reproducció és la capacitat que tenen els individus de<br />
treure còpies de si mateixos. És una manera de fer sobreviure la informació genètica<br />
que un individu disposa.<br />
Reproducció sexual:<br />
Creuament de la informació genètica de dos o més individus. Mitjançant el creuament<br />
es generen nous individus. Típicament té dues fases clarament diferenciades:<br />
1. El creuament pròpiament dit, és a dir, una recombinació de la informació genètica<br />
dels pares.<br />
2. Un possible procés de mutació.<br />
Mutació:<br />
<strong>La</strong> mutació, com acabem de veure, és un procés que té lloc dins de la reproducció, ja<br />
que el procés químic de recombinació de l’ADN no és perfecte i incorpora certs errors.<br />
Aquests errors aleatoris són les mutacions.<br />
[Garrell2002a]<br />
Algorisme general<br />
Algorisme general<br />
L’algorisme general, que representa un algorisme genètic, manté una població<br />
d’individus (conjunt d’individus) P(t) = {X1, ... Xn}, on t és un instant de temps (o<br />
iteració).<br />
Un individu estarà representat per un únic cromosoma (implementat amb alguna<br />
estructura de dades).<br />
L’algorisme utilitzarà operadors genètics (de creuament, de mutació, etcètera) per<br />
simular la reproducció. Així mateix, utilitza funcions de reemplaçament d’individus per<br />
simular la mort natural, utilitza funcions de selecció per triar els individus que són<br />
millors i tenen dret a la reproducció i utilitza una funció d’avaluació per simular l’entorn<br />
natural.<br />
236
Esquema global<br />
<strong>La</strong> figura següent mostra un esquema global del que seria una iteració d’un algorisme<br />
genètic.<br />
Revisió dels components d’un GA<br />
Així doncs, es necessita:<br />
* una representació genètica de la solució al problema;<br />
* una manera de crear una població inicial;<br />
* una funció d’avaluació (entorn);<br />
* definir els operadors genètics;<br />
* i ajustar els valors per als paràmetres del GA.<br />
[Garrell2002a]<br />
5.5.3. Com funcionen els algorismes genètics?<br />
Explicarem el funcionament d’un algorisme genètic a través d’un exemple.<br />
Concretament, ens centrarem en un problema d’optimització d’una funció. És a dir, el<br />
nostre objectiu és:<br />
Maximitzar{f(X1, ..., Xn)}, essent f(X1, ..., Xn) > 0<br />
237
Anirem revisant tots i cadascun dels components del GA i anirem prenent les decisions<br />
que pertoquin. Moltes de les decisions que prendrem no són, ni molt menys úniques,<br />
sinó que quasi bé totes tenen diverses respostes possibles.<br />
Representació<br />
Suposem que triem una representació binària com la que es mostra a la figura<br />
([Garrell2002a]p43).<br />
Així doncs, per a k=8 podem tenir les representacions següents:<br />
m = (1,1,1,1,1,1,1,1)<br />
m = (0,0,0,0,0,0,0,0)<br />
m = (1,0,0,1,1,1,0,0)<br />
[Garrell2002a]<br />
Població inicial<br />
Direm que el nombre de cromosomes és la mida de la població (pop_size). Podem<br />
inicialitzar la població de dues maneres diferents: aleatòriament, o bé utilitzant algun<br />
criteri heurístic o alguna solució parcial obtinguda prèviament amb algun altre mètode.<br />
[Garrell2002a]<br />
Selecció<br />
<strong>La</strong> selecció simula, de manera implícita, la mort natural dels individus. El seu objectiu<br />
és el de crear una nova població, la qual no contingui els individus que han resultat ser<br />
els més dolents, i que sí contingui els millors (fins i tot diverses còpies dels millors).<br />
Hi ha molts mètodes de selecció, vegeu [Garrell2002a]p46-p50 i usa fitness<br />
proportionate amb ruleta (roulette wheel selection - RWS).<br />
[Garrell2002a]<br />
238
Creuament<br />
En primer lloc es defineix la probabilitat de creuament d’un individu – Pc:<br />
1. Decidiu per a cada individu si s’ha de creuar o no.<br />
2. Aleatòriament (o a través d’algun altre mètode) formeu parelles d’individus per<br />
creuar.<br />
3. Apliqueu l’operador de creuament a cada una de les parelles.<br />
4. Dins de la població, reemplaceu els pares pels fills generats (hi ha molts altres<br />
mètodes).<br />
Donat el cas, s’aplica l’operador de creuament:<br />
1. Escolliu un punt aleatori (pos) entre 1 i (m - 1).<br />
2. Intercanvieu els segments dels gens.<br />
3. Produïu la descendència.<br />
Vegeu un exemple a [Garrell2002a]p51-p53.<br />
[Garrell2002a]<br />
Mutació<br />
Per tal de realitzar la mutació, convé definir la probabilitat de mutació d’un gen –<br />
Pm.<br />
Passos a seguir en el procés de mutació:<br />
1. Per a cada gen de la població (#gens = pop_size * m) decidiu si s’ha de mutar o no<br />
utilitzant Pm.<br />
2. Si el gen (bit) s’ha de mutar, llavors cal complementar (canviar) el seu valor (0=>1,<br />
1=>0).<br />
Així per exemple, (1,0,0,1,1,1,0,1) es podria transformar durant el procés de mutació<br />
en (1,0,0,0,1,1,0,1).<br />
[Garrell2002a]<br />
Esquema global<br />
Durant aquest procés s’ha seguit l’esquema global que ja havíem donat abans:<br />
239
[Garrell2002a]<br />
240
Un exemple complet i simple<br />
Vegeu un exemple d’optimització complet i simple a [Garrell2002a]p57-p67, aplicant<br />
els algorismes genètics.<br />
Concretament, es vol optimitzar (maximitzar) la funció:<br />
f ( x)<br />
= x ⋅sin(<br />
10π<br />
x)<br />
+ 1;<br />
∀x<br />
∈ −<br />
[Garrell2002a]p57-p67<br />
[ 1,<br />
2]<br />
5.5.4. Algorismes genètics i aprenentatge<br />
Fins ara hem descrit els algorismes genètics com un mètode d’optimització de<br />
funcions. Però en realitat, és un mètode aplicable a molts tipus de problemes diferents.<br />
Concretament, també es pot utilitzar com a mètode d’aprenentatge artificial. Els<br />
esquemes més utilitzats per a aquesta finalitat són els sistemes classificadors.<br />
Sistemes classificadors<br />
Si recuperem els problemes que vam revisar dins del raonament basat en casos (com<br />
el problema del diagnòstic de càncer de mama), els algorismes genètics els podem<br />
adequar i utilitzar per tal de cercar un sistema basat en regles que modeli el problema.<br />
Així, cada regla tindria a la part esquerra els valors que poden adoptar els diferents<br />
atributs que representen un cas, i a la part dreta, la classe a la qual pertany aquest<br />
cas.<br />
Si els valors dels atributs els discretitzem en diferents intervals, podem representar la<br />
regla mitjançant una forma normal conjuntiva, de tal manera que, per a cada atribut, a<br />
cada interval hi tindrem un 0 o un 1, entenent que la unió dels diferents intervals,<br />
mentre que tindrem una conjunció entre els diferents atributs.<br />
Els algorismes genètics poden tractar els sistemes classificadors des de dues<br />
perspectives ben diferents: segons Pittsburgh o segons Michigan.<br />
Pittsburgh<br />
Pittsburgh entén cada individu com una solució al problema. És a dir, cada individu és<br />
un conjunt de regles que resolen el problema.<br />
Michigan<br />
Michigan entén que el conjunt de tots els individus ofereix una solució al problema. És<br />
a dir, cada individu representa una regla.<br />
5.5.5. Conclusions i aplicacions<br />
Volem concloure aquesta introducció a través d’algunes reflexions, i llistar algunes<br />
aplicacions.<br />
241
Finament, i se suggereixen els llibres principals sobre aquest paradigma.<br />
Conclusions<br />
Llistarem una sèrie de conclusions/reflexions d’aquest paradigma:<br />
- És un mètode computacional molt diferent al tradicional.<br />
- Presenta un nou paradigma de computació extremadament novedós, amb més<br />
possibilitats de les que es poden imaginar inicialment.<br />
- Hi ha hagut un boom en la seva utilització.<br />
- Voldríem destacar un avantatge i un inconvenient. Avantatge: pot solucionar una<br />
enorme quantitat de problemes, ja que és un mètode molt genèric. Inconvenient: el<br />
temps de computació és extremadament alt.<br />
- Alerta perquè no és un mètode indicat per a qualsevol problema, ja que “no cal matar<br />
mosques a canonades”.<br />
[Garrell2002a]<br />
Aplicacions<br />
Els algorismes genètics es poden aplicar en molts àmbits.<br />
Sempre que convingui optimitzar alguna cosa, es podrà aplicar un GA. Tanmateix, la<br />
paraula optimitzar té molts significats i moltes extensions (vegeu la figura):<br />
Llistem algunes possibles aplicacions:<br />
Optimització de funcions de cost/benefici.<br />
Aprenentatge: sistemes classificadors, diagnosi, ...<br />
TSP.<br />
Programació (genètica).<br />
Planificació.<br />
Particionat.<br />
242
Predicció de sistemes dinàmics.<br />
Evolució de xarxes neuronals.<br />
Evolució d’autòmats cel·lulars.<br />
Etcètera.<br />
[Garrell2002a]<br />
Bibliografia suggerida<br />
Sobre els algorismes genètics es recomana la bibliografia següent, la qual la podeu<br />
trobar a la biblioteca d’Enginyeria i Arquitectura <strong>La</strong> <strong>Salle</strong>.<br />
* J.H. Holland, “Adaptation in Natural and <strong>Artificial</strong> Systems”, The University of<br />
Michigan Press, 1975.<br />
* D.E. Goldberg, “Genetic Algorithms in Search, Optimization and Machine Learning”,<br />
Addison-Wesley, 1989.<br />
* Z. Michalewicz, “Genetic Algorithms + Data Structures = Evolution Programs”,<br />
Springer-Verlag, 1996.<br />
* M. Mitchell, “An Introduction to Genetic Algorithms”, MIT Press, 1996.<br />
[Garrell2002a]<br />
RESUM<br />
En aquesta sessió s’ha estudiat el paradigma de l’aprenentatge evolutiu.<br />
Ens hem centrat en els algorismes genètics i hem analitzant com resoldre un problema<br />
d’optimització. Després, també hem vist com adequar el mètode per resoldre un<br />
problema d’aprenentatge mitjançant sistemes classificadors.<br />
243
244
SESSIÓ 39: Aprenentatge connexionista (I) – AR (12/15)<br />
Nom: Aprenentatge connexionista (I) – APRENENTATGE ARTIFICIAL (12/15)<br />
Tipus: teòrica<br />
Format: no presencial<br />
Durada: 2 hores<br />
Dedicació: 2 hores<br />
Treball a lliurar: no<br />
Material:<br />
o Bibliografia bàsica:<br />
[Garrell2002b]<br />
PRECEDENTS<br />
Els paradigmes d’aprenentatge artificial que hem vist fins ara tenen una font<br />
d’inspiració ben diferent a allò que es presenta en aquesta sessió: l’aprenentatge<br />
connexionista – xarxes neuronals.<br />
OBJECTIUS<br />
L’objectiu d’aquesta sessió és el d’introduir els conceptes que van portar a proposar<br />
l’aprenentatge connexionista, i més concretament, les xarxes neuronals.<br />
CONTINGUTS<br />
En aquesta sessió farem una introducció a les xarxes neuronals i analitzarem què és<br />
una neurona natural (biològica) i què és una neurona artificial (o element de procés).<br />
Finalitzarem, analitzant una xarxa neuronal molt senzilla: el perceptró.<br />
5.6. Aprenentatge connexionista – Xarxes<br />
neuronals (I)<br />
5.6.1. <strong>La</strong> neurona natural – Conceptes fonamentals<br />
de neurofisiologia<br />
<strong>La</strong> computació neuronal es va proposar com una nova manera d’enfocar els<br />
problemes, davant d’alguns problemes que van mostrar –en el seu dia– els sistemes<br />
simbòlics. És un paradigma amb una clara inspiració biològica.<br />
En aquest apartat repassarem alguns conceptes fonamentals de neurofisiologia, a<br />
partir dels quals proposarem, dins de l’apartat 5.6.2, “la neurona artificial” o “element<br />
de procés”.<br />
245
Fisiologia d’una neurona<br />
<strong>La</strong> fisiologia d’una neurona es pot il·lustrar mitjançant la figura següent:<br />
Algunes de les seves parts (com la sinapsis, l’axó i les dentrites) seran amb les quals<br />
es fixaran les neurones artificials, per tal “d’emular” el seu funcionament.<br />
[Garrell2002b]p13-p15<br />
<strong>La</strong> unió sinàptica<br />
<strong>La</strong> unió sinàptica o sinapsis és la connexió entre dues neurones.<br />
És a través d’aquesta unió que s’estableix la comunicació entre dues neurones: la<br />
cèl·lula presinàptica allibera una substància anomenada neurotransmissor; i la cèl·lula<br />
postsinàptica absorbeix el neurotransmissor.<br />
[Garrell2002b]p16-p17<br />
Model de computació neuronal de’n McCulloch i de’n Pitts<br />
Si observem les neurones, és fàcil adonar-se que aquestes s’organitzen en circuits<br />
(xarxes), i que la seva activitat té com a resultat una computació. Així doncs, podem<br />
veure un teixit nerviós com un sistema computacional.<br />
En McCulloch i en Pitts –l’any 1943– van realitzar un primer estudi sota aquesta idea<br />
(de sistema computacional), el qual, malgrat tenir moltes deficiències, va centrar les<br />
bases del tema.<br />
Hipòtesis de la teoria de’n McCulloch i de’n Pitts:<br />
246
1. L’activitat d’una neurona és un procés tot-res.<br />
2. Una neurona s’exita, només, si hi ha un nombre fix de sinapsis exitades.<br />
3. L’únic retard significatiu dins del sistema nerviós, és el retard sinàptic.<br />
4. Una sinapsis inhibitòria activa, anul·la l’exitació d’una neurona.<br />
5. L’estructura d’interconnexions no canvia en el temps.<br />
Pel primer principi (comportament binari) es pot formalitzar el comportament d’una<br />
xarxa neuronal segons la lògica proposicional:<br />
N i (t)<br />
= K<br />
Conclusions del model de’n McCulloch i de’n Pitts:<br />
1. No és un model massa real (imprecís i pobre).<br />
2. Va ser un primer pas que va ajudar a la formalització.<br />
3. No posava en evidència un fet obvi però fonamental (Anderson i Rosenfeld): encara<br />
que la neurona sigui un dispositiu senzill, si s’interconnecten adequadament, es pot<br />
obtenir una enorme potència de càlcul.<br />
Però, aquest sistema computacional és capaç d’aprendre? No!<br />
[Garrell2002b]p18-p24<br />
Teoria d’aprenentatge de’n Hebb<br />
Els sistemes naturals neixen pseudopreprogramats (semientrenats). És a dir, “un peix<br />
sap nedar quan neix” i “un humà sap respirar quan neix”. En canvi, “un humà no sap<br />
caminar quan neix” i tampoc “sap sumar quan neix”.<br />
Per tant, sembla obvi pensar que un circuit neuronal té la capacitat d’aprendre<br />
mitjançant un entrenament. Entendrem que l’entrenament introdueix nova informació<br />
dins de la xarxa. Però, com es produeix aquest aprenentatge?<br />
Teoria d’aprenentatge de’n Hebb. En Hebb, l’any 1949, va donar una primera pista:<br />
“Quan un axó d’una cèl·lula A està suficientment propera a una cèl·lula B per exitar-la,<br />
o bé quan intervé persistentment en la seva activació, llavors es produeix un<br />
creixement o un canvi metabòlic en una o en ambdues cèl·lules, de manera que<br />
l’eficiència d’A de cara a l’activació de B, s’incrementa”.<br />
Aquesta “llei” d’aprenentatge té moltes imprecisions, però dóna una idea suficientment<br />
bona.<br />
Podem recordar l’experiment de’n Pavlov (exemple clàssic de condicionament).<br />
Ja que les neurones es comuniquen a través de la sinapsis, és lògic pensar que els<br />
canvis de l’aprenentatge es produeixen en aquestes. Malgrat que les teories actuals<br />
afirmen que els canvis es deuen a l’augment en la velocitat d’alliberament i recepció<br />
dels neurotransmissors (els enllaços van més fins).<br />
247
[Garrell2002b]p25-p30<br />
248
5.6.2. <strong>La</strong> neurona artificial<br />
L’objectiu de la definició d’una neurona artificial consisteix a traslladar conceptes<br />
biològics de neurofisiologia cap a un entorn artificial. I d’aquesta manera definir una<br />
neurona artificial com un element de procés (PE).<br />
Abstracció de conceptes biològics<br />
Entendrem la neurona artificial com un node o element de procés (PE). Per tant, un PE<br />
és realment diferent a una neurona biològica.<br />
Les neurones artificials simulen només certs comportaments neuronals. Així, sovint és<br />
millor entendre un PE com la simulació de part del comportament d’un conjunt de<br />
neurones biològiques.<br />
De fet, comparar una neurona artificial (PE) amb una neurona biològica, és com<br />
comparar una bombeta amb el sol!<br />
[Garrell2002b]<br />
L’arquitectura d’una neurona artificial<br />
L’arquitectura d’una neurona artificial s’inspira en els estímuls que rep una neurona<br />
biològica de les altres neurones amb les quals està connectada, i de l’impuls que a<br />
continuació ella transmet a d’altres.<br />
Per tant, direm que una neurona artificial rep moltes entrades que provenen d’altres<br />
neurones artificials (PE). I produeix una única sortida (activació).<br />
Aquesta idea s’implementa mitjançant una equació matemàtica que calcula un valor de<br />
sortida en funció d’uns valors d’entrada. Vegem l’arquitectura resultant:<br />
Per tant, què rep com a entrada (input) la neurona j?<br />
249
I<br />
j<br />
=<br />
n<br />
∑<br />
i=<br />
1<br />
w<br />
ij<br />
X<br />
i<br />
Essent wij el pes associat a la connexió que hi ha entre la neurona i la neurona j.<br />
I què transmet com a sortida (output) la neurona j?<br />
X j = f ( I j )<br />
Essent f la funció d’activació.<br />
[Garrell2002b]<br />
<strong>La</strong> funció d’activació<br />
Existeixen molts tipus de funció d’activació: des d’una simple funció esglaó fins a una<br />
sinoidal, passant per una sigmoidal.<br />
Però val a observar que una funció esglaó no és derivable, mentre que una sigmoidal<br />
sí que ho és. Aquest tret serà clau en el moment d’incloure “aprenentatge” dins dels<br />
algorismes que s’anomenen xarxes neuronals.<br />
[Garrell2002b]<br />
5.6.3. El perceptró<br />
Podríem dir que el perceptró va ser la primera xarxa neuronal. De fet, l’objectiu<br />
d’estudiar-lo consisteix a il·lustrar un model molt bàsic i primitiu de xarxa neuronal.<br />
Plantejament<br />
El perceptró va ser inventat pel psicòleg Rosenblatt a finals dels 1950. De fet, va<br />
suposar una “període d’eufòria” respecte de les xarxes neuronals (malgrat que ben<br />
aviat es va estroncar).<br />
El perceptró era un model diferent del proposat per en McCulloch i en Pitt, ja que es<br />
basava en la teoria de probabilitats. Concretament, s’inspirava en fotoperceptró (d’aquí<br />
ve el seu nom) el qual respon a hipotètics senyals òptics.<br />
[Garrell2002b]<br />
Arquitectura i funcionament<br />
L’arquitectura i el funcionament del perceptró es basava en el funcionament d’un<br />
fotoperceptró. Vegeu la figura.<br />
250
<strong>La</strong> neurona artificial (PE) –i al mateix temps xarxa neuronal– la configuraven A i R. Les<br />
seves sortides (output) eren o bé un +1, o bé un -1. I en tot moment només tenia una<br />
sortida activa.<br />
El perceptró serveix per classificar patrons, de tal manera que cada unitat R identifica<br />
un patró. Malgrat tot, té el problema de la separabilitat (que analitzarem en aquesta<br />
sessió).<br />
El perceptró es va dissenyar com un dispositiu que podia aprendre. Al principi no<br />
funcionava bé, però al final sí. En el procés d’aprenentatge es procedia a un<br />
reforçament de les sortides d’A en funció de si aquestes contribuïen o no a les<br />
respostes correctes per a una entrada donada. Si la resposta era correcta, es<br />
decrementaven les sortides d’A que s’havien activat.<br />
Com tot problema d’aprenentatge, es necessiten un conjunt de mostres (exemples) per<br />
aprendre.<br />
[Garrell2002b]<br />
Modelat<br />
El modelat del perceptró va arribar de la mà de’n Minsky i de’n Papert l’any 1969. Més<br />
endavant veurem quina va ser la seva aportació.<br />
251
[Garrell2002b]<br />
Separabilitat lineal<br />
El problema de la separabilitat lineal el van plantejar en Minsky i en Papert el 1969,<br />
quan pretenien fer una anàlisi detallada del perceptró: les seves capacitats i les seves<br />
limitacions. El resultat del seu treball va fer entrar en crisi a les XN, ja que una de les<br />
afirmacions de’n Minsky i de’n Papert va ser que el perceptró només podia classificar<br />
patrons que fossin linealment separables.<br />
Un problema que no és linealment separable (és a dir, que les seves classes no es<br />
poden diferenciar mitjançant una única recta, en el cas de tenir dos atributs) és el<br />
XOR. Doncs bé, el perceptró era incapaç de resoldre aquest problema. Vegeu<br />
[Garrell2002b]p51-p52.<br />
En Minsky i en Papert van observar que amb la inclusió d’una altra capa de neurones,<br />
si que es podia trobar el sistema d’equacions que era capaç de resoldre el problema<br />
del XOR (vegeu [Garrell2002b]p53-p55).<br />
[Garrell2002b]<br />
RESUM<br />
En aquesta sessió hem vist una introducció a les xarxes neuronals, que completarem<br />
amb la sessió següent.<br />
Hem partit de les neurones biològiques per tal de definir les neurones artificials o<br />
elements de procés.<br />
Hem vist la primera xarxa neuronal: el perceptró. Però aquest ofereix un gran<br />
problema: el problema de la separabilitat lineal.<br />
252
SESSIÓ 40: Aprenentatge connexionista (II) – AR (13/15)<br />
Nom: Aprenentatge connexionista (II) – APRENENTATGE ARTIFICIAL (13/15)<br />
Tipus: teòrica<br />
Format: no presencial<br />
Durada: 2 hores<br />
Dedicació: 2 hores<br />
Treball a lliurar: no<br />
Material:<br />
o Bibliografia bàsica:<br />
[Garrell2002]<br />
[Golobardes1996]<br />
PRECEDENTS<br />
Aquesta sessió està estretament lligada amb la sessió anterior, en la qual vam fer una<br />
introducció a les xarxes neuronals i vam estudiar el perceptró.<br />
OBJECTIUS<br />
L’objectiu d’aquesta sessió és estudiar les xarxes neuronals backpropagation, ja que<br />
són un bon exemple d’aquest paradigma. A més a més, es volen analitzar els diferents<br />
criteris per definir una xarxa neuronal qualsevol.<br />
CONTINGUTS<br />
En aquesta sessió veurem:<br />
1. Les xarxes neuronals Backpropagation: antecedents, la seva arquitectura, el mètode<br />
d’aprenentatge que usen, un exemple d’aplicació i algunes conclusions.<br />
2. Una classificació general de les XN: topologies, models d’aprenentatge i una<br />
possible classificació de les diferents XN existents.<br />
3. Finalitzarem veient unes conclusions (avantatges i inconvenients de les XN),<br />
llistarem alguns dominis on són aplicables i suggerirem una mica de bibliografia.<br />
5.6.4. Les xarxes neuronals backpropagation<br />
Les xarxes neuronals backpropagation (BPN) són unes de les xarxes neuronals<br />
més utilitzades i robustes. De fet, va ser la seva aparició que va fer que el paradigma<br />
de les xarxes neuronals “tornés a estar de moda”.<br />
Les BPN solventen el problema de la separabilitat lineal i integren capes intermitges<br />
(anomenades ocultes) de neurones a la seva arquitectura, tal i com suggerien en<br />
Minsky i en Papert l’any 1969, i al mateix temps inclou un bon algorisme<br />
d’aprenentatge.<br />
253
Antecedents<br />
Tant el perceptró (Rosenblatt, finals dels 1950), com l’Adaline (Widrow, 1959) eren<br />
xarxes amb un únic PE, les quals permetien resoldre problemes de classificació de<br />
manera força exitosa. El problema que compartien era que no eren capaces de<br />
resoldre problemes no linealment separables.<br />
L’ADALINE –ADAptative LInear NEuron, o ADAptative LINear Element en les èpoques<br />
de crisi per a les XN– es va proposar per a entorns de tractament digital del senyal<br />
(filtres, ...). Una de les principals aportacions de l’Adaline va ser el mètode<br />
d’aprenentatge (anomenat LMS): calcula l’error que es produeix a la sortida, entre el<br />
valor obtingut i el valor esperat. L’objectiu és minimitzar aquest error, concretament<br />
que l’error quadràtic mitjà (per a totes les entrades d’entrenament) sigui mínim. Aquest<br />
error es minimitzarà a través d’un ajust apropiat dels pesos de les entrades. <strong>La</strong> idea es<br />
pot il·lustrar amb la figura següent (en un cas que tenim només dos atributs:<br />
Però recordem, que tant el perceptró com les adalines només són adequades per a<br />
problemes de classificació de mostres linealment separables, i que siguin problemes<br />
petits.<br />
El mateix Widrow l’any 1959, va proposar les MADALINE (many adalines, moltes<br />
adalines). Es van proposar per al mateix entorn de tractament digital del senyal.<br />
Aquestes introduïen més capes per poder classificar mostres linealment no<br />
separables. Per tant, s’obté una xarxa molt més potent. Vegeu l’arquitectura multinivell<br />
que pot oferir:<br />
254
Van intentar generalitzar el mètode d’aprenentatge de les adaline (l’LMS – least-mean<br />
square), però es van trobar amb diferents problemes. Arrel d’això van proposar un nou<br />
mètode d’aprenentatge anomenat radaline rule II (MRII). Però el problema de l’MRII<br />
és que es basa en un procediment similar a “prova i error” i afegeix un criteri heurístic<br />
anomenat principi de mínima distorsió. Aquest algorisme va ser millorat per a d’altres<br />
propostes.<br />
Finalment, arribem a les BACKPROPAGATION (BPN). Aquestes han estat unes de<br />
les xarxes neuronals més exitoses i més utilitzades. A partir de la seva creació, la<br />
xarxa ha anat evolucionant: Werbos (1974), Parker (1985), i Rummelhart i McClelland<br />
(1986).<br />
Les BPN presenten una xarxa multicapa similar a la madaline. Però ofereixen una<br />
regla d’aprenentatge complexa i força optimitzada. L’estudiarem en els conceptes<br />
següents.<br />
[Garrell2002b]<br />
L’arquitectura<br />
L’arquitectura de les BPN és una xarxa neuronal multicapa: té una capa d’entrada<br />
(input), una capa de sortida (output), i hi poden haver una o més capes intermitges<br />
(hidden). Aquestes capes intermitges són les que permeten resoldre problemes<br />
linealment no separables.<br />
255
Totes les neurones d’una capa estan connectades amb totes les neurones de la capa<br />
següent, de tal manera que una neurona j rep com a entrada:<br />
I<br />
j<br />
=<br />
n<br />
∑<br />
i=<br />
1<br />
w<br />
ij<br />
X<br />
i<br />
essent n el nombre de neurones de la capa anterior. En aquest context I també<br />
s’anomena net.<br />
D’altra banda, com a sortida propaga el valor següent:<br />
X j = f ( I j )<br />
Per a totes les neurones d’una mateixa capa s’aplica la mateixa funció d’activació f (i<br />
derivable). Tot i que és habitual que s’utilitzi la mateixa funció d’activació per a tota la<br />
xarxa neuronal.<br />
Vegeu l’arquitectura genèrica que mostra la figura següent:<br />
Onθ és el llindar que ha de superar el resultat de la funció d’activació, per tal de<br />
propagar el valor obtingut.<br />
També podem observar el concepte de bias unit (o bias term). És una neurona que es<br />
pot afegir a cada capa, amb un valor fixe d’1, que serveix per augmentar el temps de<br />
l’aprenentatge.<br />
256
[Garrell2002b]<br />
[Golobardes1996]<br />
L’aprenentatge<br />
L’aprenentatge que usen les BPN, conceptualment està a mig camí entre el de les<br />
adalines i el de les madalines. <strong>La</strong> similitud que presenta amb l’Adaline és el<br />
plantejament analític general, i una resolució numèrica iterativa. D’altra banda, la<br />
similitud amb la madaline és el fet que cal anar ajustant els pesos que hi ha a les<br />
connexions de les capes intermitges.<br />
L’algorisme d’aprenentatge que proposen les BPN rep el nom de generalized delta<br />
rule (GDR). És com una generalització de l’LMS (adaline) utilitzant el concepte de<br />
steepest descent. L’error, en funció dels pesos, es pot visualitzar amb la figura<br />
següent:<br />
Algorisme d’aprenentatge Generalized Delta Rule – GDR<br />
1. Apliqueu un vector a l’entrada i calculeu la sortida.<br />
2. Calculeu l’error, a partir de les sortides obtingudes respecte de les esperades.<br />
3. Determineu en quina direcció (+ o -) s’ha de canviar cada pes per tal de reduir<br />
l’error.<br />
4. Calculeu la variació de cada pes.<br />
5. Apliqueu les correccions als pesos, des de la capa de sortida fins a la capa<br />
d’entrada (Backpropagation).<br />
6. Repetiu el procés amb tots els vectors d’entrenament fins que l’error sigui<br />
acceptable.<br />
257
Dins de les BPN cal distingir dues fases diferents: l’entrenament – aprenentatge<br />
(apliqueu l’algorisme anterior per tal d’ajustar els pesos) i explotació (senzillament<br />
propagueu els valors per tal d’obtenir una sortida per a un nou problema).<br />
Podem observar que l’ordre en el qual es presenten els vectors d’entrenament a la<br />
xarxa pot influir en la convergència del seu aprenentatge. Per tal d’evitar aquest biax a<br />
l’ordre d’entrada dels exemples, convé passar tots els exemples a cada volta, en un<br />
ordre diferent (aleatori).<br />
Un dels principals avantatges de les BPN és que és molt robusta al soroll. Tanmateix,<br />
l’aprenentatge pot presentar dos problemes: una caiguda en un mínim local i un<br />
sobreaprenentatge.<br />
[Garrell2002b]<br />
[Golobardes1996]<br />
Un exemple d’aplicació<br />
Us proposem que seguiu l’exemple de reconeixement de BITMAPS que es proposa a<br />
[Golobardes1996].<br />
Concretament, es vol dissenyar una xarxa neuronal que sigui capaç de reconèixer les<br />
lletres “E” i “D”. A tal efecte s’entrena la xarxa usant dos exemples de cada lletra.<br />
Atès que cada lletra es representa mitjançant 20 bits (4x5), l’INPUT estarà compost<br />
per 20 neurones (cadascuna representa 1 bit), més el bias term si es considera oportú.<br />
D’altra banda, l’OUTPUT estarà format per dues neurones: una que reconegui la “E” i<br />
l’altra que reconegui la “D”. Finalment, l’arquitectura de la xarxa es va ajustar de tal<br />
manera que es va posar una capa oculta amb 10 neurones (més el bias term si es<br />
considera oportú).<br />
Observeu els resultats que es van obtenir! El més sorprenent és que aquesta petita<br />
aplicació ja dóna una idea de la robustesa de les BPN.<br />
[Golobardes1996]<br />
Conclusions<br />
Hem vist que les BPN són unes xarxes neuronals molt potents i versàtils, de la qual<br />
existeixen moltes variants que no hem vist.<br />
Recordeu: són robustes al soroll; poden ser esbiaxades a l’ordre d’entrada dels<br />
exemples d’entrenament; poden caure fàcilment en un mínim local; i poden patir de<br />
sobreaprenentatge.<br />
Existeixen moltes aplicacions documentades com:<br />
- Net Talk: pronúncia automàtica.<br />
- Classificació d’imatges de SONAR.<br />
258
- Control de navegació d’automòbils.<br />
- Compressió de dades.<br />
- Etc.<br />
[Garrell2002b]<br />
[Golobardes1996]<br />
5.6.5. Classificació general de les XN<br />
Existeixen molts algorismes considerats xarxes neuronals. <strong>La</strong> diferència de cadascun<br />
d’ells es troba en la topologia que presenten les diferents arquitectures de les xarxes;<br />
i en l’algorisme d’aprenentatge que usen.<br />
A partir de la topologia de les xarxes i del mètode d’aprenentatge es pot proposar una<br />
classificació de les diferents xarxes neuronals.<br />
Topologies<br />
Les diferents topologies que poden oferir les xarxes neuronals depèn fonamentalment<br />
de tres factors: el nombre de capes, el nombre de neurones per capa i el tipus de<br />
connectivitat.<br />
Nombre de capes<br />
Una xarxa neuronal pot ser unicapa (una única capa) o multicapa (una o més capes).<br />
Nombre de neurones per capa<br />
Direm que les capes són unineurona (una neurona per capa) o multineurona (una o<br />
més neurones per capa).<br />
Connectivitat<br />
<strong>La</strong> connectivitat es descriu mitjançant tres característiques:<br />
1. El grau de connectivitat: la xarxa pot estar parcialment connectada (és a dir, no totes<br />
les neurones estan connectades amb totes, com les BPN), o bé completament<br />
connectada (totes les neurones estan connectades amb totes).<br />
2. El sentit de les connexions: el sentit de les connexions pot ser endavant (com les<br />
BPN), endarrere, laterals i/o amb si mateixes (reflexives).<br />
3. El tipus de connexió: pot ser exitadora o inhibidora.<br />
[Garrell2002b]<br />
Models d’aprenentatge<br />
Bàsicament els models d’aprenentatge de les xarxes neuronals es divideixen entre els<br />
supervisats i els no supervisats. Tot i així s’estan desenvolupant xarxes neuronals amb<br />
aprenentatge per reforçament.<br />
259
Recordem que en l’aprenentatge supervisat hi ha un mestre que indica si la resposta<br />
del sistema és correcta o no.<br />
Mentre que en l’aprenentatge no supervisat la xarxa s’autoorganitza i indica què és<br />
correcte i què no. En realitat és pseudosupervisat ja que el que es fa es minimitzar un<br />
cert error. Com per exemple la generació de clusters.<br />
[Garrell2002b]<br />
Classificació<br />
Existeixen moltes xarxes neuronals. Una possible classificació que podríem fer dels<br />
diferents algorismes seria a partir del mètode d’aprenentatge que usen (supervisat o<br />
no supervisat) i de la seva arquitectura (xarxes recurrents o xarxes feedforward). Com<br />
per exemple:<br />
Supervisat – recurrents<br />
Brain State in a Box (BSB)<br />
Fuzzy Cognitive Map (FCM)<br />
Boltzman Machine (BM)<br />
Mean Field Annealing (MFA)<br />
Recurrent Cascade Correlation (RCC)<br />
Learning Vector Quantization (LVQ)<br />
backpropagation Through Time (BPTT)<br />
...<br />
Supervisat – feedforward<br />
Perceptró<br />
Adaline, madaline<br />
Backpropagation<br />
Cauchy Machine<br />
Adaptative Heuristic Critic<br />
Time Delay Neural Network<br />
Associative Reward Penalty<br />
Avalanche Matched Filter<br />
Backpercolation<br />
Artmap<br />
...<br />
No supervisat – recurrents<br />
Additive Grossberg<br />
Shunting Grossberg<br />
Binary Adaptative Resonance Theory (ART1)<br />
ART2<br />
Discrete Hopfield<br />
Continuous Hopfield<br />
BAM<br />
Temporal Associative Memory (TAM)<br />
ABAM<br />
Kohonen<br />
Competitive Learning<br />
...<br />
260
No supervisat – feedforward<br />
Learning Matrix (LM)<br />
Driver-Reinforcement Learning (DR)<br />
Linear Associative Memory (LAM)<br />
OLAM<br />
Sparse Distributed Associative Memory (SDM)<br />
Fuzzy Associative Memory (FAM)<br />
Counterpropagation (CPN)<br />
...<br />
[Garrell2002b]<br />
5.6.6. Conclusions i aplicacions de les XN<br />
Les xarxes neuronals ofereixen un mètode computacional molt diferent del tradicional.<br />
De fet, aquest paradigma va obrir les portes a la IA subsimbòlica, que va portar a un<br />
gran boom en la seva utilització.<br />
En aquest apartat veurem: els avantatges que ofereixen; els inconvenients; llistarem<br />
algunes aplicacions; i suggerirem alguna bibliografia.<br />
Avantatges de les XN<br />
Els principals avantatges de les xarxes neuronals són els següents:<br />
Autoorganització: mentre la xarxa aprèn, va adquirint i emmagatzemant certa<br />
informació i coneixement de forma automàtica. L’usuari mai especifica com guardar la<br />
informació.<br />
Generalització: a partir d’un conjunt d’exemples, generalitzen el seu comportament.<br />
Tanmateix, els exemples han d’estar ben triats.<br />
Abstracció (caixa negra): l’usuari no veu el funcionament intern de la xarxa. Se li<br />
dóna una entrada i l’XN dóna una resposta.<br />
Tolerància a errors. <strong>La</strong> tolerància als errors es pot veure des de dos punts de vista: al<br />
soroll d’entrada, ja que l’XN és capaç de generalitzar; i a la degradació de l’XN, ja que<br />
el coneixement està dispers per tota la xarxa, i si algunes parts de l’XN s’aturen, el<br />
procés global pot seguir funcionant.<br />
Paral·lelització: és un procés eminentment paral·lel, bon candidat per a la<br />
paral·lelització computacional.<br />
Compatibilitat amb la tecnologia actual: no només és possible simular-les, sinó que<br />
també es poden implementar per a hardware.<br />
[Garrell2002b]<br />
261
Inconvenients de les XN<br />
Els principals inconvenients de les xarxes neuronals són els següents:<br />
Caixa negra: sabem què fa però no sabem el perquè ho fa.<br />
Disseny complex: davant d’un problema, la decisió de quina XN utilitzar no és ni<br />
trivial ni directa. Un cop escollida l’XN, llavors cal ajustar molts paràmetres de<br />
configuració (incloent el procediment d’aprenentatge). És un disseny a base “de prova i<br />
error”.<br />
Rendiment: la simulació software és sovint lenta.<br />
Aprenentatge complicat: l’aprenentatge és incremental i preliminar a l’explotació. Per<br />
tant, és molt sensible a moltes coses (ordre, ...).<br />
[Garrell2002b]<br />
Aplicacions<br />
Les xarxes neuronals s’han aplicat a molts dominis diferents. Llistem alguns d’ells:<br />
- Classificació: en general es tracta de predicció qualitativa. Com OCR, ecos de<br />
SONAR, ...<br />
- Clustering / Categorització: creació de categories o agrupaments.<br />
- Aproximació de funcions: recuperació de senyals amb soroll, ...<br />
- Predicció quantitativa. Per exemple de sèries temporals.<br />
- Optimització: un exemple clar és el TSP.<br />
- Memòries associatives.<br />
- Control: robòtica, ...<br />
- Processament del senyal: filtratge, ...<br />
- Compressió: extracció de components principals.<br />
- Diagnosi.<br />
[Garrell2002b]<br />
Bibligrafia suggerida<br />
De les xarxes neuronals recomanem la bibliografia següent, la qual la podeu trobar a<br />
la biblioteca d’Enginyeria i Arquitectura <strong>La</strong> <strong>Salle</strong>.<br />
* James A. Freeman, David M. Skapura, “Neural Networks: Algorithms, Applications<br />
and Programming Techniques”, Addison Wesley (1991).<br />
* Hertz, Kroght and Palmer, “Introduction to the Theory of Neural Computation”,<br />
Addison-Wesley (1981).<br />
* D.E. Rumelhart, J.L. McClelland and the PDP Research Group, “Parallel Distributed<br />
Processing”, Vol. I i II, The MIT Press (1986).<br />
262
RESUM<br />
Amb aquesta sessió hem finalitzat el paradigma connexionista i ens hem centrant en<br />
les xarxes neuronals.<br />
Concretament en aquesta sessió hem estudiat les Backpropagation; hem vist una<br />
descripció/classificació de les XN; i hem finalitzat analitzant els avantatges i<br />
inconvenients d’aquest paradigma.<br />
263
264
SESSIÓ 41: Aprenentatge artificial – AR (14/15)<br />
Nom: Pràctica 3: Aprenentatge artificial – APRENENTATGE ARTIFICIAL (14/15)<br />
Tipus: pràctica<br />
Format: no presencial<br />
Durada: 1 hora<br />
Dedicació: 1 hora<br />
Treball a lliurar: sí<br />
Material:<br />
o Bibliografia bàsica:<br />
[Golobardes2002f]<br />
o Recursos de programari i de maquinari: vegeu l’enunciat de la<br />
pràctica<br />
PRECEDENTS<br />
Per tal de realitzar la pràctica que proposa aquesta sessió, es necessiten tots els<br />
conceptes que s’han vist al llarg de les diferents sessions del capítol d’Aprenentatge<br />
artificial.<br />
OBJECTIUS<br />
L’objectiu d’aquesta sessió és el de presentar l’enunciat de la pràctica corresponent a<br />
aquest capítol d’aprenentatge artificial (PRÀCTICA 3: APRENENTATGE ARTIFICIAL).<br />
Us recordem que aquesta pràctica compta un 30% de la nota final de la part pràctica<br />
de l’assignatura (i la part pràctica compta un 70% del total). Cal recordar que aquesta<br />
pràctica és obligatòria i cal aprovar-la per aprovar l’assignatura.<br />
L’objectiu de la pràctica és que assoliu els diferents conceptes que s’han vist al llarg<br />
del capítol d’Aprenentatge artificial.<br />
CONTINGUTS<br />
Els continguts d’aquesta sessió estan explicitats en el document [Golobardes2002f], el<br />
qual el trobareu a la carpeta corresponent de l’assignatura a l’ecampus.<br />
Val a dir que el temps d’estimació d’aquesta sessió se centra en una bona lectura i<br />
comprensió de l’enunciat de la pràctica, i no en la totalitat de les hores que us portarà<br />
realitzar aquesta pràctica. <strong>La</strong> qual l’anireu fent mentre avanceu en el següent capítol<br />
de teoria.<br />
265
5.7. Descripció de la pràctica d’aprenentatge<br />
artificial<br />
5.7.1. Descripció de la pràctica d’aprenentatge<br />
artificial (pràctica 3)<br />
En aquest apartat es presenta l’enunciat corresponent a la pràctica d’aprenentatge<br />
artificial.<br />
Document PRÀCTICA 3: APRENENTATGE ARTIFICIAL –<br />
<strong>Intel·ligència</strong> artificial<br />
On podeu trobar el document corresponent a l’enunciat de la pràctica d’aprenentatge<br />
artificial?<br />
El document de l’enunciat de la PRÀCTICA 3: APRENENTATGE ARTIFICIAL –<br />
<strong>Intel·ligència</strong> artificial el trobareu a la carpeta de l’ecampus de l’assignatura<br />
d’<strong>Intel·ligència</strong> artificial.<br />
Què hi ha en el document?<br />
1. L’enunciat de la pràctica d’aprenentatge artificial a lliurar.<br />
2. Tot seguit es demana una sèrie de punts. Aquests punts detallen tant l’ordre en el<br />
qual convé realitzar la pràctica, com el contingut de la memòria a lliurar.<br />
Convé destacar que el més important de la pràctica és com s’ha tractat la part<br />
corresponent al capítol d’aprenentatge artificial i, en certa manera, tot el treball de<br />
camp que hi hagut per tal de realitzar-la.<br />
En aquesta pràctica teniu l’opció de no implementar-la (obtenint una puntuació màxima<br />
de 8), o bé implementar-la (obtenint un puntuació sobre 10). En aquest segon cas,<br />
podeu observar que una vegada s’ha analitzat com realitzar la pràctica des d’un punt<br />
de vista algorísmic i/o “teòric”, llavors es demana que decidiu quin és el llenguatge de<br />
programació més adequat per a la seva implementació. No ho feu en l’ordre invers, ja<br />
que condicionareu el disseny al llenguatge de programació i, és possible que, ni de<br />
bon tros, sigui el més adequat.<br />
Cal recordar que els diferents aspectes d’interfície no es valoraran, per tant, una<br />
vegada més, cal recordar que es vol donar èmfasi a la part corresponent a<br />
l’aprenentatge artificial.<br />
3. En el document també es demana una estimació –en hores– del temps que us ha<br />
portat la seva realització i, si pot ser, detallant les diferents parts de la pràctica.<br />
Evidentment, aquesta estimació no serveix per avaluar la pràctica, sinó per contrastar<br />
les diferents estimacions de la càrrega de la pràctica.<br />
4. En el document s’indica la data de lliurament de la pràctica.<br />
5. En el document també s’indica on i com s’ha de lliurar la pràctica.<br />
Criteris de puntuació:<br />
1. <strong>La</strong> memòria ha de tenir tots els punts que es demanen.<br />
2. Recordeu que la pràctica d’aprenentatge artificial s’ha de lliurar obligatòriament<br />
per aprovar l’assignatura, i la seva nota ha de ser superior a 5 per tal que s’accepti.<br />
3. Les pràctiques lliurades fora de termini tindran una nota màxima de 5, i ja<br />
s’indicarà quines són les possibles dates de lliurament.<br />
4. Dins de la nota de pràctiques, la pràctica d’aprenentatge artificial compta un 30%.<br />
Recordeu que la part pràctica val el 70% de l’assignatura. Vegeu els criteris de<br />
puntuació de l’assignatura.<br />
266
Vegeu l’enunciat de la pràctica a [Golobardes2002f]<br />
RESUM<br />
L’objectiu d’aquesta sessió ha estat el de presentar l’enunciat de la pràctica<br />
d’aprenentatge artificial que convé realitzar. Esperem que al finalitzar la sessió tingueu<br />
molt clar el domini del problema i els diferents punts que es demanen per tal de<br />
realitzar la pràctica.<br />
267
268
SESSIÓ 42: Exercicis d’aprenentatge artificial – AR (15/15)<br />
Nom: Exercicis d’aprenentatge artificial – APRENENTATGE (15/15)<br />
Tipus: de problemes<br />
Format: no presencial<br />
Durada: 3 hores<br />
Dedicació: 3 hores<br />
Treball a lliurar: no<br />
Material:<br />
o Bibliografia bàsica:<br />
Enunciats d’exàmens<br />
Les sessions del capítol d’Aprenentatge<br />
artificial<br />
PRECEDENTS<br />
Per tal de realitzar els exercicis que es proposen en aquesta sessió, és convenient<br />
haver estudiat les diferents sessions que comprenen el capítol d’Aprenentatge artificial.<br />
OBJECTIUS<br />
L’objectiu d’aquesta sessió és acabar d’estudiar els diferents paradigmes de<br />
l’aprenentatge artificial aplicant-los a dominis concrets.<br />
Se suposa que aquests objectius pràcticament ja s’hauran assolit amb la realització de<br />
la pràctica d’aprenentatge artificial.<br />
CONTINGUTS<br />
En aquesta sessió es proposen diferents exercicis d’exàmens, els quals mostren<br />
diferents problemes amb dominis i característiques diferents.<br />
Els enunciats que es proposen són: juny 2000 (problema 3), setembre 2000 (problema<br />
4), juny 2001 – part 2 (problema 3), setembre 2001(problema 3), i juny 2002 – part 2<br />
(problema 2).<br />
5.8. Exercicis d’aprenentatge artificial<br />
5.8.1. Llista de problemes d’exàmens – Aprenentatge<br />
artificial<br />
<strong>La</strong> llista de problemes, que tot seguit es proposa, presenta diversos dominis amb<br />
característiques diferents. Per a cadascun d’ells, tant si es demana escollir el<br />
paradigma d’aprenentatge artificial més adient, com si es proposa que s’enfoqui sota la<br />
perspectiva d’un paradigma donat, es demana que es detalli la manera en la qual es<br />
resoldria el problema, i que s’analitzin els avantatges i els inconvenients que presenta<br />
aquesta proposta respecte de les altres famílies de l’aprenentatge artificial.<br />
269
Aquests enunciats d’exàmens, i d’altres, els podeu trobar a la carpeta de l’ecampus<br />
corresponent a l’assignatura.<br />
Juny 2000 – problema 3<br />
ENUNCIAT:<br />
El RACC davant de l'experiència com a organitzadors del RALLY CATALUNYA, ens<br />
ha demanat un sistema que sigui capaç de classificar els diferents tipus d'avaries que<br />
poden tenir els cotxes WRC. És a dir, que davant de les característiques d'un cotxe en<br />
un moment donat, el sistema sigui capaç de diagnosticar si el cotxe tindrà alguna<br />
avaria. En el cas que el diagnòstic sigui positiu, que el sistema detecti quina avaria o,<br />
en general, conjunt d'avaries, poden sorgir. Se suposa que els mecànics de les<br />
diferents escuderies, en tenen prou amb el diagnòstic per tal d'actuar adequadament.<br />
Les diferents escuderies ens han fet arribar casos d'avaries que han tingut els seus<br />
cotxes, i que es poden fer públiques. Val a dir que, atès que la tecnologia evoluciona<br />
contínuament, pot ser que sorgeixin avaries que no s'han contemplat fins al moment, o<br />
bé que hi hagi avaries, de les quals les escuderies no n'han volgut donar informació.<br />
ES DEMANA:<br />
1. Des de la perspectiva de l'aprenentatge artificial, quin paradigma/es creieu que<br />
resoldria millor aquest problema? Justifiqueu la resposta, i analitzeu els avantatges i<br />
inconvenients respecte dels altres paradigmes.<br />
2. Doneu un esquema de com es resoldria el problema.<br />
Setembre 2000 – problema 4<br />
ENUNCIAT:<br />
Un filatèlic ens ha demanat si li podríem dissenyar un classificador automàtic per tal de<br />
classificar la seva col·lecció de segells. Cada segell és descrit per un conjunt d’n<br />
característiques de tipus diferents (és a dir, hi ha característiques numèriques i<br />
característiques simbòliques) i, a vegades, és difícil descriure algunes de les<br />
característiques (és a dir, podem considerar que el seu valor és desconegut). En<br />
aquests moments, la seva col·lecció d’S segells s'agrupa en C classes diferents<br />
(essent C de l'ordre de 200). A més a més, contínuament descobreix nous segells,<br />
amb noves característiques i, a vegades, fins i tot corresponents a classes que<br />
desconeixia. Per tant, el sistema classificador també hauria de ser capaç d'anar<br />
incorporant aquests descobriments.<br />
ES DEMANA:<br />
1. Quin paradigma/es creieu que resoldria millor aquest problema? Justifiqueu la<br />
resposta, i analitzeu els avantatges i inconvenients respecte dels altres paradigmes.<br />
2. Expliqueu com es resoldria globalment el problema.<br />
Juny 2001 (part 2) – problema 3<br />
ENUNCIAT:<br />
Es vol dissenyar un sistema per portar a terme la tasca d'identificació de desordres en<br />
l'oïda dels pacients a partir dels símptomes, dels resultats dels tests i de l'historial<br />
clínic del pacient.<br />
270
L'objectiu d'aquest sistema és que sigui capaç d'adquirir el coneixement, de classificar<br />
i d'explicar. Tot seguit es detalla en què consisteix cadascuna d'aquestes tasques:<br />
* Adquisició del coneixement. Per tal de dissenyar el sistema disposem de 200 casos,<br />
els quals els seus diagnòstics es divideixen en 24 categories diferents. De fet, els<br />
experts ens proporcionen 200 casos perquè és aproximadament el nombre de casos<br />
que veu un estudiant per tal de graduar-se.<br />
* Classificació. Consisteix a assignar a una entrada donada (un cas), una de les<br />
categories d'una llista preenumerada, en aquest cas 24.<br />
Tindrem que la descripció d'un cas pot ser incompleta (pot no incloure certes<br />
característiques presents en d'altres casos).<br />
* Explicació. El sistema ha de proporcionar una justificació per a cada cas, la qual<br />
expliqui la relació de les dades respecte la categoria associada. L'explicació s'usa per<br />
justificar la classificació d'un cas i per establir el grau de similitud entre dos casos. En<br />
el moment de dissenyar el sistema disposarem de la col·laboració de l'expert per tal de<br />
valorar la qualitat de l'explicació obtinguda per a cada cas.<br />
ES DEMANA dissenyar el sistema i useu el paradigma de l'aprenentatge<br />
connexionista:<br />
1. Doneu una solució que resolgui el problema des del paradigma proposat.<br />
2. Justifiqueu quines són les principals dificultats i/o limitacions que ofereix aquest<br />
paradigma per a aquest problema, basant-vos en la solució proposada a l'apartat 1).<br />
3. Quin creieu que hauria estat el paradigma més indicat i perquè.<br />
Setembre 2001 – problema 3<br />
Aquest problema es basa en el mateix domini que el problema anterior, però centrantse<br />
en l’aprenentatge basat en explicacions. Vegem-lo.<br />
ENUNCIAT:<br />
Es vol dissenyar un sistema per portar a terme la tasca d'identificació de desordres en<br />
l'oïda dels pacients a partir dels símptomes, dels resultats dels tests i de l'historial<br />
clínic del pacient.<br />
L'objectiu d'aquest sistema és que sigui capaç d'adquirir el coneixement, de classificar<br />
i d'explicar. Tot seguit es detalla en què consisteix cadascuna d'aquestes tasques:<br />
* Adquisició del coneixement. Per tal de dissenyar el sistema disposem de 200 casos,<br />
els quals els seus diagnòstics es divideixen en 24 categories diferents. De fet, els<br />
experts ens proporcionen 200 casos perquè és aproximadament el nombre de casos<br />
que veu un estudiant per tal de graduar-se.<br />
* Classificació. Consisteix a assignar a una entrada donada (un cas), una de les<br />
categories d'una llista preenumerada, en aquest cas 24.<br />
Tindrem que la descripció d'un cas pot ser incompleta (pot no incloure certes<br />
característiques presents en d'altres casos).<br />
271
* Explicació. El sistema ha de proporcionar una justificació per a cada cas, la qual<br />
expliqui la relació de les dades respecte la categoria associada. L'explicació s'usa per<br />
justificar la classificació d'un cas i per establir el grau de similitud entre dos casos. En<br />
el moment de dissenyar el sistema disposarem de la col·laboració de l'expert per tal de<br />
valorar la qualitat de l'explicació obtinguda per a cada cas.<br />
ES DEMANA dissenyar el sistema usant el paradigma de l'aprenentatge basat en<br />
explicacions:<br />
1. Doneu una solució que resolgui el problema des del paradigma proposat.<br />
2. Justifiqueu quines són les principals dificultats i/o limitacions que ofereix aquest<br />
paradigma per a aquest problema, basant-vos en la solució proposada a l'apartat 1).<br />
3. Quin creieu que hauria estat el paradigma més indicat i perquè.<br />
Juny 2002 (part 2) – problema 2<br />
ENUNCIAT:<br />
El Servei d'<strong>Intel·ligència</strong> ens ha demanat que dissenyem un sistema d'aprenentatge<br />
artificial que a partir d'una imatge de sonar, sàpiga respondre si aquesta correspon o<br />
no a un submarí. I, si es tracta d'un submarí, que el sistema respongui de quin tipus de<br />
submarí es tracta. Val a dir que, hi podrien haver imatges per a les quals se sap que<br />
corresponen a un submarí, però que no es sap de quin tipus de submarí es tracta. Els<br />
motius d'aquest fet poden ser diversos, per exemple, pot ser que hi hagi molt soroll, o<br />
que senzillament es tracti d'un submarí l’existència del qual el Servei d'<strong>Intel·ligència</strong><br />
desconeixia.<br />
Per tal de realitzar aquest sistema, hem demanat al Servei d'<strong>Intel·ligència</strong> si podíem<br />
disposar d'algun tipus d'informació més concreta. I, com a resposta, ens han fet arribar<br />
una descripció dels diferents submarins que tenen catalogats i algunes imatges de<br />
sonar de les quals es coneix correctament a què corresponen (submarins catalogats,<br />
balenes, bancs de peixos, etcètera). Val a dir que no forçosament tenim imatges sonar<br />
de tots els tipus de submarins, ja que per a alguns d'ells saben que existeixen<br />
mitjançant el Servei d'Espionatge, però no s'han pogut detectar mai.<br />
Podeu suposar que tenim contacte amb un grup d'experts en processament d'imatges,<br />
de tal manera que aquestes es processarien i ens farien arribar un conjunt de<br />
característiques per imatge.<br />
ES DEMANA dissenyar el sistema usant el paradigma de l'aprenentatge inductiu:<br />
1. Doneu una solució que resolgui el problema des del paradigma proposat.<br />
2. Justifiqueu quines són les principals dificultats i/o limitacions que ofereix aquest<br />
paradigma per a aquest problema, basant-vos en la solució proposada a l'apartat 1).<br />
3. Quin creieu que hauria estat el paradigma (o paradigmes) d’aprenentatge més<br />
indicat i perquè.<br />
272
RESUM<br />
Amb aquesta sessió es finalitza el capítol d’Aprenentatge <strong>Artificial</strong>.<br />
Els exercicis que s’han realitzat al llarg de la sessió han d’haver ajudat a estudiar, des<br />
d’una perspectiva global els diferents paradigmes que s’han tractat al llarg del tema:<br />
aprenentatge inductiu, aprenentatge analògic, aprenentatge basat en<br />
explicacions, aprenentatge evolutiu (algorismes genètics) i aprenentatge<br />
connexionista (xarxes neuronals).<br />
273
274
SESSIÓ 43: Introducció – PLANIFICACIÓ (1/9)<br />
Nom: Introducció – PLANIFICACIÓ (1/9)<br />
Tipus: teòrica<br />
Format: no presencial<br />
Durada: 2 hores<br />
Dedicació: 2 hores<br />
Treball a lliurar: no<br />
Material:<br />
o Bibliografia bàsica:<br />
[Weld1994]<br />
OBJECTIUS<br />
Els objectius d’aquesta sessió consisteixen en donar els principals conceptes que<br />
necessitarem al llarg del capítol de planificació.<br />
CONTINGUTS<br />
En aquesta sessió veurem:<br />
- què és la planificació, des d’una perspectiva de raonament sobre accions;<br />
- quins tipus de planificació podem considerar;<br />
- com es pot descriure un problema de planificació.<br />
6. Planificació<br />
6.1. Introducció<br />
6.1.1. Raonament sobre accions<br />
Amb aquest apartat comencem el capítol de Planificació. Per tal d’estudiar aquest<br />
capítol seguirem –principalment– l’article:<br />
Daniel S. Weld<br />
"An Introduction to Least Commitment Planning"<br />
AI Magazine, Volume 15(4), p. 27-61<br />
Winter 1994<br />
Que el podeu trobar a l’ecampus.<br />
Prèviament a parlar de planificació, veurem en general què s’entén pel raonament<br />
sobre les accions.<br />
275
Raonament sobre accions<br />
Quan es persegueix assolir un objectiu donat, s’ha d’actuar sobre el món en el qual<br />
ens trobem. En el moment de generar aquestes accions, hi ha dues possibles<br />
aproximacions:<br />
1. Planificació<br />
<strong>La</strong> planificació és apropiada quan un nombre d’accions han de ser executades dins<br />
d’un coherent patró per tal d’assolir un objectiu, o bé quan les accions interactuen dins<br />
de camins complexos. Per exemple, quan es planifica un viatge.<br />
2. Accions situades<br />
Les accions situades (en anglès, situated action) són apropiades quan la millor acció<br />
pot senzillament ser executada des d’un estat actual del món. És a dir, quan no és<br />
necessari realitzar un lookahead, perquè les accions no s’interfereixen entre elles. Per<br />
exemple, quan l’objectiu és viu, com en un videojoc.<br />
Al llarg d’aquest capítol ens centrarem en la planificació.<br />
[Weld1994]<br />
Caracterització dels planificadors<br />
Els planificadors es poden caracteritzar per dues dimensions:<br />
1. Quin camí segueixen per construir un pla?<br />
a) Per refinament. Construeixen el pla de manera gradual afegint accions i restriccions.<br />
En aquest cas parlarem de planificadors per refinament.<br />
b) Per retracció. En el procés de refinament, permeten eliminar components que<br />
prèviament havien estat afegides al pla. En aquest cas parlarem de planificadors<br />
transformacionals, són planificadors que entrellacen les activitats de refinament i de<br />
retracció.<br />
2. Quins són els blocs bàsics que usa el planificador per generar el pla?<br />
a) Els planificadors generatius construeixen plans del no res (pla nul).<br />
b) Els planificadors basats en casos usen llibreries de plans –o fragments de plans–<br />
sintetitzats anteriorment.<br />
[Weld1994]<br />
Resum<br />
Donats els conceptes anteriors, el raonament sobre les accions el podem veure de la<br />
manera següent:<br />
276
Al llarg d’aquest capítol ens centrarem en els planificadors generatius per<br />
refinament, tot i que els algorismes que veurem es poden adaptar als planificadors<br />
transformacionals i als basats en casos.<br />
[Weld1994]<br />
6.1.2. Tipus de planificació<br />
Existeixen diferents tipus d’estratègies de planificadors. És bo conèixer les principals:<br />
planificació lineal, planificació no lineal i planificació jeràrquica (aquesta darrera es pot<br />
combinar amb les dues anteriors).<br />
Planificació lineal<br />
STRIPS va ser el primer planificador, proposat per en Fikes i en Nilsson l’any 1971.<br />
L’estratègia que seguia STRIPS es basa en la planificació lineal.<br />
Donat un estat inicial i un estat objectiu, la planificació apila els objectius a assolir en<br />
una pila d’objectius:<br />
Per tant, el resultat de la planificació serà un pla que porti de l’estat inicial a l’estat<br />
final:<br />
277
Pla = { seqüència d’operadors que resolen l’objectiu O1, ... , seqüència d’operadors<br />
que resolen l’objectiu On }<br />
EXEMPLE 1<br />
Suposem que l’estat inicial i l’estat final són els següents:<br />
En aquest cas, la pila d’objectius serà:<br />
O1: A sobre la Taula<br />
O2: B sobre la Taula<br />
O3: C sobre B<br />
I sembla lògic, que el pla que trobi sigui:<br />
Pla = { posar A sobre la Taula, posar B sobre A, posar C sobre B }<br />
EXEMPLE 2<br />
Suposem que ara tenim que:<br />
Estat inicial:<br />
Coet està a la Terra<br />
Maria està a la Terra<br />
Joan està a la Terra<br />
Estat final<br />
Maria està a la Lluna<br />
Joan està a la Lluna<br />
I suposem que els operadors disponibles són:<br />
Pujar_al_coet(x)<br />
Engegar_el_coet<br />
Coet_de_la_Terra_a_la_Lluna<br />
Baixar_del_coet(x)<br />
Pila d’objectius:<br />
O1: Maria a la Lluna<br />
O2: Joan a la Lluna<br />
278
O bé:<br />
O1: Joan a la Lluna<br />
O2: Maria a la Lluna<br />
Proveu de trobar el pla utilitzant planificació lineal!<br />
Heu pogut trobar un pla? Quin ha estat el problema? <strong>La</strong> INTERACCIÓ D’OBJECTIUS.<br />
En aquests casos és quan convé la planificació no lineal.<br />
Planificació no lineal<br />
A la planificació no lineal els operadors que s’utilitzen per resoldre un problema poden<br />
interferir en la solució d’un problema anterior, ja que necessitem un pla que treballi<br />
simultàniament amb múltiples subproblemes.<br />
Així, en l’exemple 2 d’abans, utilitzant la planificació no lineal podríem trobar l’ordre<br />
parcial següent, el qual resoldria el problema:<br />
En general, la planificació no lineal retorna un conjunt d’operadors, és a dir un pla,<br />
parcialment ordenats i parcialment instanciats per tal de generar un pla intermig.<br />
Per tal que aquest pla es pugui executar convindrà convertir-lo en algun ordre total.<br />
[Weld1994]<br />
Planificació jeràrquica<br />
L’objectiu de la planificació jeràrquica és la d’eliminar alguns detalls del problema<br />
fins que no s’hagin resolt les principals dificultats.<br />
279
Existeixen diferents maneres de fer-ho:<br />
1. Utilitzar macrooperadors: es construeixen grans operadors a partir d’altres de més<br />
petits (Fikes i Nilsson, 1971).<br />
2. El que proposava el planificador ABSTRIPS (Sacerdoti, 1974): la planificació es<br />
realitza amb una jerarquia d’espais d’abstracció. En cadascun dels quals s’ignoren les<br />
precondicions d’un nivell d’abstracció més baix.<br />
ABSTRIPS proposa “una cerca primer en longitud” per tal d’aplicar aquesta idea:<br />
Pas 1. Resol el problema completament, considerant només aquelles precondicions<br />
que el seu valor crític sigui el més alt possible.<br />
El valor crític reflexa la dificultat esperada per satisfer una precondició.<br />
Pas 2. I va baixant de nivell ...<br />
A cada nivell: utilitza els plans construïts en els nivells anteriors com a esborranys d’un<br />
pla complet.<br />
6.1.3. Descripció d’un problema de planificació<br />
En general, podem descriure un problema de planificació pel seu INPUT i el seu<br />
OUTPUT. Evidentment, el seu comportament dependrà de les assumpcions (o<br />
hipòtesis) que s’hagin fet del món on es busca el pla.<br />
Input<br />
L’INPUT d’un problema de planificació és especificat per:<br />
1) Una descripció del món en algun llenguatge formal. Estat inicial.<br />
2) Una descripció de l’objectiu de l’agent (quin comportament es desitja) en algun<br />
llenguatge formal. Estat final o objectiu.<br />
3) Una descripció de les accions possibles que poden ser rendibles, en algun<br />
llenguatge formal. Aquest punt és l’anomenada teoria del domini (o lambda<br />
majúscula):<br />
Λ<br />
[Weld1994]<br />
Output<br />
L’OUTPUT és una seqüència d’accions que quan són executades en un món<br />
qualsevol que satisfà la descripció de l’estat inicial, assolirà l’objectiu. Pla.<br />
[Weld1994]<br />
280
Hipòtesis<br />
Al llarg de l’article de’n [Weld1994] s’estableixen les hipòtesis següents:<br />
Hipòtesi 1: els temps són anatòmics.<br />
Hipòtesi 2: els efectes són determinístics.<br />
Hipòtesi 3: omnipotència.<br />
Hipòtesi 4: causa única de canvi.<br />
Vegeu en l’article quines implicacions tenen aquestes hipòtesis (pàgina 3).<br />
[Weld1994]<br />
RESUM<br />
En aquesta sessió hem vist una introducció al capítol de Planificació, assolint diferents<br />
conceptes: què és la planificació, des d’una perspectiva de raonament sobre accions;<br />
quins tipus de planificació podem considerar; com es pot descriure un problema de<br />
planificació.<br />
281
282
SESSIÓ 44: STRIPS – PLANIFICACIÓ (2/9)<br />
Nom: STRIPS – PLANIFICACIÓ (2/9)<br />
Tipus: teòrica<br />
Format: no presencial<br />
Durada: 2 hores<br />
Dedicació: 2 hores<br />
Treball a lliurar: no<br />
Material:<br />
o Bibliografia bàsica:<br />
[Weld1994]<br />
[Nilsson1980]<br />
PRECEDENTS<br />
A la sessió anterior vam descriure el raonament sobre les accions, i vam centrar-nos<br />
en què seria i com descriuríem un problema de planificació al llarga d’aquesta capítol.<br />
Prèviament, en aquesta sessió farem un parèntesi per tal de veure com funcionava el<br />
primer planificador: STRIPS.<br />
OBJECTIUS<br />
L’objectiu d’aquesta sessió és estudiar el primer planificador: STRIPS.<br />
CONTINGUTS<br />
En aquesta sessió veurem com es defineix i com funciona STRIPS. Així, primer<br />
donarem una definició d’STRIPS i després treballarem dos exemples ben<br />
representatius del món de la planificació, en general.<br />
6.2. STRIPS<br />
6.2.1. <strong>La</strong> descripció d’STRIPS<br />
STRIPS és un llenguatge senzill de representació proposicional, el qual fou proposat<br />
per en Fikes i en Nilsson l’any 1971.<br />
STRIPS és més conegut com un planificador, de fet el primer planificador, ja que s’usa<br />
precisament per descriure l’estat inicial i l’estat objectiu, i proposa una tipus de cerca<br />
(planificació lineal) per tal de trobar el camí solució (és a dir, el pla).<br />
Vegem la seva definició i dos exemples que mostren el seu funcionament.<br />
Definició<br />
Definirem STRIPS a través d’un exemple situat en el món dels blocs. Suposem que<br />
tenim l’estat inicial i l’estat final (o estat objectiu) següents:<br />
283
1. Estat inicial. <strong>La</strong> representació proposicional STRIPS descriu l’estat inicial del món<br />
amb un conjunt complet de vertaders literals bàsics:<br />
(on A Table)<br />
(on C A)<br />
(on B Table)<br />
(clear B)<br />
(clear C)<br />
Les fórmules atòmiques que no es troben explícitament a la descripció de l’estat inicial,<br />
s’assumeix que són falses. És a dir, fa l’assumpció del món tancat (CWA). Així doncs,<br />
assumim per a la CWA que:<br />
(not (on A C))<br />
(not (clear A))<br />
Tots els estats es defineixen de la mateixa manera que l’estat inicial.<br />
2. Objectiu. L’objectiu al qual volem arribar és:<br />
(on B C)<br />
(on A B)<br />
El que no hi és no té perquè ser fals, senzillament es vol que al final A estigui sobre B,<br />
i B sobre C, com estigui la resta del món (si hi ha diferents possibilitats) no importa.<br />
3. Teoria del domini. <strong>La</strong> teoria del domini és una descripció formal de les accions<br />
(operadors) que són possibles per a l’agent que ha de buscar el pla.<br />
Les accions (o operadors) es representen per:<br />
Precondició: és una conjunció de literals positius (com l’estat inicial).<br />
Postcondició (o efecte): és una conjunció de literals positius i negatius.<br />
Quin comportament tenen les accions? Una acció pot ser executada únicament quan<br />
la seva precondició és certa. Així, quan s’executa una acció, canvia la descripció del<br />
món:<br />
1. Tots els literals positius de la conjunció de la postcondició (anomenats add list)<br />
s’afegeixen a la descripció del món (per tal de descriure el nou estat al qual passarem<br />
després d’executar aquesta acció).<br />
284
2. I els literals negatius (anomenats delete list) s’esborren.<br />
Seguint amb l’exemple del “món dels blocs” podríem tenir definit l’operador següent:<br />
Operador: move-C-from-A-to-Table<br />
Precondició: (and (on C A) (Clear C))<br />
Postcondició: (and (on C Table) (not (on C A)) (clear A))<br />
Si l’apliquem sobre l’estat inicial (ja que la precondició és certa i, per tant, es pot<br />
aplicar) passem a l’estat següent:<br />
Que és descrit pels literals vertaders següents:<br />
(on A Table)<br />
(on B Table)<br />
(on C Table)<br />
(clear A)<br />
(clear B)<br />
(clear C)<br />
i tots els altres literals, pel CWA, s’assumeix que són falsos.<br />
Si seguíssim escollint possibles accions a aplicar, desitjaríem que el planificador<br />
(STRIPS) trobés el pla següent:<br />
Pla = { move-C-from-A-to-Table, move-B-from-Table-to-C, move-A-from-Table-to-B }<br />
Vegem amb els dos exemples següents, realment què fa, i quins plans troba STRIPS.<br />
[Nilsson1980]p298-p301<br />
[Weld1994]<br />
Exemple 1<br />
Suposem que tenim l’estat inicial i l’estat final que mostra la figura. En realitat<br />
l’objectiu és que (on A C) i (on C B).<br />
285
STRIPS, per aquest problema, disposava de la teoria del domini, és a dir, el conjunt<br />
d’operadors següents pickup, putdown, stack, unstack.<br />
Operador: pickup(x)<br />
Precondicions: (AND ONTABLE(x) HANDEMPTY CLEAR(x))<br />
Delete list: ONTABLE(x), HANDEMPTY, CLEAR(x)<br />
Add list: HOLDING(x)<br />
Operador: putdown(x)<br />
Precondicions: HOLDING(x)<br />
Delete list: HOLDING(x)<br />
Add list: ONTABLE(x), CLEAR(x), HANDEMPTY<br />
Operador: stack(x,y)<br />
Precondicions: (AND HOLDING(x) CLEAR(y))<br />
Delete list: HOLDING(x), CLEAR(y)<br />
Add list: HANDEMPTY, ON(x,y), CLEAR(y)<br />
Operador: unstack(x,y)<br />
Precondicions: (AND HANDEMPTY CLEAR(x) ON(x,y))<br />
Delete list: HANDEMPTY, CLEAR(x), ON(x,y)<br />
Add list: HOLDING(x), CLEAR(y)<br />
Treballeu i vegeu [Nilsson1980]p298-p301 el resultat.<br />
[Nilsson1980]p298-p301<br />
[Weld1994]<br />
Exemple 2<br />
Suposem que ara tenim l’estat inicial i l’estat final que mostra la figura. On de fet<br />
l’objectiu és que (on A B) i (on B C).<br />
286
I suposem que la teoria del domini és la mateixa que l’exemple anterior.<br />
Vegeu en aquest cas quin pla troba STRIPS ([Nilsson1980]p298-p301). Què ha<br />
passat? A aquesta situació donada del món dels blocs (la que correspon a l’exercici 2)<br />
és la que s’anomena ANOMALIA DE SUSSMAN, evidentment perquè en Sussman és<br />
qui va detectar per a aquest cas aquesta anomalia en el pla final usant l’STRIPS.<br />
[Nilsson1980]p298-p301<br />
[Weld1994]<br />
RESUM<br />
En aquesta sessió hem estudiat el planificador STRIPS. Cal destacar que:<br />
1) va ser el primer planificador;<br />
2) mostra el funcionament de la planificació lineal;<br />
3) hem conegut a quin exemple es refereix la bibliografia quan es parla de l’anomalia<br />
de Sussman.<br />
287
288
SESSIÓ 45: Cerca a través dels estats – PLANIFICACIÓ (3/9)<br />
Nom: Cerca a través dels estats – PLANIFICACIÓ (3/9)<br />
Tipus: teòrica<br />
Format: no presencial<br />
Durada: 2 hores<br />
Dedicació: 2 hores<br />
Treball a lliurar: no<br />
Material:<br />
o Bibliografia bàsica:<br />
[Weld1994]<br />
PRECEDENTS<br />
A les sessions anteriors de planificació, hem analitzat en general el problema de la<br />
planificació, i hem vist un primer planificador: STRIPS.<br />
OBJECTIUS<br />
L’objectiu d’aquesta sessió és partir dels esquemes vistos en el Capítol 3:<br />
RESOLUCIÓ DE PROBLEMES – CERCA i adaptar-los per al problema de la<br />
planificació. És a dir, enfocar la planificació com una cerca a través de l’espai dels<br />
estats.<br />
CONTINGUTS<br />
En aquesta sessió veurem com es pot resoldre el problema de la planificació fent<br />
cerca a través de l’espai dels estats. Així doncs, veurem:<br />
- Com s’adequa l’espai de cerca dels estats al problema de la planificació. Ens<br />
centrarem en l’exemple del món dels blocs.<br />
- Buscarem la solució (el pla solució) fent cerca cap endavant: l’algorisme PROGWS.<br />
- Veurem en què consisteix fer cerca cap endarrere: l’algorisme REGWS.<br />
- I analitzarem la viabilitat d’ambdós algorismes.<br />
6.3. Cerca a través de l’espai del món dels<br />
estats<br />
6.3.1. Introducció<br />
Un cop estudiat el Capítol 3: RESOLUCIÓ DE PROBLEMES – CERCA, el més natural<br />
és plantejar un algorisme de planificació com un cas particular dels patrons de cerca.<br />
Concretament, coneixem l’estat inicial i l’estat final, i la solució (o pla) és el camí que<br />
ens porta de l’estat inicial a l’estat final. És a dir, volem fer cerca a través de l’espai<br />
del món dels estats.<br />
Atès que coneixem en tot moment l’estat inicial i l’estat final, és tan possible aplicar un<br />
patró de cerca cap endavant, com un patró de cerca cap endarrere. En aquest tema<br />
289
estudiarem la viabilitat d’adaptar aquests patrons al problema de la planificació: la<br />
planificació cap endavant l’analitzarem amb l’algorisme PROGWS (apartat 6.3.2);<br />
mentre que la planificació cap endarrere l’analitzarem amb l’algorisme REGWS<br />
(apartat 6.3.3).<br />
Prèviament, donarem alguns conceptes de com entenem aquest espai de cerca a<br />
través del món dels estats.<br />
Conceptes<br />
Si seguim amb l’exemple del món dels blocs, a la figura 3 (Weld 1994) podem veure<br />
quin seria l’espai de cerca per a aquest problema (el qual és representat per un graf).<br />
Concretament, la figura 3 ressalta els estats que representen el problema de<br />
l’anomalia de Sussman.<br />
Si suposem que aquests estats són l’estat inicial i l’estat final del nostre problema<br />
actual, podem entendre que el camí més senzill per construir un planificador és el<br />
d’abordar el problema de la planificació a través de l’espai del món dels estats.<br />
Així tenim que:<br />
- cada node del graf denota un estat del món;<br />
- cada arc connecta móns (estats) que poden assolir-se executada una única acció<br />
(és a dir, cada connexió representa que s’ha aplicat una única acció/operador);<br />
- en aquest exemple els arcs no són dirigits ja que les accions són reversibles, però en<br />
general no tenen perquè ser-ho i, per tant, el que tindrem és un conjunt d’arcs dirigits;<br />
- un pla, és a dir, una solució al problema de planificació, és un camí a través de<br />
l’espai dels estats.<br />
Al llarg del capítol dissenyarem planificadors representats per algorismes no<br />
deterministes. És a dir, davant d’un punt no determinista (per exemple, hi ha diferents<br />
operadors que es poden aplicar en un moment donat) suposarem que tenim un oracle<br />
o una heurística perfecta que ens indica en tot moment quina és la millor solució.<br />
D’aquesta manera, els algorismes són més simples d’entendre i és més senzill<br />
comparar diferents planificadors.<br />
[Weld1994]<br />
6.3.2. Progressió<br />
Analitzem com s’han d’adaptar els patrons de cerca cap endavant, quan es tracta d’un<br />
problema de planificació. És el que en direm treballar progressivament.<br />
Ho estudiarem amb l’algorisme PROGWS.<br />
290
Algorisme PROGWS<br />
L’algorisme PROGWS (PROGressive World-State planner) és no determinista i fa<br />
cerca cap endavant, des de l’estat inicial fins a trobar un estat en el qual l’objectiu es<br />
satisfaci.<br />
Vegeu l’algorisme PROGWS a [Weld1994], a la figura 4.<br />
Podem observar que el moment d’escollir l’acció a aplicar (pas 3) és un punt no<br />
determinístic. Així doncs, se suposa que hi haurà heurístiques, segurament ad hoc per<br />
a cada problema. Tanmateix, quan analitzem l’algorisme, suposarem que en tot punt<br />
no determinístic sempre s’escull la millor opció (= heurística perfecta).<br />
<strong>La</strong> primera crida d’aquest algorisme sempre serà:<br />
world-state = estat inicial del problema de planificació<br />
goal-list = llista d’objectius del problema de planificació<br />
teoria del domini = conjunt d’operadors/accions disponibles<br />
path = una llista buida<br />
[Weld1994]<br />
6.3.3. Regressió<br />
D’altra banda, podem plantejar l’algorisme de cerca com un planificador regressiu<br />
(proposat per en Waldinger l’any 1977). Vegem-lo a través de l’algorisme REGWS.<br />
Algorisme REGWS<br />
L’algorisme REGWS (REGressive world-state planner) és un planificador no<br />
determinista, que fa cerca cap endarrere començant per l’estat objectiu. Això doncs, a<br />
cada pas escull una acció que podria possiblement ajudar a satisfer algun dels termes<br />
que composen la conjunció que defineix l’objectiu.<br />
Vegeu l’algorisme REGWS a [Weld1994], a la figura 5.<br />
En aquest cas, una primera crida d’aquest algorisme serà:<br />
init-state = estat inicial del problema de planificació<br />
cur-goals = llista d’objectius del problema de planificació<br />
teoria del domini = conjunt d’operadors/accions disponibles<br />
path = una llista buida<br />
Què heu d’estudiar atentament de l’article de’n [Weld1994] (pàgines 8-10)?<br />
1. Vegeu un exemple de regressió. És bo que ho entengueu bé, perquè com veureu<br />
més endavant, la resta d’algorismes que es proposaran donaran per suposat que teniu<br />
molt clar com regressar el món, en un problema de planificació, si no difícilment<br />
entendreu la resta del capítol.<br />
291
2. Heu de comprendre per quins motius pot ser que no es pugui escollir cap acció –<br />
motiu pel qual fallarà el pla, és a dir, no hi ha manera de trobar un pla per a aquest<br />
problema–. Concretament, n’hi ha tres (vegeu el pas 3 de l’algorisme REGWS):<br />
i) no és possible escollir cap acció; o bé<br />
ii) G queda indefinit; o bé<br />
iii) cur-goals són un subconjunt de G.<br />
Analitzeu i comprengueu quan es pot donar cada cas.<br />
[Weld1994]<br />
6.3.4. Anàlisi de REGWS i de PROGWS<br />
Prèviament a finalitzar la cerca a través de l’espai del món dels estats, hem d’analitzar<br />
la viabilitat dels algorismes proposats (PROGWS i REGWS) per al problema de la<br />
planificació.<br />
Anàlisi de PROGWS i de REGWS<br />
Per tal d’analitzar la viabilitat d’un algorisme de planificació, s’ha de demostrar que<br />
aquest realment “funciona”, és a dir, és complet i sòlid en el cas de disposar de<br />
l’heurística perfecta.<br />
Direm que un planificador és complet si quan en l’espai de cerca existeix un pla,<br />
llavors existeix una seqüència escollida de forma no determinística que el troba.<br />
Direm que un planificador és sòlid si quan retorna un pla, aquest realment treballa<br />
(és a dir, funciona).<br />
PROGWS i REGWS es demostra que són complets i sòlids. Davant d’aquesta igualtat,<br />
quin dels dos és més ràpid (= té un menor cost computacional)?<br />
Els dos tenen la mateixa complexitat: O(b^n). I són:<br />
n: el nombre de tries no deterministes que s’han de fer abans de trobar una solució.<br />
b: el nombre de branques a determinar en cada punt no determinista.<br />
Tanmateix, des d’un punt de vista empíric, es creu que –en general– REGWS té un<br />
factor de branqueig menor.<br />
Així doncs, seguirem el capítol buscant millors planificadors, però ens centrarem<br />
només en algorismes regressius.<br />
[Weld1994]<br />
292
RESUM<br />
En aquesta sessió hem analitzat el problema de la planificació a través de l’espai de<br />
cerca del món dels estats. És a dir, hem partit dels esquemes ja coneguts que es<br />
proposaven en el capítol de cerca.<br />
Concretament, s’han estudiat els algorismes PROGWS i REGWS, els quals<br />
representen com realitzar la planificació cap endavant o cap endarrere,<br />
respectivament.<br />
Hem pogut concloure que, malgrat tenir una mateixa anàlisi pel que fa a solidesa,<br />
completesa i cost computacional, sembla més eficient la cerca cap endarrere.<br />
293
294
SESSIÓ 46: Cerca a través dels plans – PLANIFICACIÓ (4-5/9)<br />
Nom: Cerca a través dels plans: algorisme POP – PLANIFICACIÓ (4-5/9)<br />
Tipus: teòrica<br />
Format: no presencial<br />
Durada: 3-4 hores<br />
Dedicació: 3-4 hores<br />
Treball a lliurar: no<br />
Material:<br />
o Bibliografia bàsica:<br />
[Weld1994]<br />
PRECEDENTS<br />
A la sessió anterior vam estudiar com fer cerca a través de l’espai dels estats, com a<br />
herència dels algorismes vists en el capítol de Cerca.<br />
OBJECTIUS<br />
L’objectiu d’aquesta sessió és la d’estudiar la possibilitat de fer planificació a través de<br />
l’espai dels plans, en compte de mitjançant el món dels estats. Concretament, ho<br />
analitzarem a través de l’algorisme POP.<br />
CONTINGUTS<br />
Per tal d’estudiar la planificació a través del món dels plans, s’han de tractar diferents<br />
conceptes: què és la cerca a través de l’espai dels plans; diferents conceptes<br />
relacionats, com què és un pla i més concretament un pla nul, un enllaç causal, i una<br />
amenaça; presentarem l’algorisme POP; veurem un exemple d’aplicació de l’algorisme<br />
POP; i finalment analitzarem aquesta nova proposta respecte de la que s’havia fet amb<br />
l’algorisme REGWS.<br />
6.4. Cerca a través de l’espai del plans<br />
6.4.1. Algorisme POP<br />
N’Earl Sacerdoti va proposar el planificador NOAH l’any 1974, l’espai de cerca del<br />
qual és l’espai dels possibles plans i no l’espai dels possibles estats, tal i com vam<br />
veure a la sessió anterior.<br />
Així doncs, dins d’aquest tema 6.4.1, estudiarem la viabilitat de construir un<br />
planificador dins d’aquesta alternativa, enfront dels algorismes PROGWS i REGWS.<br />
Concretament, analitzarem l’algorisme POP.<br />
En els conceptes següents veurem: en què consisteix la cerca a través de l’espai dels<br />
plans; alguns conceptes que s’han d’adequar per a aquesta nova manera de buscar un<br />
pla; presentarem l’algorisme POP; seguirem un exemple; i acabarem fent una anàlisi<br />
de l’algorisme POP.<br />
295
Cerca a través de l’espai dels plans<br />
Al realitzar la cerca a través de l’espai dels plans, estem considerant que els nodes<br />
representen plans parcials i que les arestes denoten les operacions que refinen els<br />
plans, com una addició d’una acció a un pla. Vegeu un possible espai dels plans, en el<br />
món dels blocs, a [Weld1994] a la figura 6.<br />
Podem veure que els dos estats pintats de gris representen respectivament –per a<br />
aquest exemple–: l’estat inicial, és a dir el pla nul, i l’estat final, és a dir el pla final o la<br />
solució.<br />
Si realitzéssim planificació totalment ordenada, tindríem que un pla es representa<br />
per a una seqüència totalment ordenada d’accions. Tanmateix, s’intenta realitzar una<br />
planificació amb el mínim compromís (least commitment planning), on només es<br />
determinen l’ordre de les decisions essencials. Així doncs, estudiarem els planificadors<br />
realitzant una planificació parcialment ordenada.<br />
Cal recordar que ens centrarem en un planificador que:<br />
- realitza planificació parcialment ordenada;<br />
- realitza planificació generativa;<br />
- realitza planificació per refinament;<br />
- realitza planificació no lineal; i<br />
- dissenyarem els algorismes de cerca de manera no determinista.<br />
[Weld1994]<br />
Conceptes: plans, links causals i amenaces<br />
Prèviament a estudiar l’algorisme POP, considerem tot seguit una sèrie de definicions<br />
que seran claus per a l’algorisme final: què és un pla; què és un enllaç (o en anglès<br />
link) causal; i què és una amenaça. Vegeu [Weld1994] a les pàgines 13 i 14.<br />
Definició d’un pla = < A, O, L >:<br />
A: és un conjunt d’accions. E.g. A = { A1, A2, A3 }<br />
O: és un conjunt de restriccions ordenades sobre A. E.g. O = { A1
Els links causals s’usen per detectar si una nova acció que s’afegeix al pla, interfereix<br />
amb les decisions que fins ara configuren el pla. Si interfereixen, ho anomenarem<br />
amenaça.<br />
Definició d’amenaça: anomenarem a cada acció que interfereix a les decisions<br />
preses fins al moment (és a dir, al pla actual) una amenaça. Sigui At una acció diferent<br />
dins d’A. Direm que At amenaça al link Ac --Q--> Ap quan:<br />
1) O U {Ap < At < Ac} és consistent; i<br />
2) At té ¬Q com un efecte.<br />
És a dir, At es podria executar entre Ap i Ac, i obtindria ¬Q, llavors quan s’executés Ac,<br />
la qual depèn de la Q que havia afegit Ap, es trobaria que no hi és, sinó que hi ha el<br />
negat!<br />
Què es pot fer quan es detecta una possible amenaça? S’afegeix alguna de les<br />
contramesures següents, les quals afegeixen una restricció d’ordre addicional, per tal<br />
d’assegurar que At s’executi abans d’Ap (At < Ap, anomenat demotion), o bé després<br />
d’Ac (Ac < At, anomenat promotion).<br />
[Weld1994]<br />
Representació del pla nul<br />
Quan vulguem trobar un pla, atès que partim d’una planificació per refinament, haurem<br />
de partir del pla nul. Com es defineix el pla nul?<br />
Pla nul = < A, O, L > on:<br />
A = { A0<br />
, A∞}<br />
O = { A0<br />
, A∞}<br />
L = {}<br />
Direm que A0 és l’acció *start*, la qual no té precondicions i a l’efecte especifica<br />
quines proposicions són certes a l’estat inicial, del problema de planificació que es vol<br />
resoldre i quines són falses.<br />
Direm que Ainfinit és l’acció *end*, la qual no té efectes, i les seves precondicions<br />
són el conjunt de conjuncions que determina l’objectiu del problema de planificació.<br />
Vegeu un exemple del pla nul, per al problema de l’anomalia de Sussman, a<br />
[Weld1994] a la figura 7.<br />
Podem observar que inicialment no hi ha establert cap ordre entre cap acció.<br />
[Weld1994]<br />
297
L’algorisme POP<br />
L’algorisme POP (Partial Order Planner) descriu un algorisme de regressió, el qual fa<br />
cerca a través de l’espai dels plans.<br />
L’algorisme POP comença amb el pla nul d’un problema de planificació, i va generant<br />
un pla de manera no determinística, fins que tots els termes de les precondicions de<br />
les accions estan suportats per links causals, i tots els links amenaçats han estat<br />
protegits. Així el conjunt O del pla final, pot estar especificat únicament per un ordre<br />
parcial.<br />
Quins són els paràmetres d’entrada (l’INPUT) de l’algorisme POP?<br />
* Un pla = < A, O, L ><br />
* Una agenda amb els objectius que s’han de suportar per links. Cada ítem de<br />
l’agenda és una tupla < Q, Ai >, on Q és un conjuntant de la precondició de l’acció Ai.<br />
* <strong>La</strong> teoria del domini :<br />
Λ<br />
Vegeu i entengueu l’algorisme POP a [Weld1994] a la figura 8.<br />
Podeu observar que clarament es tracta d’un algorisme recursiu. L’algorisme POP<br />
presenta diferents punts indeterminístics:<br />
- En el pas 2, en el moment de seleccionar un objectiu de l’agenda < Q, Aneed >.<br />
- En el pas 3, en el moment de seleccionar una acció Aadd.<br />
- I en el pas 5, si fos convenient protegir una amenaça, hi ha dues possibilitats. Tot i<br />
que podria ser que cap de les dues fos possible.<br />
[Weld1994]<br />
Exemple del POP: l’anomalia de Sussman<br />
Seguirem un exemple d’aplicació de l’algorisme POP. Suposem que volem resoldre el<br />
problema de l’anomalia de Sussman, és a dir, volem trobar un pla per anar de l’estat<br />
inicial a l’estat final. Vegeu l’exemple complet a [Weld1994] a les pàgines 15-21.<br />
És important que entengueu el funcionament de POP i, més concretament, el concepte<br />
d’amenaça (el qual s’il·lustra a la figura 11).<br />
[Weld1994]<br />
Anàlisi del POP<br />
Es demostra que POP és un algorisme sòlid i complet. I el rendiment esperat de<br />
l’algorisme de cerca és O(cb^n), on:<br />
n: és el nombre de vegades que es crida el fet d’escollir de manera no determinista,<br />
abans de trobar la solució.<br />
298
: és el factor de branqueig (= nombre de possibilitats) de cada punt no determinístic.<br />
c: és el cost de processar un node de l’espai de cerca.<br />
Donades les característiques de POP i les pròpies restriccions de l’algorisme, el factor<br />
de branqueig b és menor que el factor de branqueig que hi ha en un node de l’espai<br />
del món dels estats. Així doncs, POP és més ràpid que REGWS.<br />
Per tant, seguirem treballant la planificació a partir de l’algorisme POP, és a dir, dins<br />
de l’espai del món dels plans.<br />
[Weld1994]<br />
RESUM<br />
En aquesta sessió hem estudiat la possibilitat de realitzar la planificació a través de<br />
l’espai del món dels plans. Aquesta anàlisi s’ha realitzat a través de l’algorisme<br />
regressiu POP, veient que és una millor proposta que fer cerca a través del món dels<br />
estats.<br />
És important que s’entengui el concepte de planificar amb el mínim compromís, ja<br />
que serà l’objectiu de les pròximes sessions.<br />
299
300
SESSIÓ 47: Relaxacions de POP – PLANIFICACIÓ (6/9)<br />
Nom: Relaxacions de POP – PLANIFICACIÓ (6/9)<br />
Tipus: teòrica<br />
Format: no presencial<br />
Durada: 2-3 hores<br />
Dedicació: 2-3 hores<br />
Treball a lliurar: no<br />
Material:<br />
o Bibliografia bàsica:<br />
[Weld1994]<br />
PRECEDENTS<br />
Per a una bona comprensió d’aquesta sessió, és imprescindible partir de tots els<br />
coneixements i més concretament de l’algorisme POP, que es van veure a la sessió<br />
anterior.<br />
OBJECTIUS<br />
L’objectiu d’aquesta sessió és analitzar com modificar l’algorisme POP per tal de<br />
realitzar una planificació amb el mínim compromís i, al mateix temps, augmentar<br />
l’expressivitat del llenguatge formal que descriu els operadors.<br />
CONTINGUTS<br />
En aquesta sessió estudiarem quatre possibles modificacions de l’algorisme POP per<br />
tal d’assolir els objectius que hem descrit:<br />
1. Planificació amb accions parcialment instanciades.<br />
2. Planificació amb efectes condicionals.<br />
3. Planificació amb precondicions disjuntives.<br />
4. Planificació amb quantificadors universals.<br />
6.4.2. Relaxacions de l’algorisme POP<br />
A la sessió anterior vam veure que era bona l’opció de dissenyar planificadors que<br />
actuïn dins de l’espai del món dels plans en comptes de l’espai dels estats (apartat<br />
6.4.1). En concret, vam analitzar l’algorisme POP.<br />
Una altra idea que vam apuntar va ser la de planificar amb el mínim compromís.<br />
Seguint en aquesta línia, el primer que ja se’ns pot ocórrer és parametritzar les<br />
accions, és a dir, treballar amb variables i –per exemple a l’exemple del món dels<br />
blocs– instanciar-les a un bloc només quan sigui imprescindible.<br />
Seguint en aquesta línia, realitzarem una sèrie de modificacions a l’algorisme POP per<br />
tal de suportar:<br />
1. Planificació amb accions parcialment instanciades.<br />
301
2. Planificació amb efectes condicionals.<br />
3. Planificació amb precondicions disjuntives.<br />
4. Planificació amb quantificadors universals.<br />
El conjunt de totes aquestes modificacions ens portarà a un nou algorisme, UCPOP, el<br />
qual l’estudiarem a la sessió següent (apartat 6.4.3).<br />
Planificació amb accions parcialment instanciades<br />
L’objectiu de treballar amb accions parcialment instanciades és el fet de poder retardar<br />
les decisions, afegint les restriccions –i refinant-les– gradualment. Vegeu [Weld1994] a<br />
les pàgines 21-25.<br />
Per poder treballar amb accions parcialment instanciades es necessitarà controlar<br />
quines instanciacions ja s’han fet, quines no i quines no es poden fer. Hi haurà dos<br />
tipus de restriccions:<br />
1. Restriccions d’assignació de codi.<br />
Per exemple:<br />
( = ? x A)<br />
indica que la variable x ha estat instanciada pel bloc A.<br />
2. Restriccions de no assignació de codi.<br />
Per exemple:<br />
( ≠ ? x ? y)<br />
indica que la variable x no pot tenir el mateix valor que la variable y.<br />
Seguint aquesta notació, en el problema del món dels blocs tindríem que l’operador<br />
move es defineix de la manera que es mostra a la figura 14 de’n [Weld1994].<br />
Com s’ha de modificar l’algorisme POP per tal de poder treballar amb accions<br />
parcialment instanciades?<br />
1. Convé redefinir què és un pla.<br />
L’estructura de pla ara queda definida per 4 paràmetres: < A, O, L, B >. On B és el<br />
conjunt de restriccions d’assignació de les variables instanciades.<br />
En el pla nul tindrem que B = {}.<br />
2. Es necessitarà realitzar al llarg de l’algorisme algun tipus d’unificació:<br />
Sigui MGU(Q,R,B) (most general unifier – MGU) una funció que retorni la unificació<br />
més general entre els literals Q i R donades les restriccions d’assignació de B. Retorna<br />
_|_ si no existeix cap unificació possible.<br />
Sigui Delta una sentència lògica, la notació Delta\B (o Delta\MGU(Q,R,B)) denota la<br />
sentència resultant de substituir els valors base per a les variables que han resultat<br />
unificades en el procés d’unificació.<br />
302
3. Detalls d’implementació. Convé modificar els passos següents de l’algorisme POP<br />
(vegeu [Weld1994]p22-p24): pas 3 – selecció d’una acció; pas 4 – actualització del<br />
conjunt d’objectius; pas 5 – protecció de links causals; i pas 1 – acabament.<br />
Vegeu els canvis i fixeu-vos com es tracta “una possible amenaça”.<br />
[Weld1994]p21-p25<br />
Planificació amb efectes condicionals<br />
Tal i com s’ha tractat la planificació amb accions parcialment instaciades, hem pogut<br />
veure que encara s’ha de distingir en dos operadors diferents quan el destí final és un<br />
bloc o bé la taula. Sembla coherent, tant des de la perspectiva de l’enginyeria del<br />
software, com per raons d’eficiència, poder expressar en un únic operador move, tant<br />
si el destí és una taula com un bloc.<br />
<strong>La</strong> solució a aquest problema és tan senzilla com permetre que el llenguatge formal<br />
que descriu les accions permeti expressar el condicional a les seves postcondicions (o<br />
efectes).<br />
Sintaxi del condicional:<br />
On l’antecedent i el conseqüent són o un literal simple o una conjunció de literals.<br />
L’antecedent es refereix al món abans que s’executi l’acció, mentre que el<br />
conseqüent es refereix al món després d’executar l’acció.<br />
Així, l’operador move es pot definir tal i com es mostra a la figura 15 de’n<br />
[Weld1994]p25-p27.<br />
Quines modificacions convé fer a l’algorisme POP –incloent les modificacions que ja<br />
s’han fet per tal de suportar accions parcialment instanciades–?<br />
Fixeu-vos que ara convé modificar: pas 3 – selecció de l’acció; pas 4 – actualització<br />
del conjunt d’objectius; i pas 5 – protecció dels links causals.<br />
Com podeu veure, en el pas 5 s’afegeix un nou criteri de protecció dels links causals<br />
amenaçats: la confrontació, la qual afegeix la negació de l’antecedent del condicional<br />
(el when) de l’efecte a l’agenda. Alerta! Això implica que la confrontació afegeix<br />
objectius negatius!<br />
[Weld1994]p25-p27<br />
Planificació amb precondicions disjuntives<br />
Si es vol dotar de més expressivitat el llenguatge formal que descriu els operadors, es<br />
pot incloure la disjunció. Ara bé, aquesta només es pot afegir a les precondicions, mai<br />
303
en els efectes, ja que si no obtindríem accions indeterministes. Vegeu [Weld1994] a<br />
les pàgines 27-28.<br />
Sintaxi de la disjunció:<br />
( 1 2 Q Q or<br />
)<br />
Quines modificacions comporta a l’algorisme POP?<br />
1. Senzillament, convé modificar el pas 2 – selecció de l’objectiu. De fet, podeu<br />
observar que s’afegeix un nou punt indeterminístic en aquest pas.<br />
Cal que tingueu present:<br />
- Només es permet la disjunció a les precondicions, no als efectes!<br />
- L’efecte condicional (when P Q) no s’ha de confondre amb la implicació lògica (=> P<br />
Q). És a dir:<br />
( when P Q)<br />
≠ ( or ( not P)<br />
Q)<br />
Ja que en el when P es refereix abans de l’execució de l’acció, mentre que el Q es<br />
refereix al món després d’executar-se l’acció. Mentre que a l’or de la precondició, tant<br />
el P com el Q es refereixen al món abans d’executar-se l’acció.<br />
[Weld1994]p27-p28<br />
Planificació amb quantificadors universals<br />
Si seguim en la línia de fer més expressiu el llenguatge de representació de les<br />
accions, és el moment d’incloure la expressivitat dels quantificadors universals.<br />
Vegeu [Weld1994] a les pàgines 28-31.<br />
Sintaxis:<br />
A P s’especifica sobre quins objectes s’aplica Q.<br />
Si per exemple som en el “món de les carteres”, sembla lògic que quan movem una<br />
cartera d’un lloc a un altre, els objectes que porta en el seu interior es traslladin amb<br />
ella. Aquesta acció de tant de sentit comú s’especifica usant el quantificador forall.<br />
Vegeu la definició de l’operador move –relacionat amb el món de les carteres– a la<br />
figura 17 de’n [Weld1994].<br />
<strong>La</strong> inclusió dels quantificadors universals dins de l’algorisme POP implica afegir i/o<br />
redefinir alguns conceptes. I realitzar forces modificacions a l’algorisme POP.<br />
Si a més a més tenim en compte totes les modificacions que hem estat analitzant al<br />
llarg d’aquesta sessió, ens porta a l’algorisme UCPOP. L’estudiarem en detall a la<br />
següent sessió (apartat 6.4.3).<br />
[Weld1994]p28-p31<br />
304
RESUM<br />
En aquesta sessió hem estudiat les possibles modificacions que es poden fer a<br />
l’algorisme POP per tal de realitzar planificació amb el mínim compromís i, al mateix<br />
temps, dotar de més expressivitat el llenguatge formal que descriu els operadors.<br />
Hem vist com incloure a l’algorisme POP:<br />
- Planificació amb accions parcialment instanciades.<br />
- Planificació amb efectes condicionals.<br />
- Planificació amb precondicions disjuntives.<br />
- Planificació amb quantificadors universals. Aquesta darrera modificació ens porta a<br />
l’algorisme UCPOP, el qual l’estudiarem a la sessió següent.<br />
305
306
SESSIÓ 48: Algorisme UCPOP – PLANIFICACIÓ (7-8/9)<br />
Nom: Algorisme UCPOP – PLANIFICACIÓ (7-8/9)<br />
Tipus: teòrica<br />
Format: no presencial<br />
Durada: 4 hores<br />
Dedicació: 4 hores<br />
Treball a lliurar: no<br />
Material:<br />
o Bibliografia bàsica:<br />
[Weld1994]<br />
PRECEDENTS<br />
En aquesta sessió definirem l’algorisme UCPOP a partir de l’algorisme POP, més les<br />
diferents relaxacions que s’han presentat del mateix algorisme (vegeu les sessions<br />
anteriors).<br />
OBJECTIUS<br />
L’objectiu d’aquesta sessió és el d’estudiar l’algorisme UCPOP, el qual treballa amb<br />
accions parcialment instanciades, amb efectes condicionals, amb precondicions<br />
disjuntives i amb quantificadors universals.<br />
També analitzarem què passaria si l’univers passés a ser dinàmic.<br />
CONTINGUTS<br />
Els continguts d’aquesta sessió es centren al voltant de l’algorisme UCPOP.<br />
Veurem:<br />
- les hipòtesis inicials que s’estableixen per a l’algorisme UCPOP;<br />
- conceptes imprescindibles, com la base universal;<br />
- una descripció detallada de l’algorisme UCPOP;<br />
- un parell d’exemples de funcionament de l’algorisme UCPOP: un que il·lustra un<br />
exemple de confrontació i un segon exemple que mostra com treballar amb efectes<br />
quantificats universalment;<br />
- i finalment considerarem algunes relaxacions de les hipòtesis inicials, és a dir, com<br />
treballar amb dominis dinàmics.<br />
6.4.3. Algorisme UCPOP<br />
A les sessions anteriors hem estudiat l’algorisme POP i diferents relaxacions de<br />
l’algorisme, a favor d’obtenir una planificació amb el mínim compromís i maximitzar la<br />
potència de la lògica de primer ordre en les expressions dels operadors.<br />
Concretament, hem analitzat com planificar amb accions parcialment instanciades,<br />
amb efectes condicionals, amb precondicions disjuntives i finalment hem plantejat la<br />
307
necessitat de planificar amb quantificadors universals. L’algorisme UCPOP integra<br />
totes aquestes característiques.<br />
Prèviament a detallar l’algorisme UCPOP recordarem algunes hipòtesis i establirem<br />
alguns conceptes necessaris pel seu disseny. Una vegada presentat seguirem un<br />
parell d’exemples que il·lustrin el seu funcionament.<br />
Hipòtesis inicials<br />
En el disseny de l’algorisme UCPOP suposarem que tenim les hipòtesis inicials<br />
següents (vegeu [Weld1994]p28-p29):<br />
1. El món modelitzat té un model estàtic té un univers estàtic i finit d’objectes. Estàtic<br />
en el sentit que durant el procés de la planificació no es poden ni crear ni eliminar<br />
objectes.<br />
2. Cada objecte té un tipus.<br />
3. Per a cada objecte de l’univers la descripció de l’estat inicial ha d’incloure una<br />
sentència atòmica unària que declari el seu tipus.<br />
[Weld1994]<br />
<strong>La</strong> base universal<br />
A l’introduir els operadors universals forall i exists necessitem algun mecanisme per<br />
treballar –quan sigui necessari– amb els objectes que quantifiquen. Per tal de fer-ho es<br />
necessita una funció que sigui capaç “d’aplanar” aquests operadors. Aquesta funció<br />
s’anomena la base universal (vegeu [Weld1994]p30-p31).<br />
Com es defineix la base universal lambda sobre l’operador (forall (P) Q) ?<br />
Sigui delta una sentència qualsevol.<br />
γ ( Δ)<br />
= Δ ; si Δ no conté quantificadors<br />
γ ( ∀t<br />
y Δ(<br />
y))<br />
= γ ( Δ ) ∧K<br />
∧ γ ( Δ )<br />
1 1<br />
n<br />
On Delta_i representa cadascuna de les possibles interpretacions de Delta(y) sota<br />
l’univers del discurs, {C1, ... , Cn}, que són els objectes possibles de tipus t1. En cada<br />
Delta_i, totes les referències a la y han de ser reemplaçades per la constant Ci.<br />
Com es defineix la base universal lambda sobre l’operador (exists (P) Q) ?<br />
γ ∃t y Δ(<br />
y))<br />
= t ( y)<br />
∧ γ ( Δ(<br />
y))<br />
( 1<br />
1<br />
Les referències a y es reemplacen per la constant d’Skolem.<br />
I una possible combinació d’exists i forall ?<br />
γ ∀t x ∃t<br />
y Δ(<br />
x,<br />
y))<br />
= t ( y ) ∧ γ ( Δ ) ∧K<br />
∧ t ( y ) ∧ γ ( Δ<br />
( 1 2<br />
2 1<br />
1<br />
2 n<br />
n<br />
308<br />
)
On Delta_i correspon a cadascuna de les interpretacions de Delta(x,y) sota l’univers<br />
del discurs pel tipus t1={C1, ... , Cn}. Per a cada Delta_i totes les referències a x s’han<br />
de reemplaçar per la constant Ci. Les referències a y es reemplacen per les constants<br />
d’Skolem y_i.<br />
Vegeu alguns exemples a [Weld1994]p30-p31.<br />
[Weld1994]<br />
Algorisme UCPOP<br />
L’algorisme UCPOP es basa en l’algorisme POP. De tal manera que es modifica POP<br />
per permetre esquemes d’accions amb variables, efectes condicionals, precondicions<br />
disjuntives i quantificadors universals (vegeu [Weld1994]p31-p33).<br />
Vegem alguns criteris (i/o definició de funcions) que assumirem en l’algorisme UCPOP:<br />
1. Si un objectiu o una precondició és una sentència quantificada universalment,<br />
llavors UCPOP computa la base universal i planifica com assolir-ho.<br />
2. Si un efecte involucra una quantificació universal, UCPOP no computa la base<br />
universal. <strong>La</strong> base universal es genera de forma incremental, i l’efecte s’usa per<br />
suportar links causals.<br />
3. Es necessita canviar la definició d’amenaça per tal d’incloure els efectes<br />
quantificats universalment:<br />
Sigui<br />
Q<br />
Ap ⎯ ⎯→<br />
A<br />
un link causal.<br />
c<br />
Si existeix un At que satisfà les condicions següents, llavors direm que At amenaça<br />
aquest link causal. Condicions d’amenaça:<br />
1) Ap < At < Ac és consistent amb O<br />
2) At té un terme R a l’efecte (o té un efecte condicional, el conseqüent del qual té un<br />
terme R).<br />
3) MGU ( Q,<br />
¬ R,<br />
B)<br />
≠⊥<br />
4) Tots els parells<br />
( u , v)<br />
∈ MGU ( Q,<br />
¬ R,<br />
B)<br />
tals que u o v són membres de les variables quantificades universalment de l’efecte.<br />
309
És a dir, una acció es considera una amenaça quan la unificació només retorna lligams<br />
amb les variables quantificades universalment de l’efecte.<br />
Una vegada realitzades totes aquestes consideracions vegeu atentament l’algorisme<br />
UCPOP, el qual es detalla a la figura 18 de’n [Weld1994], a la pàgina 33.<br />
Es demostra que l’algorisme UCPOP –sota les hipòtesis anteriors– és un algorisme<br />
sòlid i complet.<br />
[Weld1994]<br />
Exemple 1: confrontació<br />
Vegeu un exemple de funcionament de l’algorisme UCPOP, on podreu veure què<br />
succeeix en el cas d’una confrontació.<br />
L’exemple es centra en el domini de les carteres, tenint com a operadors (teoria del<br />
domini) els operadors move ([Weld1994]p29 a la figura 17) i take-out ([Weld1994]p34 a<br />
la figura 19).<br />
Què tenim a l’estat inicial?<br />
Una cartera B, un xec P dins de la cartera B, i la cartera B i el xec P es troben a casa.<br />
Així A0 serà definida per:<br />
A0 = (and (briefcase B) (at B home) (in P B) (at P home))<br />
Quin és l’estat objectiu d’aquest exemple?<br />
Doncs que el xec P es quedi a casa, mentre que la cartera B sigui a l’oficina. Així<br />
doncs, tenim:<br />
Ainfinit = (and (at B office) (at P home))<br />
Seguiu atentament l’exemple a [Weld1994]p32-p37, fins arribar al pla final que es<br />
presenta a la figura 24.<br />
[Weld1994]<br />
Exemple 2: quantificació<br />
Vegeu un segon exemple de funcionament de l’algorisme UCPOP a [Weld1994]p37p39.<br />
En aquest cas s’il·lustra la manera en què s’aplica la base universal (“sota<br />
demanda”) quan tenim un efecte quantificat universalment.<br />
De nou ens trobem en l’univers de les carteres. Suposem que la teoria del domini està<br />
composta pels operadors move ([Weld1994]p29 a la figura 17) i put-in ([Weld1994]p37<br />
a la figura 25).<br />
Què tenim a l’estat inicial?<br />
310
Una cartera B a casa i un objecte D a l’oficina. Així A0 serà definida per:<br />
A0 = (and (object B) (object D) (briefcase B) (at B home) (at D office))<br />
Quin és l’estat objectiu d’aquest exemple?<br />
Doncs que tots els objectes de l’univers es trobin a casa. Així doncs, tenim:<br />
Ainfinit = (forall ((object ?O)) (at ?O home))<br />
Seguiu atentament l’exemple a [Weld1994]p37-p40 fins arribar al pla final que es<br />
presenta a la figura 29.<br />
[Weld1994]<br />
6.4.4. Relaxacions de l’UCPOP<br />
Fins ara, en la discussió de la quantificació universal hem assumit que l’univers del<br />
discurs és finit, estàtic i conegut per l’agent que realitza la planificació. Però què passa<br />
si canvien algunes d’aquestes assumpcions? És a dir, què passa si l’univers és<br />
dinàmic? Vegem algunes consideracions al respecte.<br />
Planificació dinàmica<br />
Com suportar al llarg de la planificació universos dinàmics? És a dir, dominis en els<br />
quals els efectes de les accions poden crear nous objectes o bé esborrar alguns que ja<br />
existeixen.<br />
Així doncs, per tal de realitzar planificació dinàmica hauríem de considerar els punts<br />
següents:<br />
1) Com s’hauria de representar (sintàcticament) la creació i destrucció d’objectes en el<br />
llenguatge de les accions?<br />
2) Com hauria de suportar el planificador els objectius quantificats universalment, és a<br />
dir, com efecte als possibles efectes?<br />
Vegeu algunes consideracions al respecte a [Weld1994]p39-p41.<br />
[Weld1994]<br />
RESUM<br />
Amb aquesta sessió finalitzem la teoria corresponent al capítol de Planificació. A la<br />
sessió següent es proposaran alguns exercicis.<br />
311
Hem pogut veure que l’objectiu de la planificació consisteix a trobar una seqüència<br />
d’accions que modifiquin l’estat inicial cap a un estat que satisfaci l’objectiu.<br />
Així doncs, hem vist que un planificador usa una sèrie d’accions (de la seva teoria del<br />
domini) per tal d’intentar assolir l’objectiu. Per tant, interessa que els planificadors<br />
siguin complets (si un pla existeix, llavors existeix una seqüència escollida de forma<br />
no determinista que el trobi) i sòlids (si retorna un pla, aquest realment anirà de l’estat<br />
inicial a l’estat final).<br />
312
SESSIÓ 49: Exercicis de planificació – PLANIFICACIÓ (9/9)<br />
Nom: Exercicis de planificació – PLANIFICACIÓ (9/9)<br />
Tipus: de problemes<br />
Format: no presencial<br />
Durada: 2 hores<br />
Dedicació: 2 hores<br />
Treball a lliurar: no<br />
Material:<br />
o Bibliografia bàsica:<br />
[Weld1994]<br />
PRECEDENTS<br />
Per realitzar aquesta sessió d’exercicis es necessita haver estudiat totes les sessions<br />
anteriors corresponents al capítol de Planificació.<br />
OBJECTIUS<br />
L’objectiu d’aquesta sessió és comprendre millor el problema de la planificació i que,<br />
per tant, els exercicis que es proposen serveixin per acabar d’estudiar i comprendre el<br />
capítol de Planificació.<br />
CONTINGUTS<br />
En aquesta sessió es proposa la resolució de tres problemes d’exàmens,<br />
corresponents a: setembre 2001 (problema 4), juny 2002 – part 2 (problema 1) i juny<br />
2001 (problema 4).<br />
Els enunciats d’aquests exàmens també els podeu trobar a la carpeta de l’assignatura<br />
de l’ecampus.<br />
6.5. Exercicis de planificació<br />
6.5.1. Llista de problemes d’exàmens – Planificació<br />
Tot seguit proposem tres exercicis de planificació que corresponen als exàmens de<br />
juny 2001, setembre 2001 i juny 2002. Aquests enunciats també els podeu trobar a la<br />
carpeta corresponent de l’assignatura a l’ecampus.<br />
Es proposen aquests tres exercicis, tot i que hi ha d’altres exàmens, perquè es<br />
consideren prou representatius per comprendre la planificació i molt especialment<br />
l’algorisme UCPOP.<br />
En els tres casos es proposa un domini (o problema) i es demana: un possible estat<br />
inicial, un estat final (o objectiu), un pla (que vagi de l’estat inicial a l’objectiu) i, donada<br />
la teoria del domini, es demana que dissenyeu alguns operadors. Per tant, que doneu<br />
les precondicions i les postcondicions que els defineixen.<br />
313
Per donar les precondicions i les postcondicions no es demana que recordeu la sintaxi<br />
exacta que vam seguir en l’article de’n [Weld1994], però sí tota l’expressivitat que es<br />
permetia en les pre i postcondicions.<br />
Setembre 2001 – problema 4<br />
ENUNCIAT:<br />
Disposem d'un robot en un entorn hospitalari, el qual té com a objectiu el transportar<br />
les comandes indicades d'un lloc a un altre. De fet, pot ser que certs productes els<br />
hagi de recollir o bé de lliurar al llarg del seu trajecte. Podeu fer les hipòtesis que és<br />
l'únic robot que fa aquest servei en la seva àrea d'actuació (vegeu la figura) i que els<br />
objectes implicats en els seus objectius només són bellugats per ell mentre dura un<br />
trajecte. En general, podeu fer les assumpcions que: el temps és atòmic, els efectes<br />
són determinístics, d'omnipotència i hi ha una causa única de canvi (el robot).<br />
El vostre objectiu consistirà en dissenyar el planificador adequat per tal de realitzar les<br />
comandes de la manera més eficient possible. Concretament, per planificar (i realitzar,<br />
és clar) cada trajecte independentment. Suposem que es vol construir un planificador<br />
tipus UCPOP.<br />
ES DEMANA:<br />
1. Descripció d'un estat inicial.<br />
2. Descripció d'un objectiu (o estat final).<br />
3. Dissenyeu les precondicions i postcondicions dels operadors següents, els quals<br />
són els que configuren la teoria del domini. Podeu suposar que el robot és com un<br />
carro que pot transportar diversos productes al mateix temps.<br />
canvia_habitació(H1,H2)} : el ROBOT passa de l'habitació H1 a l'habitació H2.<br />
agafa_comanda(C,H)} : el ROBOT agafa la comanda C de l'habitació H.<br />
deixa_comanda(C,H)} : el ROBOT deixa la comanda C a l'habitació H.<br />
314
4. Un pla (que satisfaci l'objectiu donat l'estat inicial).<br />
Juny 2002 (part 2) – problema 1<br />
ENUNCIAT :<br />
Una empresa automobilística disposa de robots per tal de realitzar la cadena de<br />
muntatge d'un automòbil. Concretament, els robots necessiten anar a cercar per a<br />
cada fase de muntatge les peces corresponents al magatzem de peces i col·locar-les<br />
en l'ordre precís (dins de la cadena de muntatge). Es pot donar el cas que una peça<br />
depengui d'altres peces prèviament muntades. Quan es finalitza un automòbil, aquest<br />
es diposita al magatzem d’automòbils.<br />
Podeu fer les hipòtesis que hi ha un únic robot per automòbil i que el nombre de peces<br />
és il·limitat. També podeu suposar que els robots passen per les portes (i poden<br />
passar tots alhora ...). Vosaltres haureu d’especificar el nombre de tipus peces<br />
necessàries (A, B, etc.) i el nombre de robots de què disposa la companyia<br />
automobilística (Robot_1, Robot_2, etc.). Vegeu la figura 1.<br />
En general, podeu fer les assumpcions següents: el temps és atòmic, els efectes són<br />
determinístics, d'omnipotència i hi ha una causa única de canvi (el robot).<br />
El vostre objectiu consistirà a dissenyar el planificador adequat per tal de portar a<br />
terme el muntatge d'un automòbil. Concretament, per planificar (i realitzar, és clar) un<br />
automòbil concret cada vegada. Suposem que es vol construir un planificador tipus<br />
UCPOP.<br />
ES DEMANA:<br />
1. Descripció d'un estat inicial.<br />
2. Descripció d'un objectiu o estat final.<br />
3. <strong>La</strong> teoria del domini és definida pels operadors següents:<br />
canvia_habitació(ROBOT,H1,H2) : el ROBOT passa de l'habitació H1 a l'habitació H2.<br />
agafa_peça(ROBOT,TIPUS_PEÇA) : el ROBOT agafa la peça TIPUS_PEÇA.<br />
315
munta_peça(ROBOT,PEÇA,OBJECTE,AUTOMÒBIL) : el ROBOT munta la PEÇA que<br />
té agafada sobre l’OBJECTE (on OBJECTE potser la base de l’automòbil o bé una<br />
altra peça) de l’AUTOMÒBIL.<br />
agafa_automòbil(ROBOT,AUTOMÒBIL) : el ROBOT agafa l’AUTOMÒBIL.<br />
deixa_automòbil(ROBOT,AUTOMÒBIL) : el ROBOT deixa l’AUTOMÒBIL.<br />
Dissenyeu les precondicions i postcondicions dels operadors següents:<br />
canvia_habitació(ROBOT,H1,H2) : el ROBOT passa de l'habitació H1 a l'habitació H2.<br />
agafa_peça(ROBOT,TIPUS_PEÇA) : el ROBOT agafa la peça TIPUS_PEÇA.<br />
4. Un pla (que satisfaci l'objectiu donat l'estat inicial).<br />
Juny 2001 – problema 4<br />
ENUNCIAT:<br />
Una empresa de correu electrònic vol dissenyar la planificació necessària per tal de<br />
dur a terme les comandes personalitzades que s’encarreguen electrònicament i que,<br />
des d’un magatzem que serveix una certa zona geogràfica, es preparen per tal de ferles<br />
arribar al client.<br />
Vegeu a la figura el magatzem de l’empresa de comerç electrònic.<br />
L’empresa pretén automatitzar tot el procés de l’elaboració de les comandes que<br />
realitza cada client.<br />
Suposeu que disposem d’un robot el qual té com a objectiu la comanda que li acaba<br />
d’arribar a l’HAB_1. Aquesta comanda li indica quins productes (de tipus PROD_1,<br />
PROD_2, ... o PROD_K) s’han d’enviar al client. Així doncs, el robot configurarà una<br />
caixa amb els productes demanats.<br />
Podeu fer les hipòtesis que és l’únic robot que fa aquest servei; que disposa de tants<br />
productes com li siguin necessaris, ja que contínuament s’està actualitzant el material<br />
316
que hi ha al magatzem (HAB_3); que es disposa de tantes CAIXES com comandes<br />
arriben i que els objectes implicats en els seus objectius només són bellugats per ell,<br />
mentre es planifica una comanda. En general, podeu fer les assumpcions següents: el<br />
temps és atòmic, els efectes són determinístics, d'omnipotència i hi ha una causa<br />
única de canvi (el robot).<br />
ES DEMANA:<br />
1. Suposem que es vol construir un planificador tipus UCPOP. Dissenyeu les<br />
precondicions i postcondicions dels operadors següents, els quals són els que<br />
configuren la teoria del domini. Podeu suposar que el robot és un carro que pot<br />
transportar diversos productes al mateix temps.<br />
canvia_habitació(R,H1,H2) : el robot R passa de l’habitació H1 a l’habitació H2.<br />
agafa_producte(R,P) : el robot R agafa un producte de tipus P.<br />
deixa_producte(R,P,C) : el robot R deixa un producte de tipus P a la caixa C.<br />
lliura_comanda(R,C) : el robot R lliura la caixa C a la SORTIDA de COMANDES.<br />
2. Suposem que a l’inici el robot sempre ha d’estar a l’habitació HAB_1 i que quan ha<br />
posat tots els productes corresponents a una comanda en una caixa, la deixa a la<br />
PORT_3 (SORTIDA COMANDES). Doneu:<br />
a) Descripció d’un estat inicial.<br />
b) Descripció d’un objectiu (estat final).<br />
c) Un pla (que satisfaci l’objectiu donat l’estat inicial).<br />
3. Suposem que tenim un robot especialitzat per a cada producte. Així doncs, si hi ha<br />
K tipus de productes hi haurà K robots. A més a més, suposeu que es preparen les<br />
caixes cada C comandes i, per tant, es fa un pla per cada C comandes.<br />
a) Afecta al tipus de planificació usada? Justifiqueu la resposta.<br />
b) S’han de modificar els operadors de la teoria del domini? En cas afirmatiu, doneu<br />
les modificacions. Justifiqueu la resposta.<br />
RESUM<br />
Amb aquesta sessió d’exercicis finalitzem el capítol de Planificació.<br />
317
318
SESSIÓ 50: Resolució de problemes<br />
Nom: Resolució de problemes – RESOLUCIÓ D’UN PROBLEMA USANT IA (1/1)<br />
Tipus: de problemes<br />
Format: no presencial<br />
Durada: 3 hores<br />
Dedicació: 3 hores<br />
Treball a lliurar: no<br />
Material:<br />
o Bibliografia bàsica:<br />
Enunciats d’exàmens<br />
PRECEDENTS<br />
Pel seguiment d’aquesta sessió d’exercicis que integren tots els conceptes analitzats<br />
dins de l’assignatura d’<strong>Intel·ligència</strong> <strong>Artificial</strong>, es necessiten TOTES les sessions<br />
anteriors.<br />
OBJECTIUS<br />
L’objectiu d’aquesta sessió és treballar la manera d’enfocar la resolució d’un problema<br />
usant tots els conceptes d’IA.<br />
CONTINGUTS<br />
En aquesta sessió veurem:<br />
1. Com resoldre un problema usant IA. És a dir:<br />
- Analitzar l’objectiu del problema, les dades i el tipus de dades que disposem del<br />
problema i quines són les característiques del domini.<br />
- Discutir quina és la millor resolució –global– del problema. Analitzar els avantatges i<br />
inconvenients de les diferents alternatives.<br />
- Quina és la representació del coneixement més adequada.<br />
- Quins són els algorismes de cerca que s’utilitzen.<br />
- Convé planificació? En cas afirmatiu, de quin tipus?<br />
- Convé aprenentatge artificial? En cas afirmatiu, de quin tipus?<br />
2. En segon lloc, plantejarem la resolució de dos problemes, els quals presenten<br />
característiques ben diferents.<br />
319
7. Resolució d’un problema usant IA<br />
7.1. Resolució de problemes usant IA<br />
7.1.1. Com resoldre un problema usant IA?<br />
Vegem què convé establir en el moment de resoldre un problema, usant tot el que hem<br />
vist al llarg del curs: Resolució de problemes – Cerca; Representació del coneixement<br />
– Raonament; Aprenentatge artificial; i Planificació.<br />
Com enfocar la resolució d’un problema?<br />
Ara al final del curs és el moment d’intentar resoldre un problema tenint clars els<br />
diferents temes estudiats al llarg del curs.<br />
És molt important, en primer lloc, analitzar les característiques que presenta el<br />
domini del problema i comprendre què és el que es demana. En base a això, es pot<br />
començar a fer un esbós de com faríeu la resolució global del problema.<br />
Val a dir que segurament hi haurà diferents maneres d’encarar la resolució del<br />
problema igualment correctes. En aquest cas, convindrà justificar la vostra decisió<br />
enfront de les altres alternatives.<br />
Una vegada s’hagi decidit com resoldre el problema, els diferents punts dependran<br />
d’aquesta decisió: la representació del coneixement, la cerca, la planificació i<br />
l’aprenentatge artificial.<br />
Exemple<br />
Per exemple, si sembla que el problema es pot resoldre mitjançant l’ús d’una xarxa<br />
neuronal backpropagation, està clar que:<br />
1. <strong>La</strong> representació del coneixement serà descrita pels pesos i les connexions de la<br />
xarxa neuronal i la capa d’entrada mostrarà les dades que es tindran per a cada<br />
exemple.<br />
2. <strong>La</strong> cerca serà el propi algorisme de funcionament. En el moment de l’explotació de<br />
la xarxa, la cerca de la solució serà senzillament la propagació dels valors d’entrada<br />
cap a la capa de sortida.<br />
Durant el procés d’entrenament, podem entendre que l’algorisme és una cerca de la<br />
millor manera de generalitzar el domini, és a dir, el càlcul dels pesos que minimitzi<br />
l’error. Concretament podeu observar que l’algorisme d’aprenentatge de les BPN és “a<br />
la hill climbing”. Així doncs, tindrà unes característiques, des de la perspectiva de<br />
cerca, similars a les que vam observar en l’estudi del hill climbing.<br />
3. L’aprenentatge artificial serà l’algorisme GDR – generalized delta rule.<br />
4. Està clar que en aquest cas no hi ha planificació.<br />
320
Així doncs, la representació del coneixement, la cerca, l’aprenentatge artificial i la<br />
planificació més adequats dependran de la resolució global del problema.<br />
Podeu observar que, quan esteu oferint la resolució d’un problema, esteu dissenyant<br />
un sistema basat en el coneixement, adequat per a aquell problema en qüestió.<br />
7.1.2. Reconeixement de submarins<br />
Proposarem tot seguit la resolució d’un problema de reconeixement d’imatges de<br />
submarins (entenent que aquestes han estat prèviament processades). Val a dir que al<br />
llarg de la sessió s’analitzaran propostes, però la resolució completa l’haureu de fer<br />
vosaltres com a exercici.<br />
Aquest problema s’ha demanat des de moltes perspectives diferents: com enunciat<br />
d’una pràctica d’aprenentatge artificial o com a problema d’examen, pel qual es<br />
demana una resolució integrant les diferents parts del curs (setembre 2002).<br />
Enunciat<br />
El Servei d'<strong>Intel·ligència</strong> ens ha demanat que dissenyem un sistema que, a partir d'una<br />
imatge de sonar, sàpiga respondre si aquesta correspon o no a un submarí i, si es<br />
tracta d'un submarí, que el sistema respongui de quin tipus de submarí es tracta. Val a<br />
dir que podrien haver imatges que se sap que es corresponen amb un submarí, però<br />
no se sap de quin tipus de submarí es tracta. Els motius d'aquest fet poden ser<br />
diversos, per exemple, pot ser que hi hagi molt soroll o que senzillament es tracti d'un<br />
submarí del qual el Servei d'<strong>Intel·ligència</strong> desconeixia l’existència.<br />
Per tal de realitzar aquest sistema, hem demanat al Servei d'<strong>Intel·ligència</strong> si podíem<br />
disposar d'algun tipus d'informació més concreta. I, com a resposta, ens han fet arribar<br />
una descripció dels diferents submarins que tenen catalogats i algunes imatges de<br />
sonar que es coneix amb seguretat a què corresponen. Val a dir que no forçosament<br />
tenim imatges sonar de tots els tipus de submarins; alguns d'ells són coneguts pel<br />
Servei d'Espionatge, però no s'han pogut detectar mai.<br />
Característiques del domini<br />
Prèviament a proposar una resolució del problema, convé determinar les<br />
característiques del domini, les dades de les quals disposem i l’objectiu del<br />
problema.<br />
A partir de l’enunciat podem fer algunes observacions com les següents:<br />
* Es tracta d’un domini incomplet, ja que, per exemple, hi ha submarins que el Servei<br />
d’<strong>Intel·ligència</strong> pot desconèixer. És en aquest punt que podem observar que el sistema<br />
que proposem necessitarà anar incorporant (aprenent) la nova informació que es vagi<br />
descobrint.<br />
321
* Disposem de dos tipus de dades: 1) disposem d’una descripció dels diferents<br />
submarins que tenen catalogats i 2) disposem d’algunes imatges de sonar que es<br />
coneix correctament a què corresponen.<br />
Val a dir que, pel que fa a les imatges, aquestes ens les passen processades, de tal<br />
manera que cada imatge és descrita per un conjunt de característiques més la classe<br />
a la qual pertanyen (submarí o no; en cas de submarí: el tipus de submarí).<br />
De la mateixa manera, podem suposar que la descripció dels submarins que tenen<br />
catalogats existeix també en forma de fitxa: característiques + classe.<br />
Així doncs, podem tractar totes les dades de la mateixa manera, malgrat que no<br />
podem garantir que per a totes les dades hi hagi les mateixes característiques. Per<br />
tant, en general, haurem de poder treballar amb valors desconeguts.<br />
* Atès que treballem amb imatges sonar, sembla evident que pot haver-hi soroll, tant<br />
en la captura de les imatges com en el processament de les mateixes. Per tant, convé<br />
un mètode robust al soroll.<br />
* Quin és l’objectiu del sistema que volem desenvolupar? Donada una imatge sonar,<br />
identificar si es tracta o no d’un submarí i, en cas de ser un submarí, identificar de quin<br />
tipus de submarí es tracta.<br />
Resolució global del problema<br />
Atès que convé anar incorporant el nou coneixement que es vagi obtenint, seria<br />
recomanable enfocar la resolució global del problema mitjançant algun mètode<br />
d’aprenentatge artificial que sigui capaç d’abordar totes les característiques que hem<br />
analitzat anteriorment. Però quin? Heu d’analitzar els pros i contres dels diferents<br />
paradigmes i de quina manera s’haurien d’adequar per resoldre l’objectiu del<br />
problema.<br />
1. Per exemple, si es resol amb una xarxa neuronal, ja que les backpropagation<br />
són molt robustes al soroll i en aquest entorn no és necessària una explicació:<br />
- Com s’incorpora la nova informació? Convé reentrenar de nou la xarxa neuronal.<br />
- Què passa si la nova informació (per exemple nous submarins) inclouen en la seva<br />
descripció noves característiques? En aquest cas, no només convé reentrenar-la, sinó<br />
que segurament convindrà redissenyar l’arquitectura de la xarxa.<br />
- Com es descriuen els valors desconeguts? Una possibilitat seria que cada atribut fos<br />
descrit per dues neurones: la primera indica si hi ha valor o no i a la segona hi ha el<br />
valor en cas de no ser desconegut, si no, el valor que hi hagi no s’ha de considerar.<br />
- Com s’interpreta la sortida. Podríem tenir un disseny format per dues xarxes<br />
neuronals: la primera ens indica si és un submarí o no i la segona intenta identificar el<br />
tipus de submarí que és, en el cas de ser-ho. Tot i així cal tenir present que pot ser<br />
que no reconegui cap tipus de submarí dels coneguts.<br />
- Etc.<br />
322
Si, tot i així, fos el paradigma escollit, ara s’hauria de dissenyar el sistema global que<br />
integra totes les parts necessàries per resoldre el problema.<br />
2. Davant dels problemes de les xarxes neuronals (malgrat que, com hem vist, es<br />
poden solucionar si es tenen presents), una altra alternativa seria el raonament basat<br />
en casos. Aquest mètode permet anar incorporant nova informació. Coses a<br />
considerar:<br />
- <strong>La</strong> funció de similitud ha de poder treballar amb atributs de diferents tipus i amb<br />
valors desconeguts.<br />
- <strong>La</strong> funció de similitud i la funció de recuperació, s’hauran de redissenyar en el cas<br />
d’afegir dades que incloguin noves característiques.<br />
- El sistema haurà d’incloure les noves classes (tipus de submarins) que es puguin<br />
anar descobrint.<br />
- Etc.<br />
3. Considerar-ne d’altres, com un sistema classificador basat en algorismes<br />
genètics o un sistema d’aprenentatge basat en explicacions o un sistema<br />
inductiu o bé híbrids, per exemple CBR (per les imatges) + EBL (per crear regles de<br />
les descripcions de submarins catalogats).<br />
Moltes solucions poden ser igualment correctes si s’han solucionat d’alguna manera<br />
els problemes que, per si mateixos, no poden resoldre.<br />
Representació del coneixement<br />
Fixeu-vos que la representació del coneixement dependrà del sistema global que<br />
hagueu dissenyat.<br />
No només heu de tenir en compte el paradigma mare escollit, sinó tots els mòduls que<br />
poden intervenir per a la resolució global del problema. Per tant, heu de descriure la<br />
representació del coneixement que s’usi per a cadascuna de les parts del sistema. Pot<br />
ser sempre la mateixa o bé la combinació de vàries.<br />
Cerca<br />
Està clar que tot procés de resolució d’un problema implica cerca! Per tant,<br />
identifiqueu en els diferents punts del sistema global quin tipus de cerca –en realitat–<br />
s’està duent a terme.<br />
Planificació<br />
Tal i com s’ha enfocat el problema, no té sentit incloure cap algorisme de planificació<br />
en cap punt del sistema global.<br />
323
Aprenentatge artificial<br />
En la resolució d’aquest problema hem partit d’una perspectiva d’aprenentatge<br />
artificial, per tant, serà fàcil identificar en quins punts es fa aprenentatge i de quin tipus.<br />
7.1.3. Empresa de missatgeria<br />
En aquest apartat proposem la resolució d’un problema de planificació d’una empresa<br />
de missatgeria. Vegeu l’enunciat de l’examen del setembre de 2002. Aquest mateix<br />
problema també es va proposar algun any com a pràctica de cerca.<br />
Veureu que les possibles maneres de resoldre aquest problema són ben diferents a<br />
les proposades pel problema anterior (reconeixement d’imatges de submarins).<br />
Enunciat<br />
L'empresa de missatgeria MÉS_RÀPID_QUE_MAI està completament informatitzada.<br />
Cada vegada que li arriba un nou paquet, planifica el seu lliurament per tal de servir-lo<br />
tan ràpid com sigui possible i, si pot ser, en menys de 24 hores (ja que si no el servei<br />
de missatgeria surt gratuït per al client). L'empresa es basa en una xarxa de<br />
comunicació per on circulen els paquets, de tal manera que qualsevol població de la<br />
xarxa pot ser tant un node origen com un node destí. Entre les diferents poblacions de<br />
la xarxa es poden usar diferents tipus de transports, per tant, és possible que quan<br />
s'arribi a una certa població s'hagi d'esperar a que arribi el següent transport. Hi ha uns<br />
costos (tant econòmics com temporals) associats al viatge del paquet en funció del<br />
transport i de la ruta que s'utilitzi.<br />
Característiques del domini<br />
Determinem, en primer lloc, les característiques del domini, les dades de les quals<br />
disposem, i l’objectiu del problema.<br />
Fem una anàlisi de l’enunciat:<br />
* L’objectiu consisteix en –cada vegada que arriba un nou paquet– planificar el seu<br />
lliurament per tal de servir-lo tan ràpid com sigui possible.<br />
* Disposem de les dades següents del problema:<br />
- Pel que fa a la xarxa de comunicació on els nodes són les diferents poblacions,<br />
coneixem les poblacions i les connexions que hi ha entre les poblacions, els transports<br />
associats entre les diferents poblacions de la xarxa i l’horari que realitzen i els costos<br />
(tant econòmics com temporals) associats al viatge del paquet en funció del transport i<br />
de la ruta que s'utilitzi.<br />
- Sobre el nou paquet: la població origen i la població destí. Per descomptat sabem<br />
l’hora en la qual arriba la comanda.<br />
324
- Altres restriccions: el paquet s’ha de lliurar tan ràpid com sigui possible i, si pot ser,<br />
en menys de 24 hores (ja que, si no, el servei de missatgeria surt gratuït pel client).<br />
* Analitzant el problema, quines hipòtesis sobre el domini podem assumir?<br />
- Podem assumir que sempre que hi ha un transport disponible té la capacitat per<br />
transportar el nou paquet (independentment de la càrrega que tingui).<br />
- Podem suposar que en tot moment sabem on es troben els diferents transports que<br />
utilitza l’agència.<br />
- En el moment de fer la planificació podem suposar que coneixem tota la informació<br />
necessària per planificar el lliurament del paquet, és a dir, que en el moment de la<br />
planificació el món és estàtic, ja que encara que circulin els diferents transports sabem<br />
a quina hora passen per cada lloc. Evidentment, poden haver-hi anomalies, però en el<br />
moment de fer la planificació no ho podem preveure. Si durant el transport hi hagués<br />
algun problema, des d’aquell punt tornaríem a fer la planificació pel trajecte restant. En<br />
general, podem fer les assumpcions següents: el temps és atòmic, els efectes són<br />
determinístics, d'omnipotència i hi ha una causa única de canvi (el software).<br />
Resolució global del problema<br />
Donades les característiques del problema i les assumpcions que hem fet del domini,<br />
es podria enfocar des de dues perspectives:<br />
Opció 1. Partir d’un algorisme de planificació com l’UCPOP per tal de realitzar la<br />
planificació de cada paquet.<br />
En aquest cas el sistema global hauria de detallar com s’emmagatzemen les dades i<br />
com s’usen; com es descriu la informació d’un nou paquet, és a dir, com es descriu<br />
l’estat inicial i l’estat final; quina és la teoria del domini, és a dir, en què consisteixen<br />
els operadors i com s’incorporen les restriccions pròpies del problema.<br />
No sembla necessari realitzar planificació basada en casos, en aquest cas, també<br />
estaríem incloent aprenentatge artificial a la solució global.<br />
Pot ser interessant analitzar la possibilitat de fer la planificació de manera jeràrquica, ja<br />
que no cal refinar més el pla final si no es satisfan certes restriccions.<br />
Opció 2. També es podria intentar resoldre el problema com una cerca basada en<br />
restriccions. Caldria determinar com s’aplica i contempla tot el problema.<br />
Podeu observar que la planificació, segons quins dominis i problemes, es pot veure<br />
com una cerca basada en restriccions.<br />
Una vegada justificada i escollida l’opció adequada convé detallar el sistema global.<br />
Representació del coneixement<br />
Si resolem el problema des d’una perspectiva d’una cerca basada en restriccions i,<br />
donada la naturalesa de les dades, sembla coherent pensar en representar el<br />
325
coneixement per una simple estructura relacional més un conjunt de regles de<br />
restricció. Un cop justificada la idea general, convé detallar com es faria per a tots el<br />
tipus de dades que intervenen en el problema.<br />
D’altra banda, si penseu en l’algorisme UCPOP, haureu vist que part de la descripció<br />
del domini ja estarà representada a través de l’estat inicial, l’estat objectiu i els<br />
operadors, per tant, en aquesta part estareu usant una representació que expressa<br />
part de la lògica de primer ordre. <strong>La</strong> resta de les dades pot ser que estiguin<br />
representades per una estructura relacional.<br />
Cerca<br />
En aquest concepte heu de detallar i identificar tots punts del sistema global en els<br />
quals hi ha algun tipus de cerca i detallar de quin tipus es tracta.<br />
És clar que el principal algorisme de cerca serà l’algorisme UCPOP o l’algorisme de<br />
cerca basada en restriccions segons el sistema global que s’hagi dissenyat.<br />
Planificació<br />
Per l’opció 1 està clar que es realitza planificació no lineal (UCPOP) i potser heu<br />
considerat també la planificació jeràrquica i/o la basada en casos.<br />
Per l’opció 2 no hi ha planificació.<br />
Aprenentatge artificial<br />
Si a l’opció 1 s’ha inclòs la planificació basada en casos, llavors intervé l’aprenentatge<br />
analògic. Altrament, no és necessari l’aprenentatge artificial.<br />
RESUM<br />
En aquesta sessió de cloenda del curs hem volgut treballar la manera d’enfocar la<br />
resolució d’un problema, usant els diferents conceptes analitzats al llarg del curs<br />
d’<strong>Intel·ligència</strong> <strong>Artificial</strong>.<br />
S’ha pogut observar que sempre existeixen diferents alternatives per oferir un sistema<br />
basat en el coneixement (sistema global) que resolgui el problema. S’esculli<br />
l’alternativa que s’esculli, convé analitzar els avantatges que aporta respecte d’altres<br />
opcions i oferir solucions als seus inconvenients, bé sigui ampliant els mètodes vists o<br />
bé sigui integrant diferents mètodes per a la solució final o, en general, una combinació<br />
d’ambdues.<br />
326
BIBLIOGRAFIA<br />
LLIBRES<br />
Inteligencia artificial<br />
Cortés, Ulises; Béjar, Javier; Moreno, Antonio; Gimeno, Juan M.; Rodríguez, Horacio;<br />
Belanche, Lluís; Martín, Mario; Sànchez, Miquel; Sangüesa, Ramón<br />
Edicions UPC<br />
Barcelona, 1995<br />
[Cortés1995]<br />
Essentials of <strong>Artificial</strong> Intelligence<br />
Ginsberg, Matt<br />
Morgan Kaufmann Publishers<br />
San Francisco - Califòrnia, 1993<br />
[Ginsberg1993]<br />
Principles of Expert Systems<br />
Lucas, P.; Van der Gaag, L.<br />
Addison-Wesley Publishing Company<br />
1991<br />
[Lucas1991]<br />
<strong>Artificial</strong> Intelligence: A New Synthesis<br />
Nilsson, Nils J.<br />
Morgan Kaufmann Publishers, Inc.<br />
San Francisco, Califòrnia, 1998<br />
[Nilsson1998]<br />
Paradigms of <strong>Artificial</strong> Intelligence Programming: Case Studies in<br />
Common LISP<br />
Norvig, Peter<br />
Morgan Kaufmann Publishers, Inc.<br />
San Francisco - Califòrnia, 1992<br />
[Norvig1992]<br />
Inteligencia <strong>Artificial</strong> (Segunda edición)<br />
Rich, Elain; Knight, Kevin<br />
McGraw-Hill<br />
1994<br />
[Rich1994]<br />
327
<strong>Artificial</strong> Intelligence. A Modern Approach<br />
Russell, Stuart; Norvig, Peter<br />
Prentice Hall Series in <strong>Artificial</strong> Intelligence<br />
New Jersey, 1995<br />
[Russell1995]<br />
Common LISP – The <strong>La</strong>nguage (2nd edition)<br />
Steele, G.L.<br />
Digital Press<br />
ftp://ftp.cs.cmu.edu/user/ai/lang/LISP/doc/cltl/cltl-ht.tgz, 1990<br />
[Steele1990]<br />
Principles of Expert Systems<br />
Lucas, P.; Van der Gaag, L.<br />
Addison-Wesley Publishing Company<br />
1991<br />
[Lucas1991]<br />
Aprendizaje automático<br />
Moreno, Antonio; et al.<br />
Edicions UPC<br />
Barcelona, 1994<br />
[Moreno1994]<br />
<strong>Artificial</strong> Intelligence (3rd edition)<br />
Winston, Patrick Henry<br />
Addison-Wesley Publishing Company<br />
USA, 1992<br />
[Winston1992]<br />
APUNTS<br />
LISP – <strong>Intel·ligència</strong> artificial<br />
Golobardes, Elisabet<br />
Edicions Enginyeria i Arquitectura <strong>La</strong> <strong>Salle</strong><br />
Barcelona, 2002<br />
[Golobardes2002a]<br />
EXERCICIS LISP – <strong>Intel·ligència</strong> artificial<br />
Golobardes, Elisabet<br />
Edicions Enginyeria i Arquitectura <strong>La</strong> <strong>Salle</strong><br />
Barcelona, 2002<br />
[Golobardes2002b]<br />
328
CERCA – <strong>Intel·ligència</strong> artificial<br />
Golobardes, Elisabet; Garrell, Josep M.<br />
Edicions Enginyeria i Arquitectura <strong>La</strong> <strong>Salle</strong><br />
Barcelona, 2002<br />
[Golobardes2002c]<br />
PRÀCTICA 1: CERCA – <strong>Intel·ligència</strong> artificial<br />
Golobardes, Elisabet<br />
Edicions Enginyeria i Arquitectura <strong>La</strong> <strong>Salle</strong><br />
Barcelona, 2002<br />
[Golobardes2002d]<br />
Introducció a l’OPS5 – <strong>Intel·ligència</strong> artificial<br />
Comas, Cecília; Golobardes, Elisabet<br />
Edicions Enginyeria i Arquitectura <strong>La</strong> <strong>Salle</strong><br />
Barcelona, 1996<br />
[Comas1996]<br />
PRÀCTICA 2: REPRESENTACIÓ DEL CONEIXEMENT – <strong>Intel·ligència</strong><br />
artificial<br />
Golobardes, Elisabet<br />
Edicions Enginyeria i Arquitectura <strong>La</strong> <strong>Salle</strong><br />
Barcelona, 2002<br />
[Golobardes2002e]<br />
Assignatura de Lògica matemàtica – Curs 2001/2002<br />
Mozota, M. Antònia<br />
<strong>La</strong> <strong>Salle</strong> OnLine – Enginyeries<br />
Barcelona, 2001<br />
[Mozota2001]<br />
Els algorismes genètics i la Computació Evolutiva (Transparències)<br />
Garrell, Josep Maria<br />
Presentat a un curs de la Universitat d’Andorra<br />
Andorra, 2002<br />
[Garrell2002a]<br />
Les Xarxes Neuronals (Transparències)<br />
Garrell, Josep Maria<br />
Presentat a un curs de la Universitat d’Andorra<br />
Andorra, 2002<br />
[Garrell2002b]<br />
RAONAMENT BASAT EN CASOS – Transparències<br />
Golobardes, Elisabet<br />
Edicions Enginyeria i Arquitectura <strong>La</strong> <strong>Salle</strong><br />
Barcelona, 2001<br />
[Golobardes2001]<br />
329
PRÀCTICA 3: APRENENTATGE ARTIFICIAL – <strong>Intel·ligència</strong> artificial<br />
Golobardes, Elisabet<br />
Edicions Enginyeria i Arquitectura <strong>La</strong> <strong>Salle</strong><br />
Barcelona, 2002<br />
[Golobardes2002f]<br />
Barcelona, 2001<br />
[Mozota2001]<br />
ARTICLES<br />
Lògica difusa. Una aproximació al raonament humà<br />
Garriga, Carles; Mayer, August<br />
INPUT 8 (pàgines 19-27)<br />
Barcelona, 1995<br />
[Garriga1995]<br />
An Introduction to Least Commitment Planning<br />
Weld, Daniel S.<br />
AI Magazine<br />
Vol. 15(4) 27-61, 1994<br />
[Weld1994]<br />
Bayesian Classification (AUTOCLASS): Theory and Results<br />
Cheeseman, Peter; Stutz, John<br />
In “Advances in Knowledge Discovery and Data Mining”, P. Smyth and R. Uthurusamy<br />
(Eds.)<br />
The AAAI Press, Menlo Park, 1995<br />
[Cheeseman1995]<br />
The Role of Frame-based representation in Reasoning<br />
Fikes, R.; Kehler, T.<br />
Communications of the ACM, Volume 28, Number 9, pages 904-920<br />
September 1985<br />
[Fikes1985]<br />
Introducció a les xarxes neuronals, presentació de les BackPropagation<br />
Golobardes, Elisabet; Pous, Eduard; Román, Manuel<br />
INPUT 10 (pàgines 17-26)<br />
Barcelona, febrer 1996<br />
[Golobardes1996]<br />
330
REPORTS DE RECERCA<br />
Fuzzy systems – A tutorial<br />
James F. Brule<br />
Tutorial<br />
http://life.csu.edu.au/complex/tutorials/fuzzy.html, 1985<br />
[Brule1985]<br />
<strong>Intel·ligència</strong> artificial<br />
Ton Sales<br />
Report de recerca LSI-90-23<br />
Dept. Llenguatges i Sistemes Informàtics – Universitat Politècnica de Catalunya, 1990<br />
[Sales1990]<br />
331
332
GLOSSARI<br />
BENCHMARK<br />
En aquest context de l’assignatura d’<strong>Intel·ligència</strong> artificial, entendrem per<br />
benchmarks (o problemes benchmarks) aquells problemes que típicament s’usen per<br />
avaluar i comparar diferents mètodes (algorismes).<br />
CERCA BASADA EN RESTRICCIONS, PROBLEMES BASATS EN<br />
RESTRICCIONS<br />
CSP<br />
Constraint Satisfaction Problems<br />
CERCA CEGA, BLIND SEARCH, UNINFORMED SEARCH<br />
Algorismes de cerca que no usen la informació/coneixement del domini en el moment<br />
de buscar la solució.<br />
CERCA SISTEMÀTICA, SYSTEMATIC SEARCH<br />
Són algorismes que segueixen algun ordre estructural de l’espai de cerca del problema<br />
en el moment de buscar la solució.<br />
FACTOR DE BRANQUEIG, BRANCHING FACTOR, FACTOR DE fills<br />
El factor de branqueig d’un node d’un arbre de cerca és igual al número de branques<br />
(o fills) que té aquest node. Per aquest motiu també se l’anomena factor de fills.<br />
INFORMACIÓ PERFECTA<br />
Direm que un jocs té una informació perfecta quan la informació disponible per a<br />
cada jugador és la mateixa. Com per exemple els escacs.<br />
INTEL·LIGÈNCIA ARTIFICIAL<br />
IA<br />
<strong>Intel·ligència</strong> <strong>Artificial</strong><br />
AI<br />
<strong>Artificial</strong> Intelligence<br />
INTEL·LIGÈNCIA ARTIFICIAL DISTRIBUÏDA<br />
DAI<br />
Distributed <strong>Artificial</strong> Intelligence<br />
MONOTONIA, MONÒTONA<br />
Direm que la informació és monòtona si només “canvia” a base d’afegir fets nous, i<br />
aquests fets són consistents amb tots els altres fets. Un exemple clar és tant CP0 com<br />
CP1.<br />
333
NP-HARD<br />
Es diu que un algorisme té una complexitat NP-Hard quan a causa del tamany de<br />
l’espai de cerca no és possible trobar una solució amb els recursos computacionals<br />
disponibles.<br />
PROBLEMA DEL VIATJANT DE COMERÇ<br />
El problema del viatjant de comerç és un problema-exemple dels problemes amb<br />
una complexitat NP-Hard. Aquest problema consisteix en: hi ha un viatjant que ha de<br />
visitar n ciutats, i ha de passar per cada ciutat només un cop. Així doncs, comença per<br />
una ciutat, les visita totes i torna a la ciutat origen. S’ha de trobar el millor camí.<br />
TSP<br />
Travel Salesman Problem<br />
SISTEMA DE MANTENIMENT DE LA VERITAT<br />
TMS<br />
Truth-Maintenance System<br />
SISTEMES MULTI-AGENTS<br />
SMA<br />
TEORIA INCOMPLETA, INCOMPLETESA, INCOMPLET<br />
Direm que una teoria és incompleta quan la teoria no pot explicar algun exemple per<br />
no disposar de tota la informació necessària.<br />
TEORIA INCONSISTENT, INCONSISTÈNCIA, INCONSISTENT<br />
Direm que una teoria és inconsistent quan aquesta arriba a prediccions<br />
contradictòries.<br />
TEORIA INCORRECTA, INCORRECTESA, INCORRECTA<br />
Direm que una teoria és incorrecta quan el sistema fa alguna errada de predicció.<br />
TEORIA INTRACTABLE, INTRACTABLE<br />
Direm que una teoria és intractable quan per donar una predicció es necessiten més<br />
recursos dels que disposa. Si pensem en el joc d’escacs, podem observar que la<br />
solució passa per l’ús de les heurístiques, amb el perill de convertir la teoria en<br />
incompleta, incorrecta i fins i tot inconsistent. Vegeu també el terme de NP-Hard.<br />
334