24.04.2013 Views

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

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!