ApuntesIA PDF
ApuntesIA PDF
ApuntesIA PDF
ligencia Articial
` Enginyeria en Informatica
CURS 2012/2013 1Q
cbea
This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License. cbea To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/2.0/ or send a letter to: Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
ndice general
0. Introduccin
Resolucin de problemas
3
5 5 6 10 13 13 13 14 17 18 23 23 23 24 25 27 27 28 29 29 30 31 35 35 36 39 42
1. Resolucin de problemas 1.1. Qu es un problema? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2. El espacio de estados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3. Algoritmos de bsqueda en el espacio de estados . . . . . . . . . . . . . . . . . . . . . 2. Bsqueda no informada 2.1. Bsqueda independiente del problema 2.2. Bsqueda en anchura prioritaria . . . 2.3. Bsqueda en profundidad prioritaria 2.4. Bsqueda en profundidad iterativa . 2.5. Ejemplos . . . . . . . . . . . . . . . . 3. Bsqueda heurstica 3.1. El conocimiento importa . . . . . 3.2. El ptimo est en el camino . . . 3.3. T primero y t despus . . . . . 3.4. El algoritmo A . . . . . . . . . . 3.5. Pero, encontrar el ptimo? . . . 3.5.1. Admisibilidad . . . . . . . 3.5.2. Consistencia . . . . . . . . 3.5.3. Heurstico ms informado 3.6. Mi memoria se acaba . . . . . . . 3.6.1. El algoritmo IDA . . . . 3.6.2. Otras alternativas . . . . . 4. Bsqueda local 4.1. El tamao importa, a veces . . 4.2. Tu s, vosotros no . . . . . . . . 4.2.1. Ejemplo: El problema de 4.3. Un mundo de posibilidades . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . . . la mochila . . . . . . 1
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
2 4.4. Demasiado calor, demasiado fro . . . . . 4.4.1. Ejemplo: El viajante de comercio 4.5. Cada oveja con su pareja . . . . . . . . . 4.5.1. Codicacin . . . . . . . . . . . . 4.5.2. Operadores . . . . . . . . . . . . 4.5.3. Combinacin de individuos . . . . 4.5.4. El algoritmo gentico cannico . . 4.5.5. Cuando usarlos . . . . . . . . . . 4.5.6. Ejemplo: Las N reinas . . . . . . 5. Bsqueda con adversario 5.1. T contra mi o yo contra ti . . . 5.2. Una aproximacin trivial . . . . . 5.3. Seamos un poco ms inteligentes 5.4. Seamos an ms inteligentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 44 46 47 48 49 50 50 51 55 55 56 56 58 63 63 64 65 67 69 71 71
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
6. Satisfaccin de restricciones 6.1. De variables y valores . . . . . . . . . . . . . 6.2. Buscando de manera diferente . . . . . . . . 6.2.1. Bsqueda con backtracking . . . . . 6.2.2. Propagacin de restricciones . . . . . 6.2.3. Combinando bsqueda y propagacin 6.3. Otra vuelta de tuerca . . . . . . . . . . . . . 6.4. Ejemplo: El Sudoku . . . . . . . . . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
II
73
75 75 76 78 78 79 79 79 80 81 81 81 83 84 85 85 85 87 88 89 90
7. Introduccin a la representacin del conocimiento 7.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . 7.2. Esquema de representacin . . . . . . . . . . . . . . 7.3. Propiedades de un esquema de representacin . . . 7.4. Tipos de conocimiento . . . . . . . . . . . . . . . . 7.4.1. Conocimiento Relacional simple . . . . . . . 7.4.2. Conocimiento Heredable . . . . . . . . . . . 7.4.3. Conocimiento Inferible . . . . . . . . . . . . 7.4.4. Conocimiento Procedimental . . . . . . . . . 8. Lgica 8.1. Introduccin . . . . . . 8.2. Lgica proposicional . 8.3. Lgica de predicados . 8.4. Lgica y representacin
. . . . . . del
. . . . . . . . . . . . . . . . . . . . . . . . conocimiento
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
9. Sistemas de reglas de produccin 9.1. Introduccin . . . . . . . . . . . . . . . . . 9.2. Elementos de un sistema de produccin . . 9.3. El motor de inferencias . . . . . . . . . . . 9.3.1. Ciclo de ejecucin . . . . . . . . . . 9.4. Tipos de razonamiento . . . . . . . . . . . 9.4.1. Razonamiento guiado por los datos
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
3 9.4.2. Razonamiento guiado por los objetivos . . . . . . . . . . . . . . . . . . . . . . 9.5. Las reglas como lenguaje de programacin . . . . . . . . . . . . . . . . . . . . . . . . 9.6. Las reglas como parte de aplicaciones generales . . . . . . . . . . . . . . . . . . . . . 10.Representaciones estructuradas 10.1. Introduccin . . . . . . . . . . . 10.2. Redes semnticas . . . . . . . . 10.3. Frames . . . . . . . . . . . . . . 10.3.1. Una sintaxis . . . . . . . 11.Ontologas 11.1. Introduccin . . . . . . . . . 11.2. Necesidad de las ontologas . 11.3. Desarrollo de una ontologa 11.4. Proyectos de ontologas . . . 91 91 93 95 95 95 96 98 103 103 104 105 110
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
III
113
. . . . . . . 115 115 116 117 118 119 120 120 123 123 124 124 125 126 126 126 127 128 129 129 129 129 129 130 130 131 133
12.Introduccin a los SBC 12.1. Introduccin . . . . . . . . . . . . . . . . . . . . 12.2. Caractersticas de los SBC . . . . . . . . . . . . 12.3. Necesidad de los SBC . . . . . . . . . . . . . . . 12.4. Problemas que se pueden resolver mediante SBC 12.5. Problemas de los SBC . . . . . . . . . . . . . . 12.6. reas de aplicacin de los SBC . . . . . . . . . 12.7. Breve historia de los SBC . . . . . . . . . . . .
13.Arquitectura de los SBC 13.1. Introduccin . . . . . . . . . . . . . . . . . . . . . 13.2. Arquitectura de los sistemas basados en reglas . . 13.2.1. Almacenamiento del conocimiento . . . . . 13.2.2. Uso e interpretacin del conocimiento . . . 13.2.3. Almacenamiento del estado del problema . 13.2.4. Justicacin e inspeccin de las soluciones 13.2.5. Aprendizaje . . . . . . . . . . . . . . . . . 13.3. Arquitectura de los sistemas basados en casos . . 13.3.1. Almacenamiento del conocimiento . . . . . 13.3.2. Uso e interpretacin del conocimiento . . . 13.3.3. Almacenamiento del estado del problema . 13.3.4. Justicacin e inspeccin de las soluciones 13.3.5. Aprendizaje . . . . . . . . . . . . . . . . . 13.4. Comunicacin con el entorno y/o el usuario . . . 13.5. Otras Metodologas . . . . . . . . . . . . . . . . . 13.5.1. Redes neuronales . . . . . . . . . . . . . . 13.5.2. Razonamiento basado en modelos . . . . . 13.5.3. Agentes Inteligentes/Sistemas multiagente
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
4 14.Desarrollo de los SBC 14.1. Ingeniera de sistemas basados en el conocimiento . . . . . . . 14.1.1. Modelo en cascada . . . . . . . . . . . . . . . . . . . . 14.1.2. Modelo en espiral . . . . . . . . . . . . . . . . . . . . . 14.1.3. Diferencias de los sistemas basados en el conocimiento 14.1.4. Ciclo de vida de un sistema basado en el conocimiento 14.1.5. Metodologas especializadas . . . . . . . . . . . . . . . 14.2. Una Metodologa sencilla para el desarrollo de SBC . . . . . . 14.2.1. Identicacin . . . . . . . . . . . . . . . . . . . . . . . 14.2.2. Conceptualizacin . . . . . . . . . . . . . . . . . . . . . 14.2.3. Formalizacin . . . . . . . . . . . . . . . . . . . . . . . 14.2.4. Implementacin . . . . . . . . . . . . . . . . . . . . . . 14.2.5. Prueba . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.Resolucin de problemas en los SBC 15.1. Clasicacin de los SBC . . . . . . . 15.2. Mtodos de resolucin de problemas . 15.2.1. Clasicacin Heurstica . . . . 15.2.2. Resolucin Constructiva . . . 135 135 135 136 137 138 139 140 140 141 142 142 142 143 143 145 145 150
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
16.Razonamiento aproximado e incertidumbre 155 16.1. Incertidumbre y falta de informacin . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 17.Modelo Probabilista 17.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.2. Teora de probabilidades . . . . . . . . . . . . . . . . . . . . 17.3. Inferencia probabilstica . . . . . . . . . . . . . . . . . . . . 17.3.1. Probabilidades condicionadas y reglas de produccin 17.4. Independencia probabilstica y la regla de Bayes . . . . . . . 17.5. Redes Bayesianas . . . . . . . . . . . . . . . . . . . . . . . . 17.6. Inferencia probabilstica mediante redes bayesianas . . . . . 17.6.1. Inferencia por enumeracin . . . . . . . . . . . . . . . 17.6.2. Algoritmo de eliminacin de variables . . . . . . . . . 18.Modelo Posibilista 18.1. Introduccin . . . . . . . . . . . . . . 18.2. Conjuntos difusos/Lgica difusa . . . 18.3. Conectivas lgicas en lgica difusa . . 18.4. Condiciones difusas . . . . . . . . . . 18.5. Inferencia difusa con datos precisos . 18.5.1. Modelo de inferencia difusa de 157 157 157 158 160 160 161 163 163 164 169 169 170 171 174 178 178
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mamdani
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
IV
183
. . . . . 185 185 186 187 188 189
19.Tratamiento del Lenguaje Natural 19.1. Introduccin. El Lenguaje Natural y su tratamiento . 19.2. El problema de la comprensin del Lenguaje Natural 19.3. Niveles de descripcin y tratamiento lingstico . . . 19.3.1. Evolucin de la lingstica computacional . . . 19.3.2. Los niveles de la Descripcin Lingstica. . . .
5 19.4. Aportaciones de la inteligencia articial . . . . . . . . . . . . . . . . . . 19.4.1. Aplicaciones del lenguaje natural . . . . . . . . . . . . . . . . . 19.4.2. Breve historia del Tratamiento del lenguaje natural . . . . . . . 19.4.3. Aplicaciones basadas en Dilogos. . . . . . . . . . . . . . . . . . 19.4.4. Aplicaciones basadas en el tratamiento masivo de la Informacin 19.5. Tcnicas de comprensin del Lenguaje Natural: Su integracin . . . . . 20.El Conocimiento Lxico 20.1. Introduccin . . . . . . . . . . . . . . . . . . . . 20.2. Descripcin de la Informacin y el Conocimiento 20.2.1. La segmentacin de la oracin . . . . . . 20.2.2. El contenido de la informacin lxica . . 20.2.3. Lexicones Computacionales . . . . . . . 20.2.4. Lexicones Frasales . . . . . . . . . . . . 20.2.5. La adquisicin del Conocimiento Lxico . 20.3. Implementaciones de los Diccionarios . . . . . . 20.4. Morfologa . . . . . . . . . . . . . . . . . . . . . 21.La dimensin sintctica 21.1. Introduccin . . . . . . . . . . . . . . . . . . . . 21.2. Las redes de transicin . . . . . . . . . . . . . . 21.3. Los formalismos sintcticos: Las Gramticas . . 21.4. Gramticas de Estructura de Frase . . . . . . . 21.5. Analizadores Bsicos . . . . . . . . . . . . . . . 21.5.1. La tcnica del Anlisis Sintctico . . . . 21.5.2. Las ATNs . . . . . . . . . . . . . . . . . 21.5.3. Los Charts . . . . . . . . . . . . . . . . . 21.6. Los formalismos de Unicacin . . . . . . . . . 21.6.1. Introduccin . . . . . . . . . . . . . . . . 21.6.2. Referencia Histrica . . . . . . . . . . . 21.6.3. El anlisis gramatical como demostracin 21.6.4. Las Gramticas de Clusulas Denidas . . . . . . . . . . . . . . . . . . . . . Textual. . . . . . . . . . . . . . . . . . . . . . . . 190 191 191 192 192 193 195 195 195 196 196 200 201 201 202 203 205 205 205 208 209 211 212 214 216 219 219 222 223 225
. . . . . Lxicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . de un teorema . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
Aprendizaje Automtico
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
233
. . . . . . 235 235 236 236 237 237 239
23.Aprendizaje Automtico 23.1. Introduccin . . . . . . . . . . . . . . . 23.2. Tipos de aprendizaje . . . . . . . . . . 23.3. Aprendizaje Inductivo . . . . . . . . . 23.3.1. Aprendizaje como bsqueda . . 23.3.2. Tipos de aprendizaje inductivo 23.4. rboles de Induccin . . . . . . . . . .
0
Introduccin
Este documento contiene las notas de clase de la asignatura Intelligncia Articial de la ingeniera en informtica de la Facultat dInformtica de Barcelona. El documento cubre todos los temas impartidos en la asignatura salvo el tema de introduccin y esta pensado como complemento a las transparencias utilizadas en las clases. El objetivo es que se lea esta documentacin antes de la clase correspondiente para que se obtenga un mejor aprovechamiento de las clases y se puedan realizar preguntas y dinamizar la clase. En ningn caso se pueden tomar estos apuntes como un substituto de las clases de teora.
Captulo 0. Introduccin
1
Resolucin de problemas 1.1 Qu es un problema?
Una de las principales capacidades de la inteligencia humana es su capacidad para resolver problemas. La habilidad para analizar los elementos esenciales de cada problema, abstrayndolos, el identicar las acciones que son necesarias para resolverlos y el determinar cual es la estrategia ms acertada para atacarlos, son rasgos fundamentales que debe tener cualquier entidad inteligente. Es por eso por lo que la resolucin de problemas es uno de los temas bsicos en inteligencia articial. Podemos denir la resolucin de problemas como el proceso que partiendo de unos datos iniciales y utilizando un conjunto de procedimientos escogidos a priori, es capaz de determinar el conjunto de pasos o elementos que nos llevan a lo que denominaremos una solucin. Esta solucin puede ser, por ejemplo, el conjunto de acciones que nos llevan a cumplir cierta propiedad o como deben combinarse los elementos que forman los datos iniciales para cumplir ciertas restricciones. Evidentemente, existen muchos tipos diferentes de problemas, pero todos ellos tienen elementos comunes que nos permiten clasicarlos y estructurarlos. Por lo tanto, no es descabellada la idea de poder resolverlos de manera automtica, si somos capaces de expresarlos de la manera adecuada. Para que podamos resolver problemas de una manera automatizada es necesario, en primer lugar, que podamos expresar las caractersticas de los problemas de una manera formal y estructurada. Eso nos obligar a encontrar un lenguaje comn que nos permita denir problemas. En segundo lugar, hemos de denir algoritmos que representen estrategias que nos permitan hallar la solucin de esos problemas, que trabajen a partir de ese lenguaje de representacin y que nos garanticen hasta cierta medida que la solucin que buscamos ser hallada. Si abstraemos las caractersticas que describen un problema podemos identicar los siguientes elementos: 1. Un punto de partida, los elementos que denen las caractersticas del problema. 2. Un objetivo a alcanzar, qu queremos obtener con su resolucin. 3. Acciones a nuestra disposicin para resolver el problema, de qu herramientas disponemos para manipular los elementos que describen el problema. 4. Restricciones sobre el objetivo, qu caractersticas debe tener la solucin 5. Elementos denidos por el dominio concreto que son relevantes en el problema, qu conocimiento tenemos en el dominio que nos puede ayudar a resolver el problema de una manera eciente. 5
Escogiendo estos elementos como base de la representacin de un problema podemos llegar a diferentes aproximaciones, algunas generales, otras ms especcas. De entre los tipos de aproximaciones podemos citar: Espacio de estados: Se trata de la aproximacin ms general, un problema se divide en un conjunto de pasos de resolucin que enlazan los elementos iniciales con los elementos que describen la solucin, donde a cada paso podemos ver como se transforma el problema. Reduccin a subproblemas: En esta aproximacin suponemos que podemos descomponer el problema global en problemas ms pequeos de manera recursiva hasta llegar a problemas simples. Es necesario disponer como parte del conocimiento del problema de la forma de realizar esta descomposicin. Satisfaccin de restricciones: Esta aproximacin es especca para problemas que se puedan plantear como un conjunto de variables a las que se han de asignar valores cumpliendo ciertas restricciones. Juegos: Tambin es una aproximacin especca, en la que el problema se plantea como la competicin entre dos o mas agentes La eleccin de la forma de representacin depender de las caractersticas del problema, en ocasiones una metodologa especializada puede ser ms eciente que una general.
Igual que con la eleccin de los elementos que forman parte del estado, tampoco existen unas directrices que nos permitan decidir, de manera general, qu operadores sern necesarios para resolver el problema, cuantos sern necesarios o que nivel de granularidad han de tener (como de diferente es el estado transformado respecto al original). Se puede dar el mismo consejo que con los estados, pocos operadores pueden hacer que nuestro problema sea irresoluble o que la solucin no nos sirva en el problema real, demasiados operadores pueden hacer que el coste de la resolucin sea prohibitivo. Los estados y su relacin de accesibilidad conforman lo que se denomina el espacio de estados. ste representa todos los caminos que hay entre todos los estados posibles de un problema. Podra asimilarse con un mapa de carreteras de un problema, la solucin de nuestro problema esta dentro de ese mapa, solo nos falta hallar el camino adecuado (ver gura 1.1). El ltimo elemento que nos queda por denir es la solucin. La deniremos de dos maneras, como la secuencia de pasos que llevan del estado inicial al nal (secuencia de operadores) o el estado nal del problema. Existen problemas en los que la secuencia de operadores es el objetivo de la solucin, en stos, por lo general, sabemos como es la solucin, pero no sabemos como construirla y existen tambin problemas en los que queremos saber si es posible combinar los elementos del problema cumpliendo ciertas restricciones, pero la forma de averiguarlo no es importante. Tambin podremos catalogar los diferentes tipos problema segn el tipo de solucin que busquemos, dependiendo de si nos basta con una cualquiera, queremos la mejor o buscamos todas las soluciones posibles. Evidentemente el coste computacional de cada uno de estos tipos es muy diferente. En el caso de plantearnos sobre cuantos recursos gastamos para obtener una solucin, deberemos introducir otros elementos en la representacin del problema. Deniremos el coste de una solucin como la suma de los costes individuales de la aplicacin de los operadores a los estados, esto quiere decir que cada operador tendr tambin asociado un coste. Vamos a ver a continuacin dos ejemplos de como denir problemas como espacio de estados:
Ejemplo 1.1 El ocho puzzle es un problema clsico que consiste en un tablero de 9 posiciones dispuestas como una matriz de 33 en el que hay 8 posiciones ocupadas por chas numeradas del 1 al 8 y una posicin vaca. Las chas se pueden mover ocupando la posicin vaca, si la tienen adyacente. El objetivo es partir de una disposicin cualquiera de las chas, para obtener una disposicin de stas en un orden especco. Tenemos una representacin del problema en la siguiente gura:
1 4 7
2 5 8
3 6
La denicin de los elementos del problema para plantearlo en el espacio de estados podra ser la siguiente: Espacio de estados: Conguraciones de 8 chas en el tablero Estado inicial: Cualquier conguracin Estado nal: Fichas en un orden especco Operadores: Mover el hueco Condiciones: El movimiento est dentro del tablero Transformacin: Intercambio entre el hueco y la cha en la posicin del movimiento Solucin: Que movimientos hay que hacer para llegar al estado nal, posiblemente nos interesa la solucin con el menor nmero de pasos En esta denicin hemos escogido como operador mover el hueco, evidentemente, en el problema real lo que se mueven son las chas, pero elegir el movimiento de una cha como operador nos habra dado 8 posibles aplicaciones con 4 direcciones posibles para cada una. Al elegir el mover hueco como operador tenemos una nica aplicacin con 4 direcciones posibles. Este tipo de elecciones sobre como representar el problema pueden hacer que sea computacionalmente ms o menos costoso de resolver, ya que estamos variando la forma y el tamao del espacio de estados. Ejemplo 1.2 El problema de las N reinas es tambin un problema clsico, en este caso el problema se trata de colocar N reinas en un tablero de ajedrez de NN de manera que no se maten entre si. En este problema no nos interesa la manera de hallar la solucin, sino el estado nal. En la gura tenemos representada la solucin para un problema con dimensin 4:
La denicin de los elementos del problema para plantearlo en el espacio de estados podra ser la siguiente:
Espacio de estados: Conguraciones de 0 a n reinas en el tablero con solo una por la y columna Estado inicial: Conguracin sin reinas en el tablero Estado nal: Conguracin en la que ninguna reina se mata entre si Operadores: Colocar una reina en una la y columna Condiciones: La reina no es matada por ninguna otra ya colocada Transformacin: Colocar una reina ms en el tablero en una la y columna determinada Solucin: Una solucin, pero no nos importan los pasos Tambin podramos haber hecho otras elecciones de representacin como por ejemplo que el estado inicial tuviera las N reinas colocadas, o que el operador permitiera mover las reinas a una celda adyacente. Todas estas alternativas supondran un coste de solucin ms elevado. Un elemento que ser importante a la hora de analizar los problemas que vamos a solucionar, y que nos permitir tomar decisiones, es el tamao del espacio de bsqueda y su conectividad. Este tamao inuir sobre el tipo de solucin que podemos esperar (si el tamao es demasiado grande, encontrar la solucin ptima puede ser irrealizable), el tipo de algoritmo que es ms adecuado (habr algoritmos ms aptos para soluciones que estn ms lejos del estado inicial) y cul ser el coste computacional que implicar la resolucin del problema. Es esencial entonces, a la hora de plantear un problema, estimar cual es el nmero de estados que contiene. Por ejemplo, en el caso del ocho puzzle tenemos tantas combinaciones como posibles ordenes podemos hacer de las 8 piezas mas el hueco, esto signica 9! estados posibles (362880 estados). Probablemente no tendremos que recorrer todos los estados posibles del problema, pero nos puede dar una idea de si el problema ser ms o menos difcil de resolver1 . Otro elemento a considerar es la conectividad entre los estados, que se puede calcular a partir del factor de ramicacin de los operadores que podemos utilizar. No es lo mismo recorrer un espacio de estados en el que de un estado podemos movernos a unos pocos estados sucesores, que un espacio de estados en los que cada estado esta conectado con casi todos los estados posibles. Esta es la razn por la que elegir operadores con un factor de ramicacin no muy grande es importante. Pero debemos tener en cuenta otra cosa, un factor de ramicacin pequeo puede hacer que el camino hasta la solucin sea ms largo. Como siempre, hemos de buscar el compromiso, tener mucha conectividad es malo, pero muy poca tambin puede ser malo. En el caso del ocho puzzle, el factor de ramicacin es 4 en el peor de los casos, pero en media podemos considerar que estar alrededor de 2.
?
Puedes tomarte unos minutos en pensar otros problemas que puedas denir segn el paradigma del espacio de estados. Debers jarte en que los problemas representables de este modo se pueden reducir a la bsqueda de un camino.
1 Se sola comentar hace unos aos que problemas que tengan menos de 232 estados para los que solo nos interesa saber si existe una estado solucin eran la frontera de los problemas sencillos y que se pueden resolver por fuerza bruta simplemente enumerndolos todos, con la capacidad de clculo actual probablemente ahora ese nmero mnimo de estados sea algo mayor.
10
Algoritmo 1.1 Esquema de algoritmo de bsqueda en espacio de estados Funcin: Busqueda en espacio de estados() Datos: El estado inicial Resultado: Una solution Seleccionar el primer estado como el estado actual mientras estado actua = estado nal hacer Generar y guardar sucesores del estado actual (expansin) Escoger el siguiente estado entre los pendientes (seleccin) n
1.3 Algoritmos de bsqueda en el espacio de estados Algoritmo 1.2 Esquema general de bsqueda Algoritmo: Busqueda General Est_abiertos.insertar(Estado inicial) Actual Est_abiertos.primero() mientras no es_nal?(Actual) y no Est_abiertos.vacia?() hacer Est_abiertos.borrar_primero() Est_cerrados.insertar(Actual) Hijos generar_sucesores(Actual) Hijos tratar_repetidos(Hijos, Est_cerrados, Est_abiertos) Est_abiertos.insertar(Hijos) Actual Est_abiertos.primero() n
11
cerrados. Merecer la pena mantenerla si el nmero de nodos diferentes es pequeo respecto al nmero de caminos, pero puede ser prohibitivo para espacios de bsqueda muy grandes. En el algoritmo 1.2 tenemos un algoritmo algo ms detallado que nos va a servir como esquema general para la mayora de los algoritmos que iremos viendo. Variando la estructura de nodos abiertos variaremos el comportamiento del algoritmo (orden de visita de los nodos), las funciones primero, borrar_primero e insertar seran diferentes segn la estructura utilizada. La funcin generar_sucesores seguir el orden de generacin de sucesores denido en el problema. Este puede ser arbitrario o se puede hacer alguna ordenacin usando conocimiento especco del problema. El tratamiento de repetidos depender de cmo se visiten los nodos, en funcin de la estrategia de visitas puede ser innecesario. Para poder clasicar y analizar los algoritmos que vamos a tratar en los siguientes captulos, escogeremos unas propiedades que nos permitirn caracterizarlos. Estas propiedades son: Completitud: Analizaremos si un algoritmo es completo en el sentido de si tenemos la garanta de que hallar una solucin de existir esta. Si no lo es, existe la posibilidad de que el algoritmo no acabe o que sea incapaz de encontrarla. Complejidad temporal: Analizaremos el coste temporal de la bsqueda en funcin del tamao del problema. Generalmente ser una cota que es funcin del factor de ramicacin y la profundidad a la que se encuentra la solucin. Complejidad espacial: Analizaremos el espacio requerido para almacenar los nodos pendientes de explorar. Generalmente ser una cota que es funcin del factor de ramicacin y la profundidad a la que se encuentra la solucin. Tambin se puede tener en cuenta el espacio para almacenar los nodos ya explorados si es necesario para el algoritmo Optimalidad: Analizaremos si el algoritmo es capaz de encontrar la mejor solucin segn algn criterio de preferencia o coste. Atendiendo a estos criterios podemos clasicar los algoritmos principales que estudiaremos en: Algoritmos de bsqueda no informada: Estos algoritmos no tienen en cuenta el coste de la solucin durante la bsqueda. Su funcionamiento es sistemtico, siguen un orden de visitas de nodos jo, establecido por la estructura del espacio de bsqueda. Los principales ejemplos de estos algoritmos son el de anchura prioritaria, el de profundidad prioritaria y el de profundidad iterativa.
12
Captulo 1. Resolucin de problemas Algoritmos de bsqueda heurstica y bsqueda local: Estos algoritmos utilizan una estimacin del coste o de la calidad de la solucin para guiar la bsqueda, de manera que se basan en algn criterio heurstico dependiente del problema. Estos algoritmos no son sistemticos, de manera que el orden de exploracin no lo determina la estructura del espacio de bsqueda sino el criterio heurstico. Algunos de ellos tampoco son exhaustivos y basan su menor complejidad computacional en ignorar parte del espacio de bsqueda. Existen bastantes algoritmos de este tipo con funcionamientos muy diferentes, no siempre garantizan el encontrar la solucin ptima, ni tan siquiera el hallar una solucin. Los principales ejemplos de estos algoritmos son A , IDA , Branch & Bound y Hill-climbing. Desarrollaremos estos algoritmos en los captulos siguientes.
STOP
Este es un buen momento para repasar los diferentes algoritmos de recorrido de rboles y grafos y de bsqueda de caminos en grafos que se te han explicado en otras asignaturas. A pesar de que traten con estructuras nitas los principios bsicos son muy parecidos.
2
Bsqueda no informada 2.1 Bsqueda independiente del problema
Los algoritmos de bsqueda no informada (tambin conocidos como algoritmos de bsqueda ciega) no dependen de informacin propia del problema a la hora de resolverlo. Esto quiere decir que son algoritmos generales y por lo tanto se pueden aplicar en cualquier circunstancia. Estos algoritmos se basan en la estructura del espacio de estados y determinan estrategias sistemticas para su exploracin. Es decir, siguen una estrategia ja a la hora de visitar los nodos que representan los estados del problema. Se trata tambin de algoritmos exhaustivos, de manera que pueden acabar recorriendo todos los nodos del problema para hallar la solucin. Existen bsicamente dos polticas de recorrido de un espacio de bsqueda, en anchura y en profundidad. Todos los algoritmos que se explicarn a continuacin se basan en una de las dos. Al ser algoritmos exhaustivos y sistemticos su coste puede ser prohibitivo para la mayora de los problemas reales, por lo tanto solo ser aplicables en problemas pequeos. Su ventaja es que no nos hace falta obtener ningn conocimiento adicional sobre el problema, por lo que siempre son aplicables.
14
Figura 2.1: Tratamiento de repetidos en bsqueda en anchura O(rp ). Este coste hace poco prctico a este algoritmo para problemas que no sean de tamao pequeo. Optimalidad: La solucin obtenida es ptima respecto al nmero de pasos desde la raz, si los operadores de bsqueda tienen coste uniforme,el coste de la solucin sera el ptimo. Respecto al tratamiento de nodos repetidos, si nos jamos en la gura 2.1 podemos ver los diferentes casos con los que nos encontramos. El nodo de color negro sera el nodo generado actual, los nodos en cuadrcula son nodos cerrados y los nodos rayados son nodos abiertos. Si el nodo generado actual est repetido en niveles superiores (ms cerca de la raz), su coste ser peor ya que su camino desde la raz es ms largo, si est al mismo nivel, su coste ser el mismo. Esto quiere decir que para cualquier nodo repetido, su coste ser peor o igual que algn nodo anterior visitado o no, de manera que lo podremos descartar, ya que o lo hemos expandido ya o lo haremos prximamente. El coste espacial de guardar los nodos cerrados para el tratamiento de repetidos es tambin O(rp ). No hacer el tratamiento de nodos repetidos no supone ninguna ganancia, ya que tanto la cola de nodos abiertos como la de nodos repetidos crecen exponencialmente.
2.3 Bsqueda en profundidad prioritaria Algoritmo 2.1 Algoritmo de profundidad limitada Procedimiento: Busqueda en profundidad limitada (limite: entero) Est_abiertos.insertar(Estado inicial) Actual Est_abiertos.primero() mientras no es_nal?(Actual) y no Est_abiertos.vacia?() hacer Est_abiertos.borrar_primero() Est_cerrados.insertar(Actual) si profundidad(Actual) limite entonces Hijos generar_sucesores (Actual) Hijos tratar_repetidos (Hijos, Est_cerrados, Est_abiertos) Est_abiertos.insertar(Hijos) n Actual Est_abiertos.primero() n
15
Completitud: El algoritmo encuentra una solucin si se impone una profundidad lmite y existe una solucin dentro de ese lmite. Complejidad temporal: Si tomamos como medida del coste el nmero de nodos explorados, el coste es exponencial respecto al factor de ramicacin y la profundidad del lmite de exploracin O(rp ). Complejidad espacial: El coste es lineal respecto al factor de ramicacin y el lmite de profundidad O(rp). Si hacemos una implementacin recursiva del algoritmo el coste es O(p), ya que no nos hace falta generar todos los sucesores de un nodo, pudindolos tratar uno a uno. Si tratamos los nodos repetidos el coste espacial es igual que en anchura ya que tendremos que guardar todos los nodos cerrados. Optimalidad: No se garantiza que la solucin sea ptima, la solucin que se retornar ser la primera en el orden de exploracin. Las implementaciones recursivas de los algoritmos permiten por lo general un gran ahorro de espacio. En este caso la bsqueda en profundidad se puede realizar recursivamente de manera natural (ver algoritmo 2.2). La recursividad permite que las alternativas queden almacenadas en la pila de ejecucin como puntos de continuacin del algoritmo sin necesidad de almacenar ninguna informacin. En este caso el ahorro de espacio es proporcional al factor de ramicacin que en la prctica en problemas difciles no es despreciable. Lo nico que perdemos es la capacidad de buscar repetidos en los nodos pendientes que tenemos en el camino recorrido, pero habitualmente la limitacin de memoria es una restriccin bastante fuerte que impide solucionar problemas con longitudes de camino muy largas. Respecto al tratamiento de nodos repetidos, si nos jamos en la gura 2.2 podemos ver los diferentes casos con los que nos encontramos. El nodo de color negro sera el nodo generado actual, los nodos en cuadrcula son nodos cerrados y los nodos rayados son nodos abiertos. Si el nodo generado actual est repetido en niveles superiores (ms cerca de la raz), su coste ser peor ya que su camino desde la raz es ms largo, si est al mismo nivel, su coste ser el mismo. En estos dos casos podemos olvidarnos de este nodo. En el caso de que el repetido corresponda a un nodo de profundidad superior, signica que hemos llegado al mismo estado por un camino ms corto, de manera que deberemos mantenerlo y continuar su exploracin, ya que nos permitir llegar a mayor profundidad que antes.
Funcin: Busqueda en profundidad limitada recursiva (actual:nodo, limite: entero) si profundidad(Actual) limite entonces para todo nodo generar_sucesores (Actual) hacer si es_nal?(nodo) entonces retorna (nodo) sino resultado Busqueda en profundidad limitada recursiva(nodo,limite) si es_nal?(resultado) entonces retorna (resultado) n n n sino retorna () n
En el caso de la bsqueda en profundidad, el tratamiento de nodos repetidos no es crucial ya que al tener un lmite en profundidad los ciclos no llevan a caminos innitos. No obstante, este caso se puede tratar comprobando los nodos en el camino actual ya que est completo en la estructura de nodos abiertos. Adems, no tratando repetidos mantenemos el coste espacial lineal, lo cual es una gran ventaja. El evitar tener que tratar repetidos y tener un coste espacial lineal supone una caracterstica diferenciadora de hace muy ventajosa a la bsqueda en profundidad. Este algoritmo ser capaz de obtener soluciones que se encuentren a gran profundidad. En un problema concreto, el algoritmo de bsqueda en anchura tendr una estructura de nodos abiertos de tamao O(rp ), lo que agotar rpidamente la memoria impidiendo continuar la bsqueda, pero solo habiendo alcanzado una profundidad de camino de p. En cambio el algoritmo en profundidad solo tendr O(rp) nodos abiertos al llegar a esa misma profundidad. Esto quiere decir que en problemas difciles la estrategia en profundidad ser la nica capaz de hallar una solucin con un espacio de memoria limitado.
2.4 Bsqueda en profundidad iterativa Algoritmo 2.3 Algoritmo de profundidad iterativa (Iterative Deepening) Procedimiento: Busqueda en profundidad iterativa (limite: entero) prof 1 Actual Estado inicial mientras no es_nal?(Actual) y prof<limite hacer Est_abiertos.inicializar() Est_abiertos.insertar(Estado inicial) Actual Est_abiertos.primero() mientras no es_nal?(Actual) y no Est_abiertos.vacia?() hacer Est_abiertos.borrar_primero() Est_cerrados.insertar(Actual) si profundidad(Actual) prof entonces Hijos generar_sucesores (Actual) Hijos tratar_repetidos (Hijos, Est_cerrados, Est_abiertos) Est_abiertos.insertar(Hijos) n Actual Est_abiertos.primero() n prof prof+1 n
17
Este algoritmo intenta obtener las propiedades ventajosas de la bsqueda en profundidad y en anchura combinadas, es decir, un coste espacial lineal y asegurar que la solucin ser ptima respecto a la longitud del camino. Para obtener esto lo que se hace es repetir sucesivamente el algoritmo de profundidad limitada, aumentando a cada iteracin la profundidad mxima a la que le permitimos llegar. Este algoritmo obtendra el mismo efecto que el recorrido en anchura en cada iteracin, ya que a cada paso recorremos un nivel ms del espacio de bsqueda. El coste espacial ser lineal ya que cada iteracin es un recorrido en profundidad. Para que el algoritmo acabe en el caso de que no haya solucin se puede imponer un lmite mximo de profundidad en la bsqueda. Aparentemente podra parecer que este algoritmo es ms costoso que los anteriores al tener que repetir en cada iteracin la bsqueda anterior, pero si pensamos en el nmero de nodos nuevos que recorremos a cada iteracin, estos son siempre tantos como todos los que hemos recorrido en todas las iteraciones anteriores, por lo que las repeticiones suponen un factor constante respecto a los que recorreramos haciendo solo la ltima iteracin. El algoritmo de profundidad iterativa se puede ver en el algoritmo 2.3. Si nos jamos en las propiedades que hemos escogido para clasicar los algoritmos: Completitud: El algoritmo siempre encontrar la solucin de esxistir. Complejidad temporal: La misma que la bsqueda en anchura. El regenerar el rbol en cada iteracin solo aade un factor constante a la funcin de coste O(rp ). Complejidad espacial: Igual que en la bsqueda en profundidad (O(rp )). Optimalidad: La solucin es ptima igual que en la bsqueda en anchura. Igual que en el caso del algoritmo en profundidad, el tratar repetidos acaba con todas las ventajas espaciales del algoritmo, por lo que es aconsejable no hacerlo. Como mximo se puede utilizar la estructura de nodos abiertos para detectar bucles en el camino actual.
18
Si el algoritmo en profundidad limitada es capaz de encontrar soluciones a mayor profundidad, este algoritmo adems nos garantizar que la solucin ser ptima. Por lo tanto este es el algoritmo ms ventajoso de los tres.
2.5 Ejemplos
En esta seccin vamos a ver ejemplos de ejecucin de los algoritmos vistos en estos captulos. En la gura 2.3 podemos ver el grafo que vamos a utilizar en los siguientes ejemplos. Este grafo tiene como nodo inicial el 1 y como nodo nal el 8, todos los caminos son dirigidos y tienen el mismo coste. Utilizaremos los algoritmos de bsqueda ciega para encontrar un camino entre estos dos nodos. Supondremos que hacemos un tratamiento de los nodos repetidos durante la ejecucin del algoritmo. Hay que tener en cuenta tambin que para poder recuperar el camino, los nodos deben tener un enlace al padre que los ha generado. Bsqueda en anchura 1. Este algoritmo comenzara encolando el nodo inicial (nodo 1). 2. Los nodos sucesores del primer nodo son los nodos 2 y 3, que pasaran a ser encolados 3. El siguiente nodo extrado de la cola sera el 2, que tiene como sucesores el 4 y el 6. 4. El siguiente nodo extrado de la cola sera el 3, que tiene como sucesores el 4, el 5 y el 7. Como el 4 est repetido no se encolara al ser de la misma profundidad que el nodo repetido. 5. El siguiente nodo extrado de la cola sera el 4, que tiene como sucesor el 5. Como el 4 est repetido no se encolara al tener profundidad mayor que el nodo repetido. 6. El siguiente nodo extrado de la cola sera el 6, que tiene como sucesores el 7 y el 8. Como el 7 est repetido no se encolara al tener profundidad mayor que el nodo repetido. 7. El siguiente nodo extrado de la cola sera el 5, que tiene como sucesores el 6 y el 7. Como los dos nodos corresponden a nodos repetidos con profundidad menor, no se encolaran. 8. El siguiente nodo extrado de la cola sera el 7, que tiene como sucesor el 8. Como el 8 est repetido no se encolara al tener la misma profundidad que el nodo repetido. 9. El siguiente nodo extrado de la cola sera el 8 que es el nodo solucin y por tanto acabara la ejecucin.
2.5 Ejemplos
19
En la gura 2.4 se puede ver el rbol de bsqueda que se genera. En el caso de los nodos cerrados necesitamos una estructura adicional para controlar los nodos repetidos. resultado) Bsqueda en profundidad 1. Este algoritmo comenzara empilando el nodo inicial (nodo 1). 2. Los nodos sucesores del primer nodo son los nodos 2 y 3, que pasaran a ser empilados 3. El siguiente nodo extrado de la pila sera el 2, que tiene como sucesores el 4 y el 6. 4. El siguiente nodo extrado de la pila sera el 4, que tiene como sucesor el 5. 5. El siguiente nodo extrado de la pila sera el 5, que tiene como sucesores el 6 y el 7. Como el nodo 6 est en la pila en con nivel superior descartaramos este nodo. 6. El siguiente nodo extrado de la pila sera el 7, que tiene como sucesor el 8. 7. El siguiente nodo extrado de la pila sera el 8 que es el nodo solucin y por tanto acabara la ejecucin. En la gura 2.5 se puede ver el rbol de bsqueda que se genera. Fijaos que en este caso el camino es ms largo que el encontrado con el algoritmo anterior. De hecho es el primer camino solucin que se encuentra en la exploracin segn la ordenacin que se hace de los nodos. Para el control de repetidos, si se quiere ahorrar espacio, pueden solo tenerse en cuenta los nodos que hay en la pila como se ha hecho en el ejemplo, esto evitar que podamos entrar en bucle y que tengamos que tener una estructura para los nodos cerrados. Bsqueda en profundidad iterativa 1. Primera iteracin (profundidad 1) 1.1 Se comenzara empilando el nodo inicial (nodo 1). 1.2 Al extraer este nodo de la pila habramos visitado todos los caminos de profundidad 1 y con eso acabaramos la iteracin. 2. Segunda Iteracin (profundidad 2) 2.1 Se comenzara empilando el nodo inicial (nodo 1). 2.2 Los nodos sucesores del primer nodo son los nodos 2 y 3, que pasaran a ser empilados. 2.3 El siguiente nodo extrado de la pila sera el 2, los nodos sucesores estaran a mayor profundidad que el lmite actual, no los empilaramos. 2.3 El siguiente nodo extrado de la pila sera el 3, los nodos sucesores estaran a mayor profundidad que el lmite actual, no los empilaramos. Al extraer este nodo de la pila habramos visitado todos los caminos de profundidad 2 y con eso acabaramos la iteracin. 3. Tercera Iteracin (profundidad 3) 3.1 Se comenzara empilando el nodo inicial (nodo 1). 3.2 Los nodos sucesores del primer nodo son los nodos 2 y 3, que pasaran a ser empilados. 3.3 El siguiente nodo extrado de la pila sera el 2, que tiene como sucesores el 4 y el 6. 3.4 El siguiente nodo extrado de la pila sera el 4, los nodos sucesores estaran a mayor profundidad que el lmite actual, no los empilaramos.
20
Captulo 2. Bsqueda no informada 3.5 El siguiente nodo extrado de la pila sera el 6, los nodos sucesores estaran a mayor profundidad que el lmite actual, no los empilaramos. 3.6 El siguiente nodo extrado de la pila sera el 3, que tiene como sucesores el 4, el 5 y el 7. 3.7 El siguiente nodo extrado de la pila sera el 4, los nodos sucesores estaran a mayor profundidad que el lmite actual, no los empilaramos. 3.8 El siguiente nodo extrado de la pila sera el 5, los nodos sucesores estaran a mayor profundidad que el lmite actual, no los empilaramos. 3.4 El siguiente nodo extrado de la pila sera el 7, los nodos sucesores estaran a mayor profundidad que el lmite actual, no los empilaramos. Al extraer este nodo de la pila habramos visitado todos los caminos de profundidad 3 y con eso acabaramos la iteracin. 4. Cuarta Iteracin (profundidad 4) 4.1 Se comenzara empilando el nodo inicial (nodo 1). 4.2 Los nodos sucesores del primer nodo son los nodos 2 y 3, que pasaran a ser empilados. 4.3 El siguiente nodo extrado de la pila sera el 2, que tiene como sucesores el 4 y el 6. 4.4 El siguiente nodo extrado de la pila sera el 4, que tiene como sucesor el 5. 4.5 El siguiente nodo extrado de la pila sera el 5, los nodos sucesores estaran a mayor profundidad que el lmite actual, no los empilaramos. 4.6 El siguiente nodo extrado de la pila sera el 6, que tiene como sucesores el 7 y el 8. 4.7 El siguiente nodo extrado de la pila sera el 7, los nodos sucesores estaran a mayor profundidad que el lmite actual, no los empilaramos. 4.8 El siguiente nodo extrado de la pila sera el 8 que es el nodo solucin y por tanto acabara la ejecucin. En la gura 2.6 se puede ver el rbol de bsqueda que se genera. En este caso encontramos el camino mas corto, ya que este algoritmo explora los caminos en orden de longitud como la bsqueda en anchura. Para mantener la ganancia en espacio en este caso no se han guardado los nodos cerraros, es por ello que no se ha tratado en nodo 4 en el paso 3.7 como repetido.
2.5 Ejemplos
21
22
1 Primera iteracin
2 Segunda iteracin 1
4 Tercera iteracin 1
3
Bsqueda heurstica 3.1 El conocimiento importa
Es evidente que los algoritmos de bsqueda no informada sern incapaces de encontrar soluciones en problemas en los que el tamao del espacio de bsqueda sea grande. Todos estos algoritmos tienen un coste temporal que es una funcin exponencial del tamao de la entrada, por lo tanto el tiempo para encontrar la mejor solucin a un problema no es asumible en problemas reales. La manera de conseguir reducir este tiempo de bsqueda a algo ms razonable es intentar hacer intervenir conocimiento sobre el problema que queremos resolver dentro del funcionamiento del algoritmo de bsqueda. La dicultad que tendremos es que este conocimiento ser particular para cada problema, por lo tanto no ser exportable a otros. Perderemos en generalidad, pero podremos ganar en eciencia temporal. En este captulo nos centraremos en los algoritmos que buscan la solucin ptima. Este objetivo solo es abordable hasta cierto tamao de problemas, existir todo un conjunto de problemas en los que la bsqueda del ptimo ser imposible por el tamao de su espacio de bsqueda o por la imposibilidad de encontrar informacin que ayude en la bsqueda.
24
Algoritmo 3.1 Algoritmo Greedy Best First Algoritmo: Greedy Best First Est_abiertos.insertar(Estado inicial) Actual Est_abiertos.primero() mientras no es_nal?(Actual) y no Est_abiertos.vaca?() hacer Est_abiertos.borrar_primero() Est_cerrados.insertar(Actual) hijos generar_sucesores (Actual) hijos tratar_repetidos (Hijos, Est_cerrados, Est_abiertos) Est_abiertos.insertar(Hijos) Actual Est_abiertos.primero() n
los operadores aplicados desde el estado inicial hasta el nodo actual. En segundo lugar, tendremos el coste ms difcil de determinar, el del camino que nos queda por recorrer hasta el estado nal. Dado que lo desconocemos, tendremos que utilizar el conocimiento del que disponemos del problema para obtener una aproximacin. Evidentemente, la calidad de este conocimiento que nos permite predecir el coste futuro, har ms o menos exitosa nuestra bsqueda. Si nuestro conocimiento fuera perfecto, podramos dirigirnos rpidamente hacia el objetivo descartando todos los caminos de mayor coste, en este extremo podramos encontrar nuestra solucin en tiempo lineal. En el otro extremo, si estuviramos en la total ignorancia, tendramos que explorar muchos caminos antes de hallar la solucin ptima, todos en el peor caso. Esta ltima situacin es en la que se encuentra la bsqueda no informada y desgraciadamente la primera situacin es rara. Quedar pues, como labor fundamental en cada problema, obtener una funcin que nos haga el clculo del coste futuro desde un estado al estado solucin. Cuanto ms podamos ajustarlo al coste real, mejor funcionarn los algoritmos que veremos a continuacin.
3.4 El algoritmo A
25
3.4 El algoritmo A
Dado que nuestro objetivo no es solo llegar lo mas rpidamente a la solucin, sino encontrar la de menor coste tendremos que tener en cuenta el coste de todo el camino y no solo el camino por recorrer. Para poder introducir el siguiente algoritmo y establecer sus propiedades tenemos primero que dar una serie de deniciones. Denominaremos el coste de un arco entre dos nodos ni y nj al coste del operador que nos permite pasar de un nodo al otro, y lo denotaremos como c(ni , nj ). Este coste siempre ser positivo. Denominaremos coste de un camino entre dos nodos ni y nj a la suma de los costes de todos los arcos que llevan desde un nodo al otro y lo denotaremos como
j 1
C (ni , nj ) =
x=i
c(nx , nx+1 )
Denominaremos coste del camino mnimo entre dos nodos ni y nj al camino de menor coste de entre los que llevan desde un nodo al otro y lo denotaremos como
l
K (ni , nj ) = m n Ck (ni , nj )
k=1
Si nj es un nodo terminal, llamaremos h (ni ) a K (ni , nj ), es decir, el coste del camino mnimo desde un estado cualquiera a un estado solucin. Si ni es un nodo inicial, llamaremos g (nj ) a K (ni , nj ), es decir, el coste del camino mnimo desde el estado inicial a un estado cualquiera. Esto nos permite denir el coste del camino mnimo que pasa por cualquier nodo como una combinacin del coste del camino mnimo desde el nodo inicial al nodo mas el coste del nodo hasta el nodo nal: f (n) = g (n) + h (n) Dado que desde un nodo especco n el valor de h (n) es desconocido, lo substituiremos por una funcin que nos lo aproximar, a esta funcin la denotaremos h(n) y le daremos el nombre de funcin heurstica. Esta funcin tendr siempre un valor mayor o igual que cero. Denominaremos g (n) al coste del camino desde el nodo inicial al nodo n, evidentemente ese coste es conocido ya que ese camino lo hemos recorrido en nuestra exploracin. De esta manera tendremos una estimacin del coste del camino mnimo que pasa por cierto nodo: f (n) = g (n) + h(n) Ser este valor el que utilicemos para decidir en nuestro algoritmo de bsqueda cul es el siguiente nodo a explorar de entre todos los nodos abiertos disponibles. Para realizar esa bsqueda utilizaremos el algoritmo que denominaremos A (algoritmo 3.2). Como se observar, el algoritmo es el mismo que el primero el mejor avaricioso, lo nico que cambia es que ahora la ordenacin de los nodos se realiza utilizando el valor de f . Por convencin, consideraremos como criterio de ordenacin, que a igual valor de f los nodos con h ms pequea se explorarn antes (simplemente porque si la h es ms pequea es que son nodos mas cerca de la solucin), a igual h se consideraran en el orden en el que se introdujeron en la cola. Nunca est de ms el remarcar que el algoritmo solo acaba cuando se extrae una solucin de la cola. Es posible que en cierto momento ya haya en la estructura de nodos abiertos nodos solucin, pero hasta que no se hayan explorado los nodos por delante de ellos, no podemos asegurar que realmente sean soluciones buenas. Siempre hay que tener en mente que los nodos estn ordenados por el coste estimado del camino total, si la estimacin es menor es que podran pertenecer a un camino con una solucin mejor.
Algoritmo: A* Est_abiertos.insertar(Estado inicial) Actual Est_abiertos.primero() mientras no es_nal?(Actual) y no Est_abiertos.vaca?() hacer Est_abiertos.borrar_primero() Est_cerrados.insertar(Actual) hijos generar_sucesores (Actual) hijos tratar_repetidos (Hijos, Est_cerrados, Est_abiertos) Est_abiertos.insertar(Hijos) Actual Est_abiertos.primero() n
Hay que considerar que el coste temporal de este algoritmo es tambin O(rp ) en el caso peor. Si por ejemplo, la funcin h(n) fuera siempre 0, el algoritmo se comportara como una bsqueda en anchura gobernada por el coste del camino recorrido. Lo que hace que este algoritmo pueda tener un coste temporal inferior es la bondad de la funcin h. De hecho, podemos interpretar las funciones g y h como las que gobiernan el comportamiento en anchura o profundidad del algoritmo. Cuanto ms cercana al coste real sea h, mayor ser el comportamiento en profundidad del algoritmo, pues los nodos que aparentemente estn ms cerca de la solucin se explorarn antes. En el momento en el que esa informacin deje de ser able, el coste del camino ya explorado har que otros nodos menos profundos tengan un coste total mejor y, por lo tanto, se abrir la bsqueda en anchura. Si pensamos un poco en el coste espacial que tendr el algoritmo, podemos observar que como ste puede comportarse como un algoritmo de bsqueda en anchura, el coste espacial en el caso peor tambin ser O(rp ). Un resultado terico a tener en cuenta es que el coste espacial del algoritmo A crece exponencialmente a no ser que se cumpla que: |h(n) h (n)| < O(log(h (n)) Esto pondr el lmite respecto a cuando podemos obtener una solucin ptima para un problema. Si no podemos encontrar una funcin heurstica sucientemente buena, deberemos usar algoritmos que no busquen el ptimo, pero que nos garanticen que nos acercaremos lo suciente a l para obtener una buena solucin. El tratamiento de nodos repetidos en este algoritmo se realiza de la siguiente forma: Si es un nodo repetido que est en la estructura de nodos abiertos Si su coste es menor substituimos el coste por el nuevo, esto podr variar su posicin en la estructura de abiertos Si su coste es igual o mayor nos olvidamos del nodo Si es un nodo repetido que est en la estructura de nodos cerrados Si su coste es menor reabrimos el nodo insertndolo en la estructura de abiertos con el nuevo coste, no hacemos nada con sus sucesores, ya se reabrirn si hace falta Si su coste es mayor o igual nos olvidamos del nodo
27
2
1+1 1+1
3
1+3
4
2+1 2+1
5
2+2
6
3+1 3+1
7
3+2
10
4+1 4+1 3+1 4+1
11
5+0 Objetivo 4+0 Objetivo 5+0 Objetivo
Figura 3.1: Ejemplo de ejecucin del algoritmo A Mas adelante veremos que si la funcin h cumple ciertas condiciones podemos evitar el tratamiento de repetidos. A continuacin podemos ver un pequeo ejemplo de ejecucin del algoritmo A Ejemplo 3.1 Si consideramos el rbol de bsqueda de la gura 3.1, donde en cada nodo tenemos descompuesto el coste en g y h y marcado el orden en el que el algoritmo ha visitado cada nodo. La numeracin en los nodos indica el orden en que el algoritmo A los ha expandido (y por lo tanto el orden en el que han sido extrados de la cola). Podemos observar tambin que hay un nodo abierto que es revisitado por otro camino con un coste inferior que substituye al encontrado con anterioridad.
3.5.1 Admisibilidad
La propiedad clave que nos garantizar el hallar la solucin ptima es la que denominaremos admisibilidad. Diremos que una funcin heurstica h es admisible siempre que se cumpla que su valor en cada nodo sea menor o igual que el valor del coste real del camino que nos falta por recorrer hasta la solucin, formalmente: n 0 h(n) h (n)
28
Esto quiere decir que la funcin heurstica ha de ser un estimador optimista del coste que falta para llegar a la solucin. Ejemplo 3.2 En la gura 3.2 podemos ver dos ejemplos de grafos de bsqueda, uno con una funcin admisible y otra que no lo es. En el primer caso, la funcin heurstica siempre es admisible, pero en la primera rama el coste es ms pequeo que el real, por lo que pierde cierto tiempo explorndola (el efecto en profundidad que hemos comentado), pero al nal el algoritmo pasa a la segunda rama hallando la solucin. En el segundo caso el algoritmo acabara al encontrar la solucin en G, a pesar de que haya una solucin con un coste ms pequeo en H. Esto es as porque el coste estimado que da en el nodo D es superior al real y eso le relega en la cola de nodos abiertos.
1 A 2 B
(1+2)
1 A
5 C
(1+3)
D
(1+5)
2 B
(1+2)
C
(1+4)
D
(1+5)
3
(2+2)
6 E
(2+2)
3
(2+2)
H
(2+0) Objetivo
7 F 8
4
(3+1)
(3+1)
(3+1)
I
(4+1)
(4+0) Objetivo
(4+0) Objetivo
Figura 3.2: Efecto de la admisibilidad del heurstico Esta propiedad implica que, si podemos demostrar que la funcin de estimacin h que utilizamos en nuestro problema la cumple, siempre encontraremos una solucin ptima. El problema radica en hacer esa demostracin, pues cada problema es diferente. Por ello, no podemos dar un mtodo general para demostrar la admisibilidad de una funcin heurstica. Lo que s podemos establecer, es que para demostrar que una funcin heurstica no es admisible basta con encontrar un nodo que incumpla la propiedad. Esto se puede observar simplemente comprobando si alguno de los nodos que estn en el camino solucin tiene un coste mayor que el real, pues solo disponemos del coste real para los nodos de ese camino. Hay que remarcar tambin que la propiedad de admisibilidad es un propiedad de la funcin heurstica, y es independiente del algoritmo que la utiliza, por lo que si la funcin es admisible cualquier algoritmo de los que veamos que la utilice nos hallar la solucin ptima. Para una discusin sobre tcnicas para construir heursticos admisibles se puede consultar el captulo 4, seccin 4.2, del libro Inteligencia Articial: Un enfoque moderno de S. Russell y P. Norvig.
3.5.2 Consistencia
Podemos denir la propiedad de consistencia como una extensin de la propiedad de admisibilidad. Si tenemos el coste h (ni ) y el coste h (nj ) y el coste ptimo para ir de ni a nj , o sea K (ni , nj ), se ha de cumplir la desigualdad triangular:
29
h (ni ) h (nj ) + K (ni , nj ) La condicin de consistencia exige pedir lo mismo al estimador h: h(ni ) h(nj ) K (ni , nj ) Es decir, que la diferencia de las estimaciones sea menor o igual que la distancia ptima entre nodos. Que esta propiedad se cumpla quiere decir que h es un estimador uniforme de h . Es decir, la estimacin de la distancia que calcula h disminuye de manera uniforme. Si h es consistente adems se cumple que el valor de g (n) para cualquier nodo es g (n), por lo tanto, una vez hemos llegado a un nodo sabemos que hemos llegado a l por el camino ptimo desde el nodo inicial. Si esto es as, no es posible que nos encontremos el mismo nodo por un camino alternativo con un coste menor y esto hace que el tratamiento de nodos cerrados duplicados sea innecesario, lo que nos ahorra tener que guardarlos. Habitualmente las funciones heursticas admisibles suelen ser consistentes y, de hecho, hay que esforzarse bastante para conseguir que no sea as.
Algoritmo: IDA* (limite entero) prof f (Estado inicial) Actual Estado inicial mientras no es_nal?(Actual) y prof<limite hacer Est_abiertos.incializa() Est_abiertos.insertar(Estado inicial) Actual Est_abiertos.primero() mientras no es_nal?(Actual) y no Est_abiertos.vaca?() hacer Est_abiertos.borrar_primero() Est_cerrados.insertar(Actual) Hijos generar_sucesores (Actual, prof) Hijos tratar_repetidos (Hijos, Est_cerrados, Est_abiertos) Est_abiertos.insertar(Hijos) Actual Est_abiertos.primero() n prof prof+1 n
grande, no hace falta mucho para llegar a necesidades de espacio prohibitivas. Esto nos lleva a plantearnos algoritmos alternativos con menores necesidades de espacio.
31
0+2
(2,4,9)
1+1
1+2
(6,12)
(5,10)
2+1
2+1
(7,13)
(11)
3+1
3+1
(14)
4+1
4+0
Objetivo
(15)
5+0
Objetivo
Si consideramos el cociente entre los nodos nuevos que se expanden en un nivel y los nodos que se han reexpandido, podemos ver que este tiende a 0 al aumentar el factor de ramicacin, por lo que el trabajo de reexpandir los nodos es despreciable cuando el problema es complejo. Siendo r el factor de ramicacin del problema, si consideramos que rn+1 ser en nmero de i nodos que visitaremos en el nivel n + 1 y n i=1 r es la suma de nodos que revisitamos en ese nivel:
n i i=1 r rn+1
r + r2 + r3 + + rn 1 + r + r2 + r3 + + rn1 1 1 1 1 = = n + n1 + + = n +1 n r r r r r r1
Ejemplo 3.3 Si consideramos el rbol de bsqueda de la gura 3.3, dond e en c ada nodo tenemos descompuesto el coste en g y h y marcado el orden en el que el algoritmo ha visitado cada nodo. La numeracin en los nodos indica el orden en que el algoritmo IDA los ha expandido. Podemos observar que los nodos se reexpanden varias veces siguiendo la longitud del camino estimado impuesta en cada iteracin del algoritmo-
Procedimiento: BFS-recursivo (nodo,c_alternativo,ref nuevo_coste,ref solucion) si es_solucion?(nodo) entonces solucion.aadir(nodo) sino sucesores generar_sucesores (nodo) si sucesores.vacio?() entonces nuevo_coste +; solucion.vacio() sino n falso mientras no n hacer mejor sucesores.mejor_nodo() si mejor.coste() > c_alternativo entonces n cierto; solucion.vacio(); nuevo_coste mejor.coste() sino segundo sucesores.segundo_mejor_nodo() BFS-recursivo(mejor,min(c_alternativo,segundo.coste()),nuevo_coste, solucion) si solucion.vacio?() entonces mejor.coste(nuevo_coste) sino solucion.aadir(mejor); n cierto n n n n n
camino del nodo actual es olvidado, pero modicando la estimacin de los ascendientes con la del nodo mas profundo al que se ha llegado. Se podra decir que con cada reexpansin estamos haciendo el heurstico ms informado. Manteniendo esta informacin sabremos si hemos de volver a regenerar esa rama olvidada, si pasa a ser la de mejor coste. El efecto que tiene esta exploracin es ir renando la estimacin que se tiene de la funcin heurstica en los nodos que se mantienen abiertos, de manera que el nmero de reexpansiones se ir reduciendo paulatinamente ya que el coste guardado ser cada vez ms cercano al coste real. Se puede ver su implementacin en el algoritmo 3.4. Ejemplo 3.4 En la gura 3.4 se puede ver como evoluciona la bsqueda en un ejemplo sencillo, en cada nodo aparece el valor de la funcin f : Podemos ver que cuando llega a la tercera iteracin el nodo con mejor coste es el de 12 y por lo tanto la recursividad vuelve hasta ese nodo borrando la rama explorada, pero actualizando cada padre con el mejor coste encontrado, en este caso 17. En la cuarta iteracin se encuentra que ahora es el nodo con coste 17 el de mejor coste, por lo que el camino vuelve a regenerarse. Por lo general, el nmero de reexpansiones de este algoritmo es menor que el de IDA , pero puede depender de las caractersticas del espacio de bsqueda como por ejemplo la longitud de los ciclos que pueda haber. Este algoritmo tambin impone un coste lineal al espacio, por lo que tambin se pueden generar bastantes reexpansiones. Otra alternativa diferente viene de una modicacin del A , es el algoritmo llamado A con memoria limitada (memory bound A ). Como su nombre indica, tenemos que establecer a
33
1 2
12
3
18 11 19 18 11 19
17
20
2
18 8 12 18 17
2
12
4
18 17
5
20
6
18 17 19 20 21 18 17 19
7
17 20
8
17
Figura 3.4: Ejemplo de ejecucin del algoritmo BF-recursivo priori la cantidad de memoria que utilizaremos. Este algoritmo utiliza la estrategia de exploracin de A pero siguiendo una estrategia de memorizacin de caminos parecida al best rst recursivo. ste almacena todos los caminos que le caben en el tamao de memoria que se impone y no solo el actual, de manera que se ahorra regenerar ciertos caminos. Cuanta ms memoria permitamos, menos regeneraciones de caminos haremos ya que nos los encontraremos almacenados. El algoritmo elimina los caminos peores en el momento en el que ya no caben ms, guardando en los nodos la informacin suciente que le permita saber cuando se han de regenerar. El aporte extra de memoria permite reducir bastante las reexpansiones, con el consiguiente ahorro de tiempo. El algoritmo es capaz de hallar una solucin, si el camino completo cabe en la cantidad de memoria que hemos impuesto. Esto quiere decir que, si tenemos una idea aproximada de la longitud de la solucin podemos ajustar a priori la cantidad de memoria que permitiremos usar al algoritmo. Este algoritmo es mucho mas complejo que los anteriores y existen diferentes versiones. Principalmente la complejidad viene de como se han de reorganizar los caminos memorizados cuando se han de borrar de la memoria y como se hace la propagacin de los costes a los nodos ascendientes que se mantienen.
34
4
Bsqueda local 4.1 El tamao importa, a veces
Los algoritmos que hemos visto en el capitulo anterior nos sirven siempre que podamos plantear el problema como la bsqueda de un camino en un espacio de estados. Pero nos podemos encontrar con problemas en los que: Este planteamiento es demasiado articial, ya que no tenemos realmente operadores de cambio de estado, o no hay realmente una nocin de coste asociada a los operadores del problema La posibilidad de hallar la solucin ptima est fuera de toda posibilidad, dado que el tamao del espacio de bsqueda es demasiado grande y nos conformamos con una solucin que podamos considerar buena. En este tipo de problemas puede ser relativamente fcil hallar una solucin inicial, aunque no sea demasiado buena. Esto hace que nos podamos plantear el problema como una bsqueda dentro del espacio de soluciones, en lugar de en el de caminos. Tambin es posible que sea muy difcil crear una solucin inicial (aunque sea mala) y podamos iniciar la bsqueda desde el espacio de no soluciones (soluciones no vlidas) suponiendo que la bsqueda nos llevar al nal al espacio de soluciones. El comenzar desde el espacio de soluciones o desde el de no soluciones depender de las caractersticas del problema. A veces el nmero de soluciones vlidas es muy reducido debido a que lo que exigimos para ser una solucin es muy estricto y es imposible generar una solucin inicial sin realizar una bsqueda. Si sabemos que partiendo desde una solucin invlida podremos alcanzar el espacio de soluciones, no habr problema, el algoritmo har esa bsqueda inicial guiado por la funcin heurstica. Si no es as, deberemos usar otros algoritmos ms exhaustivos que nos aseguren hallar una solucin.
En este planteamiento lo que suponemos es que podemos navegar dentro del espacio de posibles soluciones, realizando operaciones sobre ellas que pueden ayudar a mejorarlas. El coste de estas operaciones no ser relevante ya que lo que nos importar ser la calidad de las soluciones1 . Deberemos disponer de una funcin que segn algn criterio (dependiente del dominio) medir su calidad y permitir ordenarlas.
1 De hecho muchas veces estas operaciones no se reeren a operaciones reales en el problema, sino a formas de manipular la solucin.
35
36
El planteamiento de estos problemas es parecido al que consideramos al hablar del espacio de estados, tenemos los siguientes elementos: Un estado inicial, que en este caso ser una solucin completa. Esto nos plantear el problema adicional de como hallarla con un coste temporal relativamente bajo y el determinar desde donde empezaremos a buscar, si desde una solucin relativamente buena, desde la peor, desde una al azar, ... Unos operadores de cambio de la solucin, que en este caso manipularn soluciones completas y que no tendrn un coste asociado. Una funcin de calidad, que nos medir lo buena que es una solucin y nos permitir guiar la bsqueda. Hemos de tener en cuenta que este valor no nos indica cuanto nos falta para encontrar la solucin que buscamos, ya que no representa un coste, es una manera de comparar la calidad entre las soluciones vecinas e indicarnos cual es la direccin que lleva a soluciones mejores. El saber cuando hemos acabado la bsqueda depender totalmente del algoritmo, que tendr que decidir cuando ya no es posible encontrar una solucin mejor. Por lo tanto no tendremos un estado nal denido. Para buscar una analoga con un tema conocido, la bsqueda local se puede asimilar con la bsqueda de ptimos en funciones. En este caso la funcin a optimizar2 ser la funcin de calidad de la solucin, la funcin se denir en el espacio de soluciones generado por la conectividad que inducen los operadores entre ellas. Desafortunadamente, las funciones con las que se trabajar no tendrn una expresin analtica global, ni tendrn las propiedades de diferenciabilidad o continuidad que nos permitiran aplicar estos algoritmos de bsqueda de ptimos en funciones. Estas funciones pueden ser de cualquier tipo, y no estn limitadas de la manera que lo estn las funciones usadas por los algoritmos de bsqueda heurstica. Sus valores pueden ser tanto positivos, como negativos y, obviamente, su valor en la solucin no tiene por que ser cero. El planteamiento ser pues bastante diferente. Ya que no tenemos una expresin analtica global, deberemos explorar la funcin de calidad utilizando solamente lo que podamos obtener de los vecinos de una solucin. sta deber permitir decidir por donde seguir buscando el ptimo. El nombre de bsqueda local viene precisamente de que solo utilizamos informacin local durante el proceso de hallar la mejor solucin.
4.2 Tu s, vosotros no
Enfrentados a problemas con tamaos de espacio de bsqueda inabordables de manera exhaustiva, nos hemos de plantear estrategias diferentes a las utilizadas hasta ahora. En primer lugar, tendremos pocas posibilidades de guardar informacin para recuperar caminos alternativos dado el gran nmero de alternativas que habr. Esto nos obligar a imponer unas restricciones de espacio limitadas, lo que nos llevar a tener que decidir que nodos debemos explorar y cuales descartar sin volver a considerarlos. Esto nos lleva a la familia de algoritmos conocida como de ramicacin y poda (branch and bound). Esta familia de algoritmos limita el nmero de elementos que guardamos como pendientes de explotar olvidando los que no parecen prometedores. Estos algoritmos permiten mantener una
2 Hablamos de optimizar, y no de minimizar o maximizar, ya que la diferencia entre ellas es simplemente un cambio de signo en la funcin a optimizar.
4.2 Tu s, vosotros no Algoritmo 4.1 Algoritmo Steepest Ascent Hill Climbing Algoritmo: Hill Climbing Actual Estado_inicial n falso mientras no n hacer Hijos generar_sucesores(Actual) Hijos ordenar_y_eliminar_peores(Hijos, Actual) si no vacio?(Hijos) entonces Actual Escoger_mejor(Hijos) sino n cierto n n
37
memoria limitada, ya que desprecian parte del espacio de bsqueda, pero se arriesgan a no hallar la mejor solucin, ya que esta puede estar en el espacio de bsqueda que no se explora. De entre los algoritmos de ramicacin y poda, los ms utilizados son los denominados de ascenso de colinas (Hill-climbing). Existen diferentes variantes que tienen sus ventajas e inconvenientes. Por ejemplo, el denominado ascenso de colinas simple, que consiste en elegir siempre el primer operador que suponga una mejora respecto al nodo actual, de manera que no exploramos todas las posibilidades accesibles, ahorrndonos el explorar cierto nmero de descendientes. La ventaja es que es ms rpido que explorar todas las posibilidades, la desventaja es que hay ms probabilidad de no alcanzar las soluciones mejores. El ms utilizado es el ascenso de colinas por mxima pendiente (steepest ascent hill climbing). Esta variante expande todos los posibles descendientes de un nodo y elige el que suponga la mxima mejora respecto al nodo actual. Con esta estrategia, suponemos que la mejor solucin la encontraremos a travs del sucesor que mayor diferencia tenga respecto a la solucin actual, siguiendo una poltica avariciosa. Como veremos ms adelante esta estrategia puede ser arriesgada. El algoritmo que implementa este ltimo es el algoritmo 4.1. En este algoritmo, la utilizacin de memoria para mantener la bsqueda es nula, ya que solo tenemos en cuenta el nodo mejor3 . Se pueden hacer versiones que guarden caminos alternativos que permitan una vuelta atrs en el caso de que consideremos que la solucin a la que hemos llegado no es sucientemente buena, pero hemos de imponer ciertas restricciones de memoria, si no queremos tener un coste espacial demasiado grande. Comentaremos estos algoritmos ms adelante. La estrategia de este algoritmo hace que sus problemas vengan principalmente derivados por las caractersticas de las funciones heursticas que se utilizan. Por un lado, hemos de considerar que el algoritmo parar la exploracin en el momento en el que no se encuentra ningn nodo accesible mejor que el actual. Dado que no mantenemos memoria del camino recorrido nos ser imposible reconsiderar nuestras decisiones, de modo que si nos hemos equivocado, la solucin a la que llegaremos no ser la ptima global. Esta circunstancia es probable, ya que seguramente la funcin heurstica que utilicemos tendr ptimos locales y, dependiendo de por donde empecemos a buscar, acabaremos encontrando uno u otro, como se puede ver en la gura 4.1. Si iniciamos la bsqueda desde el punto A o el B, el mximo que alcanzaremos ser diferente. Esta circunstancia se puede mejorar mediante la ejecucin del algoritmo cierto nmero de veces desde distintos puntos escogidos aleatoriamente y quedndonos con la mejor exploracin. A esta
3 Hay que recordar que en este tipo de bsqueda el camino no nos importa, por lo que el gasto en espacio es constante.
38
max max
estrategia se la denomina bsqueda por ascenso con reinicio aleatorio (random restarting hill climbing). Muchas veces esta estrategia es ms efectiva que mtodos ms complejos que veremos a continuacin y resulta bastante barata. La nica complicacin est en poder generar los distintos puntos iniciales de bsqueda, ya que en ocasiones el problema no permite hallar soluciones iniciales con facilidad. Otro problema con el que se encuentran estos algoritmos son zonas del espacio de bsqueda en las que la funcin heurstica no es informativa. Un ejemplo son las denominadas mesetas y las funciones en escaln (gura 4.2), en las que los valores de los nodos vecinos al actual tienen valores iguales, y por lo tanto una eleccin local no nos permite decidir el camino a seguir. Evitar estos problemas requiere extender la bsqueda ms all de los vecinos inmediatos para obtener informacin suciente para encaminar la bsqueda. Desgraciadamente esto supone un coste adicional en cada iteracin, prohibitivo cuando el factor de ramicacin es grande. Una alternativa es permitir que el algoritmo guarde parte de los nodos visitados para proseguir la bsqueda por ellos en el caso de que el algoritmo se que de atascado en un ptimo local. El algoritmo ms utilizado de este tipo es el denominado bsqueda en haces (beam search). En este algoritmo se van guardando un nmero N de las mejores soluciones, expandiendo siempre la mejor de ellas. De esta manera no se sigue un solo camino sino N . Las variantes del algoritmo estn en cmo se escogen esas N soluciones que se mantienen. Si siempre se substituyen las peores soluciones de las N por los mejores sucesores del nodo actual, caemos en el peligro de que todas acaben estando en el mismo camino, reduciendo la capacidad de volver hacia atrs, as que el poder mantener la variedad de las soluciones guardadas es importante. Est claro que cuantas m?s soluciones guardemos ms posibilidad tendremos de encontrar una buena solucin, pero tendremos un coste adicional tanto en memoria como en tiempo, ya que tendremos que calcular con qu sucesores nos quedamos y qu soluciones guardadas substituimos. Su implementacin se puede ver en el algoritmo 4.2. El algoritmo acaba cuando ninguno de los sucesores mejora a las soluciones guardadas, esto quiere decir que todas las soluciones son un ptimo local. Como veremos ms adelante esta tcnica de bsqueda tiene puntos en comn con los algoritmos genticos.
4.2 Tu s, vosotros no Algoritmo 4.2 Algoritmo Beam Search Algoritmo: Beam Search Actual Estado_inicial Soluciones_actuales.aadir(Estado_inicial) n falso mientras no n hacer Hijos generar_sucesores(Actual) soluciones_actuales.actualizar_mejores(Hijos) si soluciones_actuales.algun_cambio?() entonces Actual soluciones_actuales.escoger_mejor() sino n cierto n n
39
40
8/5Kg
12/10Kg
6/4Kg 2/1Kg
16Kg
Sol Inicial
7/6Kg
h(n)=12
3/1Kg 12/10Kg
...
Figura 4.3: Problema de la mochila (iteracin 1) obvia quizs no es la ms adecuada como comentaremos ms adelante. En este caso, parece evidente que nuestro objetivo es obtener la solucin con mayor valor, por lo que podramos adoptarla como funcin a optimizar. El siguiente problema a plantearnos es el conjunto de operadores. Este suele depender del espacio de bsqueda que hayamos elegido, de la solucin inicial y de la funcin heurstica. Los operadores posibles son todos aquellos que nos permitan navegar en el espacio de soluciones denido. En este caso podemos ver que nuestras posibilidades seran el aadir un objeto nuevo en la mochila, quitar un objeto de la mochila y el intercambiar un objeto de la mochila por otro que no este en la mochila. Por el comportamiento de la funcin heurstica podemos ver que el operador de quitar objetos de la mochila siempre nos dar valores para la funcin heurstica que sern peores que la solucin actual, por lo que no tiene sentido utilizarlo. Para simplicar el ejemplo vamos a reducir nuestro conjunto de operadores a solamente aadir un objeto nuevo a la mochila. En la gura 4.3 podemos ver para una instancia de este problema como se comporta el algoritmo de Hill Climbing en su primera iteracin. El algoritmo generara todos los estados sucesores correspondientes a aadir un objeto a la solucin. El algoritmo escogera como siguiente estado el que maximiza la funcin heurstica, en este caso aadir el objeto que tiene un valor de 12 euros. La segunda iteracin (gura 4.4) genera todos las soluciones que corresponden a aadir un objeto nuevo a la solucin que contiene el objeto con 12 euros de valor. En este caso el estado que maximiza la funcin heurstica es que aade el objeto con 8 euros de valor. La tercera iteracin (gura 4.5) ya solo deja dos posibilidades, de ellas la que obtiene un mejor valor es la aade el objeto con 3 euros de valor. Como se ha comentado estos algoritmos no garantizan la solucin ptima, como se puede ver en la gura 4.5 la solucin ptima global no se corresponde con la encontrada. El ptimo alcanzado
4.2 Tu s, vosotros no
41
h(n)=20 8/5Kg
12/10Kg 8/5Kg 7/6Kg h(n)=19 7/6Kg 12/10Kg 12/10Kg 6/4Kg 2/1Kg 3/1Kg h(n)=18 6/4Kg 12/10Kg
12/10Kg
...
Figura 4.4: Problema de la mochila (iteracin 2)
2/1Kg
12/10Kg
8/5Kg
12/10Kg
ptimo
12/10Kg
h(n)=23 8/5Kg
3/1Kg
Sol Final
12/10Kg
42
por el algoritmo de Hill-climbing depende de mltiples factores, como la solucin de partida, la informacin de da la funcin heurstica y su comportamiento y la conectividad entre estados que genera el conjunto de operadores elegido. Para este problema concreto podemos jarnos que en la exploracin del espacio de soluciones intervienen factores que no hemos incluido en la funcin heurstica. En este caso la relacin entre el valor y el peso del objeto puede ser ms informativo que solamente su valor. Una funcin heurstica que tenga en cuenta esta relacin probablemente sea capaz de encontrar en ocasiones soluciones mejores para este problema.
43
fuerza de gravedad entre partculas, ... La aplicacin de todos estos algoritmos se ha ido extendiendo ms all de los problemas de inteligencia articial y se aplican a cualquier problema que involucre la optimizacin de una funcin y que no se pueda resolver por mtodos clsicos. De hecho, todos estos algoritmos se incluyen en un rea de computacin conocida como metaheursticas
44 Algoritmo 4.3 Algoritmo Simulated Annealing Algoritmo: Simulated Annealing Partimos de una temperatura inicial mientras la temperatura no sea cero hacer // Paseo aleatorio por el espacio de soluciones para un numero prejado de iteraciones hacer Enuevo Genera_sucesor_al_azar(Eactual) E f (Eactual) f (Enuevo) si E > 0 entonces Eactual Enuevo sino con probabilidad eE/T : Eactual Enuevo n n Disminuimos la temperatura n
cantidad, partiendo desde una temperatura inicial y llegando a cero en la ltima fase. De manera que, la eleccin de estos dos parmetros (nmero total de iteraciones y nmero de iteraciones entre cada bajada de temperatura) determinarn el comportamiento del algoritmo. Habr que decidir experimentalmente cual es la temperatura inicial ms adecuada y forma ms adecuada de hacer que vaya disminuyendo. Como en la analoga fsica, si el nmero de pasos es muy pequeo, la temperatura bajar muy rpidamente, y el camino explorado ser relativamente aleatorio. Si el nmero de pasos es ms grande, la bajada de temperatura ser ms suave y la bsqueda ser mejor. El algoritmo que implementa esta estrategia es el algoritmo 4.3. En la gura 4.6 podemos ver el comportamiento que tendra el simulated annealing comparado con el de hill climbing. Este algoritmo se adapta muy bien a problemas de optimizacin combinatoria (conguracin ptima de elementos4 ) y continua (punto ptimo en un espacio N-dimensional). Est indicado para problemas con un espacio de bsqueda grande en los que el ptimo est rodeado de muchos ptimos locales, ya que a este algoritmo le ser ms fcil escapar de ellos. Se puede utilizar tambin para problemas en los que encontrar una heurstica discriminante es difcil (una eleccin aleatoria es tan buena como otra cualquiera), ya que el algoritmo de ascenso de colinas no tendr mucha informacin con la que trabajar y se quedar atascado enseguida. En cambio el templado simulado podr explorar ms espacio de soluciones y tendr mayor probabilidad de encontrar una solucin buena. El mayor problema de este algoritmo ser determinar los valores de los parmetros, y requerir una importante labor de experimentacin que depender de cada problema. Estos parmetros variarn con el dominio e incluso con el tamao de la instancia del problema.
Un rea en la que estos algoritmos han sido muy utilizados es la del diseo de circuitos VLSI.
45
Funcin Objetivo
Espacio de Soluciones
Figura 4.6: Estrategia de exploracin del simulated annealing
h(n)=100
2
Swap(2,3)
h(n)=105
2
Swap(5,3)
h(n)=120
5 4
OK
5
It1
3 4
KO
5
It2
4
Swap(4,3)
OK
1
2
Swap(2,3)
It3
5 4
h(n)=98
OK
5
It4
3
h(n)=90
Solucin
KOSwap(2,5) 2
KO Swap(3,3) 1 2
It5
5
h(n)=99
3 4
It6
h(n)=101
46
debemos encontrar un camino que recorra todas las ciudades una sola vez, comenzando y nalizando el recorrido en la misma ciudad. El objetivo es encontrar el recorrido ms corto posible. El espacio de bsqueda esta formado por todos los posibles caminos que se pueden formar con las N ciudades (N !), por lo que es impracticable encontrar la solucin ptima. Para solucionar ese problema primero nos hemos de plantear el espacio de bsqueda. En este caso podemos considerar que esta formado por todos los caminos posibles que se pueden formar con las N ciudades. Como solucin inicial podemos partir desde cualquier camino al azar o plantearnos encontrar una buena solucin inicial que nos reduzca el camino a recorrer en el espacio de bsqueda antes de encontrar un ptimo local. Una heurstica utilizada para encontrar una buena solucin inicial en este problema consiste en usar una estrategia avariciosa, comenzando en la primera ciudad vamos eligiendo la ciudad que no hayamos visitado que se encuentre ms cerca. Como operadores de bsqueda tenemos muchas opciones, cualquier transformacin de un recorrido nos permite movernos en el espacio de bsqueda. Es una eleccin habitual el escoger un operador que intercambia dos ciudades en el recorrido, esto supondra tener un factor de ramicacin cuadrtico, asegurndonos que todos las soluciones son alcanzables. Tambin podemos elegir otros operadores como por ejemplo, mover un trozo del recorrido a una posicin cualquiera o invertir el recorrido entre dos ciudades, ... El tener ms operadores nos aumenta la conectividad en el espacio de soluciones, acortando los caminos hacia los ptimos, pero obviamente aumenta el factor de ramicacin. La funcin heurstica en este problema es la obvia, hemos de minimizar la longitud del recorrido. No obstante, podemos plantear variantes del problema cambiando la funcin heurstica, aadiendo otras restricciones que sean optimizadas por el algoritmo de bsqueda, como, por ejemplo, imponer que se recorran ciertas ciudades en un orden especco o en grupos establecidos. En la gura 4.7 se pueden ver algunas iteraciones de este problema usando el algoritmo de simulated annealing. A cada iteracin se genera un sucesor al azar y dependiendo de la funcin de annealing se decide moverse al sucesor o generar uno nuevo. Como se puede observar en el ejemplo, en ocasiones se avanza hacia sucesores con peor coste (iteraciones 1, 5 y 6), dependiendo de la funcin de annealing el algoritmo avanza a esa solucin peor como en la iteracin 1, o las soluciones peores son rechazadas, como en las iteraciones 5 y 6. Este comportamiento permite a este algoritmo escapar a los ptimos locales en los que queda atrapado el algoritmo de hill climbing.
47
Estos algoritmos son bastante ms complejos que los algoritmos que hemos visto hasta ahora y requieren ms elementos y parmetros, por lo que su utilizacin requiere cierta experiencia y mucha experimentacin. Los requisitos bsicos para usarlos son: Dar una codicacin a las caractersticas de las soluciones. Las soluciones se representan de una manera especial para que despus se puedan combinar. Por lo general se utilizan cadenas binarias que codican los elementos de la solucin, por analoga a esta codicacin se la denomina gen6 . Tener una funcin que mida la calidad de la solucin. Se tratar de la funcin heurstica que se utiliza en todos los algoritmos que hemos visto. En el rea de algoritmos genticos a esta funcin se la denomina funcin de adaptacin (tness). Disponer de operadores que combinen las soluciones para obtener nuevas soluciones. Los operadores que utilizan los algoritmos genticos son bastante jos y estn inspirados en las formas de reproduccin celular. Decidir el nmero de individuos inicial. Un algoritmo gentico no trata un solo individuo, sino una poblacin, se ha de decidir cuan numerosa ha de ser. Decidir una estrategia para hacer la combinacin de individuos. Siguiendo la analoga de la seleccin natural, solo se reproducen los individuos ms aptos, hemos de decidir un criterio para emparejar a los individuos de la poblacin en funcin de su calidad. Vamos a detallar un poco ms cada uno de estos elementos. El uso de los algoritmos genticos presenta ciertas ventajas prcticas respecto a los algoritmos anteriores. Estamos redeniendo como se representan los problemas, todos tendrn una representacin comn independientemente de su naturaleza, por lo que solo nos deberemos de preocupar de como codicar el estado, su implementacin viene determinada por esa codicacin. Tampoco tendremos que preocuparnos de los operadores ya que esa representacin comn nos determina los posibles operadores que podremos usar y sern comunes tambin para todos los problemas.
4.5.1 Codicacin
Como hemos mencionado, la forma ms habitual de codicar los individuos para utilizar un algoritmo gentico es transformarlos a una cadena de bits. Cada bit o grupo de bits codicar una caracterstica de la solucin. Evidentemente, no existe un criterio preestablecido sobre como realizarla. La ventaja de esta codicacin es que los operadores de modicacin de la solucin son muy sencillos de implementar. En la siguiente gura se puede ver un ejemplo de codicacin para el problema de las N reinas siendo N igual a 4:
0 1 2 3 [0,3,2,1] [00 11 10 01]
6 Esta no tiene por que ser siempre la representacin ms adecuada y de hecho a veces una representacin binaria hace que el problema no se pueda solucionar correctamente.
48
En la codicacin binaria se ha asignado una pareja de bits a cada una de las reinas, representando la la en la que estn colocadas y se han concatenado. Alternativamente se podra utilizar una representacin no binaria utilizando simplemente el nmero de la y haciendo una lista con los valores. Como se ha comentado, no siempre la codicacin binaria es la ms adecuada, ya que las caractersticas del problema pueden hacer que el cambio de representacin haga ms complicado el problema. Una ventaja de la codicacin binaria es que nos da una aproximacin del tamao del espacio de bsqueda, ya que el nmero de soluciones posibles corresponder al mayor nmero binario que podamos representar con la codicacin. A veces es importante pensar bien como codicamos los estados, hay que tener en cuenta que la codicacin binaria impone la conectividad entre los estados y que, al hacer la transformacin, estados que antes eran vecinos ahora no lo sern. Puede ser interesante hacer que la codicacin mantenga esa vecindad para obligar a que el algoritmo haga la exploracin del espacio de bsqueda de cierta manera. Tambin a veces nos interesa que diferentes partes de la codicaciones correspondan a partes especcas del estado y as obtener patrones que puedan mantenerse y propagarse de manera ms sencilla.
4.5.2 Operadores
Los operadores que utilizan estos algoritmos para la exploracin del espacio de bsqueda se pueden agrupar en dos tipos bsicos. Los operadores de cruce (crossover) y los de mutacin (mutation). Los operadores de cruce se aplican a una pareja de individuos, su efecto consiste en construir dos nuevos individuos intercambiando parte de la informacin de la codicacin entre estos. Existe una gran variedad de formas en las que se puede realizar este intercambio. La ms sencilla es la denominada cruce por un punto (one point crossover). Se aplica solo a codicaciones binarias, este operador consiste en elegir un punto al azar en la codicacin e intercambiar los bits de los dos individuos a partir de ese punto. En la siguiente gura hay un ejemplo de cruce por un punto en el problema de las N reinas:
Otra variante muy utilizada es el cruce por dos puntos (two points cross over), en el que el intercambio se realiza eligiendo dos puntos en la codicacin e intercambiando los bits entre estos. Aparte de estos dos operadores existen muchos otros que tienen efectos especcos y que funcionan mejor en ciertas circunstancias (uniform crossover, random crossover, ...). Si la codicacin no es binaria, los operadores se han de disear de manera especca para la representacin escogida. Tambin hay que pensar a veces en la eciencia de la aplicacin de los operadores, cuando tenemos que procesar muchas soluciones nos puede interesar operadores que puedan traducirse a operaciones aritmticas simples entre tiras de bits (or, and, xor, shifts, ...).
49
Los operadores de mutacin se aplican a un solo individuo y consisten en cambiar parte de la codicacin de manera aleatoria. El ms sencillo es elegir un bit al azar y cambiar su signo. Estos operadores tienen una probabilidad de aplicacin asociada que ser un parmetro del algoritmo. Tendremos una probabilidad de cruce que indicar cuando una pareja elegida de individuos intercambia su informacin y una probabilidad de mutacin. Por lo general la probabilidad de mutacin es mucho ms pequea que la probabilidad de cruce. La eleccin de estos valores es crtica para el correcto funcionamiento del algoritmo y muchas veces depende del problema. La probabilidad de aplicacin de los operadores puede ser algo muy delicado, ya que cambia la forma en la que se hace la exploracin al cambiar las caractersticas de la poblacin. Si la probabilidad de cruce es muy alta, cada generacin tendr muchos individuos nuevos, esto puede hacer que la exploracin vaya ms deprisa, pero tambin puede hacer que los patrones que llevan a soluciones mejores no puedan estabilizarse. Si la probabilidad es muy pequea, la exploracin ser mas lenta y puede tardar mucho en converger. Con al mutacin pasa algo parecido. Esta es esencial para que el algortimo pueda explorar en partes del espacio de bsqueda que no son alcanzables con la combinacin de las soluciones iniciales, pero una probabilidad muy alta puede hacer que la exploracin no converja al introducir demasiado ruido en la poblacin.
50
Con estos mecanismos de eleccin habr individuos que aparezcan ms de una vez e individuos que no aparezcan7 . Cada mecanismo de seleccin de individuos tiene sus ventajas e inconvenientes. El primero es el ms simple, pero corre el peligro de degenerar en pocas generaciones a una poblacin homognea, acabando en un ptimo local. Los otros dos son algo ms complejos, pero aseguran cierta diversidad de individuos en la poblacin. Se ha visto experimentalmente que el asegurar la variedad en la poblacin permite encontrar mejores soluciones8 .
51
encontraremos con la duda de si el algoritmo no funciona porque el problema no se adapta al funcionamiento de estos algoritmos, o es que no hemos encontrado los parmetros adecuados para hacer que funcionen bien.
52
Crossover(1,2)(3)
4
2
Mutacion(1)
4
3 Crossover(2,3)(2)
6
4
8
Figura 4.8: Problema de las N reinas (iteracin 1)
53
Crossover(3,2)(2)
4
2
4
3 Crossover(3,1)(3)
2
Mutacion(2)
4
4
Figura 4.9: Problema de las N reinas (iteracin 2)
54
5
Bsqueda con adversario 5.1 T contra mi o yo contra ti
Hasta ahora habamos supuesto problemas en los que un solo agente intenta obtener un objetivo, en nuestro caso la resolucin de un problema. Pero existen casos en los que diferentes agentes compiten por un objetivo que solamente uno de ellos puede alcanzar. Este tipo de problemas los englobaremos dentro de la categora de juegos1 . No veremos algoritmos para cualquier tipo de juego, sino que nos restringiremos a los que cumplen un conjunto de propiedades: Son bipersonales, es decir, solo hay dos agentes involucrados, y estos juegan alternativamente. Todos los participantes tienen conocimiento perfecto, no hay ocultacin de informacin por parte de ninguno de ellos. El juego es determinista, no interviene el azar en ninguno de sus elementos. Los elementos que intervienen en este tipo de problemas se pueden representar de manera parecida a la bsqueda en espacio de estados, tendremos: Un estado, que indica las caractersticas del juego en un instante especco Un estado inicial, que determinar desde donde se empieza a jugar y quin inicia el juego Un estado nal, o unas caractersticas que debe cumplir, que determinarn quin es el ganador Unos operadores de transformacin de estado que determinarn las jugadas que puede hacer un agente desde el estado actual. Supondremos que los dos jugadores disponen de los mismos operadores Identicaremos a cada jugador como el jugador MAX y el jugador MIN. MAX ser el jugador que inicia el juego, nos marcaremos como objetivo el encontrar el conjunto de movimientos que ha de hacer el jugador MAX para que llegue al objetivo (ganar) independientemente de lo que haga el jugador MIN2 .
1 La competicin no solamente aparece en el caso de los juegos, pero los algoritmos que veremos tambin son aplicables. 2 No es que nos caiga mal el jugador MIN, lo que pasa es que los algoritmos sern los mismos para los dos, ya que desde la perspectiva de MIN, l es MAX y su oponente es MIN.
55
56
Se puede observar que este escenario es bastante diferente del que se plantean los algoritmos de los captulos anteriores. Nos veremos obligados a revisar el concepto de solucin y de ptimo. De hecho estamos pasando de un escenario en el que poseemos todo el conocimiento necesario para resolver un problema desde el principio hasta el n sin tener que observar la reaccin del entorno, a un escenario donde nuestras decisiones se ven inuidas por el entorno. En los algoritmos que veremos supondremos que podemos prever hasta cierto punto como reaccionar ese entorno, pero evidentemente no siempre tendr por que ser ese el caso.
57
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
58
ventaja de cada jugador en cada estado3 y esto puede ser bastante difcil de determinar. Tambin hemos de tener en cuenta que el coste de calcular la funcin heurstica tambin inuir en el coste de la exploracin. Para este tipo de problemas, esta funcin nos podr dar valores positivos y negativos, indicndonos qu jugador es el que tiene la ventaja. Consideraremos que si el valor es positivo la jugada es ventajosa para el jugador MAX, y si es negativo la ventaja es para MIN. Por convenio, las jugadas ganadoras de MAX tienen un valor de + y las ganadoras de MIN de . Adems de utilizar una funcin heurstica para guiar la bsqueda, usaremos una estrategia distinta para explorar el conjunto de jugadas. Ya que es imposible hacer una exploracin exhaustiva, haremos una bsqueda en profundidad limitada, esto reducir lo que podremos ver del espacio de bsqueda. Decidiremos un nivel de profundidad mximo para la bsqueda, evaluaremos los estados que estn en ese nivel y averiguaremos cul es la mejor jugada a la que podemos acceder desde el estado actual. Hay que tener claro que con este procedimiento solo decidimos una jugada, y que repetimos la bsqueda para cada movimiento que tenemos que decidir. A pesar de que repitamos la bsqueda a cada paso, el nmero de nodos explorados es mucho menor que si explorramos todo el rbol de bsqueda completo. La calidad del juego vendr determinada por la profundidad a la que llegamos en cada exploracin. Cuanto ms profunda sea la exploracin mejor jugaremos, ya que veremos ms porcin del espacio de bsqueda. Evidentemente, cuanto ms exploremos, ms coste tendr la bsqueda. El algoritmo que realiza esta exploracin recibe el nombre de minimax4 y es un recorrido en profundidad recursivo. El que sea un recorrido en profundidad hace que el coste espacial sea lineal, pero evidentemente el coste temporal ser exponencial (depender de la profundidad mxima de exploracin). El algoritmo 5.1 es su implementacin. El algoritmo tiene una funcin principal (MiniMax) que es la que retorna la mejor jugada que se puede realizar, y dos funciones recursivas mutuas (valorMax y valorMin) que determinan el valor de las jugadas dependiendo de si el nivel es de MAX o de MIN. La funcin estado_terminal(g) determina si el estado actual es una solucin o pertenece al nivel mximo de exploracin. La funcin evaluacion(g) calcula el valor de la funcin heurstica para el estado actual.
59
Algoritmo 5.1 Algoritmo minimax Funcin: MiniMax (g) movr:movimiento; max,maxc:entero max para cada mov movs_posibles(g) hacer cmax valor_min(aplicar(mov,g)) si cmax > max entonces max cmax movr mov n n retorna movr Funcin: valorMax (g) vmax:entero si estado_terminal(g) entonces retorna valor(g) sino vmax para cada mov movs_posibles(g) hacer vmax max(vmax, valorMin(aplicar(mov,g)) n retorna vmax n Funcin: valorMin (g) vmin:entero si estado_terminal(g) entonces retorna value(g) sino vmin + para cada mov movs_posibles hacer vmin min(vmin, valorMax(aplicar(mov,g)) n retorna vmin n
60
8
12
16
13
10
Podemos ver que el valor que propagara el algoritmo del minimax a nodo raz sera 8. Pero si nos jamos en el nodo marcado, el segundo descendiente de la raz ya sabe que el mejor nodo del primer descendiente tiene valor 8, y su primer descendiente vale 6. Dado que la raz es un nodo MAX, este preferir el valor 8 al 6. Dado que el segundo descendiente es un nodo MIN, ste siempre escoger un valor que como mximo ser 6. Esto nos hace pensar que, una vez hemos visto que el valor del nodo marcado es 6, el valor que salga de esa exploracin no se elegir (ya que tenemos un valor mejor de la exploracin anterior). Esto lleva a la conclusin de que seguir explorando los nodos del segundo descendiente de la raz no merece la pena, ya que el valor resultante ya no ser elegible. Podemos observar tambin que esta circunstancia se repite en el tercer descendiente al explorar su ltimo nodo, pero al no quedar ms descendientes esta heurstica no nos ahorra nada. Esto quiere decir que la efectividad de esta heurstica depender del orden de exploracin de los nodos, pero desgraciadamente es algo que no se puede establecer a priori. En el caso medio, el coste asinttico p del tiempo de exploracin pasa de ser O(rp ) a ser O(r 2 ). Esta heurstica modica el algoritmo del minimax introduciendo dos parmetros en las llamadas de las funciones, y , y representarn el lmite del valor que pueden tomar las jugadas que exploramos. Una vez superado ese lmite sabremos que podemos parar la exploracin, porque ya tenemos el valor de la mejor jugada accesible. La funcin minimax se mantiene igual, solo varan las funciones que hacen la exploracin de cada nivel, su cdigo se puede ver en el del algoritmo 5.2. La llamada que har la funcin MiniMax a la funcin valorMax le pasar como valor de alfa y + como valor de beta. En la funcin valorMax, alfa es el valor que se actualiza y beta se mantiene constante representando el valor de la mejor jugada encontrada hasta ahora. En la funcin valorMin, beta es el valor que se actualiza y alfa se mantiene constante representando el valor de la mejor jugada encontrada hasta ahora. En la siguiente gura se ve como explorara el algoritmo de minimax con poda alfa beta el ejemplo anterior:
=inf,8 =+inf =inf =+inf,8
=8 =+inf,6
=8 =+inf,10,9,7
12
16
13
10
La ventaja de utilizar la poda alfa beta es que podemos permitirnos ampliar el lmite de profundidad de exploracin, ya que nos ahorramos la exploracin de parte del rbol de bsqueda, y as podemos conseguir mejores resultados.
5.4 Seamos an ms inteligentes Algoritmo 5.2 Algoritmo minimax con poda Funcin: valorMax (g,, ) si estado_terminal(g) entonces retorna valor(g) sino para cada mov movs_posibles(g) hacer max(,valoeMin(aplicar(mov,g) ,, )) si entonces retorna n n retorna n Funcin: valorMin (g,, ) si estado_terminal(g) entonces retorna valor(g) sino para cada mov movs_posibles(g) hacer min( ,valorMax(apply(mov,g) ,, )) si entonces retorna n n retorna n
61
Dado que la ordenacin de los descendientes es crucial para obtener una poda efectiva se suelen utilizar heursticas adicionales que permiten aproximar esa ordenacin con el objetivo de aumentar las podas. Obviamente esto no es gratis, a veces es necesario repetir expansiones y memorizar nodos para obtenerlo. Una estrategia habitual es utilizar un algoritmo de profundidad iterativa en lugar del de profundidad limitada para hacer una exploracin por niveles. A cada nivel se pueden memorizar las evaluaciones que se obtienen para cada nodo y utilizar esa evaluacin en la siguiente iteracin. Esto permitir que en la siguiente iteracin se puedan ordenar los descendientes conocidos y explorar primero la rama ms prometedora y poder podar con mayor probabilidad el resto de descendientes. Como ya hemos visto el ratio de reexpansiones respecto a nodos nuevos para la profundidad iterativa tiende a cero con el aumento del factor de ramicacin (en estos problemas suele ser muy grande), por lo que el precio que hay que pagar en nodos extras explorados es reducido, si p tenemos ms posibilidades de llegar a alcanzar la complejidad media de O(r 2 ).
62
6
Satisfaccin de restricciones 6.1 De variables y valores
Existen problemas especcos que, por sus propiedades, se pueden resolver ms fcilmente utilizando algoritmos adaptados a ellos que utilizando algoritmos generales. Este es el caso de los problemas denominados de satisfaccin de restricciones (constraint satisfaction1 ). Las caractersticas de un problema de satisfaccin de restricciones son las siguientes: El problema se puede representar mediante un conjunto de variables. Cada variable tiene un dominio de valores (un conjunto nito de valores discretos o intervalos de valores continuos) Existen restricciones de consistencia entre las variables (binarias, n-arias) Una solucin es una asignacin de valores a esas variables Esto quiere decir que todo problema de satisfaccin de restricciones se puede denir a partir de una tripleta de elementos P = X, D, R , donde X es una lista de variables, D es una lista de los dominios que corresponden a las variable y R es una lista de relaciones entre conjuntos de variables que denen las restricciones que debe cumplir el problema. A partir de esta formulacin genrica se pueden denir especializaciones y generalizaciones. Por ejemplo, si restringimos los dominios de las variables a valores binarios y las relaciones entre variables son disyunciones lgicas, tenemos problemas de satisfactibilidad (si restringimos el nmero de variables por relacin a como mucho 3, tenemos el problema 3-SAT, un ejemplo tpico de problema NP-completo). Tambin podemos generalizar el problema admitiendo, por ejemplo, la posibilidad de aadir costes a las variables de manera que tengamos como objetivo optimizar su valor. El inters de este tipo de problemas viene de su estrecha relacin con otras reas, como satisfactibilidad, lgebra relacional, teora de base de datos, visin o grcos y de que muchos problemas reales se pueden plantear como problemas de satisfaccin de restricciones, como por ejemplo planicacin de tareas, logstica (localizacin o asignacin de recursos, personas, vehculos, ...), gestin de redes (electricidad, comunicaciones, ...), diseo/conguracin, reconocimiento de formas en imgenes, razonamiento (temporal, espacial, ...), ... Estas aplicaciones hacen que sea un rea bastante interesante desde un punto de vista prctico. Todos los algoritmos de resolucin de problemas de satisfaccin de restricciones que veremos estn pensados para el caso en el que las restricciones sean binarias ya que se pueden representar mediante grafos (grafos de restricciones) en los que los nodos son las variables, las restricciones son los arcos,
1
63
64
y los dominios de las variables son los diferentes valores que pueden tomar los nodos. Esto no supone ninguna limitacin, dado que la mayor parte de los problemas con restricciones no binarias se pueden convertir en problemas con restricciones binarias introduciendo variables articiales o transformando el grafo en un hipergrafo.
Ejemplo 6.1 Un ejemplo clsico de problema de satisfaccin de restricciones es el de coloreado de mapas (gura 6.1). El problema consiste en asignar colores a los pases de un mapa de manera que dos pases adyacentes no tengan el mismo color. El problema se puede representar como un grafo donde cada nodo es un pas y los arcos entre nodos representan las fronteras comunes. Los nodos del grafo son las variables del problema, los arcos representan las restricciones entre pares de variables (sus valores han de ser diferentes) y los colores disponibles son los dominios de las variables.
65
Esto no es completamente cierto, ya que siempre podemos utilizar el nmero de restricciones que no se cumplen como funcin heurstica. Desgraciadamente este nmero no suele ser muy informativo respecto a lo buenos o malos que pueden ser los vecinos de una no solucin, ya que habr no soluciones con pocas restricciones incumplidas, pero que hagan falta muchas modicaciones para hacerlas solucin y al revs, soluciones que a pesar de inclumplir varias restricciones, con unas pocas modicaciones se conviertan en solucin. Una ventaja con la que nos encontraremos es que, las propiedades que tienen estos problemas permiten derivar heursticas que reducen el espacio de bsqueda de manera considerable. Veremos tres aproximaciones a la resolucin de problemas de satisfaccin de restricciones, la primera se basar en bsqueda no informada, la segunda se basar en la reduccin de espacio de bsqueda del problema y la tercera intentar combinar ambas.
66
Algoritmo 6.1 Algoritmo de backtracking cronolgico Funcin: backtracking_cronologico(vfuturas, solucion) si vfuturas.es_vacio?() entonces retorna solucion sino vactual vfuturas.primero() vfuturas.borrar_primero() para cada v vactual.valores() hacer vactual.asignar(v) solucion.anadir(vactual) si solucion.valida() entonces solucion backtracking_cronologico(vfuturas,solucion) si no solucion.es_fallo?() entonces retorna solucion sino solucion.borrar(vactual) sino solucion.borrar(vactual) retorna solucion.fallo()
R1=1
R1=2
R2=4
R3=1
Backtracking a R2
Solucion (R1=2,R2=4,R3=1,R4=3)
67
restricciones en el que las reinas seran las variables, el dominio de valores sera la columna en la que se coloca la reina y las restricciones seran que las posiciones en las que colocamos las reinas no hagan que se maten entre si. En la gura 6.2 podemos ver como explorara el algoritmo de backtracking cronolgico el problema en el caso de 4 reinas. En el ejemplo se puede ver como el algoritmo va probando asignaciones para cada una de las reinas, avanzando en el momento en el que encuentra una asignacin compatible con las asignaciones previas. En el caso de no haber ninguna asignacin compatible, el algoritmo retrocede hasta la primera variable a la que le quedan valores por probar. El algoritmo de backtracking cronolgico puede hacer bastante trabajo innecesario a veces si la variable que provoca la vuelta atrs del algoritmo no es precisamente la ltima asignada, haciendo que se tengan que probar todas las combinaciones posibles de las variables que hay entre el primer punto donde se encuentra la violacin de la restriccin y la variable que la provoca. Esto ha hecho desarrollar variantes ms inteligentes del backtracking cronolgico, la mas sencilla es la denominada backjumping, que intenta que el backtracking no sea a la variable anterior, sino que, teniendo en cuenta las restricciones involucradas, vuelva a la variable que tiene alguna restriccin con la variable actual. Esto consigue evitar todas las pruebas de valores entre la variable actual y esa variable.
68
Algoritmo 6.2 Algoritmo de arco-consistencia Algoritmo: Arco consistencia R conjunto de arcos del problema /* ambos sentidos mientras se modiquen los dominios de las variables hacer r extraer_arco(R) /* ri es la variable del origen del arco /* rj es la variable del destino del arco para cada v en el dominio de ri hacer si v no tiene ningn valor en el dominio de rj que cumpla r entonces borrar v del dominio de ri aadir todos los arcos que tengan como destino ri menos el (rj ri ) n n n
*/
*/ */
X1
{Azul, Rojo}
X2
{Azul}
X3
{Azul, Rojo, Verde} {Azul, Verde}
X4
de restricciones del problema (contando los dos sentidos) y d es el tamao de los dominios, existen algoritmos ms ecientes, a costa de usar ms espacio que tienen complejidad temporal O(rd2 ) y complejidad espacial O(rd) .
Ejemplo 6.3 En la gura 6.3 tenemos un problema de coloreado de grafos donde en cada uno de los nodos se indica el dominio de cada variable. El objetivo ser colorear el grafo de manera que ningn nodo adyacente tenga el mismo color, por lo que cada arco es una restriccin de desigualdad. El conjunto de arcos con los que comenzara el algoritmo son:
{X1 X2 , X2 X1 , X2 X3 , X3 X2 , X2 X4 , X4 X2 , X3 X4 , X4 X3 }
69
Eliminamos Azul del dominio de X1 Todos los valores son consistentes Todos los valores son consistentes Eliminamos Azul del dominio de X3 Tendramos que aadir el arco X4 X3 pero ya est 5. Seleccionamos X2 X4 Todos los valores son consistentes 6. Seleccionamos X4 X2 Eliminamos Azul del dominio de X4 Tendramos que aadir el arco X3 X4 pero ya est 7. Seleccionamos X3 X4 Eliminamos Verde del dominio de X3 Aadimos el arco X2 X3 8. Seleccionamos X4 X3 Todos los valores son consistentes 9. Seleccionamos X2 X3 Todos los valores son consistentes Casualmente, al hacer arco-consistente el grafo hemos hallado la solucin, pero no siempre tiene por que ser as. La arco-consistencia no siempre nos asegura una reduccin en los dominios del problema, por ejemplo, si consideramos el grafo del problema de las 4 reinas que hemos visto en el ejemplo 6.2, ste es arco-consistente, por lo que no se puede eliminar ninguno de los valores de las variables. La k-consistencia para el caso de k igual a 3 se denomina camino consistencia, y permite eliminar ms combinaciones, pero con un coste mayor. Existe la propiedad que se denomina kconsistencia fuerte, que se cumple cuando un grafo cumple la propiedad de consistencia desde 2 hasta k . Esta propiedad asegura que si el grafo tiene anchura2 k y es k-consistente fuerte, encontraremos una solucin sin necesidad de hacer backtracking, desgraciadamente probar esto necesita un tiempo muy elevado (O(rk dk )). Un resultado interesante es que, si el grafo de restricciones es un rbol, este se puede resolver sin backtracking si se convierte en arco consistente.
Funcin: forward checking (vfuturas, solucion) si vfuturas.es_vacio?() entonces retorna solucion sino vactual vfuturas.primero() vfuturas.borrar_primero() para cada v vactual.valores() hacer vactual.asignar(v) solucion.anadir(vactual) vfuturas.propagar_restricciones(vactual) /* forward checking si no vfuturas.algun_dominio_vacio?() entonces solucion forward_checking(vfuturas, solucion) si no solucion.es_fallo?() entonces retorna solucion sino solucion.borrar(vactual) sino solucion.borrar(vactual) retorna solucion.fallo()
*/
la comprobacin de la validez de la solucin parcial se hara mediante la comprobacin de que todas las variables futuras tienen an valores (vfuturas.algun_dominio_vacio?()). Ejemplo 6.4 En la gura 6.4 podemos ver de nuevo el ejemplo 6.2 utilizando el algoritmo de forward checking. Se puede comprobar que el nmero de asignaciones que se realizan es menor, ya que los valores no compatibles son eliminados por las pruebas de consistencia. Ahora el coste ha pasado a las pruebas de consistencia que se realizan en cada iteracin. En este caso a cada paso el algoritmo asigna un valor a la reina actual y elimina de los dominios de las reinas futuras las asignaciones que son incompatibles con la actual. Esto nos permite hacer backtracking antes que en el ejemplo previo, reduciendo el nmero de asignaciones exploradas. Hay que tener en cuenta que la prueba de arco consistencia de cada iteracin incluye la comprobacin de los valores que quedan en las variables futuras, por lo que dependiendo del problema el ahorro puede no existir. Existen algoritmos que realizan pruebas de consistencia mas fuertes, como por ejemplo el algoritmo RFL (Real Full Lookahead) que adems comprueba la arco-consistencia entre todas las variables futuras, o el algoritmo MAC (Maintaining Arc Consistency) que convierte el problema en arco consistente a cada paso. Evidentemente, esta reduccin de los dominios de las variables no sale gratis, el nmero de comprobaciones a cada paso incrementa el coste por iteracin del algoritmo. Dependiendo del problema, el coste de propagacin puede hacer que el coste de hallar una solucin sea mayor que utilizar el algoritmo de backtracking cronolgico.
71
R3=2 R4={}
R3=1 R4={3}
Backtracking a R2
R4=3
Solucion (R1=2,R2=4,R3=1,R4=3)
Muchas veces estas heursticas no son sucientes para reducir el coste de encontrar una solucin, por lo que se combinan con otras que tambin se han mostrado efectivas en este tipo de problemas. Hasta ahora siempre hemos mantenido un orden jo en la asignacin de las variables, pero este puede no ser el ms adecuado a la hora de realizar la exploracin. Se utilizan diferentes heursticas de ordenacin dinmica de variables de manera que siempre se escoja la que tenga ms probabilidad de llevarnos antes a darnos cuenta de si una solucin parcial no nos llevar a una solucin. Las heursticas ms utilizadas son: Dominios mnimos (Dynamic value ordering), escogemos la variable con el menor nmero de valores. Min width ordering, escogemos la variable conectada al menor nmero de variables no instanciadas. Max degree ordering, escogemos la variable ms conectada en el grafo original. No es despreciable el ahorro que se puede obtener mediante este tipo de heursticas, por ejemplo, para el problema de las 20 reinas, hallar la primera solucin con backtracking cronolgico necesita alrededor de 2.5 107 asignaciones, utilizando forward checking se reduce a alrededor de 2.4 106 asignaciones, y si utilizamos la heurstica de dominios mnimos combinada con el forward checking hacen falta alrededor de 4 103 asignaciones.
72
1 4 7 2 5 8 3 6 9
2 5 8 3 6 9 1 4 7
3 6 9 1 4 7 2 5 8
4 7 1 5 8 2 9 3 6
5 8 2 6 9 3 7 1 4
6 9 3 4 7 1 8 2 5
7 1 4 8 2 5 6 9 3
8 2 5 9 3 6 4 7 1
9 3 6 7 1 4 5 8 2
Figura 6.5: Una solucin al juego del sudoku Uno de estos rompecabezas es el sudoku (gura 6.5) para este problema el espacio de bsqueda es de 9!9 2.3 1033 posibles tableros, de los que aproximadamente 6.7 1024 son solucin. En este caso tenemos una matriz de 9 9, lo que nos da un total de 81 variables, cada variable puede contener un nmero del 1 a 9. Las restricciones aparecen primero entre las variables segn las las y columnas, de manera que para una la o columna un nmero puede aparecer solamente una vez y ademas hay una restriccin adicional entre las variables de las nueve submatrices que forman el problema, dentro de cada submatriz no puede haber dos variables con el mismo nmero. En el caso de este problema, el entretenimiento no viene de encontrar una solucin, sino de obtener una solucin dado que hemos dado ya ciertos valores a algunas de las variables. La dicultad de encontrar la solucin se puede variar estableciendo el nmero de variables a las que damos el valor.
73
7
Introduccin a la representacin del conocimiento 7.1 Introduccin
Acabamos de ver un conjunto de algoritmos que son capaces de resolver problemas mediante la exploracin del espacio de soluciones. Estos algoritmos se basan en una informacin mnima para plantear la resolucin. No solo en lo que respecta a las caractersticas que representan al problema, sino al conocimiento involucrado en las tomas de decisin durante la exploracin. Las funciones heursticas que se utilizan tienen en cuenta informacin general que evala el problema a cada paso de la misma manera. Evidentemente, durante la resolucin de un problema no tiene por que evaluarse su estado siempre de la misma manera, ni tiene por que tener siempre la misma importancia toda la informacin de la que disponemos. Si observamos como nosotros mismos resolvemos problemas, podemos jarnos en que la informacin que vamos teniendo en cuenta a medida que lo resolvemos va cambiando. No usamos, por ejemplo, la misma informacin cuando iniciamos la resolucin de un problema que cuando estamos en medio de la resolucin, ya que nuestra incertidumbre sobre donde est la solucin va cambiando, y parte de la informacin puede pasar a ser crucial o irrelevante. Esta capacidad para tomar mejores decisiones puede hacer que un problema se pueda resolver de manera ms eciente. Estas decisiones no las podemos tomar si no tenemos un conocimiento profundo de las caractersticas del problema y de como nos pueden ayudar a tomar decisiones. Esto nos lleva a pensar que en todo problema complejo en IA, se debe plantear qu conocimiento nos puede ser necesario para resolverlo y como deberemos utilizarlo para hacer ms eciente la resolucin. El conocimiento que podemos usar puede ser tanto general como dependiente del dominio, pero teniendo en cuenta que el conocimiento especco del problema ser el que con ms probabilidad nos permitir hacer eciente la resolucin. Esta necesidad de introducir ms conocimiento en la resolucin de un problema nos lleva a plantearnos dos cuestiones. Primero, el cmo escoger el formalismo de representacin que nos permita hacer una traduccin fcil del mundo real a la representacin. El conocimiento necesario es por lo general bastante complejo, hacer la traslacin de los elementos del dominio a una representacin es una tarea costosa. Segundo, el cmo ha de ser esa representacin para que pueda ser utilizada de forma eciente. Este conocimiento tendr que utilizarse en el proceso de toma de decisiones, deberemos evaluar cuando es necesario usarlo y qu podemos obtener a partir de l. Sin un mecanismo eciente para su uso no conseguiremos ninguna ganancia. En este punto debemos distinguir entre informacin y conocimiento. Denominaremos informacin al conjunto de datos bsicos, sin interpretar, que se obtienen como entrada del sistema. Por ejemplo los datos numricos que aparecen en una analtica de sangre o los datos de los sensores de una planta qumica. Estos datos no nos dicen nada si no los asociamos a su signicado en el problema. 75
76
Denominaremos conocimiento al conjunto de datos de primer orden, que modelan de forma estructurada la experiencia que se tiene sobre un cierto dominio o que surgen de interpretar los datos bsicos. Por ejemplo, la interpretacin de los valores de la analtica de sangre o de los sensores de la planta qumica para decir si son normales, altos o bajos, preocupantes, peligrosos, ..., el conjunto de estructuras de datos y mtodos para diagnosticar a pacientes a partir de la interpretacin del anlisis de sangre, o para ayudar en la toma de decisiones de que hacer en la planta qumica Los sistemas de IA necesitan diferentes tipos de conocimiento que no suelen estar disponibles en bases de datos y otras fuentes de informacin: Conocimiento sobre los objetos en un entorno y las posibles relaciones entre ellos Conocimiento sobre los procesos en los que interviene o que le son tiles Conocimiento difcil de representar como datos bsicos, como la intensionalidad, la causalidad, los objetivos, informacin temporal, conocimiento que para los humanos es de sentido comn, etc. Podramos decir para un programa de inteligencia articial el conocimiento es la combinacin entre la informacin y la forma en la que se debe interpretar1 .
7.2 Esquema de representacin Operaciones que permiten crear, modicar y destruir elementos en la estructura Predicados que dan un mecanismo para consultar esta estructura de datos
77
Semntica de la estructura, se denir una funcin que establezca una relacin entre los elementos de la realidad y los elementos de la representacin. Esta funcin es la que nos permitir interpretar lo que hagamos en el representacin en trminos del mundo real. La parte dinmica estar formada por: Estructuras de datos que almacenan conocimiento referente al entorno/dominio en el que se desarrolla el problema Procedimientos que permiten Interpretar los datos del problema (de la parte esttica) a partir del conocimiento del dominio (de la parte dinmica) Controlar el uso de los datos: estrategias de control, es decir, mtodos que nos permiten decidir cuando usamos el conocimiento y como ste gua los procesos de decisin. Adquirir nuevo conocimiento: mecanismos que nos permiten introducir nuevo conocimiento en la representacin, ya sea por observacin del mundo real o como deduccin a partir de la manipulacin del conocimiento del problema. Es importante tener en mente que la realidad no es el esquema de representacin. De hecho, podemos representar la realidad utilizando diferentes esquemas de representacin. Esta es simplemente una abstraccin que nos permite resolver los problemas del dominio en un entorno computacional. Se ha de tener siempre en cuenta que nuestra representacin siempre es incompleta, debido a: Modicaciones: el mundo es cambiante, pero nuestras representaciones son de un instante Volumen: mucho (demasiado) conocimiento a representar, siempre tendremos una representacin parcial de la realidad Complejidad: La realidad tiene una gran riqueza en detalles y es imposible representarlos todos El problema de la representacin cambiante del mundo esta ligado a los procedimientos de adquisicin y mantenimiento de la representacin. Para poder tener una representacin el, deberamos poder introducir en esta toda aquella informacin que es consecuencia del cambio de la realidad, esto requiere poder representar todo lo que observamos en la realidad y obtener todas las consecuencias lgicas de ese cambio2 . La eciencia de los mtodos de adquisicin es clave, el problema es que no existe ningn mecanismo lo sucientemente eciente como para que sea plausible desde el punto de vista computacional mantener una representacin completa de la realidad. Los problemas de volumen y complejidad de la realidad estn relacionados con la granularidad de la representacin. Cuanto mayor sea el nivel de detalle con el que queramos representar la realidad, mayor ser el volumen de informacin que tendremos que representar y manipular. Esto hace que el coste computacional de manejar la representacin crezca de manera exponencial, haciendo poco plausible llegar a ciertos niveles de detalle y obligando a que la representacin sea una simplicacin de la realidad.
2
78
Desafortunadamente no existe un esquema de representacin que sea ptimo en todas estas caractersticas a la vez. Esto llevar a la necesidad de escoger la representacin en funcin de la caracterstica que necesitemos en el dominio de aplicacin especco, o a utilizar diferentes esquemas de representacin a la vez.
79
el conocimiento heredable, que establece las relaciones estructurales entre conceptos, de manera que podamos denir propiedades de generalizacin/especializacin, inclusin o herencia de propiedades y el conocimiento inferible, que establece como se pueden derivar propiedades y hechos de otros mediante relaciones de deduccin. El segundo tipo de conocimiento es el conocimiento procedimental. Este indica explcitamente la manera de usarlo, por lo que el mecanismo de razonamiento est ligado a la representacin, con la ventaja de que es ms eciente de utilizar.
El principal problema es que tal cual no aporta conocimiento, solo es una coleccin de datos que necesita de una interpretacin y procedimientos que permitan utilizarlo. Podramos obtener nuevo conocimiento a partir de esta informacin con procedimientos que calcularan por ejemplo la media de compras en una poblacin o el mejor cliente o la tipologa de clientes. Las bases de datos pueden proporcionar informacin en un dominio, pero es necesaria una denicin explcita de las propiedades que se denen, las relaciones que se pueden establecer entre las diferentes tablas y las propiedades de esas relaciones.
80
Ser vivo
Respira
esun
Reptil
Tiene escamas
Mamifero
esun instde
esun
Felino
Roedor
Jinx
Pixie
x, y : persona(x) menor(x) ocupacion(x, y ) parado(x) Los mtodos de inferencia en el caso de la lgica de primer orden se pueden elegir de entre cualquier mtodo general de deduccin automtica que existe, como por ejemplo la resolucin lineal.
8
Lgica 8.1 Introduccin
Una gran parte de los formalismos de representacin del conocimiento que se utilizan en inteligencia articial se fundamentan directamente en la lgica. De hecho la lgica es el lenguaje utilizado por todas las disciplinas cientcas para describir su conocimiento de manera que pueda ser compartido sin ambigedad y poder utilizar mtodos formales para probar sus armaciones y obtener sus consecuencias Es por tanto interesante ver la lgica como lenguaje de representacin. La lgica provee un lenguaje formal a travs de cual podemos expresar sentencias que modelan la realidad. Es un lenguaje declarativo que establece una serie de elementos sintcticos a partir de los cuales podemos representar conceptos, propiedades, relaciones, constantes y la forma de conectar todos ellos. A partir de este lenguaje podemos relacionar la semntica de las sentencias que expresamos con la semntica de la realidad que queremos representar. Como la lgica es un lenguaje declarativo, se establecen una serie de procedimientos que permiten ejecutar la representacin y obtener nuevo conocimiento a partir de ella. Nos centraremos en la lgica clsica y en particular en la lgica proposicional y la lgica de predicados. Los conceptos que se explican en este captulo los conocis de la asignatura Introduccin a la lgica, as que podis consultar sus apuntes para tener una descripcin ms detallada. Este captulo solo servir para refrescar la memoria y no como descripcin exhaustiva del formalismo de la lgica.
82 4. Si A y B son frmulas entonces (A B ) es una frmula 5. Si A es una frmula entonces A es una frmula
Captulo 8. Lgica
Por convencin, se consideran sentencias atmicas todas las letras maysculas a partir de la P y frmulas todas las letras maysculas a partir de la A. Mediante este lenguaje podemos expresar sentencias que relacionan cualquier frase declarativa atmica mediante las cuatro conectivas bsicas y su semntica asociada. Esta semntica viene denida por lo que se denomina teora de modelos, que establece la relacin entre las frmulas y los valores de verdad y falsedad, es lo que se denomina una interpretacin. Cada conectiva tiene su tabla de verdad1 que establece como se combinan los valores de verdad de los tomos para obtener el valor de verdad de la frmula. A partir de los enunciados expresados mediante este lenguaje se pueden obtener nuevos enunciados que se deduzcan de ellos o se pueden plantear enunciados y comprobar si se derivan de ellos. Para ello existen diferentes metodologas de validacin de razonamientos que establecen los pasos para resolver esas preguntas. Metodologas de validacin de razonamientos hay bastantes y se pueden dividir en dos grupos. Las que se basan en la semntica, buscan demostrar que los modelos que hacen verdad un conjunto de enunciados incluyen los modelos que hacen verdad la conclusin que queremos probar. Las que se basan en sintaxis aprovechan la estructura algebraica del lenguaje de la lgica de enunciados (lgebra de boole) para demostrar que el enunciado satisfactible/insatisfactible es accesible utilizando los enunciados premisa y la conclusin. El mtodo ms sencillo para la validacin de enunciados es el mtodo de resolucin. Es un mtodo que funciona por refutacin, es decir, podemos saber si un enunciado se deriva de un conjunto de enunciado probando que al aadir su negacin podemos obtener el enunciado insatisfactible. Este mtodo se basa en la aplicacin de la regla de resolucin: A B, A C BC
al conjunto de clausulas que se obtienen de transformar las premisas y la negacin de la conclusin a forma normal conjuntiva. Existen diferentes variantes del algoritmo, la mas comn es la que utiliza la denominada estrategia de conjunto de soporte, que inicia el algoritmo escogiendo alguna de las clusulas de la negacin de la conclusin. Este mtodo es slido y completo2 si se demuestra la satisfactibilidad de las clusulas de las premisas. Ejemplo 8.1 Podemos plantearnos un problema de lgica proposicional donde tengamos los enunciados Est lloviendo y Me mojo. Asignamos a los enunciados las letras de tomo P y Q respectivamente. Podemos escribir la frmula P Q, que se puede leer como Si esta lloviendo entonces me mojo y plantearnos el siguiente razonamiento: P Q, P Q
Podemos utilizar el mtodo de resolucin para validar este razonamiento obteniendo el siguiente conjunto de clusulas con el razonamiento C = {P Q, P, Q}. Con estas clusulas podemos obtener el siguiente rbol de resolucin validando el razonamiento:
Es algo que ya conocis de la asignatura de lgica. Las propiedades de solidez y completitud (soundness, completness ) son las que se piden a cualquier mtodo de validacin. La propiedad de solidez nos garantiza que el mtodo solo nos dar conclusiones vlidas y la completitud nos garantiza que podremos obtener todas las conclusiones derivables.
2 1
83
84
Captulo 8. Lgica
funcionales3 . El mtodo exige que para la aplicacin de la regla de resolucin los tomos que se quieran resolver permitan la unicacin de los trminos de los parmetros. La unicacin lo que busca es la substitucin de los valores de las variables de los trminos de los tomos que permitan que las dos expresiones sean iguales. Ejemplo 8.2 Podemos plantearnos el problema de lgica de predicados con los siguientes predicados ser un hombre, ser mortal y una constante Socrates. Asignamos a los predicados las letras P y Q respectivamente y a la constante la letra a . Podemos escribir la frmula x(P (x) Q(x)) (todos los hombres son mortales) y la frmula P (a) (Scrates es un hombre) y podemos intentar validar la frmula Q(a) (Scrates es mortal). Podemos utilizar el mtodo de resolucin para validar este razonamiento obteniendo el siguiente conjunto de clusulas con el razonamiento C = {P (x)) Q(x), P (a), Q(a)}. Con estas clusulas podemos obtener el siguiente rbol de resolucin validando el razonamiento: Q(a) P (x) Q(x) {x = a}
P (a)
P ( a)
9
Sistemas de reglas de produccin 9.1 Introduccin
La lgica de predicados tambin se puede ver como un mecanismo para describir procedimientos. Con este tipo de visin lo que hacemos es describir un problema como si fuera un proceso de razonamiento. Los predicados que utilizamos descomponen el problema en problemas ms sencillos e indican un orden total o parcial que permitir al sistema que ejecute esta descripcin resolverlo. En este tipo de descripcin utilizamos un conjunto restringido de las expresiones que se pueden representar mediante el lenguaje de la lgica. La restriccin fundamental que se impone es que solo se pueden utilizar frmulas lgicas cuanticadas universalmente que se puedan transformar a clusulas disyuntivas1 , en las que solo haya como mximo un tomo armado. Este tipo de clusulas se denominan clusulas de Horn. La justicacin de esta limitacin es que la representacin tendr que ser ejecutada como una demostracin y el coste computacional de los procedimientos para realizarla est ligado a la expresividad empleada en su descripcin. A pesar de esta restriccin del lenguaje, podremos describir un gran nmero de problemas. Este tipo de frmulas se corresponde con lo que denominaremos reglas de produccin. Las reglas son frmulas condicionales en las que puede haber cualquier nmero de tomos en el antecedente y solo un tomo en el consecuente, por ejemplo: xy (P ersona(x) Edad(x, y ) M ayor(y, 18) M ayor_de_edad(x)) En la prctica los lenguajes de programacin que permiten describir problemas mediante reglas son ms exibles en su sintaxis y permitir cosas mas complejas. De hecho el consecuente de una regla puede ser una accin sobre la descripcin del estado (modicacin de los predicados actuales), un nuevo hecho del estado, un hecho que usamos como elemento de control de la bsqueda, una interaccin con el usuario, ...
Una clusula disyuntiva es una frmula en la que solo se usa la conectiva disyuncin.
85
86
programa implementado en un lenguaje imperativo) es que no explicitamos directamente el algoritmo a utilizar para encontrar la solucin del problema, sino que se indican las condiciones que sta ha de cumplir. Es un mecanismo de demostracin el que se encarga de encontrarla combinando los pasos indicados por las reglas, ya que lo que estamos haciendo es validar un razonamiento que se fundamenta en stas. Esta forma de describir procedimientos se encuadra dentro de los denominados lenguajes declarativos (a diferencia de los lenguajes imperativos, que son los ms comunes). La ventaja de declarar las condiciones que cumplen las soluciones es que no estamos limitados a una nica secuencia de ejecucin, un conjunto de reglas pueden describir muchos algoritmos distintos que comparten parte de su especicacin. Este tipo de lenguajes permiten, adems, expresar programas a un mayor nivel de abstraccin, ya que no tenemos que denir exactamente como se debe conseguir la solucin, solo sus condiciones. Hallar la solucin que cumple las condiciones es labor del mecanismo de demostracin que utilicemos. Para poner este formalismo en perspectiva, podemos hacer la analoga con los algoritmos de bsqueda que hemos visto en los primeros captulos. Las reglas son equivalentes a los operadores de bsqueda, y el algoritmo de bsqueda utilizado es el mecanismo de validacin de demostraciones. Un nmero relativamente reducido de operadores puede permitir hallar soluciones a problemas muy diferentes y todos ellos se generan a partir de la combinacin de stos. Al conjunto de reglas se le denomina la base de conocimiento (o de reglas). Estas reglas pueden describir la resolucin de mltiples problemas, ser la labor del mecanismo que resuelva el problema concreto planteado decidir qu reglas se han de utilizar. El planteamiento del problema se realiza mediante hechos. Estos hechos sern la descripcin de las condiciones del problema y estar formada por predicados primitivos, funciones, relaciones y constantes denidas en el problema. Por ejemplo: Persona(juan) Edad(juan,25) Al conjunto de hechos que describen un problema se denomina base de hechos. Con una base de reglas y una base de hechos podemos plantear preguntas cuya respuesta permita obtener la solucin de un problema. Ejemplo 9.1 Podemos crear un conjunto de reglas que nos permitan saber cuando se puede servir una bebida a una persona en un bar. Podramos describir el problema de la siguiente manera: Toda persona mayor de 18 aos es mayor de edad. Toda bebida que contenga alcohol es una bebida restringida a mayores de edad. Se puede servir a una persona una bebida restringida a mayores de edad si es mayor de edad. Y lo podramos describir mediante reglas de como la siguiente base de reglas: si Persona(X) y Edad(X,Y) y Mayor(Y,18) entonces Mayor_de_edad(X) si Bebida(X) y Contiene(X,alcohol) entonces Restringida_a_mayores(X) si Mayor_de_edad(X) y Restringida_a_mayores(Y) entonces Servir(X,Y) Podramos entonces plantear un problema con un conjunto de hechos: Persona(juan) Edad(juan,25) Bebida(cubata) Contiene(cubata,alcohol) Y entonces preguntarnos si le podemos servir un cubata a juan Servir(juan,cubata).
87
La forma en la que determinamos si existe y cual es la respuesta al problema planteado depender del mtodo de demostracin de razonamientos que utilicemos para validar el razonamiento que describen la base de conocimiento, la base de hechos y la pregunta que realizamos. Este mecanismo estar implementado mediante lo que denominaremos el motor de inferencias.
88
Base de Conocimiento
Hechos
. . .
. . .
Intrprete de reglas
. . .
Motor de Inferencia
Figura 9.1: Sistema de produccin Ordenadamente en anchura/en profundidad Aleatoriamente Ninguno de estos criterios (en ocasiones contradictorios) garantiza por si solo hallar la solucin siguiendo el camino ms eciente, por lo que por lo general se suele utilizar una combinacin de criterios. Habitualmente se utiliza metaconocimiento en forma de metareglas (reglas sobre el uso de las reglas) para hacer mas eciente la resolucin y para cambiar la estrategia de resolucin de conictos dinmicamente.
89
Servir(juan,cubata)?
Objetivo
El ciclo de ejecucin del motor de inferencias se acabar en el momento en el que se haya obtenido el objetivo deseado, ya no haya ms reglas que aplicar o se hayan cubierto todos los objetivos que se hayan planteado durante la resolucin del problema.
90
Algoritmo 9.1 Razonamiento hacia adelante Procedimiento: Razonamiento Hacia Adelante Entrada: Base de hechos, Base de reglas, Objetivos Alternativas cierto mientras o(o Objetivos o Base_de_hechos) Alternativas hacer Conjunto_Conicto Interprete.Antecedentes_satisfactibles(Base_de_hechos, Base_de_reglas) si Conjunto_Conicto = entonces Regla Estrategia_Control.Resolucion_Conictos(Conjunto_Conicto) Interprete.Aplicar(Base_de_hechos, Regla) sino Alternativas falso
complemento a estas estrategias existen mtodos de razonamiento que utilizan una combinacin de las dos (estrategias hbridas ) para intentar obtener las ventajas de cada una y reducir sus inconvenientes.
Parafraseando, esta regla nos dice que cuando tenemos un conjunto de hechos y estos hechos forman parte del antedecente de una expresin condicional, podemos deducir el consecuente como un hecho mas de nuestro razonamiento. El algoritmo 9.1 es una implementacin de su funcionamiento. El mayor inconveniente de esta estrategia de razonamiento es que el razonamiento no se gua por el objetivo a conseguir, sino que se obtienen todas las deducciones posibles ya sean relevantes o no para conseguirlo. Esto implica un gran coste computacional a la hora de resolver un problema ya que se hace mas trabajo del necesario para obtener el objetivo. Esto signica que la estrategia de resolucin de conictos es bastante importante a la hora de dirigir la exploracin del problema. De hecho, para hacer eciente este mtodo es necesario metaconocimiento y la capacidad para dirigir el ujo de razonamiento mediante las propias reglas. Otro problema computacional es el detectar las reglas que se pueden disparar en un momento dado, pues requiere computar todas la coincidencias posibles entre hechos y antecedentes de reglas. Este problema se puede resolver de manera eciente mediante el denominado algoritmo de Rete. Este algoritmo permite mantener y actualizar todas las coincidencias entre hechos y antecedentes, de manera que se puede saber ecientemente si una regla se cumple o no. Las ventajas de este tipo de razonamiento, vienen del hecho de que, es ms natural en muchos dominios expresar el razonamiento de esta manera y, por lo tanto, es ms fcil plantear reglas que resuelvan problemas mediante esta estrategia.
9.5 Las reglas como lenguaje de programacin Algoritmo 9.2 Razonamiento hacia atrs Procedimiento: Razonamiento Hacia Atrs Entrada: Base de hechos, Base de reglas, Objetivos Alternativas cierto mientras Objetivos = Alternativas hacer Objetivo Estrategia_Control.Escoger_Objetivo(Objetivos) Objetivos.Quitar(Objetivo) Conjunto_Conicto Interprete.Consecuentes_satisfactibles(Objetivo, Base_de_reglas) si Conjunto_Conicto = entonces Regla Estrategia_Control.Resolucion_Conictos(Conjunto_Conicto) Objetivos.Aadir(Regla.Extraer_antecedente_como_objetivos()) sino Alternativas falso
91
Este tipo de razonamiento tambin es adecuado en problemas en los que no exista un objetivo claro a alcanzar y lo que se busque sea explorar el espacio de posibles soluciones a un problema.
92
programacin declarativa y programacin lgica. En estos lenguajes los programas solamente denen las condiciones que debe cumplir una solucin mediante un formalismo lgico y es el mecanismo de demostracin el que se encarga de buscarla explorando las posibilidades. La mayora de estos lenguajes no son lenguajes declarativos puros e incluyen mecanismos y estructuras que pueden encontrarse en otros paradigmas, pero an as la losofa de programacin es bastante diferente y requiere un cambio en la manera de pensar. En este tipo de lenguajes la asignacin no existe y la comunicacin entre reglas se realiza mediante la unicacin de las variables que se utilizan. Estas variables no se pueden ver como las que se usan en programacin imperativa ya que su valor lo toman durante el proceso de prueba de deduccin al comparar hechos y condiciones y realizar su unicacin. Por lo tanto no son lugares donde nosotros vayamos poniendo valores, los toman cuando es adecuado para demostrar el problema. En estos lenguajes la recursividad tiene un papel fundamental a la hora de programar. Todas estas caractersticas pueden parecer una limitacin expresiva, pero en realidad no lo son y la potencia expresiva de estos lenguajes es la misma que la de los lenguajes imperativos. Existen dominios de aplicacin en los que estos estilos de programacin son ms adecuados que los lenguajes imperativos, la inteligencia articial es uno de ellos. Ejemplo 9.2 El clculo del factorial es un ejemplo clsico, podemos denir cuales son las condiciones que debe cumplir un nmero para ser el factorial de otro. Sabemos que hay un caso trivial que es el factorial de 1. Podemos declarar el predicado que asocie a 1 con su factorial fact(1,1). Para calcular que un nmero es el factorial de otro lo nico que tenemos que hacer es especicar las condiciones para que han de cumplirse. Por ejemplo: si =(X, X1+1) y fact(X1,Y1) y =(Y,Y1*X) entonces fact(X,Y) Parafraseando podramos leer esta regla como que si hay un X que sea X1 + 1 y el factorial de X1 es Y1 y hay un Y que sea Y1*X entonces el factorial del X ser Y. Supondremos que el predicado = es un predicado especial que unica el primer parmetro con el segundo. Podemos plantearnos la pregunta de cual es el factorial de 3, o sea si existe un valor Z asociado al predicado fact(3,Z). Mediante el mecanismo de razonamiento hacia atrs podremos averiguar cual es el valor de Z. Renombraremos las variables cada vez que usemos la regla para evitar confusiones. fact(3,Z) segn la regla se puede descomponer en tres subobjetivos =(3,X1+1), fact(X1,Y1),=(Z,Y1*3) Evidentemente X1 se unicar con 2 en la primera condicin quedndonos fact(2,Y1),=(Z,Y1*3) Volveremos a descomponer el problema segn la regla =(2,X1+1), fact(X1,Y1),=(Y1,Y1*2),=(Z,Y1*3) Ahora X1 se unicar con 1 fact(1,Y1),=(Y,Y1*2),=(Y,Y1*3) Sabemos por los hechos que fact(1,1) =(Y1,1*2),=(Z,Y1*3) Y1 se unicar con 2 =(Z,2*3) Z se unicar con 6 obteniendo la respuesta Z=6 Esto puede parecer la manera habitual con la que calculamos el factorial en un lenguaje imperativo, pero el paradigma declarativo tiene mayor versatilidad, porque sin cambiar el programa podramos preguntar por ejemplo cual es el nmero que tiene como factorial 6 (fact(X,6)) o incluso que nos calcule todos los factoriales que existen (fact(X,Y)). El mecanismo de deduccin nos hallar la
93
respuesta a todas estas preguntas. En un lenguaje imperativo deberamos escribir un programa para responder a cada una de ellas. Utilizando un mecanismo de razonamiento hacia adelante tambin podramos obtener el mismo clculo, en este caso ni siquiera necesitamos de un objetivo, si ponemos en marcha el motor de inferencias obtendremos tantos factoriales como queramos: =(X,X1+1), fact(X1,Y1),=(Y,Y1*X) Instanciando X1 a 1 e Y1 a 1 con el hecho fact(1,1) obtendremos el nuevo hecho fact(2,2) =(X,X1+1), fact(X1,Y1),=(Y,Y1*X) Instanciando X1 a 2 e Y1 a 2 con el hecho fact(2,2) obtendremos el nuevo hecho fact(3,6) ... El lenguaje de programacin lgica por excelencia es PROLOG. Es un lenguaje en el que el mecanismo de razonamiento que se sigue es hacia atrs. Esto hace que cuando se programa en este lenguaje se deba pensar que se ha de descomponer el problema mediante el formalismo de reglas en problemas mas simples que estarn declarados como hechos. Existen otros lenguajes de reglas que utilizan motores de inferencia hacia adelante como por ejemplo CLIPS. En este caso la losofa de programacin es diferente, ya que estamos explorando para encontrar la solucin. Las reglas se ven como elementos reactivos que se disparan en funcin del estado del problema y que van construyendo los pasos que llevan a la solucin. Esto obliga a que, si se quiere seguir un camino especco de resolucin, haya que forzarlo aadiendo hechos que lleven el control de la ejecucin.
94
10
Representaciones estructuradas 10.1 Introduccin
El lenguaje de la lgica debera permitir representar cualquier conocimiento que quisiramos utilizar en un problema. No obstante su capacidad para expresar conocimiento se ve entorpecida por la dicultad que supone utilizar su lenguaje para formalizar conocimiento. Esta dicultad la podramos comparar con la diferencia que existe entre programar en lenguaje mquina o usar un lenguaje de programacin de alto nivel. El lenguaje de la lgica se encuentra a demasiado bajo nivel como para permitir representar de manera sencilla las grandes cantidades de conocimiento necesarias para una aplicacin prctica. Es por ello que se crearon las representaciones estructuradas como lenguajes que se acercan ms a como estamos nosotros acostumbrados a utilizar y describir el conocimiento. Estas representaciones solucionan muchos problemas de representacin y hacen mas fcil la adquisicin de conocimiento. No obstante son restricciones del lenguaje de la lgica de predicados, por lo que no pueden representar cualquier conocimiento.
95
96
posee
Perro
es_una
Persona
vive_en
Mascota
Casa
Figura 10.1: Ejemplo de red semntica
Por ejemplo, el UML o los diagramas de entidad relacin puede verse como un notaciones de red semntica especializadas, que permiten describir entidades especializadas, ya sea qu elementos componen una aplicacin y como se relaciones entre ellos, o como se describe una base de datos. Sobre estas notaciones se dene de manera precisa el signicado de cada uno de los elementos para permitirnos hacer diferentes inferencias a partir del diagrama. Sobre la representacin bsica (grafo de conceptos y relaciones) se pueden denir mecanismos de razonamiento que permiten responder a cierto tipo de preguntas, como por ejemplo: Cierta pareja de conceptos est relacionada entre si? Qu relaciona dos conceptos? Cual es el concepto ms cercano que relaciona dos conceptos? La evolucin de las redes semnticas ha ido aadindoles nuevas caractersticas que permiten una mejor estructuracin del conocimiento, distinguiendo, por ejemplo, entre conceptos/instancias/valores o entre relaciones/propiedades. Tambin han enriquecido la semntica de las relaciones para poder hacer inferencias ms complejas, como, por ejemplo, creando relaciones que indiquen taxonoma (clase/subclase/instancia). Veremos todas estas caractersticas en la siguiente seccin.
10.3 Frames
Los frames evolucionaron a partir de las redes semnticas y se introdujeron a partir de 1970. Estructuran el formalismo de las redes semnticas y permiten una denicin detallada del comportamiento de los elementos que se denen. Por un lado un concepto (frame ) es una coleccin de atributos (slots ) que lo denen y estos tienen una serie de caractersticas y restricciones que establecen su semntica (facets ). Una relacin conecta conceptos entre s y tambin tiene una serie de caractersticas que denen su comportamiento. De entre las relaciones que se pueden denir se establecen como especiales las relaciones de naturaleza taxonmica (clase/subclase, clase/instancia, parte/subparte, ...). Estas permiten establecer una estructura entre los conceptos (Clases/subclases/instancias) permitiendo utilizar relaciones de
10.3 Frames
Persona
Slots:
Nombre
Dominio: ... Rango: ...
97
Ser Vivo
es_un es_un
Mascota
es_un
F.Nacimiento:
Dominio: ... Rango: ...
Casa
instancia_de
Persona
instancia_de
Perro
instancia_de
Metodos:
funcion edad() retorna entero
vive_en
icasa33 ipersona18
posee
iperro14
generalizacin/especializacin y herencia de atributos como sistema bsico de razonamiento2 . Estos elementos denen la parte declarativa de la representacin. A partir de ellos se puede razonar sobre lo representado y hacer preguntas sobre los conceptos. El mecanismo de razonamiento se basa en la denominada lgica de la descripcin (Description Logics ). Esta lgica3 es una restriccin de la lgica de predicados que permite describir y trabajar con descripciones de conceptos. Su principal inters es que dene algoritmos ecientes de razonamiento sobre deniciones y propiedades. Su principal hndicap es que esta eciencia se obtiene a costa de no permitir formalizar ciertos tipos de conceptos como por ejemplo negaciones o conceptos existenciales. Este hndicap hace que muchas implementaciones de este formalismo de representacin incluyan mecanismos procedimentales que permitan obtener de manera eciente deducciones que no se pueden obtener mediante razonamiento. Estos procedimientos permiten resolver problemas concretos en la representacin de manera ad-hoc. Bajo estos mecanismos procedimentales caen lo que se denominan mtodos que son procedimientos o funciones que pueden invocar los conceptos o las instancias (al estilo de la orientacin a objetos) y los demons que son procedimientos reactivos que se ejecutan cuando se dan ciertas circunstancias en la representacin. En la gura 10.2 se puede ver un ejemplo de frame. En la gura 10.3 se puede ver una red de frames representando conceptos, instancias y diferentes relaciones. La herencia es el principal mecanismo de razonamiento sobre valores y propiedades que se utiliza en los frames. La herencia es un mecanismo que puede resultar problemtico por la circunstancia de que un atributo o valor podra ser heredado por diferentes caminos si permitimos que un concepto pueda ser subclase de varias superclases. Esta herencia mltiple puede hacer que no sepamos que valor o denicin de una propiedad es la correcta4 . Este problema a veces se puede resolver razonado sobre la representacin e identicando qu deniciones de una propiedad ocultan a otras y cul es la ms cercana a donde queremos obtener el atributo o su valor. Para ello se dene el algoritmo de distancia inferencial que permite saber si existe o no una denicin que oculta a las dems. El algoritmo es el siguiente: 1. Buscar el conjunto de frames que permiten heredar el valor del slot Candidatos 2. Eliminar de Candidatos todo frame que sea padre de otro de la lista
2 El sistema de representacin es muy parecido al que se utiliza en orientacin a objetos, de hecho se crearon en la misma poca, aunque los elementos esenciales provienen de las redes semnticas, que son una dcada anteriores. 3 De hecho son mltiples lgicas que se diferencian por el nivel de expresividad que se permite. 4 Estos problemas hacen que por ejemplo lenguajes como java no permitan la herencia mltiple.
98
Vuela=si Ave
esun esun
Vuela=no Gallina
Ave Domstica
instanciade
instanciade
Gertrudis
Figura 10.4: Ejemplo de frames 3. Si el nmero de candidatos es: a ) 0 No se puede heredar el slot b) 1 Ese es el valor que buscamos c ) > 1 Problema de herencia mltiple si la cardinalidad del slot no es N En ocasiones un problema de herencia mltiple se puede resolver ad-hoc usando los mecanismos procedimentales de la representacin. Ejemplo 10.1 Podemos observar el problema de la herencia mltiple en la gura 10.4. La instancia podra tener simultneamente el valor si y no para el atributo vuela ya que puede encontrar un camino de herencia para cada uno de ellos. En este caso el algoritmo de distancia inferencial empezara con la lista que contendra {Gallina, Ave} como frames candidatos a dar el valor del slot. El frame Ave se eliminara al ser ascendiente de Gallina, lo cual nos dejara con el frame del que debemos heredar el slot. La mayora de los entorno para desarrollo de aplicaciones en inteligencia articial poseen como parte del lenguaje una parte que permite representar conocimiento utilizando un mecanismo similar a los frames, aunque muchas veces aparece directamente como un lenguaje orientado a objetos con caractersticas adicionales. Veremos uno de estos lenguajes dentro del entorno de CLIPS. Tambin hay lenguajes de frames que no tienen parte procedimental incorporada y por lo tanto son implementaciones del lenguaje de la lgica de descripcin. Un ejemplo de este tipo de lenguajes son los utilizados en la web semntica. Estos lenguajes se construyen sobre XML y denen los elementos bsicos para crear conceptos, caractersticas y relaciones, el lenguaje que actualmente se utiliza es OWL (Ontology Web Language)5 .
10.3 Frames
99
Los conceptos se formarn a partir de propiedades y mtodos, y se denirn a partir de la construccin frame, que tendr la siguiente sintaxis: Frame <nombre> slot <nombre-slot> slot <nombre-slot> ... slot <nombre-slot> mtodos accin <nombre-mtodo> (parmetros) [H/noH] ... funcin <nombre-mtodo> (parmetros) devuelve <tipo> [H/noH]
Slots Un slot es un atributo que describe un concepto. Cada slot puede ir acompaado de modicadores (facets ) que denirn las caractersticas del slot. Un slot puede ser redenido en un subconcepto, por lo que puede volver a aparecer con caractersticas distintas que ocultan la denicin anterior. Estos modicadores permiten denir la semntica y el comportamiento del atributo e incluyen: Dominio: Conceptos que pueden poseer este slot Rango: Valores que puede tener el slot Cardinalidad: si se admite un nico valor o mltiples valores Valor por omisin: Valor que tiene el slot si no se le ha asignado ninguno Uso de demons: Procedimientos que se ejecutarn si sucede un evento en el slot, estos procedimiento no tiene parmetros ya que no se pueden llamar explcitamente. Deniremos cuatro tipos de eventos que pueden suceder: If-needed (al consultar el slot) if-added (al asignar valor al slot), if-removed (al borrar el valor) if-modified (al modicar el valor) Comportamiento en la herencia: Si el slot se puede heredar a travs de las relaciones. La sintaxis que utilizaremos para denir un slot ser la siguiente: Slot <nombre> ++ dominio (lista de frames) ++ rango <tipo-simple> ++ cardinalidad (1 o N) valor (valor o lista de valores) demons <tipo-demon> accion <nombre-accion> / funcin<nombre-funcion> devuelve <tipo>* herencia (por rels. taxonmicas: SI/NO; por rels. usuario: SI/NO)
100
Los facets (propiedades) marcados con ++ son obligatorios en toda descripcin de slot. Las acciones/funciones asociadas a los demons de los slots no tienen parmetros. Usan la variable F como referencia implcita al frame al cual pertenece el slot que activa el demon. Los demons de tipo if-needed solo pueden estar asociados a funciones. Para la herencia, distinguiremos dos tipos de relaciones, las taxonmicas, que son las que denen la estructura entre los conceptos y estarn predenidas y las relaciones de usuario que son las que podremos denir nosotros. La herencia a travs de cada tipo se comporta de manera diferente. La herencia a travs de las relaciones taxonmicas es de denicin, de manera que si un concepto hereda un slot ste se encontrar fsicamente en las instancias que creemos. La herencia a travs de las relaciones de usuario es de valor, de manera que si un concepto hereda un slot solo podremos obtener su valor en una instancia del concepto, si existe una relacin con una instancia que posea ese slot y la relacin nos permite heredarlo. Consideraremos que por omisin tendremos herencia a travs de la relaciones taxonmicas y no la tendremos a travs de las de usuario. Mtodos Los mtodos sern procedimientos o funciones que permitirn realizar un clculo concreto a partir de una clase o una instancia. Estos mtodos de clase podrn hacer clculos a partir de todas las instancias a las que tenga acceso a travs de sus relaciones. Pueden ser heredables o no, ya que algunos casos podra tener sentido la herencia del mtodo en sus subclases o instancias como una especializacin de este. Los mtodos se invocan de manera explcita, por lo que podrn tener parmetros. Las acciones/funciones que describen los mtodos usarn la variable F como referencia implcita al frame en el que se activa el mtodo, y por ello no se ha de pasar como parmetro6 . Relaciones Las relaciones permiten conectar conceptos entre si, deniremos su comportamiento a partir de un conjunto de propiedades: Dominio: Conceptos que pueden ser origen de la relacin. Rango: Conceptos que pueden ser destino de la relacin. Cardinalidad: Nmero de instancias del rango con las que podemos relacionar una instancia del dominio. Inversa: Nombre de la relacin inversa y su cardinalidad. Transitividad: Si es transitiva entre instancias. Composicin: Como se puede obtener con la composicin de otras relaciones. Uso de demons: Procedimientos que se ejecutarn si sucede un evento en la relacin, estos procedimiento no tiene parmetros ya que no se pueden llamar explcitamente. Deniremos dos tipos de eventos que pueden suceder: If-added: Si establecemos la relacin entre instancias If-removed: Si eliminamos la relacin entre instancias
6
10.3 Frames
101
Slots heredables: Slots que se pueden heredar a travs de esta relacin (solo el valor). Dado que las relaciones se denen bidireccionales, asumiremos que los slots se heredan en el sentido que corresponda, o sea, del frame en el que esta denido el slot al que lo debe heredar. La sintaxis para denir relaciones es la siguiente: Relacin <nombre> ++ dominio (lista de frames) ++ rango (lista de frames) ++ cardinalidad (1 o N) ++ inversa <nombre> (cardinalidad: 1 o N) transitiva SI/NO [por defecto es NO] compuesta NO/<descripcin de la composicin> [por defecto es NO] demons (<tipo-demon> accin <nombre-accin> herencia (lista de slots) [por defecto es lista vaca]
Los descriptores marcados con ++ son obligatorios en toda descripcin de relacin. Las acciones asociadas a los demons de las relaciones no tienen parmetros. stos usan las variables D y R como referencia implcita al frame origen y destino de la conexin que se est intentando aadir o eliminar entre los dos frames. Respecto a la transitividad, para que podamos tener una relacin transitiva su dominio y rango han de poder ser transportables entre instancias. Esto quiere decir que o el dominio y el rango de la relacin estn denidos sobre instancias de un mismo frame, o que en el rango y el dominio de la relacin aparecen frames comunes. Por supuesto esto no es suciente para que una relacin sea transitiva, es necesario que la semntica de la relacin lo permita. Respecto a la composicin, para que una relacin sea compuesta la semntica de la relacin ha de corresponder al resultado de la aplicacin de dos o mas relaciones. Esto quiere decir que no es suciente con que encontremos una cadena de relaciones entre una pareja de frames, esta cadena ha de signicar lo mismo que la relacin que estamos deniendo. Como se ha comentado en el apartado sobre los slots, se distinguen dos tipos de relaciones. Por un lado estn las taxonmicas, que estn predenidas y se limitan a es-un e instancia-de. La primera de ellas es una relacin entre clases y la segunda entre instancias y clases. Por otro lado estn las relaciones de usuario, que solo podrn ser entre instancias. Sintaxis y elementos predenidos La expresin <nombre-frame>.<nombre-relacin> nos dar el frame (si la cardinalidad es 1) o la lista de frames (si la cardinalidad es N) con los cuales esta conectado a travs de la relacin <nombre-relacin>. Para consultar la cardinalidad se puede usar una funcion predenida card(<nombre-frame>.<nombre-relacin>). Tendremos predenidas las siguientes relaciones taxonmicas: Relacin es-un (inversa: tiene-por-subclase) transitiva SI Relacin instancia-de (inversa: tiene-por-instancia) composicin: instancia-de es-un Usaremos un arco para unir todas las relaciones es-un de un conjunto de subclases (ver gura 10.5) para indicar que las subclases son una particin completa del dominio, es decir, que no existen otras subclases que las denidas y que toda instancia debe pertenecer a una de esas subclases. Tambin supondremos que disponemos de las siguientes funciones booleanas predenidas:
102 Cosas
Animal
Vegetal
Mineral
Figura 10.5: Subclasicacin completa de un concepto <slot>?(<frame>) Nos dice si <frame> posee este slot o no (activando la herencia si hace falta) <relacin>?(<frame>) Nos dice si <frame> esta conectado con algn otro frame a travs de la relacin indicada por la funcin <relacin>?(<frame-o>,<frame-d>) Nos dice si existe una conexin entre <frame-o> y <frame-d> etiquetada con la relacin indicada por la funcin
11
Ontologas 11.1 Introduccin
El estudio de la representacin del conocimiento no es exclusivo de la inteligencia articial, sino que es un tema que se origina desde el primer momento en el que el hombre se plante el entender y describir el mundo en el que se encuentra. A este rea estudio se la encuadra dentro de la losofa y fue Aristteles quien acu el trmino Categora como la palabra para describir las diferentes clases en las que se dividan las cosas del mundo. A este rea de la losofa se la conoce actualmente como ontologa, trmino relativamente moderno (s. XIX) que proviene del griego Ontos (Ser) y Logos (Palabra), literalmente las palabras para hablar de las cosas. Este trmino se empez a utilizar para distinguir el estudio de la categorizacin del ser de la categorizacin que se hacia por ejemplo en biologa. De hecho el trabajo de categorizacin surge en muchas reas de la ciencia (losofa, biologa, medicina, lingstica, ...). La inteligencia articial es una ms de las reas interesadas en este tema. El objeto de estudio de la ontologa son las entidades que existen en general o en un dominio y como se pueden agrupar de manera jerrquica en una categoras segn sus diferencias y similaridades. El resultado de este estudio es lo que denominamos una ontologa. Una ontologa se puede denir formalmente como: Una ontologa es un catlogo de los tipos de cosas que asumimos que existen en un dominio D desde la perspectiva de alguien que usa un lenguaje L con el propsito de hablar de D. Los elementos de una ontologa representan predicados, constantes, conceptos y relaciones pertenecientes a un lenguaje L cuando se usa para comunicar informacin sobre D. (Sowa, 1999) Otras deniciones menos formales podran ser: Una ontologa es la denicin de los trminos bsicos y relaciones que comprenden el vocabulario de un dominio y las reglas para poder combinarlos y denir extensiones a ese vocabulario. (Neches, 1991) Una ontologa es una especicacin formal de una conceptualizacin compartida. (Borst, 1997) 103
104
Una ontologa es pues un vocabulario, un conjunto de trminos y expresiones que escogemos para representar una realidad, a travs del cual comunicarnos con otras entidades que la compartan. Un ejemplo evidente de ontologa es el diccionario de una lengua. Un diccionario es la recopilacin de todas las palabras que usan los hablantes de un idioma para comunicarse. El diccionario es el conjunto de los trminos que comparten los hablantes al referirse a la realidad. Cada palabra en el diccionario tiene descritas sus diferentes caractersticas de manera que los hablantes sepan como deben utilizarse y su signicado. De hecho los diccionarios como descripcin del conocimiento del dominio lingstico son un elemento clave en la construccin de sistemas de tratamiento de lenguaje natural y habitualmente tienen una organizacin ms estructurada de la que estamos acostumbrados a ver. Lo que queda denido en una ontologa se puede ver como una representacin declarativa de un dominio. El uso, las maneras de combinar estos elementos y la obtencin de informacin a partir de las expresiones formadas con los elementos de las ontologas pasa a travs de la lgica. La lgica se puede ver como un mecanismo de manipulacin/ejecucin que por s misma no habla explcitamente sobre un dominio especco. Podemos ver que sus expresiones son neutras respecto al signicado de sus tomos y predicados, es su combinacin con una ontologa lo que le da a un formalismo lgico la capacidad de expresar signicados, por ejemplo: P Q P Q Este razonamiento no habla sobre nada en concreto salvo que asignemos signicados a los tomos (P = llueve, Q = me mojo). A partir del momento en el que ligamos los tomos con los conceptos de la ontologa estamos diciendo cosas y razonando sobre el dominio de esa ontologa. El mismo razonamiento hablara de algo distinto si cambiramos la ontologa que dene el signicado de los tomos.
11.3 Desarrollo de una ontologa 3. Hacen que nuestras suposiciones sobre el dominio se hagan explcitas
105
Escribir una ontologa exige la formalizacin al mximo detalle de todos los elementos del dominio y su signicado y hacer explcitas todas las suposiciones que se van a utilizar. Esto facilita reexionar sobre l y poder analizar las suposiciones realizadas para poder cambiarlas y actualizarlas de manera ms sencilla. Tambin ayuda a que otros puedan analizar y entender su descripcin. 4. Separan el conocimiento del dominio del conocimiento operacional Permite hacer independientes las tcnicas y algoritmos para solucionar un problema del conocimiento concreto del problema. De hecho una ontologa es una descripcin declarativa del dominio, de manera que no asume una metodologa especca de utilizacin del conocimiento. 5. Permiten analizar el conocimiento del dominio Una vez tenemos una especicacin del conocimiento podemos analizarlo utilizando mtodos formales (para comprobar si es correcto, completo, consistente, ...)
Deberemos saber qu elementos queremos que aparezcan en la ontologa que vamos a desarrollar, por lo que debemos identicar qu parte del dominio nos interesa describir. Dependiendo del objetivo de uso de la ontologa los trminos que debern aparecer pueden ser muy diferentes, por lo que es importante tenerlo claro. Una forma adecuada de saber qu elementos debemos representar es plantearnos que tipo de preguntas y respuestas deseamos de la ontologa. Es lo que se denomina preguntas de competencia. Tambin es interesante plantearse quin va a usar y mantener la ontologa. No ser lo mimo desarrollar una ontologa restringida que vamos a utilizar en nuestra aplicacin, que desarrollar una ontologa de un dominio amplio que pretendemos reusar o que reusen otros. Ejemplo 11.1 Supongamos que necesitamos una ontologa para representar el funcionamiento de una facultad y todos los elementos que estn relacionados con ella. Dependiendo del uso que vayamos a darle a la ontologa necesitaremos unos conceptos u otros. Si queremos utilizar la ontologa para recomendar a un alumno de qu nuevas asignaturas se puede matricular el prximo cuatrimestre, seguramente necesitaremos describir que es una asignatura, como se organizan el plan de estudios y en los ciclos del plan de estudio, que temas tratan, cual es su carga de trabajo, posiblemente tambin nos interese guardar informacin histrica sobre ella. Adems necesitaremos representar que es un expediente, que es una convocatoria, que es un horario, ... Si en cambio nos interesa hacer un programa que permita dialogar con un estudiante de bachillerato para responder sus dudas sobre como funciona la facultad tendremos que poner nfasis en otras caractersticas, como cual es la organizacin del plan de estudios, que rganos componen la facultad, que normativas se aplican, que temas se tratan en la carrera, que departamentos hay y cual es su funcin, que trmites tiene que realizar para matricularse, cual es el proceso de ese trmite, de que equipamientos dispone la facultad, ... Podemos formular un conjunto de cuestiones de competencia que queremos que nuestra ontologa sea capaz de responder, para el primer dominio de aplicacin, por ejemplo: Qu asignaturas son prerrequisito de otra? Cul es la carga de laboratorio de la asignatura Criptografa? De qu asignaturas optativas me puedo matricular despus de hacer Inteligencia Articial? Que horarios de maana tiene la asignatura Compiladores? De qu asignaturas de libre eleccin se puede matricular un alumno de fase de seleccin? Cuantas asignaturas del perl Tcniques avanades de programaci me quedan por hacer? A partir de estas preguntas podemos, por ejemplo, ver qu necesitamos denir el concepto asignatura, que tendr diferentes especializaciones por varios criterios, estas tendrn relaciones de precedencia, estarn asociadas a perles, una asignatura tendr diferentes tipos de carga de trabajo que se medir en crditos, ...
107
Las ontologas se construyen para comunicar conocimiento en dominios, por lo que se construyen con la idea de comparticin y reutilizacin. Se supone que una ontologa establece un vocabulario comn, por lo que no es nada extrao que ya alguien haya estudiado el dominio y creado ese vocabulario. Por lo tanto, no es necesario rehacer un trabajo que ya esta hecho, si existe una ontologa sobre el dominio en el que trabajamos, podemos incorporarla. En la ltima seccin de este captulo enumeraremos proyectos de ontologas que pueden ser el punto de partida desde el que podemos desarrollar una ontologa para nuestro dominio en particular. 3. Enumerar los trminos importantes en la ontologa Escribir una lista de trminos que podemos usar para referirnos a nuestro dominio, elaborando frases que podramos utilizar para preguntarnos cosas sobre l o para explicar a alguien informacin sobre l. Deberemos pensar en: Qu propiedades tiene esos trminos? Qu nos gustara decir sobre ellos? El objetivo de esta fase es tener una visin informal de los conceptos y elementos que necesitaremos tener en cuenta para formalizar el dominio. Ejemplo 11.2 Siguiendo con el ejemplo de la ontologa de la facultad, tendramos que recolectar todos los trminos que vamos a usar en la ontologa: asignatura, horario, aula, prerrequisito, perl, crdito, tema, departamento, convocatoria, ... 4. Denir las clases y su jerarqua Los conceptos no aparecen desvinculados entre s y de hecho un conjunto desorganizado de conceptos no es til, por lo que deberemos descubrir su estructura y sus relaciones de generalizacin y especializacin. Podemos tomar diferentes aproximaciones De arriba a abajo: Denimos los conceptos mas generales y vamos especializndolos De abajo a arriba: Denimos las clases ms especcas y vamos agrupndolas segn propiedades comunes, generalizando Combinacin de ambas: Denimos los conceptos mas importantes y especializamos y generalizamos para completar la ontologa Ninguno de estos mtodos es esencialmente mejor y depende en gran medida del dominio. Existen dominios en los que es fcil descubrir los conceptos generales y se ha de trabajar para obtener las especializaciones ms tiles o adecuadas. Hay dominios en los que es ms fcil razonar a partir de conceptos especcos y hay que buscar una manera coherente y til de organizarlos. Muchas veces es la experiencia en la construccin de ontologas la que nos hace decidirnos por una metodologa u otra. Este paso y el siguiente estn estrechamente relacionados y es muy difcil hacer primero uno y luego el otro. Por lo general se realizan iterativamente en varios ciclos. Ejemplo 11.3 Por ejemplo podemos denir una clasicacin para el concepto asignatura como el que aparece en la gura 11.1
108
Captulo 11. Ontologas As. Obligatoria 1er ciclo As. Obligatoria As. Obligatoria 2o ciclo Asignatura As. Optativa
As. Libre Eleccin Figura 11.1: Jerarqua del concepto asignatura 5. Denir las propiedades de las clases Debemos describir la estructura interna de las clases, esta depender de la semntica que queremos que tenga. Deberemos determinar una lista de caractersticas que describen esa semntica y en que clases concretas debemos poner esas caractersticas. La eleccin de estas propiedades puede depender del dominio de aplicacin, restringindolas a solo las necesarias o podemos desarrollar la ontologa con una visin ms amplia para que esta pueda ser utilizada en otros dominios de aplicacin. En la descripcin de los conceptos nos podemos encontrar muchos tipos de propiedades Propiedades descriptivas, cualidades Propiedades identicadoras, nombres Partes u otras relaciones taxonmicas Relaciones con instancias de otras clases Desde un punto de vista de la descripcin de clases, las relaciones se pueden ver al mismo nivel que las propiedades y de hecho muchos lenguajes de descripcin de ontologas no hacen la distincin. Bsicamente, podramos considerar una propiedad a aquel atributo cuyo valor es un tipo predenido (booleano, numrico, carcter, ...) y una relacin sera una propiedad en la que los elementos son de la ontologa. Junto con la determinacin de cuales son las propiedades necesarias, estas deberan asignarse a clases de la jerarqua de conceptos. Lo normal es asignar las propiedades a la clase mas general, dejando que el resto las obtengan va herencia. Ejemplo 11.4 Siguiendo con el ejemplo, podramos denir las caractersticas y relaciones que representan una asignatura incluyendo: Nombre, Crditos_Totales, Crditos_de_Teora, ..., con_tema, impartida_por_departamento, perteneciente_al_perl, ... 6. Denir las caractersticas de las propiedades Para describir las propiedades deberemos identicar tambin sus caractersticas y restricciones, entre estas podemos tener: Cardinalidad (nmero de valores permitidos) Tipo, valores
11.3 Desarrollo de una ontologa Valores por defecto Obligatoriedad Si es una relacin hay que denir su cardinalidad y su rango y si tiene inversa.
109
Ejemplo 11.5 Podemos denir las caractersticas de las propiedades de asignatura, por ejemplo el Nombre es una cadena de caracteres y es un atributo obligatorio, los Crditos_Totales es un nmero real, impartida_por_departamento sera una relacin entre asignatura y el departamento que la imparte con cardinalidad 1 y con una relacin inversa con cardinalidad N, ... 7. Crear instancias La ontologa supone un lenguaje de denicin que utilizaremos para hablar de elementos concretos. En este caso los elementos concretos son las instancias. Es posible que una ontologa tenga como parte de su denicin un conjunto de instancias que aparecen en cualquier uso que podamos hacer de ella. En este caso este sera el momento de decidir cules son esos individuos y crearlos a partir de las deniciones que hemos determinado. En el momento de usar la ontologa tendremos que crear otras instancias especcas para el problema que vayamos a resolver. Para ello utilizaremos los trminos de la ontologa que hemos desarrollado para crear una representacin del problema. Obviamente, la ontologa nos impone los lmites de lo que podremos representar, pero si hemos desarrollado correctamente la ontologa tendremos el vocabulario necesario. Consejos prcticos Estos son unos consejos prcticos a tener en cuenta a la hora de desarrollar una ontologa: No incluir versiones singulares y plurales de un trmino (la mejor poltica es usar solamente nombres en singular o plural). Estamos creando una terminologa, por lo que es de sentido comn usar un criterio uniforme a la hora de dar nombres a los conceptos que utilizaremos. Es posible que queramos representar individuos y agrupaciones de individuos en nuestro problema, tenemos que tener en cuenta que semnticamente son cosas diferentes y no deberamos usar las mismas palabras. Los nombres no son las clases, debemos distinguir la clase del nombre que le damos. Podemos tener sinnimos, pero todos representan a la misma clase. Es a veces sencillo confundir el nombre de una cosa con la cosa en s. Estamos estableciendo los conceptos que existen en nuestro dominio, los nombres no son entidades independientes. Asegurarnos de que la jerarqua est correctamente construida. Una jerarqua incorrecta afecta a nuestra capacidad para deducir a partir de la ontologa y obtener respuestas correctas a nuestras preguntas. Hemos de pensar que la forma principal de razonamiento en esta representacin es la herencia. Observar las relaciones de transitividad y comprobar si son correctas. La transitividad es un mecanismo importante de deduccin y adems ahorra explicitar en la ontologa muchas relaciones que se pueden deducir va este mecanismo, establecer relaciones transitivas que no lo son solo puede dar problemas. Tambin es una relacin que puede hacer muy ineciente el razonamiento y puede dar lugar fcilmente a una explosin combinatoria, no conviene utilizarla ms de lo necesario.
110
Captulo 11. Ontologas Evitar ciclos en la jerarqua. Obviamente es algo difcil de hacer en una ontologa sencilla, pero si el nmero de clases es grande y permitimos herencia mltiple es algo que hay que vigilar. Todas las subclases de una clase deben estar al mismo nivel de generalidad. Cada especializacin debe llevar a conceptos que tengan el mismo nivel de descripcin. Mezclar conceptos generales y especcos en un mismo nivel hace la ontologa confusa y difcil de interpretar. Tambin puede llevar a deducciones incoherentes. No hay un criterio respecto al nmero de clases que debe tener un nivel de la jerarqua, la experiencia dice que un nmero entre dos y doce es habitual, ms clases indicara que tenemos que estructurarlas aadiendo ms niveles Cuando introducir nuevas clases? Suele ser incmodo navegar por jerarquas o muy planas o muy profundas, se debera elegir un punto intermedio, unas indicaciones seran: Las nuevas clases tienen propiedades adicionales que no tiene la superclase Tienen restricciones diferentes Participan en relaciones diferentes No obstante nos puede interesar crear clases porque existen en el dominio aunque no tengan atributos o relaciones distintas, o porque hacen ms clara la comprensin de la ontologa. Decidir si hemos de usar una propiedad o crear una clase. A veces un atributo es sucientemente importante como para considerar que sus valores diferentes corresponden a objetos diferentes. Decidir donde est el nivel de las instancias. Pensar cual es nivel mnimo de granularidad que necesitamos. Limitar el mbito de la ontologa a las necesidades de representacin. La ontologa no necesita incluir todas las clases posibles del dominio, solo las necesarias para la aplicacin que se va a desarrollar. Tampoco necesitamos incluir todos los atributos/restricciones/relaciones posibles.
111
tratamiento del lenguaje natural. Un ejemplo de este tipo de ontologas es Wordnet que es una ontologa lxica para el idioma ingls. Esta ontologa est organizada segn categoras semnticas y etiquetado con las categoras sintcticas correspondientes a cada palabra. En la actualidad contiene 150.000 palabras inglesas organizadas en 115.000 sentidos. La ontologa est estructurada jerrquicamente mediante la relacin de hiperonimia/hiponimia. esta ontologa esta pensada para aplicaciones de lenguaje natural, pero tambin se pueden utilizar los conceptos y la estructuracin para otras aplicaciones. Se puede ver la estructura de conceptos ms generales en la gura 11.3. En la actualidad existen versiones de esta ontologa para muchos idiomas y se utiliza ampliamente en muchas aplicaciones que involucran la comprensin del lenguaje natural. Dentro de los proyectos de ontologas existen algunos que intentan crear una ontologa de los conceptos mas generales que se deberan utilizar en la construccin de ontologas. El objetivo de estas ontologas no es pues recolectar todos los conceptos de un dominio, sino dar los conceptos bajo los cuales estos deberan estar organizados. Este tipo de ontologas se denominan Upper Model y no existe de momento ninguna ontologa de este tipo que sea ampliamente aceptada. De hecho desde el punto de vista terico hay argumentos a favor y en contra de que exista o se pueda construir una ontologa de este tipo. Dentro de este tipo de proyectos cae Generalized Upper Model. Es una ontologa lxica pensada para tratamiento del lenguaje natural que posee alrededor de 250 conceptos. Se puede ver la estructura de conceptos en la gura 11.4. Tambin existen multitud de ontologas para dominios especcos. Por ejemplo, en comercio electrnico existen ontologas estndar denidas por organismos internacionales para la clasicacin y nomenclatura de productos y servicios que se utilizan para el intercambio de informacin. Otro dominio con mltiples ontologas es la medicina, rea que destaca por aplicaciones donde hay grandes necesidades de almacenamiento e intercambio de informacin, y que necesita nomenclaturas muy especcas. Otras reas con ontologas muy utilizadas incluyen la ingeniera, el mundo empresarial o la qumica. El inters por construir ontologas se ha visto impulsado en la actualidad por el proyecto Semantic Web. La ambicin de este proyecto es el desarrollo de un lenguaje de ontologas que permita describir el contenido de las pginas de web para que puedan ser procesadas de manera automtica. Actualmente el contenido de la web est pensado para ser accedido por personas, el contenido est poco estructurado, est en lenguaje natural y el lenguaje de representacin est mas pensado para el formato del contenido que para su descripcin. Los lenguajes de descripcin de contenido para la web se construyen a partir del lenguaje XML. El primero de ellos fue RDF/RDFS (Resource Description Format/Resource Description Format Schema) que permite denir categoras y relaciones aunque est bastante limitado como lenguaje de representacin. Sobre este lenguaje se construyeron DAML (Darpa Agent Markup Language) y OIL (Ontology Inference Layer), resultado de proyectos sobre web semntica en Estados Unidos y Europa respectivamente. Estos lenguajes denen las caractersticas necesarias para tener un lenguaje de descripcin de ontologas y, de hecho, se pueden ver como ontologas de dominio que denen el vocabulario necesario para representar conocimiento. Estos dos lenguajes se fusionaron y el lenguaje resultante se llama OWL (Ontology Web Language) que es un estndar del W3C. Este lenguaje se basa en lgica de descripcin y tiene diferentes versiones: OWL lite, OWL DL y OWL full. La primera es la menos expresiva, pero garantiza que se puede razonar sobre el en tiempo nito. La segunda se permite representar expresiones en lgica de descripcin sin limitaciones, pero no asegura poder resolver cualquier expresin en tiempo nito. Para la ltima versin no hay implementaciones de razonadores que puedan tratarla.
112
113
12
Introduccin a los SBC 12.1 Introduccin
Un tema esencial en el rea de Inteligencia Articial es la resolucin de problemas. Ya hemos visto en temas anteriores de la asignatura mtodos generales que a partir de una representacin del problema basada por ejemplo en el espacio de estados o en el de soluciones y un conjunto de operadores especcos, se exploraba este espacio en busca de una solucin al problema. Este tipo de mtodos no utilizaban apenas conocimiento del dominio del problema que intentaban solucionar y se guiaban por funciones heursticas generales que se basaban en unas pocas caractersticas del problema. Estas funciones heursticas intentaban guiar la eleccin del camino solucin ordenando los pasos accesibles durante la exploracin. La capacidad para generar el orden adecuado en la exploracin es lo que permita reducir en la prctica su coste computacional. Evidentemente, las decisiones que se pueden tomar a partir de los valores de una funcin heurstica a veces no son sucientemente buenas para reducir sensiblemente el espacio de bsqueda o, simplemente, es imposible encontrar una funcin heurstica adecuada. Este tipo de mtodos generales se utilizaron como mtodos bsicos de resolucin de problemas en los primeros aos de la Inteligencia Articial ya que permitan su aplicacin de forma relativamente sencilla a cualquier dominio. Se pudo comprobar que el coste computacional de este tipo de mtodos era prohibitivo en muchos problemas reales y que hacan falta otras metodologas que mejoraran su eciencia. El elemento a introducir para conseguir esta eciencia es el conocimiento especco del dominio del problema a resolver. Este conocimiento puede acelerar el proceso de resolucin al mejorar las decisiones que se toman. Los mtodos generales son denominados mtodos dbiles frente a los que denominaremos mtodos fuertes , que explotarn el conocimiento del dominio. El uso de conocimiento particular har que estos mtodos necesiten ms trabajo de desarrollo a la hora de aplicarlos y que la experiencia de usarlos en un problema no sea exportable directamente a otros problemas, ya que estar orientada al problema concreto que se resuelve. El principal exponente de estos mtodos que se basan en conocimiento especco del dominio son los que se denominaron en su origen sistemas expertos (expert systems ) y que actualmente son conocidos tambin como sistemas basados en el conocimiento (knowledge based systems). Originalmente, el trmino sistema experto intentaba reejar que el objetivo que se tena al construir este tipo de sistemas era emular la forma de resolver problemas de un experto humano en un rea especca de conocimiento. Todava se siguen utilizando de manera indistinta las dos denominaciones, pero el trmino sistemas expertos se suele asociar ms a sistemas construidos a partir de conocimiento de expertos humanos, basados fundamentalmente en sistemas de reglas de produccin y suelen ser sistemas cerrados donde, en el dominio del problema, el aprendizaje y la adaptacin no son prioritarios. El trmino sistemas 115
116
basados en el conocimiento pretende ser mas general, incluyendo cualquier sistema en el que se utilice conocimiento independientemente de su procedencia (procesos de ingeniera del conocimiento, aprendizaje automtico) y la metodologa o arquitectura de diseo que se utilice (razonamiento basado en reglas, razonamiento basado en casos, modelos cualitativos, agentes inteligentes, redes neuronales, ...), las aplicaciones pueden incluir la necesidad de adaptacin y aprendizaje.
117
Extensibilidad, ya que es ms sencillo ampliar el conocimiento del sistema si podemos estructurarlo de manera independiente. Modicabilidad, ya que es ms fcil detectar errores y modicar el conocimiento, permitiendo probar cada mdulo de manera independiente del mecanismo de resolucin. Independencia, ya que es posible utilizar diferentes estrategias de resolucin para un mismo conocimiento. 2. Incorporar conocimiento heurstico El conocimiento que se introduce en un SBC est basado en el conocimiento de un experto. Este conocimiento es de naturaleza heurstica (incompleto, aproximado, no sistemtico) en contraste con el conocimiento algortmico, en el que tenemos a priori determinado el curso de la resolucin y el resultado esperado. Esta resolucin basada en el conocimiento experto hace que se parezca ms a como los expertos humanos resuelven problemas. sta es tambin una diferencia fundamental respecto a los sistemas software convencionales en los que no existe esta componente heurstica. 3. Permitir Interactividad a diferentes niveles Este tipo de sistemas necesitarn interactuar tanco con los expertos humanos, como con otros sistemas basados en el conocimiento o como con su entorno. Esta interaccin ayudar en el curso de la resolucin, obteniendo la informacin que el sistema encuentre que es necesaria para continuar. A la vez, tambin deber ser capaz de explicar su lnea de razonamiento y revelar el porqu de las elecciones que realiza durante la resolucin. Esto ltimo juega un doble papel, primero el justicar las decisiones tomadas (permite dar conanza en los resultados) y segundo permitir el detectar problemas en el conocimiento que tiene el sistema. Todas estas caractersticas hacen de los sistemas basados en el conocimiento un paradigma de la combinacin de las diferentes reas de la Inteligencia Articial. En estos sistemas necesitaremos: Representacin del conocimiento: Este conocimiento incluir tanto la descripcin de las caractersticas del dominio, como el conocimiento de resolucin de problemas, la representacin del control de la resolucin, las heursticas, ... Razonamiento e inferencia: La combinacin de los datos del problema para llegar a la resolucin se realizar como un proceso de razonamiento. Este razonamiento no solo se basar en la lgica clsica, sino que tendr que utilizar otro tipo de lgicas que permitan, por ejemplo, el razonamiento bajo premisas incompletas, razonamiento ante incertidumbre en el conocimiento y en los pasos de resolucin, razonamiento temporal, sobre otros, ... Bsqueda y resolucin de problemas: Las tcnicas de resolucin basadas en razonamiento tendrn que complementarse con tcnicas de bsqueda heurstica. Interaccin con el usuario: Mediante lenguaje natural para preguntar, generar explicaciones. Aprendizaje: Para adquirir el conocimiento del dominio de forma automtica, adquisicin de nuevo conocimiento o capacidades, aprendizaje de los errores, ...
118
inters viene del alto coste que supone acceder a personal experto ya que por lo general es escaso y su formacin es cara. Detallando las razones, podemos decir que la necesidad proviene de: Poder disponer del conocimiento de expertos altamente cualicados. Los expertos son caros y no siempre los hay disponibles. La formacin de nuevos expertos solo sirve a largo plazo. Es vital disponer de un sistema que posea el conocimiento del experto y permita usarlo. Poder ayudar a otros expertos/no expertos. A veces es suciente con tener personas que puedan utilizar estos sistemas como soporte a sus decisiones o estos sistemas pueden servir para entrenar y completar la formacin de otros expertos. Poder preservar el conocimiento de los expertos. El poder preservar de alguna manera el conocimiento que han adquirido los expertos es importante. Por un lado por el conocimiento en si, ya que puede seguir utilizndose para tomar decisiones, por otro, por que ese conocimiento ayudar a otros expertos en su formacin. Poder combinar el conocimiento de varios expertos. En la construccin de estos sistemas se combina el conocimiento de diferentes fuentes de informacin, entre ellas, grupos de expertos. De esta manera el sistema tiene una visin ms amplia y se benecia de la combinacin de conocimientos. Poder disponer de sistemas que permitan dar soluciones rpidas y justicadas. La automatizacin del proceso de resolucin permite que la respuesta a los problemas pueda ser ms rpida. El proceso de razonamiento se puede estudiar y justicar de una manera ms able. Poder tratar grandes volmenes de informacin. En muchas reas el volumen de informacin involucrada en los problemas a solucionar supera la capacidad de los expertos, de manera que la automatizacin del proceso es necesaria para su resolucin efectiva. Poder disponer de sistemas que tomen decisiones autnomas. Ciertos problemas no necesitan constantemente una supervisin por parte de expertos y algunas decisiones se pueden dejar al sistema para reducir su dependencia.
119
El problema est bien estructurado? Para que sea posible tratar el problema hemos de poder identicar sus elementos y hemos de poder formalizar tanto el conocimiento necesario, como los procedimientos de resolucin. De hecho, el proceso de construccin del SBC requerir una formalizacin de todos los elementos del problema. Puede resolverse el problema por mtodos tradicionales? Si el problema tiene una solucin algortmica o matemtica y no involucra ningn proceso de razonamiento cualitativo o heurstico es innecesario desarrollar un SBC para resolverlo. Existen expertos disponibles y cooperativos? El construir este tipo de sistemas necesita la colaboracin completa de expertos en el problema. Estos han de comprender la tarea y el objetivo del SBC y cooperar en la labor de formalizacin del conocimiento. Al ser el conocimiento el elemento fundamental del sistema, la dicultad de acceder a l hace imposible la labor de desarrollo. Est el problema bien dimensionado? Esta restriccin es clave en cualquier proyecto informtico. La complejidad de la tarea no ha de ser tal que se necesiten formalizar grandes cantidades conocimiento para resolverlo, ha de ser sucientemente restringido para ser manejable y poderse terminar la tarea con xito.
120
Problemtica de la validacin: El proceso de validacin de una base de conocimiento es muy costoso. El mayor problema reside en la posibilidad de que haya inconsistencias en el sistema1 . Tambin es muy costoso probar la completitud del sistema.
Probar que un conjunto de axiomas es inconsistente es semidecidible. Dice la leyenda que el sistema super a los expertos prediciendo vetas de mineral no descubiertas por los expertos. 3 Digital Equipment Corporation fue una de las empresas pioneras en la fabricacin de ordenadores, fue absorbida
121
las necesidades del cliente. Este sistema evitaba errores en los envos de los sistemas asegurndose de que todos los elementos requeridos fueran enviados reduciendo las posibilidades de error, lo cual ahorr una buena cantidad de dinero a la compaa. La dcada de 1980 marca el inicio de la carrera de la construccin de sistemas expertos en prcticamente cualquier dominio de aplicacin. Su capacidad para resolver problemas tanto de diagnstico, como de clasicacin, monitorizacin, supervisin, prediccin, diseo, ... han hecho que su construccin se cuente por miles. Durante la dcada de 1990 estos sistemas se han ido diversicando tambin en las metodologas aplicadas para su construccin pasando de ser construidos bsicamente mediante sistemas de produccin a utilizar tcnicas provenientes de la inteligencia articial distribuida como los agentes inteligentes, usar tcnicas de razonamiento basado en casos (Case Based Reasoning) o tcnicas de aprendizaje automtico como las redes neuronales. Esta diversicacin ha generalizado su concepcin y se ha rebautizado a estos sistemas como sistemas basados en el conocimiento (Knowledge Based Systems). Tambin se han desarrollado nuevas tcnicas para el tratamiento de la incertidumbre que se han incorporado en estos sistemas como por ejemplo las redes bayesianas y el razonamiento difuso. El aprendizaje est empezando a tener gran importancia como por ejemplo en la fase de adquisicin del conocimiento, de manera que se pueden construir sistemas que resuelvan problemas a partir de ejemplos presentados por los expertos y el sistema puede construir su programacin a partir de ellos. En la actualidad los sistemas basados en el conocimiento desempean multitud de tareas tanto especializadas, como cotidianas.
122
13
Arquitectura de los SBC 13.1 Introduccin
En este captulo vamos a describir los diferentes elementos de los que se compone la arquitectura de un sistema basado en el conocimiento. Esta arquitectura puede variar dependiendo de las tcnicas de inteligencia articial que se utilicen, pero existen un conjunto de bloques generales que aparecern siempre. La arquitectura de estos sistemas est pensada para poder cumplir las capacidades que se esperan de un sistema basado en el conocimiento, principalmente: Que sea capaz de resolver problemas a partir de informacin simblica Que aplique mtodos de razonamiento y resolucin heursticos Que sea capaz de explicar los resultados y el proceso de razonamiento Que sea capaz de interactuar con el entorno y pueda ser interrogado Para cumplir estas caractersticas necesitamos al menos los siguientes elementos en un SBC: Un subsistema de almacenamiento del conocimiento Un subsistema de uso e interpretacin del conocimiento Un subsistema de almacenamiento del estado del problema Un subsistema de justicacin e inspeccin de las soluciones Un interfaz de comunicacin con el entorno y/o el usuario Adicionalmente se puede incorporar capacidad de aprendizaje mediante observacin del entorno, que dara lugar a la necesidad de un subsistema de aprendizaje. En la gura 13.1 se puede ver una representacin de sus relaciones. Los tres primeros subsistemas se pueden agrupar en el subsistema de razonamiento, que ser el encargado de construir la solucin del problema. El conocimiento y la forma en la que funcionan estos subsistemas dependen bastante de las tcnicas que se usen para la representacin del conocimiento y la resolucin de problemas. Nosotros nos centraremos en dos tipos: Sistemas basados en reglas de produccin (Rule Based Reasoning) Sistemas basados en casos (Case Based Reasoning) 123
124
125
La expresividad del formalismo de reglas de produccin nos permitir representar conocimiento de diferente naturaleza que puede ser necesario para un dominio, principalmente: Conocimiento deductivo (estructural): Este conocimiento nos permitir describir los procesos de resolucin de problemas del dominio a partir de cadenas de deduccin. Conocimiento sobre objetivos (estratgico): Este conocimiento orientar la resolucin del problema y permitir plantear la forma de resolver problemas a alto nivel. Conocimiento causal (de soporte): Este conocimiento permite aadir la posibilidad de realizar explicaciones sobre los procesos de deduccin llevados a cabo para solucionar un problema o interrogar al sistema sobre la consecuencia de suposiciones (what if) Habitualmente los lenguajes de reglas que se utilizan para implementar este conocimiento permiten organizarlo de manera estructurada para facilitar el desarrollo. Entre las facilidades mas comunes se encuentra la divisin del conocimiento en mdulos. Estos permiten agrupar las reglas en bloques de alto nivel que tengan sentido en el dominio del problema. Esta posibilidad de estructurar las reglas permite una mejor organizacin y encapsulamiento del conocimiento, facilitando el desarrollo, prueba y depuracin. Precisamente esta organizacin en mdulos de las reglas permite la expresin del conocimiento sobre objetivos ya mencionado. Este conocimiento se describe mediante reglas denominadas metareglas. Estas reglas describen conocimiento de alto nivel que no se reere a problemas especcos del dominio, sino a estrategias o metodologas de resolucin de problemas propias del dominio. Mediante las meta-reglas se pueden desarrollar mecanismos de resolucin mas potentes de lo que permiten las reglas que expresan conocimiento deductivo y reducir el coste computacional de la resolucin de problemas. El mayor problema de las meta-reglas es que son mas difciles de adquirir a partir del experto ya que representan conocimiento de un nivel mayor de abstraccin. Las meta-reglas se pueden clasicar dependiendo de su nivel de intervencin en el proceso de resolucin: Meta-reglas sobre reglas: Se usan para activar o desactivar reglas dentro de un mdulo o dar prioridad a las reglas que se activan Metarreglas sobre mdulos: Afectan a la forma en la que se hace la bsqueda dentro del mdulo, a la forma de tratamiento de la incertidumbre, al tipo de conclusiones, ... Metarreglas sobre estrategias: Deciden sobre la ordenacin de activacin de los mdulos de reglas, tratamiento de excepciones, ... Metarreglas sobre planes de actuacin: Cambian las diferentes estrategias de resolucin de problemas de alto nivel que pueda haber
126
adecuadas y escoger la regla a aplicar en cada paso de la resolucin. Esta eleccin depender directamente de la estrategia de resolucin de conictos que tenga implementada o del conocimiento de control expresado mediante las meta-reglas. Al ser el motor de inferencia el mecanismo bsico de resolucin del sistema la capacidad y eciencia en la resolucin de problemas depender totalmente de l.
13.2.5 Aprendizaje
Habitualmente las aplicaciones que se crean para solucionar problemas en un dominio estn acotadas y delimitan el conjunto de problemas que se pueden resolver. Esto es adecuado en muchos dominios, pero otros requieren que el sistema sea capaz de aprender a resolver nuevos problemas o adaptar su comportamiento al entorno.
127
Hay diversas maneras de abordar el problema del aprendizaje en un SBC. Si partimos de un sistema basado en reglas, una posibilidad es el poder crear o corregir reglas del sistema cuando se detectan fallos en las soluciones. Para ello es necesario un proceso de razonamiento que detecte en que parte de la solucin aparece el problema. Otra posibilidad es que el sistema sea capaz de crear sus propias reglas de control analizando las trazas de las resoluciones que ha obtenido. En estas trazas se puede detectar en qu puntos el mecanismo de resolucin perdi el objetivo y fue necesario replantear la estrategia de resolucin. Creando nuevas reglas de control se puede evitar esta prdida de tiempo en futuras resoluciones. Este tipo de aprendizaje se conoce como aprendizaje basado en explicaciones. Otras posibilidades de aprendizaje aparecen en dominios en los que es difcil obtener directamente reglas de produccin por la complejidad de la tarea a resolver. En estos dominios se intenta aprender un modelo de la tarea a resolver. Este modelo por lo general se construye por observacin de ejemplos de soluciones de la tarea. A partir de estos ejemplos se construye una generalizacin que permitir resolver los tipos de problemas que describen los ejemplos. Este modelo puede consistir en un conjunto de reglas que describe la tarea u otro formalismo equivalente. Las tcnicas utilizadas caen dentro de lo que se denomina aprendizaje inductivo
128
Re
Caso Aprendido Nuevo Caso
cu
pe ra
ci n
ten
Re
ci
Revi
sin
Caso Resuelto
3. Fase de revisin: Evaluamos la solucin recuperada y la adaptamos al caso particular, evaluando su resultado. Esta revisin puede necesitar un proceso de razonamiento. 4. Fase de retencin: Evaluamos si es til guardar la informacin de la nueva solucin obtenida para poder solucionar nuevos problemas. La gura 13.2 muestra las fases grcamente. Este ciclo de resolucin encaja con los elementos de la arquitectura general que hemos visto.
eu
so
Caso Revisado
129
13.3.5 Aprendizaje
El proceso de aprendizaje en estos sistemas es mas sencillo y natural, ya que simplemente se ha de aadir a la base de casos el nuevo caso y su solucin. La ventaja respecto a los sistemas basados en reglas es que no se ha de tocar el conocimiento que ya tiene el sistema. La decisin de aadir un nuevo caso debe ser evaluada por el sistema teniendo en cuenta lo similar que sea a casos ya existentes. El objetivo es completar la visin que se tiene del dominio, as que nuevos casos sucientemente diferentes de los conocidos son importantes. Tambin es posible plantearse la posibilidad de olvidar casos que tengan poca utilidad eliminndolos de la base de casos.
130
interaccin mas natural con el usuario (interfaz en lenguaje natural). Debera permitir: Introducir los datos del problema a resolver Preguntar sobre el estado interno: Sobre la resolucin (explicaciones, reglas utilizadas, hechos), sobre suposiciones alternativas (what if), sobre el estado de la memoria de trabajo Preguntar al usuario: sobre hechos, peticin de conrmaciones, ... En sistemas complejos un SBC no tiene por que interactuar solamente con usuarios humanos sino que puede colaborar con otros SBC para realizar su tarea. Esto hace necesario establecer primitivas de comunicacin a travs de las cuales se puedan hacer preguntas. Existen lenguajes de comunicacin entre SBC estandarizados que denen las comunicaciones que se pueden realizar y su semntica. Estos lenguajes suponen que existe una ontologa de dominio comn entre los SBC que interactan que permiten que el contenido de las comunicaciones sea comprendido por ambas partes.
131
ent2
La asociacin entre entradas y salidas se realiza mediante tcnicas de aprendizaje automtico. A la red de neuronas se le van presentando ejemplos solucionados y, mediante algoritmos adecuados, las neuronas de la red van quedando en un estado que describe la asociacin entre problemas y soluciones. Este periodo de aprendizaje, tambin llamado entrenamiento es la parte mas compleja y requiere escoger adecuadamente el conjunto de ejemplos y el nmero de veces que se presentan a la red. Los principales inconvenientes de las redes neuronales son el no disponer de una descripcin explcita de la resolucin y en consecuencia no poder dar una justicacin en trminos que pueda comprender un experto. No obstante, los mtodos conexionistas se usan con gran xito en muchas aplicaciones.
132
consecuencias de las acciones que se pueden realizar en el problema y razonar sobre el comportamiento del sistema. Este tipo de modelado se acercara a lo que se considera razonamiento del sentido comn y que permitira obtener soluciones a problemas sin tener que entrar la complejidad del funcionamiento real del problema. Un ejemplo de este tipo de metodologa es la denominada fsica naf (nave physics ), en la que se pretende incluir informacin del sentido comn en el razonamiento sobre los fenmenos fsicos.
133
Agente
Estado
Sensores
Percepcin
Entorno
Mecanismo de decisin
Actuadores
Accin
Los agentes inteligentes aportan una exibilidad al desarrollo de sistemas basados en el conocimiento que no permiten otras metodologas. Cada uno de los elementos que forma parte de la comunidad se puede reorganizar para resolver otros problemas, de manera que se puede reaprovechar lo desarrollado a la manera de la programacin a partir de componentes, pero con la ventaja de la capacidad de razonamiento que incluye cada agente. Esto se puede llevar todava mas all si es el propio agente el que busca y recluta a otros agentes que le permitan resolver partes de su problema que l por s solo no puede resolver. El desarrollo de internet est ntimamente relacionado con los agentes inteligentes y tiene reas de inters comn con por ejemplo los sistemas Grid o los servicios web.
14
Desarrollo de los SBC 14.1 Ingeniera de sistemas basados en el conocimiento
El punto clave del desarrollo de un sistema basado en el conocimiento es el momento de traspasar el conocimiento que posee el experto a un sistema real. En este proceso no slo se han de captar los elementos que componen el dominio del experto, sino que tambin se han de adquirir las metodologas de resolucin que utilizan stos. Este trabajo de extraccin del conocimiento se realiza durante la interaccin entre dos personajes, el ingeniero del conocimiento (persona que conoce el formalismo de representacin que utilizar el SBC) y el experto (persona que posee el conocimiento, pero que no tiene por que usar un formalismo para representarlo). Todo este proceso ha de encajarse en las metodologas de desarrollo de software y adaptarse a las caractersticas especcas que tienen los sistemas basados en el conocimiento. Como cualquier otro desarrollo de software el desarrollo de sistemas basados en el conocimiento puede hacerse siguiendo las metodologas existentes de ingeniera de software, adaptndolas a las diferentes particularidades que estos tienen. En las siguientes secciones describiremos brevemente diferentes metodologas de ingeniera de software que se pueden utilizar.
136
tif en Id
al
ua c
io
ac ic
Ev
io n
Prueba Mantenimiento
Figura 14.4: Metodologas de ingeniera de software Mantenimiento: Se corregirn los posibles errores que se descubran durante el funcionamiento del sistema y se aadirn las modicaciones necesarias para cumplir nuevas capacidades que se pidan al sistema Las desventajas de esta metodologa son que ni el desarrollador, ni el usuario nal pueden hacerse una idea del resultado nal hasta que el sistema sea completado y que el usuario nal no puede utilizar ningn elemento del sistema hasta el nal de proyecto.
na
lis n io
rm Fo ul ac
is
137
Al igual que otros sistemas software, los sistemas basados en el conocimiento tiene el objetivo de crear soluciones computacionales a problemas, por ello el desarrollo de estos sistemas es parecido al del software convencional. Sin embargo, hay diferencias que hay que tener en cuenta. La primera de ellas es el tipo de conocimiento que se representa. En los sistemas software habituales se implementan procedimientos algortmicos bien conocidos y de uso comn, al contrario que en los sistemas basados en el conocimiento, que involucran conocimiento incompleto, impreciso y de naturaleza heurstica que es conocido nicamente por un limitado conjunto de expertos. Este conocimiento debe ser transferido de estos expertos a una solucin software, este proceso es denominado adquisicin del conocimiento (Knowledge Elicitation). Por lo general, el sistema que utiliza el ingeniero del conocimiento para obtener el conocimiento del experto es el de entrevistas. Durante estas entrevistas el ingeniero ha de ayudar al experto a sistematizarlo, consiguiendo que vaya explicitando el conocimiento del dominio y las diferentes tcnicas que utiliza para resolver los problemas que deberamos incluir en nuestro sistema. Con esto pretendemos transformar este conocimiento de manera que se puedan representar en un formalismo computable. Este proceso de extraccin del conocimiento es bastante lento y costoso. Varias son las dicultades que hacen que este proceso sea tan costoso: La naturaleza especializada del dominio hace que el ingeniero del conocimiento deba aprender unas nociones bsicas de ste para que pueda establecerse una comunicacin efectiva con el experto (vocabulario bsico, elementos que intervienen en el dominio, formalismos que utilizan los expertos, etc.). La bsqueda de un formalismo de representacin que se adapte adecuadamente al problema y que sea fcil de interpretar y adoptar por el experto. Este formalismo ha de ser susceptible de ser transformado en algo computable. Los expertos se encuentran ms cmodos pensando en trminos de ejemplos tpicos que razonando en trminos generales, que son de los que realmente se podra hacer una mejor abstraccin. Por lo general, a los expertos les es muy difcil explicitar los pasos que utilizan para resolver los problemas. Es lo que se ha denominado paradoja del experto. Cuanta ms experiencia, menos explcitos son los razonamientos del experto y ms ocultos los mtodos de resolucin. Si observamos como un experto resuelve un problema, ste omite muchas cadenas de razonamiento e informacin que da por supuestas, y a las que no asigna importancia dentro de la resolucin, pero que son necesarias si se quiere abordar el problema de manera sistemtica. Con todas estas circunstancias, podemos observar que la autntica dicultad de la extraccin del conocimiento estriba en descubrir los mtodos mediante los que se usa el conocimiento en la resolucin y no tanto en la adquisicin del conocimiento esttico del problema (elementos del problema y relaciones) Sobre la adquisicin de los elementos bsicos del dominio, existen bastantes herramientas automticas, encuadradas dentro del rea del aprendizaje automtico (Machine Learning), que permiten reducir el esfuerzo. La segunda diferencia es la naturaleza y la cantidad del conocimiento. En los sistemas software tradicionales es posible estimar estas dos cualidades de manera sencilla, en los sistemas basados en el conocimiento sto es mucho ms difcil. Incluso para los expertos en el dominio es difcil hacer esta evaluacin, lo que complica el calcular el esfuerzo necesario para desarrollar el sistema. Esta dicultad puede hacer que sea complicado obtener un diseo adecuado en las fases iniciales del proyecto pudiendo suceder que durante el proceso de desarrollo se descubra que alguno de los elementos decididos no son realmente adecuados para resolver el problema. Esto puede llevar a tener que decidir entre continuar el desarrollo sabiendo que ese problema tendr consecuencias en las fases
138
Evaluacion
Diseo Final
restante o empezar de nuevo el proyecto. La manera mas adecuada para minimizar este problema es el uso de tcnicas de desarrollo incremental y de prototipado rpido (rapid prototyping). Ests tcnicas son bastante populares en el desarrollo de sistemas basados en el conocimiento y estn favorecidas por los lenguajes utilizados en este tipo de problemas (PROLOG, LISP, CLIPS, ...) que permiten la construccin rpida de un prototipo funcional del sistema nal. Este prototipo recoger un subconjunto de las funcionalidades del sistema y permitir observar la idoneidad de las decisiones. En el ciclo de vida de este tipo de desarrollo, las fases de anlisis y especicacin deben realizarse teniendo en cuenta el sistema completo, pero el diseo e implementacin se realizan de una manera mas preliminar y reduciendo las necesidades. Esto permite disponer de un sistema funcional que puede ser evaluado para obtener una valoracin de las decisiones tomadas. A partir del prototipo inicial se puede aplicar la metodologa de desarrollo incremental. Esta metodologa se basa en la divisin de problemas y el desarrollo iterativo, de manera que se va completando el sistema aadiendo nuevos mdulos y funcionalidades. Esto permite tener un sistema funcional durante todo el desarrollo.
139
general sobre el problema a partir de las fuentes disponibles para poder tomar las decisiones adecuadas. 4. Prototipo inicial y evaluacin: El prototipo inicial debe tener las caractersticas de la aplicacin completa pero su cobertura del problema debe estar limitada. Este prototipo debe permitirnos poder evaluar las decisiones tomadas. Esto hace necesario obtener una cantidad de conocimiento suciente para evaluar la forma escogida de representarlo y utilizarlo. El objetivo es poder detectar los errores que hayamos podido cometer en el diseo preliminar para poder corregirlos en esta fase. 5. Diseo nal: En esta fase debemos tomar las decisiones nales con las que vamos a continuar el desarrollo del sistema, las herramientas y recursos a usar y, sobre todo, la forma de representar el conocimiento. Se debe tambin hacer un diseo de la estructura de la aplicacin que nos permita un desarrollo incremental. 6. Implementacin: En esta fase debemos completar la adquisicin del conocimiento necesaria para desarrollar el sistema completo. En esta fase debemos aplicar la metodologa de desarrollo incremental implementando cada uno de los mdulos de la aplicacin. 7. Validacin y vericacin: Se ha de validar el sistema construido y vericar que cumpla las especicaciones del problema. La validacin de estos sistemas es mas compleja que en los sistemas software convencionales dada la naturaleza de los problemas que se resuelven. 8. Ajustes de diseo: Puede ser necesaria cierta realimentacin del proceso y la revisin y ajuste de algunas decisiones tomadas en sus fases anteriores, pero no debera suponer grandes cambios de diseo, ya que el prototipo inicial nos debera haber permitido eliminar los posibles errores en el diseo inicial. 9. Mantenimiento: Esta fase es similar a la que se realizara en el desarrollo de un sistema de software convencional.
140 MIKE
MIKE (Model-Based and Incremental Knowledge Engineering) es otra metodologa tambin basada en el ciclo de vida en espiral. Este ciclo esta compuesto por cuatro fases que se repiten: adquisicin del conocimiento, diseo, implementacin y evaluacin. La fase de adquisicin del conocimiento comienza con un proceso de extraccin del conocimiento del que se obtiene un modelo semiformal del conocimiento necesario a partir de entrevistas con los expertos, este modelo es denominado modelo de adquisicin. A partir de esta descripcin semiformal del conocimiento se crea un modelo formal que describe todos los aspectos funcionales y no funcionales del sistema, este modelo es denominado modelo de estructura. A partir de este modelo se realiza un proceso de formalizacin y operacionalizacin que utiliza un lenguaje especializado (KARL, Knowledge acquisition representation language) que combina una descripcin conceptual del sistema con una especicacin formal. Este ltimo modelo es la entrada de la fase de diseo en la que se tienen en cuenta los requisitos no funcionales y se genera un nuevo modelo mediante otro lenguaje especializado (DesignKARL) en el que se describe el sistema de manera mas detallada. Este diseo es el que pasar a la fase de implementacin en el que se plasmar el sistema. Finalmente se realizar la fase de evaluacin.
14.2.1 Identicacin
En esta fase se ha de determinar, en primer lugar, si el problema se puede o se debe abordar mediante las tcnicas de los SBC. Para que un problema sea adecuado no ha de poder solucionarse de manera algortmica, ya que si se pudiera hacer de ese modo, no tendra sentido iniciar una labor tan costosa. Tambin ha de ser necesario tener acceso a las fuentes de conocimiento sucientes para completar la tarea. Por ltimo, el problema a tratar ha de tener un tamao adecuado para que no constituya una tarea inabordable por su complejidad. El siguiente paso consiste en buscar las fuentes de conocimiento que sern necesarias para el desarrollo del sistema, las ms comunes son:
14.2 Una Metodologa sencilla para el desarrollo de SBC Expertos humanos en el dominio del problema. Libros y manuales que expliciten el problema y tcnicas de resolucin. Ejemplos de casos resueltos.
141
Estos ltimos sern importantes sobre todo en la ltima fase de validacin, pero se pueden usar tambin para utilizar tcnicas de adquisicin automtica del conocimiento y obtener de esta manera los elementos bsicos que intervienen y sus relaciones. Con estas fuentes de informacin se podrn determinar los datos necesarios para la resolucin del problema y los criterios que determinen la solucin, tanto los pasos que permiten la resolucin como su posterior evaluacin. En este momento el ingeniero del conocimiento y el experto podrn realizar una primera descripcin del problema, en sta se especicarn: Los objetivos Las motivaciones Las estrategias de resolucin y su justicacin Las fuentes de conocimiento Los tipos de tareas que son necesarias Este esquema ser el punto de partida para plantear las siguientes fases.
14.2.2 Conceptualizacin
Esta fase pretende obtener una visin del problema desde el punto de vista del experto. Ha de poder permitirnos decidir el conocimiento que es necesario para resolver el sistema y las tareas involucradas para obtener una idea informal del alcance del sistema. Necesitamos conocer cuales son los conceptos que ha de manejar el sistema y sus caractersticas de cara a poder elaborar en la fase siguiente una ontologa que los formalice. Hemos de identicar tambin sus caractersticas y necesidades de inferencia para poder elegir el mtodo de representacin del conocimiento mas adecuado. Esto signica que deberemos aplicar tcnicas de desarrollo de ontologas como un proceso paralelo al desarrollo del sistema basado en el conocimiento. Hay tambin que obtener una descomposicin del problema en subproblemas, realizando un anlisis por renamientos sucesivos hasta que nos podamos hacer una idea de la relacin jerrquica de las diferentes fases de resolucin hasta los operadores de razonamiento ms elementales. Otro elemento necesario es descubrir el ujo del razonamiento en la resolucin del problema y especicar cuando y como son necesarios los elementos de conocimiento. Con esta descomposicin jerrquica y el ujo del razonamiento se pueden caracterizar los bloques de razonamiento superiores y los principales conceptos que denen el problema. Har falta distinguir entre evidencias, hiptesis y acciones necesarias en cada uno de los bloques y determinar la dicultad de cada una de las subtareas de resolucin. De esta manera se conseguir captar la estructura del dominio y las diferentes relaciones entre sus elementos. La manera habitual de realizar estas tareas es la interaccin con el experto. En particular, es necesario observar como resuelve problemas tpicos y abstrae de ellos principios generales que pueden ser aplicados en diferentes contextos. Toda esta labor debera darnos un modelo semiformal del dominio y de los problemas y mtodos de resolucin que se debern incluir en el sistema.
142
14.2.3 Formalizacin
Esta fase ha de darnos una visin del problema desde el punto de vista del ingeniero del conocimiento. Se han de considerar los diferentes esquemas de razonamiento que se pueden utilizar para modelizar las diferentes necesidades de representacin del conocimiento y de resolucin de problemas identicadas en las fases anteriores. Se deber decidir el mecanismo de representacin adecuado y formalizar el conocimiento de manera que podamos crear la ontologa que represente el conocimiento del dominio. En esta fase se detallarn los elementos que forman parte de la ontologa y se iniciar el proceso de su formalizacin. Deberemos decidir tambin la manera ms adecuada de representar los procesos de resolucin identicados. En este punto, se ha de poder comprender la naturaleza del espacio de bsqueda y el tipo de bsqueda que habr que hacer. En este momento se pueden comparar los mtodos de resolucin que aplica el experto en un problema con diferentes mecanismos prototpicos de resolucin de problemas como la clasicacin, abstraccin de datos, razonamiento temporal, estructuras causales, etc. De esta manera decidiremos cuales son los mas adecuados en nuestras circunstancias. En esta etapa tambin tendr que analizarse la certidumbre y completitud de la informacin disponible, dependencias temporales, o la abilidad y consistencia de la informacin. Se deber descubrir qu partes del conocimiento constituyen hechos seguros y cuales no. Para estos ltimos deber elegirse alguna metodologa de tratamiento de la incertidumbre, de manera que sta pueda ser modelizada dentro del sistema.
14.2.4 Implementacin
En esta fase ya se conocern la formas ms adecuadas para la representacin del conocimiento y los mtodos que se adaptan a los mecanismos de resolucin de problemas. Ahora se podrn decidir las herramientas y lenguajes ms adecuados para llevar a cabo la implementacin. Durante esta fase se implementar la ontologa que ha de servir de base para la resolucin del problema el el formalismo de representacin del conocimiento elegido. Decidiremos tambin como encajar la descomposicin de subproblemas de las tareas involucradas en el sistema con las metodologas de resolucin de problemas genricas que habremos identicado en la fase anterior. Una vez validadas o corregidas las decisiones que se han tomado continuaremos con la construccin del sistema aadiendo incrementalmente nuevos mdulos y nuevas funcionalidades. Si procedemos con una metodologa basada en prototipado rpido y desarrollo incremental, deberemos construir un prototipo inicial a partir de una restriccin de las capacidades del sistema. Con las decisiones iniciales podremos construir el conjunto de mdulos necesarios para obtener un prototipo inicial capaz de resolver un subconjunto de problemas y plantearnos las fases del desarrollo incremental.
14.2.5 Prueba
Se ha de elegir un conjunto de casos resueltos representativos y se ha de comprobar el funcionamiento del sistema con estos. Estos casos deberan incluir los utilizados para el diseo del sistema, pero tambin casos nuevos. La validacin de un sistema basado en el conocimiento es ms compleja que en otros sistemas software, dado que estamos implementado resoluciones de problemas de naturaleza heurstica, por lo que es muy difcil determinar la completitud y correctitud del sistema. Esto obligar a realizar futuros mantenimientos o ampliaciones de la aplicacin a medida que se descubran casos en los que el sistema no funcione correctamente. Estos fallos pueden deberse no solo a errores en la implementacin o el diseo, sino tambin a problemas en la formalizacin del conocimiento y de los mtodos de resolucin.
15
Resolucin de problemas en los SBC 15.1 Clasicacin de los SBC
El abordar la construccin de un SBC en cualquier dominio es una tarea difcil, y sera deseable disponer de un conjunto de metodologas de resolucin de problemas que permitieran aproximar soluciones a diferentes tipos de SBC segn sus caractersticas. Con esta idea en mente se han realizado clasicaciones de los SBC segn las tareas que realizan, para intentar descubrir metodologas comunes y as extraer directrices de anlisis en los distintos tipos de dominios. De esta manera, dada una clase de problema dispondramos de: 1. Un conjunto de tareas usuales para cada tipo fciles de identicar. 2. Un conjunto de metodologas de resolucin de problemas especcas para cada tipo. 3. Mtodos de representacin del conocimiento e inferencia adecuados para cada tipo. Originalmente se realiz una primera clasicacin de los SBC atendiendo a las tareas que realizan1 , sta es: Sistemas de Interpretacin: Ineren descripciones de situaciones a partir de observaciones. Sistemas de prediccin: Ineren consecuencias previsibles de situaciones o eventos. Sistemas de diagnstico: Ineren fallos a partir de sntomas. Sistemas de diseo: Desarrollan conguraciones de objetos que satisfacen ciertas restricciones. Sistemas de planicacin: Generan secuencias de acciones que obtienen un objetivo. Sistemas de monitorizacin: Estudian el comportamiento de un sistema en el tiempo y procuran que siga unas especicaciones. Sistemas de correccin: Genera soluciones para fallos en un sistema. Sistemas de control: Gobiernan el comportamiento de un sistema anticipando problemas, planeando soluciones.
1 Esta clasicacin apareci en: F. Hayes-Roth, D. A. Waterman, D. B. Lenat, Building Expert Systems, Addison Wesley, Reading, MA, 1983.
143
144
Esta primera clasicacin, que es la que se utiliz como punto de partida para la identicacin de necesidades para el desarrollo de SBC, plantea varios problemas ya que varias categoras se superponen o estn incluidas en otras. No obstante, da una idea inicial de los rasgos comunes que aparecen entre los distintos dominios en los que tratan los sistemas. Un anlisis alternativo, posterior a ste, permite un tratamiento ms sistemtico de las necesidades de un SBC, ste se basa en las operaciones genricas que puede hacer un SBC respecto al entorno. Se distinguen dos operaciones genricas: Operaciones de anlisis, que interpretan un sistema. Operaciones de sntesis, que construyen un sistema. Estas operaciones se pueden especializar en otras ms concretas dando lugar a una jerarqua de operaciones. Para el caso del anlisis tenemos:
Interpretacin
Identificacin
Prediccin
Control
Monitorizacin
Diagnstico
En este caso, la interpretacin se podra especializar segn la relacin entre los elementos de entrada/salida de un sistema: Identicacin, nos dice que tipo de sistema tenemos. Prediccin, nos dice que tipo de resultado podemos esperar. Control, determina que entradas permiten conseguir la salida deseada. La identicacin se puede especializar para sistemas con fallos en: Monitorizacin, detecta discrepancias de comportamiento. Diagnstico, explica discrepancias. Para el caso de las operaciones de sntesis tenemos:
Construccin
Especificacin
Diseo
Ensamblaje
Configuracin
Planificacin
15.2 Mtodos de resolucin de problemas La especializacin de la construccin se puede realizar en: Especicacin, busca que restricciones debe satisfacer un sistema. Diseo, genera una conguracin de elementos que satisfacen las restricciones. Conguracin, como es la estructura actual del sistema. Planicacin, pasos a realizar para ensamblar la estructura. Ensamblaje, construye un sistema juntando las diferentes piezas.
145
Obteniendo una clasicacin de las diferentes tareas y operaciones que realiza un SBC podemos establecer una correspondencia entre estos y los mtodos de resolucin, y de esta manera facilitar la tarea de anlisis de los dominios.
146
Problema Abstracto
Solucin Abstracta
Refinamiento/ Adaptacin
Abstraccin de datos
Problema Concreto
Solucin Concreta
Figura 15.1: Pasos de la clasicacin heurstica 3. Renamiento de la solucin Haber identicado la abstraccin de la solucin reducir el espacio de bsqueda, ahora ser necesario buscar la mejor solucin determinada por la solucin abstracta. Esto puede necesitar de ms deducciones, o de la utilizacin de ms informacin. De esta manera se debe reducir el espacio de bsqueda hasta encontrar la mejor solucin. En la gura 15.1 se puede ver un esquema del proceso. Dentro de este proceso, un punto importante es la abstraccin de los datos. Tres son las ms utilizadas: Abstraccin denicional: Se deben extraer las caractersticas denitorias del problema y focalizar la bsqueda con stas. Le corresponde al experto decidir cuales son esas caractersticas. Cualitativa: Supone abstraer sobre valores cuantitativos, convirtindolos en cualitativos (e.g.: Fiebre = 39o C = Fiebre = alta). Generalizacin: Se realiza abstraccin sobre una jerarqua de conceptos (e.g.: forma = pentgono = forma = polgono). Se puede ver que esta metodologa de resolucin de problemas capta una gran cantidad de dominios, siendo adecuada para cualquier problema en el que se pueda hacer una enumeracin del espacio de soluciones. Es vlida para todas las tareas de anlisis. Clasicacin heurstica en los sistemas de reglas Por lo general, la construccin de un sistema mediante clasicacin heurstica basado en reglas es una labor iterativa. A los expertos a veces les es difcil dar las reglas que son capaces de realizar la labor de clasicacin, y adems encuentran difcil el formalismo de las reglas. Es proceso de renamiento del sistema ha de hacerse paso a paso, aadiendo nuevas reglas que cubran nuevos casos y vigilando las interacciones. La metodologa que se suele seguir es la siguiente: 1. El experto da las nuevas reglas al IC. 2. El IC cambia la base de conocimiento. 3. El IC prueba casos ya resueltos para comprobar inconsistencias. 4. Si aparecen errores, se comprueba el nuevo conocimiento con el experto y se empieza de nuevo.
15.2 Mtodos de resolucin de problemas 5. Se prueban nuevos casos. 6. Si no hay problemas se para, sino se retorna al principio.
147
Esta labor iterativa se puede realizar de manera independiente para cada uno de los mdulos que componen el sistema, reduciendo de esta manera las interacciones entre diferentes partes del conocimiento. Estrategias de adquisicin del conocimiento con clasicacin heurstica La aplicacin de la clasicacin heurstica a diferentes problemas ha llevado a mtodos que permiten dirigir la explicitacin del conocimiento por parte del experto de una manera ms sistemtica, enfocando la labor de extraccin en cada uno de los elementos que componen las reglas (hiptesis, sntomas, causas, cadenas de inferencia, hechos intermedios, conanza en las evidencias y las asociaciones evidencia-conclusin). El conjunto de conceptos del problema se puede dividir en tres: Las hiptesis: Soluciones posibles a nuestro problema. Los sntomas: Caractersticas que describen las hiptesis Las causas originales: Informacin del problema que lleva a los sntomas Las causas y los sntomas se relacionarn mediante las reglas de abstraccin. De los datos originales obtendremos los valores para el conjunto de caractersticas que describen a los problemas. Los sntomas y las hiptesis se relacionarn mediante las reglas de asociacin heurstica. De las caractersticas que tiene el problema a solucionar deberemos identicar las hiptesis ms probables. En cada conjunto de reglas (reglas de abstraccin, reglas de asociacin heurstica) deberemos observar qu antecedentes estn asociados con que consecuentes. El objetivo es escoger aquellos antecedentes que permitan distinguir mejor los consecuentes, ya que estos pueden tener caractersticas comunes. El objetivo es escribir las reglas que permitan diferenciar mejor a los consecuentes. En este proceso es posible que sea necesario introducir conceptos nuevos (conceptos intermedios) que pueden determinar una cadena de deducciones entre las premisas originales y las conclusiones. Estas cadenas de deducciones pueden ser complejas, dependiendo del problema. Durante el proceso de construccin de las reglas podemos observar tambin la certidumbre de esas asociaciones (conanza con la que los antecedentes permiten deducir los consecuentes), de manera que podamos hacer el tratamiento adecuado. En el caso de las soluciones, si estas corresponden a abstracciones ser necesario determinar las reglas que permiten especializarlas en soluciones concretas. Aplicacin de la clasicacin heurstica Como ejemplo de la tcnica de clasicacin heurstica, vamos a plantear un pequeo SBC para la concesin de crditos bancarios para creacin de empresas. El propsito de este sistema ser examinar las solicitudes de crditos de clientes con pretensiones de crear una empresa, para determinar si se les debe conceder y que cuanta es la recomendable respecto a la que solicitan. El problema que se nos plantea tiene por lo tanto una labor de anlisis que nos ha de predecir la abilidad de si cierta persona, en ciertas condiciones, ser capaz de devolver un crdito si se lo concedemos. El nmero de soluciones a las que podemos llegar es evidentemente nito, el crdito se concede, o no se concede, y en el caso de que se conceda, se decidir si la cuanta solicitada es adecuada o si slo se puede llegar hasta cierto lmite. Todas estas caractersticas indican que la metodologa de resolucin que mejor encaja es la clasicacin heurstica, por lo tanto dirigiremos el planteamiento con las fases que necesita.
148
Deberemos plantear cuatro tipos de elementos que denen el proceso de clasicacin heurstica y los mecanismos para transformar unos en otros. Primero deniremos como se plantearn los problemas al sistema, es decir, qu elementos se correspondern con los datos especcos, las solicitudes de crdito. Esta informacin ha de denir el estado nanciero del solicitante, el motivo por el que pide el crdito, cuanto dinero solicita, etc. Supongamos que una solicitud contiene la siguiente informacin: Si tiene avales bancarios. Si tiene familiares que puedan responder por l. Si tiene cuentas corrientes, casas, coches, ncas, etc. y su valoracin. Si tiene antecedentes de morosidad. Si ha rmado cheques sin fondos. Si tiene crditos anteriores concedidos. Tipo de empresa que quiere crear. Cantidad de dinero que solicita. Esta informacin deber convertirse mediante el proceso de abstraccin de datos en los problemas abstractos a partir de los cuales se har el razonamiento. Podramos decidir que nuestras soluciones abstractas quedan denidas por los siguientes atributos: Apoyo nanciero: Valoracin de la capacidad econmica para responder al valor del crdito que solicita. Este apoyo se puede evaluar con la informacin sobre avales y personas allegadas que puedan responder por l. Bienes: Dinero o propiedades que puedan usarse para responder por el crdito o que se puedan embargar en caso de no devolucin. Fiabilidad de devolucin: Informacin sobre si el cliente tiene antecedentes econmicos positivos o negativos. Compromiso: Informacin sobre si ya se tienen compromisos econmicos con esa persona o si se tienen intereses especiales con ella. Viabilidad de la empresa: Tipo de empresa que se quiere crear y su posible futuro. Supondremos que estos cinco atributos pueden tomar valores cualitativos que estarn dentro de este conjunto: muy bueno, bueno, normal, regular, malo, muy malo. Para realizar la abstraccin de datos se podran dar un conjunto de reglas que haran la transformacin, como por ejemplo: si avales > un milln euros o to rico entonces apoyo nanciero bueno si avales entre 100000 euros y un milln entonces apoyo nanciero normal si avales < 100000 euros entonces apoyo nanciero malo si suma bienes < un milln entonces bienes malo si suma bienes entre uno y dos millones entonces bienes normal
15.2 Mtodos de resolucin de problemas si suma bienes > dos millones entonces bienes bien si cheques sin fondos o moroso entonces abilidad muy mala si fbrica de agujeros entonces viabilidad muy mala si hamburguesera o heladera entonces viabilidad normal si grandes almacenes o proveedor de internet entonces viabilidad muy buena si concedido crdito < 100000 euros entonces compromiso regular si concedido crdito > un milln o hermano del director entonces compromiso bueno
149
El conjunto de soluciones abstractas a las que podra dar el anlisis de las solicitudes podra ser el siguiente: Denegacin, no hay crdito para el cliente. Aceptacin, se acepta el crdito tal como se solicita. Aceptacin con rebaja, se acepta el crdito, pero se rebaja la cantidad solicitada, harn falta reglas para crear la solucin concreta indicando la cantidad nal que se concede. Aceptacin con inters preferente, se concede la cantidad solicitada, pero adems se rebaja el inters que normalmente se pone al crdito, en este caso tambin har falta generar una solucin concreta. Ahora nos faltan las reglas que nos harn la asociacin heurstica entre los problemas abstractos y las soluciones abstractas. Un conjunto de reglas que cubre una pequea parte del espacio de soluciones podra ser: si apoyo nanciero=regular y bienes=malo entonces denegar si abilidad={mala, muy mala} entonces denegar si apoyo nanciero=normal y bienes=normal y viabilidad=buena entonces aceptar con rebaja si apoyo nanciero=bueno y bienes=normal y compromiso=normal y viabilidad=buena entonces aceptar si apoyo nanciero=bueno y bienes=bueno y compromiso=muy bueno y viabilidad=muy buena entonces aceptar con inters preferente Por ltimo, nos hacen falta reglas para poder generar soluciones concretas en los casos que son necesarias, algunas reglas podran ser: si aceptacin con rebaja y peticin > 500000 euros y bienes = 500000 euros entonces rebaja a 500000 euros si aceptacin con inters preferente y peticin > un milln y bienes > un milln entonces rebaja de un 1 % de inters si aceptacin con inters preferente y hermano del director entonces rebaja de un 2 % de inters
150
151
Resolucin
Solucin
Resolucin
Solucin
7. Evaluar el objetivo: Se para si se ha llegado al objetivo nal o se reinicia el proceso. La forma de plantear la solucin del problema puede ser esencial para la eciencia del proceso de resolucin. El planteamiento ms sencillo es denir el problema como una bsqueda en el espacio de soluciones parciales construyendo la solucin paso a paso (secuencialmente). Esta aproximacin puede ser viable si se dispone de un conocimiento exhaustivo sobre como evaluar cada uno de los pasos de la resolucin y se puede dirigir la exploracin rpidamente hacia el camino solucin. Esta aproximacin puede ser poco eciente si el conocimiento para la evaluacin de los pasos de resolucin no es sucientemente buena. Una alternativa es plantear el problema como una descomposicin jerrquica de tareas. El conjunto de operadores permite dividir el problema inicial en problemas de complejidad decreciente hasta llegar al nivel de operaciones primitivas. Esto signica que el conjunto de operadores que permiten solucionar el problema no se ha de limitar a las acciones primitivas, sino que debe incluir aquellos que permiten hacer la descomposicin del problema. Evidentemente esto aumenta el trabajo de adquisicin del conocimiento, pero redunda en un aumento considerable de la eciencia. Mnimo compromiso Un planteamiento alternativo consiste en partir de soluciones completas no ptimas e ir mejorndolas hasta llegar a una solucin mejor, aunque veces se puede partir de una no solucin y corregirla hasta llegar al espacio de soluciones. La bsqueda la realizaramos en el espacio de soluciones completas. Para poder aplicar esta estrategia el problema nos debera permitir hallar fcilmente una
152
Figura 15.3: Planicacin de la trayectoria de un robot solucin inicial completa. La eleccin del operador a aplicar en cada paso de la resolucin la dene la estrategia de mnimo compromiso: mnima modicacin que imponga menos restricciones futuras. La estrategia de resolucin sera la siguiente: 1. Partir de una solucin inicial no ptima, usualmente que satisface las restricciones. 2. Hacer una modicacin sobre la solucin. Esta modicacin ha de hacerse de acuerdo con la heurstica de mnimo compromiso, es decir, escoger la accin que menos restricciones imponga sobre la solucin y, por lo tanto, menos restricciones imponga sobre el prximo paso. 3. Si la modicacin viola alguna de las restricciones, se intenta deshacer alguno de los pasos anteriores, procurando que las modicaciones sean las mnimas. Esta modicacin no tiene por que ser precisamente deshacer el ltimo paso que se realiz. El conocimiento del experto ha de aparecer en la evaluacin de los efectos de los operadores sobre las restricciones, de manera que se pueda escoger siempre el operador con menos efecto sobre stas y que permita ms libertad de movimientos. Aplicacin de la resolucin constructiva Queremos planicar la mejor trayectoria de un robot en una habitacin de manera que de un punto de salida llegue a la puerta de la habitacin sin colisionar sin ninguno de los obstculos que hay en la habitacin. Supondremos que el robot puede ver lo que tiene delante de l y con ello calcular la distancia a los objetos que tiene a su alrededor. Disponemos de un conjunto de operadores que le permiten: Moverse hacia adelante o hacia atrs cierta distancia a cierta velocidad Girar cierto nmero de grados En este caso las restricciones globales son que se debe llegar a la puerta de salida y que el recorrido de la trayectoria y el tiempo que se tarde debe ser el menor posible. Las restricciones que se aplican a la eleccin de los operadores sern que el robot no choque con ninguno de los obstculos o la pared, esto incluye que la distancia para pasar entre dos obstculos debe ser la adecuada para que el robot pueda maniobrar y no se quede atascado. La evaluacin de la bondad de los operadores depender de cada movimiento. El operador mover ser mejor cuando su aplicacin nos acerque ms al objetivo y ms rpidamente. El operador girar
153
ser mejor cuando la trayectoria en que nos deje el giro est ms libre y por lo tanto ms lejos tenga los obstculos ms prximos. Con estos operadores y restricciones, podemos resolver el problema utilizando los pasos de resolucin de la estrategia proponer y aplicar para encontrar la ruta.
154
16
Razonamiento aproximado e incertidumbre 16.1 Incertidumbre y falta de informacin
Por lo general, el conocimiento que se debe manejar dentro de la mayora de los dominios tratados por los sistemas basados en el conocimiento (SBC) no es de naturaleza exacta. En la prctica nos encontramos con problemas como: Representar el conocimiento para cubrir todos los hechos que son relevantes para un problema es difcil Existen dominios en los que se desconocen todos los hechos y reglas necesarias para resolver el problema Existen problemas en los que an teniendo las reglas para resolverlos no disponemos de toda la informacin necesaria para aplicarlas Esto signica que para poder razonar dentro de estos sistemas tendremos que utilizar herramientas ms potentes que las que nos brinda la lgica clsica, que slo nos permitira trabajar con conocimiento del que pudiramos establecer de manera efectiva su veracidad o falsedad. De hecho, este objetivo no es descabellado ya que podemos observar como toda persona esta acostumbrada a tomar decisiones ante informacin incompleta o imprecisa (Invertimos en bolsa, diagnosticamos enfermedades, ...) y esa imprecisin o falta de conocimiento no impide la toma de decisiones. Esta claro que si deseamos que los SBC emulen la capacidad de los expertos hemos de dotarlos de mecanismos que sean capaces de abordar este problema. La imprecisin o la falta de certeza en la informacin proviene de muchas fuentes, de entre ellas podemos citar: 1. Incompletitud de los datos debida a la no disponibilidad de stos. 2. Incertidumbre de los datos debida a las limitaciones de los aparatos de medida, o a apreciaciones subjetivas del observador. 3. Incertidumbre en las asociaciones realizadas entre datos y conclusiones. 4. Imprecisin en el lenguaje de descripcin debida al uso del lenguaje natural, ya que se presta a ambigedades y malas interpretaciones. El tratar con este problema ha llevado a desarrollar un conjunto de lgicas y modelos que intentan tratar el problema de la incompletitud e imprecisin del conocimiento desde diferentes perspectivas 155
156
y modelizar de esta manera los procesos de razonamiento que aplican las personas. Muchas son las propuestas que se han desarrollado a lo largo de la evolucin de los SBC, nos centraremos nicamente en dos formalismos que provienen de dos visiones distintas de la incertidumbre: Modelo probabilista (Redes Bayesianas) Modelo posibilista (Lgica difusa)
17
Modelo Probabilista 17.1 Introduccin
Los modelos probabilistas se fundamentan en la teora de la probabilidad. Las probabilidades se utilizan para modelizar nuestra creencia sobre la veracidad o falsedad de los hechos, de manera que podamos asignar valores de probabilidad a los diferentes hechos con los que tratamos y utilizar esas probabilidades para razonar sobre su certidumbre. Cada hecho tendr una probabilidad asociada de por si, o derivada de la probabilidad de aparicin de otros hechos. Estas probabilidades sern las que nos permitirn tomar decisiones. Esta toma de decisiones no es esttica, la probabilidad de un hecho podr ser modicada por la observacin y la modicacin de la creencia en otros hechos que estn relacionados. Podemos por ejemplo suponer que el hecho de decidir llevar o no un paraguas al salir de casa por la maana puede verse afectada por multiples circunstancias. En principio tendremos una decisin a priori que depender del clima donde nos encontremos. Si estamos en una zona donde no llueve apenas nuesta decisin por omisin ser no cogerlo. Si por ejemplo vemos la prediccin del tiempo el dia anterior esta decisin puede variar dependiendo de lo que nos cuenten, si nos dicen que al dia siguiente habr nubosidad la decisin se inclinar ms hacia coger el paraguas. Si adems obervamos al dia siguiente que el suelo est mojado esta decisin se reforzar an mas.
158
proposicin lgica tendr asociada una variable aleatoria que indicar nuestro grado de creencia en ella. Una variable aleatoria tendr asociada una distribucin de probabilidad. La forma de expresar esta distribucin de probabilidad depender del tipo de variable aleatoria (Discretas: Binomial, Multinomial, ...; Continuas: Normal, 2 , ...). El elegir un tipo de variable aleatoria u otro depende de como creamos que la informacin correspondiente a la proposicin lgica debe modelarse. Para simplicar, slo trabajaremos con variables aleatorias discretas, de manera que toda proposicin lgica tendr un conjunto enumerado de posibles respuestas. En cualquier problema, tendremos distintas proposiciones lgicas que intervendrn en una decisin, por lo tanto, tendremos que describir como son las variables aleatorias que describen estas proposiciones y como se debe calcular su inuencia sobre las deducciones que permiten realizar las proposiciones. La unin de variables aleatorias se puede describir mediante una distribucin de probabilidad conjunta. Este ser el mecanismo que nos va a permitir describir como se puede razonar mediante probabilidades. Denotaremos como P (a) la probabilidad de que la proposicin A tenga el valor a. Por ejemplo, la proposicin F umar puede tener los valores {f umar, f umar}, P (f umar) es la probabilidad de la proposicin F umar = f umar. Denotaremos como P (A) al vector de probabilidades de todos los posibles valores de la proposicin A Deniremos como probabilidad a priori (P (a)) asociada a una proposicin como el grado de creencia en ella a falta de otra informacin. Del conjunto de proposiciones que tengamos, algunas no tienen por que estar inuidas por otras, de estas dispondremos de una distribucin de probabilidad a priori que representar la probabilidad de que tomen cualquiera de sus valores. Deniremos como probabilidad a posteriori o condicional (P (a|b)) como el grado de creencia en una proposicin tras la observacin de proposiciones asociadas a ella. Esta probabilidad estar asociada a las proposiciones que se ven inuidas por la observacin de otras proposiciones, por lo que nuestra creencia en ellas variar segn la observacin de stas. La probabilidad a posteriori se puede denir a partir de probabilidades a priori como: P (a b) P (b) Esta frmula se puede transformar en lo que denominaremos la regla del producto: P (a|b) = P (a b) = P (a|b)P (b) = P (b|a)P (a) Podemos observar por esta regla que la teora de la probabilidad no asigna a priori una direccin a la causalidad y que se puede calcular la inuencia de una proposicin en otra y viceversa.
17.3 Inferencia probabilstica La probabilidad de la disyuncin se obtiene mediante la frmula P (a b) = P (a) + P (b) P (a b)
159
Dadas estas reglas bsicas, podemos establecer una serie de mecanismos de inferencia, como por ejemplo: Marginalizacin: Probabilidad de una proposicin atmica con independencia de los valores del resto de proposiciones P (Y ) = P (Y, z )
z
Probabilidades condicionadas: Probabilidad de una proposicin dados unos valores para algunas proposiciones e independiente del resto de proposiciones (a partir de la regla del producto) P (X |e) = P (X, e, y )
y
El valor es un factor de normalizacin que corresponde a factores comunes que hacen que las probabilidades sumen 1. Ejemplo 17.1 Consideremos un problema en el que intervengan las proposiciones F umador = {f umador, f umador}, Sexo = {varon, mujer}, Enf isema = {enf isema, enf isema} La siguiente tabla nos describe las distribuciones de probabilidad conjunta de estas proposiciones enf isema varon mujer 0.2 0.1 0.02 0.02 enf isema varon mujer 0.05 0.05 0.23 0.33
f umador f umador
A partir de ella podemos hacer ciertas inferencias probabilsticas respecto a la combinacin de las diferentes proposiciones y su inuencia entre ellas P (enf isema varon) = 0.2 + 0.02 P (f umador mujer) = 0.2 + 0.1 + 0.05 + 0.05 + 0.02 + 0.33 P (F umador|enf isema) = P (f umador, enf isema, varon) +P (f umador, enf isema, mujer), P (f umador, enf isema, varon) +P (f umador, enf isema, mujer) = 0.3, 0.04 = 0.88, 0.12 Para poder realizar todos estos procesos de inferencia se requiere almacenar y recorrer la distribucin de probabilidad conjunta de todas las proposiciones. Esto supone un gasto en tiempo y espacio impracticable. Suponiendo proposiciones binarias el coste en espacio y tiempo es O(2n ) siendo n el nmero de proposiciones. Cualquier problema real tiene un nmero de proposiciones suciente para hacer que estos mecanismos de inferencia no sean tiles por su coste computacional. Se hace pues necesario crear mecanismos que nos simpliquen el coste del razonamiento
160
P (X, e, y )
estamos preguntando como inuyen el conjunto de variables conocidas e sobre el valor de verdad de la variable en la que estamos interesados X (es mas probable x o x?). Asumimos que X es consecuencia de e. La ventaja de la formalizacin probabilstica es que esta frmula nos permite evaluar todas las reglas posibles que podamos crear como combinacin de todas las variables de nuestro problema. Por ejemplo, supongamos que en un problema intervienen un conjunto de variables V = {A, B, C, D, E, F }, todas las variables estn ligadas mediante una distribucin de probabilidad conjunta P (A, B, C, D, E, F ). En el formalismo de reglas de produccin si consideramos que F se ve inuida por los valores del resto de variables escribiramos reglas como por ejemplo:
A B C D E F A B C F
Pero si nos jamos en el signicado de la distribucin de probabilidad conjunta, sta precisamente nos representa todas las posibles reglas que podemos construir con esas variables. Esta distribucin nos permite calcular la inuencia que tiene cualquier subconjunto de variables respecto al valor de verdad de cualquier otro subconjunto. La forma de calcularla es aplicar frmula de probabilidades condicionadas. Evidentemente, supone una ventaja poder codicar todas estas reglas como una distribucin de probabilidad y poseer un mecanismo de razonamiento simple. Al ser este planteamiento exhaustivo (representamos todas las reglas posibles) el formalismo probabilstico tambin nos permite realizar inferencia ante la falta de premisas (en nuestro caso sern variables ocultas). La distribucin de probabilidad conjunta y la formula de probabilidades condicionadas nos permiten incluir la inuencia de estas variables a pesar de que no conozcamos su valor. Los problemas que tendremos sern obtener esa distribucin de probabilidad conjunta y que el mecanismo de inferencia es computacionalmente prohibitivo tal como est planteado hasta ahora.
161
nes que las inuyen, siendo el resto irrelevantes para la inferencia de sus probabilidades. Llamaremos a esta propiedad independencia probabilstica Suponiendo que dos proposiciones X e Y no se inuyen entre si, podemos reescribir sus probabilidades como: P (X |Y ) = P (X ); P (Y |X ) = P (Y ); P (X, Y ) = P (X )P (Y ) Dadas estas propiedades podremos reescribir las probabilidades conjuntas de manera ms compacta reduciendo la complejidad Anteriormente hemos enunciado la regla del producto como: P (X, Y ) = P (X |Y )P (Y ) = P (Y |X )P (X ) Esta regla nos lleva a lo que denominaremos la regla de Bayes P (Y |X ) = P (X |Y )P (Y ) P (X )
Esta regla y la propiedad de independencia sern el fundamento del razonamiento probabilstico y nos permitir relacionar las probabilidades de unas evidencias con otras. Suponiendo que podemos estimar exhaustivamente todas las probabilidades que involucran la variable Y podemos prescindir de las probabilidades a priori de la variable X y reescribir la formula de Bayes como: P (Y |X ) = P (X |Y )P (Y ) Esto es as porque las probabilidades P (Y = y1 |X ) . . . P (Y = yn |X ) han de sumar uno, ser un factor de normalizacin. Suponiendo independencia condicional entre dos variables X e Y podremos escribir la probabilidad condicional de otra variable Z respecto a estas como: P (X, Y |Z ) = P (X |Z )P (Y |Z ) De manera que si substituimos en la regla de Bayes: P (Z |X, Y ) = P (X |Z )P (Y |Z )P (Z )
162
P (x1 , x2 , . . . , xn ) =
i=1
P (xi |padres(xi ))
El conjunto de probabilidades representadas en la red bayesiana describe la distribucin de probabilidad conjunta de todas las variables, esto hace que no sea necesaria una tabla completa que describa la inuencia entre todas ellas. Intuitivamente podramos decir que con la red bayesiana estamos aadiendo suposiciones adicionales al modelo probabilstico puro (todo esta relacionado con todo) estableciendo que solamente algunas inuencias son posibles y que existe una direccin especca para la causalidad, que es la que indican los arcos la red. Las propiedades que tienen las redes bayesianas nos dan ciertas ideas sobre como debemos construirlas a partir de un conjunto de proposiciones. Si consideramos que (regla del producto): P (x1 , x2 , . . . , xn ) = P (xn |xn1 , . . . , x1 )P (xn1 , . . . , x1 ) Iterando el proceso tenemos que:
=
i=1
P (xi |xi1 , . . . , x1 )
Esta es la llamada regla de la cadena Dadas estas propiedades, podemos armar que si padres(Xi ) {Xi1 , . . . , X1 }, entonces: P (Xi |Xi1 , . . . , X1 ) = P (Xi |padres(Xi )) Esto quiere decir que una red bayesiana es una representacin correcta de un dominio slo si cada nodo es condicionalmente independiente de sus predecesores en orden, dados sus padres. Para lograr esto, se han de escoger como padres de una variable Xi aquellas de entre las variables X1 , . . . Xi1 que inuyan directamente en Xi . Es decir, para describir la inuencia que recibe una proposicin del resto de proposiciones de las que disponemos, slo es necesario utilizar las que inuyen ms directamente. La inuencia del resto de proposiciones (si es que existe) estar descrita por las relaciones que puedan tener estas con los padres inmediatos de la proposicin. El utilizar una red bayesiana como representacin de la distribucin de probabilidad conjunta de un grupo de proposiciones supone una gran reduccin en coste espacial. Como comentamos, el coste de representar la distribucin de probabilidad conjunta de n variables binarias es O(2n ). La representacin de redes bayesianas nos permite una representacin mas compacta gracias a la factorizacin de la distribucin conjunta. Suponiendo que cada nodo de la red tenga como mximo k padres (k n), un nodo necesitar 2k para representar la inuencia de sus padres, por lo tanto el espacio necesario ser O(n2k ). Por ejemplo, con 10 variables y suponiendo 3 padres como mximo tenemos 80 frente a 1024, con 100 variables y suponiendo 5 padres tenemos 3200 frente a aproximadamente 1030 Ejemplo 17.2 La red bayesiana de la gura 17.1 muestra las relaciones de dependencia entre un conjunto de proposiciones lgicas y la distribucin de probabilidad que sigue cada una de esas inuencias. A partir de la red podemos calcular la probabilidad de una proposicin lgica utilizando las relaciones de dependencia entre las variables
163
Alim eq no eq eq no eq
P(P=normal) 0.99 0.8 0.75 0.3 P(I=si) 0.8 0.6 0.7 0.3 P(I=no) 0.2 0.4 0.3 0.7 Fumador Presion Sanguinea Fumador Si No P(F) 0.4 0.6
Infarto
Figura 17.1: Red bayesiana que describe la probabilidad de sufrir un infarto P (Inf arto = si P resion = alta F umador = si Deporte = si Alimentacion = equil) = P (Inf arto = si|P resion = alta, F umador = si) P (P resion = alta|Deporte = si, Alimentacion = equil) P (F umador = si)P (Deporte = si)P (Alimentacion = equil) = 0.8 0.01 0.4 0.1 0.4 = 0.000128
164
P (X |e) = P (X, e) =
y
P (X, e, y)
La red bayesiana nos permite factorizar la distribucin de probabilidad conjunta y obtener una expresin mas fcil de evaluar. Eso no quita que el nmero de operaciones crezca de manera exponencial con el nmero de variables que tiene la expresin, adems de realizar parte de las operaciones mltiples veces dependiendo de la estructura de la red. Por esta causa este mtodo no es utilizado en la prctica. Ejemplo 17.3 Usando la red bayesiana ejemplo podemos calcular la probabilidad de ser fumador si se ha tenido un infarto y no se hace deporte P (F umador|Inf arto = si, Deporte = no) La distribucin de probabilidad conjunta de la red sera: P (D, A, S, F, I ) = P (I |S, F )P (F )P (S |D, A)P (D)P (A) Debemos calcular P (F |I = si, D = no), por lo tanto tenemos P (F |I = s, D = n) = P (F, I = s, D = n) P (D = n, A, S, F, I = s) =
A{e,e} S {a,n}
= P (D = n)P (F )
A{e,e}
P (A)
S {a,n}
P (S |D = n, A)P (I = s|S, F )
Si enumeramos todas las posibilidades y las sumamos de acuerdo con la distribucin de probabilidad conjunta tenemos que: P (F umador|Inf arto = si, Deporte = no) = 0.9 0.4 (0.4 (0.25 0.8 + 0.75 0, 6) + 0.6 (0.7 0.8 + 0.3 0.6)), 0.9 0.6 (0.4 (0.25 0.7 + 0, 75 0.3) + 0.6 (0.7 0.7 + 0.3 0.3) = 0.253, 0, 274 = 0, 48, 0.52 Podemos ver las operaciones que se realizan en el rbol de probabilidades que se calcula (gura 17.2). Cada una de las ramas del rbol corresponde a cada uno de los eventos posibles.
165
P(S=a)=0.25 P(S=a)=0.7 P(S=n)=0.75 P(S=n)=0.3 Infarto Infarto Infarto Infarto P(I=s)=0.8 P(I=s)=0.8 P(I=s)=0.6 P(I=s)=0.6
P(S=a)=0.25 P(S=a)=0.7 P(S=n)=0.75 P(S=n)=0.3 Infarto Infarto Infarto Infarto P(I=s)=0.7 P(I=s)=0.3 P(I=s)=0.7 P(I=s)=0.3
Figura 17.2: rbol de enumeracin de probabilidades Algoritmo 17.1 Algoritmo de eliminacin de variables Funcin: Elimination de Variables (X, e, rb) factores [] vars REVERSE(VARS(rb)) para cada var vars hacer factores concatena(factores,CALCULA-FACTOR(var,e)) si var es variable oculta entonces factores PRODUCTO-Y-SUMA(var,factores) n n retorna NORMALIZA(PRODUCTO(factores)) Una ventaja adicional de este algoritmo es que las variables no relevantes desaparecen al ser factores constantes en las operaciones y por lo tanto permite eliminarlas del clculo (de ah el nombre de algoritmo de eliminacin de variables). Su implementacin se puede ver en el algoritmo 17.1. CALCULA_FACTOR genera el factor correspondiente a la variable en la funcin de distribucin de probabilidad conjunta, PRODUCTO_Y_SUMA multiplica los factores y suma respecto a la variable oculta, PRODUCTO multiplica un conjunto de factores. Un factor corresponde a la probabilidad de un conjunto de variables dadas las variables ocultas. Se representa por una tabla que para cada combinacin de variables ocultas da la probabilidad de las variables del factor, por ejemplo: Y Z C C 0.2 fX (Y, Z )= C F 0.4 F C 0.8 F F 0.6 Los factores tienen dos operaciones, la suma y producto de factores.
166
La suma se aplica a un factor y sobre una variable oculta del factor. Como resultado obtenemos una matriz reducida en la que las las del mismo valor se han acumulado, por ejemplo Y 0.6 Z fX (Y, Z )= C F 1.4
fXZ (Y ) =
Es igual que una operacin de agregacin sobre una columna en bases de datos El producto de factores permite juntar varios factores entre ellos utilizando las variables ocultas comunes, por ejemplo: fX1 X2 (Y, W, Z ) = fX1 (Y, Z ) fX2 (Z, W )= Z Z W Y Z W C 0.2 C C 0.3 C C C 0.2 0.3 F 0.8 C F 0.7 C C F 0.2 0.7 C 0.4 F C 0.1 C F C 0.8 0.1 F 0.6 F F 0.9 C F F 0.8 0.9 F C C 0.4 0.3 F C F 0.4 0.7 F F C 0.6 0.1 F F F 0.6 0.9
Y C C F F
Es igual que una operacin de join en una base de datos multiplicando los valores de las columnas de datos. Ejemplo 17.4 Volveremos a calcular P (F umador|Inf arto = si, Deporte = no) a partir de la distribucin de probabilidad conjunta: P (D, A, S, F, I ) = P (I |S, F )P (F )P (S |D, A)P (D)P (A) Debemos calcular P (F |I = si, D = no), por lo tanto tenemos P (F |I = s, D = n) = P (I = s, F, D = n) = P (D = n, A, S, F, I = s)
A{e,e} S {a,n}
P (A)
S {a,n}
P (S |D = n, A)P (F )P (I = s|S, F )
El algoritmo empieza calculando el factor para la variable Infarto (P (I = s|S, F )), esta tiene jo su valor a si, depende de las variables Presin Sanguinea y Fumador S a fI (S, F )= a n n F s n s n
La variable fumador (P (F )) no depende de ninguna otra variable, al ser la variable que preguntamos el factor incluye todos los valores
167
0.4 0.6
La variable Presin Sanguinea (P (S |D = n, A)), depende de las variable Deporte que tiene jo su valor a no y Alimentacin. Esta es una variable oculta, por lo que se debe calcular para todos sus valores S a fS (S, A)= a n n A e e e e
Al ser la variable Presin Sanguinea una variable oculta debemos acumular todos los factores que hemos calculado fS (S, A) fF (F ) fI (S, F ) S F a s 0.80.4 fF I (S, F ) = fF (F ) fI (S, F )= a n 0.70.6 n s 0.60.4 n n 0.30.6 S F A a s e 0.80.40.25 a s e 0.80.40.7 0.70.60.25 a n e fF IS (S, F, A) = fF I (S, F ) fS (S, A)= a n e 0.70.60.7 n s e 0.60.40.75 n s e 0.60.40.3 n n e 0.30.60.75 n n e 0.30.60.3 Y ahora sumamos sobre todos los valores de la variable S para obtener el factor correspondiente a la variable Presin Sanguinea fF IS (F, A) = S {a,n} fF IS (S, F, A) = F A s e 0.80.40.25 + 0.60.40.75 = 0.26 s e 0.80.40.7 + 0.60.40.3 = 0.296 0.70.60.25 + 0.30.60.75 = 0.24 n e n e 0.70.60.7 + 0.30.60.3 = 0.348 El factor de la variable Alimentacin (P (A)) no depende de ninguna variable, al ser una variable oculta generamos todas las posibilidades A fA (A)= e 0.4 e 0.6 Ahora debemos acumular todos los factores calculados
168
Captulo 17. Modelo Probabilista F A s e 0.260.4 = 0.104 fAF IS (F, A) = fA (A) fF IS (F, A)= s e 0.2960.6 = 0.177 n e 0.240.4 = 0.096 n e 0.3480.6 = 0.208
Y ahora sumamos sobre todos los valores de la variable A para obtener el factor correspondiente a la variable Alimentacin fAF IS (F ) = F 0.104 + 0.177 = 0.281 A{e,e} fAF IS (F, A) = S n 0.096 + 0.208 = 0.304
Y por ltimo la variable Deporte (P (D = n)) tiene el valor jado a no y dado que no depende de la variable fumador se puede obviar, ya que es un factor constante. Ahora, si normalizamos a 1 F P (F |I = s, D = n) = S n
0.48 0.52
La complejidad del algoritmo de eliminacin de variables depende del tamao del mayor factor, que depende del orden en el que se evalan las variables y la topologa de la red. El orden de evaluacin que escogeremos ser el topolgico segn el grafo, pero podramos utilizar cualquier orden. De hecho se podra escoger el orden que ms variables eliminara para hacer que el clculo sea ms eciente, el problema es que encontrar el orden ptimo es NP. La complejidad de la inferencia exacta es NP-hard en el caso general. En el caso particular en que la red bayesiana cumple que para cada par de nodos hay un nico camino no dirigido (polirbol), entonces se puede calcular en tiempo lineal. Por eso es interesante que cuando se construya una red bayesiana para un problema se construyan polirboles. Si podemos construir una red que cumpla esta propiedad podemos utilizar este algoritmo sin ningn problema. Para obtener resultados en el caso general se recurre a algoritmos aproximados basados en tcnicas de muestreo. Evidentemente el valor obtenido con estos algoritmos es una aproximacin del valor real, pero el coste temporal es razonable.
18
Modelo Posibilista 18.1 Introduccin
Un mtodo alternativo para representar la imprecisin es el que presenta el modelo posibilista. Este modelo surge de la llamada lgica posibilista, esta es una lgica no clsica especialmente diseada para el razonamiento con evidencias incompletas y conocimiento parcialmente inconsistente. Muchas veces los expertos utilizan trminos para hablar de los valores de las variables involucradas en su conocimiento en lugar de valores especcos. Estos trminos no representan un valor concreto, sino un conjunto de valores que no tiene por que coincidir con la idea clsica de conjunto. Habitualmente un conjunto tiene una denicin suciente y necesaria que permite establecer claramente la pertenencia de los diferentes elementos al conjunto. Pero podemos observar que el tipo de informacin que expresan los trminos de los expertos permite que ciertos valores puedan pertenecer a diferentes conjuntos con diferente grado. Por ejemplo, un experto puede referirse a la temperatura diciendo que es alta. La variable temperatura estar denida sobre un rango (por lo general continuo) de valores y el trmino alta no tiene por que tener unas fronteras denidas, ya que en un dominio real sera difcil pensar que a partir de un valor especco la temperatura se considera alta, pero que el valor inmediatamente anterior no lo es. Podramos decir que la expresin la temperatura es alta tiene diferentes grados de verdad dependiendo del valor exacto sobre el que la evaluramos. Desde el punto de vista del experto esta interpretacin es ms intuitiva que la interpretacin clsica y es la que usa habitualmente para describir ciertos dominios. Este tipo de imprecisin en el lenguaje es la que queremos modelar mediante la lgica posibilista. De hecho este modelo intenta acercarse ms a la forma que tiene el experto de modelar y expresar conocimiento sobre su dominio cuando la informacin de la que dispone no tiene por que evaluarse directamente a un valor concreto, por lo tanto tenemos no solo incertidumbre sobre la asociacion entre hechos y conclusiones, sino tambin sobre los propios hechos. Esto diere a lo que hemos visto en el modelo probabilstico en el que para las evidencias que observamos siempre lo hacemos con total seguridad. En este tipo de representacin trabajaremos con variables que estn denidas en un universo del discurso (conjunto de valores posibles) y que se denirn a partir de etiquetas lingsticas (trminos que podemos usar para referirnos a las variables).
170
FRIA
AGRADABLE
CALUROSA
10
15
20
25
30
La lgica posibilista se basa en la teora de los conjuntos difusos y, por extensin, en la lgica difusa. Los conjuntos difusos se han tomado como punto de partida para la representacin de la vaguedad del lenguaje, de esta manera, proposiciones como por ejemplo la temperatura de hoy es agradable supondra que existe un conjunto de temperaturas asignadas al trmino lingstico agradable que correspondera a un conjunto difuso, y el razonamiento se hara basndose en ste. Esto permitira utilizar estos conjuntos para representar los razonamientos cualitativos que suelen utilizar los expertos. Los conjuntos difusos son una generalizacin de los conjuntos clsicos en los que la pertenencia no est restringida a s o no, sino que puede haber una gradacin de pertenencia en el intervalo [0, 1], determinada por una funcin de distribucin asignada al conjunto. Los hechos representables mediante conjuntos difusos siguen el esquema [X es A] donde X es una variable denida sobre un universo U de valores posibles y A es un trmino lingstico aplicable a X , que restringe los valores que puede tomar. Estos valores correspondern al conjunto difuso representado por A sobre el universo U . En el ejemplo anterior, X sera la temperatura, el universo U seran todos los posibles valores que puede tomar la temperatura y A sera agradable, este trmino indicara los valores posibles para X . En la gura 18.1 se pueden ver diferentes etiquetas aplicables al concepto temperatura y sus conjuntos difusos correspondientes. Todo conjunto difuso est representado por una funcin caracterstica A que dene la pertenencia de un elemento al conjunto. A travs de sta se puede denir la funcin de posibilidad de los valores de X al conjunto A. De este modo, la posibilidad de que X tenga un valor u U sabiendo que [X es A] viene denida por la funcin:
A : U [0, 1] tal que A (u) = A (u) Es decir, la posibilidad para un valor se corresponde con su grado de pertenencia al conjunto difuso representado por la etiqueta lingstica. Un valor de posibilidad se puede interpretar como el grado con el que una proposicin es compatible con el conocimiento que se describe con la proposicin [X es A].
171
Al igual que se puede interpretar la representacin de las proposiciones con una visin conjuntista, sta se puede tambin transformar en una visin lgica1 , que es en denitiva lo que se va a utilizar en la deduccin con las reglas de los expertos. Se puede ver la pertenencia total o la no pertenencia de un valor a un conjunto difuso como los valores de verdad cierto y falso para una proposicin (esta sera la nocin clsica de valores de verdad), a sto le aadimos el poder tener una gradacin de valor de verdad entre estos valores extremos, determinada por la funcin de posibilidad del conjunto difuso.Con esto tenemos una lgica que permite cualquier valor de verdad entre cierto y falso. Siguiendo con esta visin de la lgica, podemos establecer las combinaciones que permiten las conectivas de la lgica clsica sobre sus dos valores de verdad se extiendan sobre la gradacin de valores de verdad que permite la funcin de posibilidad de un conjunto difuso. En lgica de proposiciones disponemos de tres conectivas para la combinacin de enunciados: , y . Sobre estas, la teora de modelos establece tres tablas de verdad que indican como se combinan los nicos dos valores de verdad permitidos. La lgica difusa establece tres tipos de funciones equivalentes a estas conectivas que dan la extensin continua de estas combinaciones. Conjuncin difusa La funcin que permite combinar en conjuncin dos funciones de posibilidad es denominada T-norma y se dene como T (x, y ) : [0, 1] [0, 1] [0, 1] y ha de satisfacer las propiedades: 1. Conmutativa, T(a,b)=T(b,a) 2. Asociativa, T(a,T(b,c))=T(T(a,b),c) 3. T(0,a)=0 4. T(1,a)=a 5. Es una funcin creciente, T(a,b)T(c,d) si ac y bd Se puede observar que son las mismas propiedades que cumple la conectiva en lgica de proposiciones, lo mismo pasar con el resto de conectivas. Adems, estas propiedades imponen que el comportamiento de la funcin en sus extremos sea el mismo que los valores de la tabla de verdad de la conectiva . Ejemplos de funciones que cumplen estas propiedades son: T (x, y ) = m n(x, y ) T (x, y ) = x y T (x, y ) = m ax(0, x + y 1) Se puede ver la forma de estas funciones en la gura 18.2.
1 Los conjuntos difusos y la lgica difusa se pueden ver como una extensin continua de la teora de conjuntos y la lgica clsica. Por lo tanto si la teora de conjuntos se puede ver como una variante notacional de la lgica de predicados, su extensin continua tambin.
La funcin que permite combinar en disyuncin dos funciones de posibilidad es denominada Tconorma y se dene como S (x, y ) : [0, 1] [0, 1] [0, 1] y ha de satisfacer las propiedades: 1. Conmutativa, S(a,b)=S(b,a) 2. Asociativa, S(a,S(b,c))=S(S(a,b),c) 3. S(0,a)=a 4. S(1,a)=1 5. Es una funcin creciente, S(a,b)S(c,d) si ac y bd Ejemplos de funciones que cumplen estas propiedades son: S (x, y ) = m ax(x, y ) S (x, y ) = x + y x y S (x, y ) = m n(x + y, 1) Se puede ver la forma de estas funciones en la gura 18.2. Estas tres funciones de T-conorma, junto a las tres anteriores T-normas, corresponden a tres pares de funciones duales respecto a las leyes de DeMorgan y son las ms utilizadas. El ser dual respecto a las leyes de DeMorgan es una caracterstica importante ya que permite preservar propiedades de la lgica de proposiciones en el comportamiento de las conectivas difusas. Negacin difusa La funcin que permite negar una funcin de posibilidad es denominada negacin fuerte y se dene como N (x) : [0, 1] [0, 1] y ha de satisfacer las propiedades: 1. N ((N (a)) = a 2. Es una funcin decreciente, N (a) N (b) si a b Ejemplos de funciones que cumplen estas propiedades son: N ( x) = 1 x N ( x) = Nt (x) = 1 x2 t>1
1x 1+tx
173
1
1
1
1
1 0.8
1 0.5
0.1 0.2 0.4
0.9
max(0, x + y 1)
0.9
0.9
min(x,y)
0.8
0.8
0.7
0.7
0.6
0.6
0.5
0.5
0.4
0.4
0.3
0.3
0.2
0.2
0.4
0.1
0.1
0.7
0.8
0.9
0.7
0.8
0.9
0.7
0.8
0.9
1
1
1
1
1 0.8
0.9 1 0.5
0.1 0.2 0.4
0.9
0.1
0.5
0.4
0.6
0.5
0.6
0.5
0.6
0.2
0.3
0.3
0.3
0.3
0.4
Y Y
0.7 0.8 0.9
0.8
0.7
0.6
0.7
0.5
0.8
0.6
min(x + y, 1)
x+yxy
max(x, y )
0.5
0.5
0.4
0.6
0.3
0.4
0.2
0.4
0.1
0.7
0.1
0.8
0.9
0.7
0.8
0.9
0.7
0.8
0.9
1x
1 x2
1x 1tx
0.4 0.3 0.2 0.1 0.0 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
0.4 0.3 0.2 0.1 0.0 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
0.4 0.3 0.2 0.1 0.0 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
0.1
0.5
0.4
0.2
0.6
0.5
0.6
0.5
0.6
0.2
0.3
0.3
0.3
0.3
0.3
0.4
0.6
0.6
0.7
0.5
xy
0.5
0.8
0.6
0.9
Algo que tambin nos permite la lgica difusa es aadir modicadores a los trminos lingsticos que utilizamos de la misma manera en que lo hara el experto. Por ejemplo, podramos decir que la temperatura es muy alta y utilizar una funcin que represente la semntica del modicador muy como una funcin que se combina con la etiqueta, donde el conjunto difuso muy alta sera el resultado de aplicar el modicador muy al conjunto difuso alta. Los modicadores est denidos como funciones [0, 1] [0, 1] y varan el valor de verdad del conjunto difuso original.
1 1 1
0 0 0 50 100 0 1 0 0 50 100
Muy
Alta
Muy Alta
F G = [X es A y B ] con F G (u) = T (A (u), B (u)) F G = [X es A o B ] con F G (u) = S (A (u), B (u)) Donde la T-norma y T-conorma se denen sobre una sola dimensin. En cambio, si tenemos F =[X es A] y G=[Y es B ] con A denida sobre U y B denida sobre V , con U = V , tenemos:
F G = [X es A] y [Y es B ] con F G (u, v ) = T (A (u), B (v )) F G = [X es A] o [Y es B ] con F G (u, v ) = S (A (u), B (v )) Donde la T-norma y T-conorma se denen sobre dos dimensiones. Podemos ver que las funciones de combinacin de funciones de posibilidad generan una nueva funcin de posibilidad. En denitiva, estamos deniendo un lgebra sobre funciones en las que las conectivas difusas nos sirven de operaciones de combinacin. Veamos dos ejemplos de combinacin de proposiciones en ambos casos. Ejemplo 18.1 Supongamos que tenemos las proposiciones [{La temperatura de hoy} es {agradable}] y [{La temperatura de hoy} es {calurosa}], proposiciones denidas sobre el mismo universo U (el de
175
las temperaturas posibles) donde las funciones de posibilidad de las etiquetas agradable y calurosa se pueden ver en la gura 18.3. Podemos utilizar como funcin de T-norma T(x,y)= m n(x, y ) y de T-conorma S(x,y)= m ax(x, y ) y construir la funcin de posibilidad que dene la conjuncin y la disyuncin de ambas proposiciones, el resultado se puede ver en la gura 18.4. Tambin podemos denir la negacin de agradable mediante la funcin de negacin fuerte N(x)=1 x, el resultado se puede ver en la gura 18.5. Ejemplo 18.2 Supongamos que tenemos las proposiciones [{Juan} es {alto}] y [{Juan} es {joven}], proposiciones denidas sobre dos universos diferentes, el de las alturas, y el de las edades. Las funciones de posibilidad de las etiquetas lingsticas estn representadas en la gura 18.6 Podemos utilizar como funcin de T-norma T(x,y)= m n(x, y ) y de T-conorma S(x,y)= m ax(x, y ) y construir la funcin de posibilidad que dene la conjuncin y la disyuncin de ambas proposiciones, en este caso, denidas sobre dos dimensiones, ya que las proposiciones corresponden a universos diferentes. La gura 18.7 y 18.8 muestran un mapa de niveles de las etiquetas resultantes y una representacin tridimensional.
176
AGRADABLE 1 1
CALUROSA
0 10 15 20 25 30 10 15 20 25 30
AGRADABLE
CALUROSA
AGRADABLE
CALUROSA
0 10 15 20 25 30 10 15 20 25 30
NO AGRADABLE
10
15
20
25
30
177
ALTO 1 1
JOVEN
0 10 20 30 40 50
1.0
2.0
0.5
0.5
10
20
30
40
50
0 40 45 50
0
1 JOVEN
0.5
1.5
2.5
10
15
20
25
30
35
1.0
2.0
0.5
0.5
10
20
30
40
50
0 40 45 50
0
1 JOVEN
0.5
1.5
2.5
10
15
20
25
30
35
178
179
3. Combinacin de las conclusiones: Todas las conclusiones de las reglas se combinarn en una etiqueta que representa la conclusin conjunta de las reglas 4. Obtencin del valor preciso (Nitidicacin3 ): Se calcula el valor preciso correspondiente a la etiqueta obtenida. Este clculo se puede hacer de diferentes maneras, una posibilidad es obtener el centro de gravedad de la etiqueta. El centro de gravedad se calcula como una integral denida sobre la funcin que describe la etiqueta resultante:
b
f (x)dx
a
donde a y b son los extremos de la etiqueta. sto no es mas que una versin continua de una media ponderada. Existen otras posibilidades, con un coste computacional menor, para obtener un valor preciso de la etiqueta resultante de la composicin de reglas, como por ejemplo, escoger la media de los valores donde la etiqueta sea mxima. Ejemplo 18.3 Supongamos que tenemos dos variables de entrada E 1 y E 2 y una variable de salida S que pueden tomar valores en los conjuntos siguientes de etiquetas lingsticas: E 1={bajo,medio,alto} E 2={nada,algo,normal,mucho} S ={cerrar,abrir} Estas etiquetas estn descritas mediante los siguientes conjuntos difusos
Bajo Medio Alto Nada Algo Normal Mucho
E1
5 10 15 20 25 30 35 40
E2
1 2 3 4 5 6 7 8
Cerrar
Abrir
S
25 50 75 100 125 150 175
Supongamos que tenemos el siguiente conjunto de reglas: R1. si ([E1=medio] o [E1=alto]) y [E2=mucho] entonces [S=cerrar]
3
180 R2. si [E1=alto] y [E2=normal] entonces [S=cerrar] R3. si [E1=bajo] y no([E2=mucho]) entonces [S=abrir] R4. si ([E1=bajo] o [E1=medio]) y [E2=algo] entonces [S=abrir]
Las funciones de combinacin son el mnimo para la conjuncin, mximo para la disyuncin y 1 x para la negacin y los valores concretos que tenemos para las variables E 1 y E 2 son 17.5 y 6.5 respectivamente. Si trasladamos esos valores a los conjuntos difusos de las variables E 1 y E 2 obtenemos los siguientes valores de posibilidad
E1
0.75
Bajo
Medio
Alto
E2
0.5
Mucho
0.125
5 10 15 20 25 30 35 40
1 2 3 4 5 6 7 8
Si evaluamos la regla R1 tendramos: [E1=medio] = 0.75, [E1=alto] = 0, [E2=mucho] = 0.5 min(max(0.75,0),0.5) = 0.5 Por lo que tenemos 0.5 [S=cerrar] Si evaluamos la regla R2 tendramos: [E1=alto] = 0, [E2=normal] = 0.5 min(0,0.5) = 0 Por lo que tenemos 0 [S=cerrar] Si evaluamos la regla R3 tendramos: [E1=bajo] = 0.125, [E1=mucho] = 0.5, min(0.125,1-0.5) = 0.125 Por lo que tenemos 0.125 [S=abrir] Si evaluamos la regla R4 tendramos: [E1=bajo] = 0.125, [E1=medio] = 0.75, [E2=algo] = 0 min(max(0.125,0.75),0) = 0 Por lo que tenemos 0 [S=abrir] La etiqueta resultante de la combinacin de las conclusiones sera:
Cerrar
Abrir
S
25 50 75 100 125 150 175
Ahora debemos hallar el centro de gravedad de la etiqueta, sta se puede describir mediante la funcin:
f (x) =
181
75
93.75
175
0.5 x dx +
0 75 0
(100 x)/50 x dx +
75 93.75 93.75 175
0.125 x dx = 0.125 dx
0.5 dx +
75
(100 x)/50 dx +
93.75
2 3 93.75 0.25 x2 |75 + 0.0625 x2 |175 0 + (x x /150)|75 93.75 = 2 /100)|93.75 + 0.125 x|175 0.5 x|75 + (2 x x 0 75 93.75
(0.25 752 0) + ((93.752 93.753 /150) (752 753 /150)) + (0.0625 1752 0.0625 93.752 ) = (0.5 75 0) + ((2 93.75 93.752 /100) (2 75 752 /100)) + (0.125 175 0.125 93.75) 3254.39 = 60.79 53.53
182
183
19
Tratamiento del Lenguaje Natural 19.1 Introduccin. El Lenguaje Natural y su tratamiento
La capacidad de comunicarse a travs de un lenguaje es uno de los rasgos distintivos de la especie humana. Es por ello que el Tratamiento del Lenguaje Natural (TLN) ha constitudo desde sus mismos orgenes una parte importante de la Inteligencia Articial e, incluso, de la Informtica en general. Es absurdo pretender que el TLN est englobado en la inteligencia articial lo mismo que pretender que se pueda calicar de una parte de la Lingstica o, incluso, de la Lingstica Computacional. En realidad el TLN utiliza tcnicas y formalismos tomados de stas y otras disciplinas para conseguir sus nes que no son otros que la construccin de sistemas computacionales para la comprensin y la generacin de textos en lenguaje natural. Vamos a precisar estos conceptos: La primera consideracin que hemos de hacer es que al hablar de lenguaje natural nos estamos reriendo al Lenguaje Humano. Es decir, lenguaje natural se opone a Lenguaje Articial o a Lenguaje Formal. De ah proviene la primera, importante, dependencia. El lenguaje natural es, si no inabarcable, s mucho ms difcil de abarcar que cualquier Lenguaje Formal. El TLN se ha alimentado durante dcadas de las tcnicas diseadas para el tratamiento de los lenguajes articiales (especialmente de los Lenguajes de Programacin) provinientes de la Teora Formal de Lenguajes o de la Teora de la Compilacin. Por supuesto, el lenguaje natural no es un Lenguaje de programacin y de ah que el TLN se haya convertido en una disciplina diferenciada. Si el TLN se reere al Lenguaje Humano, otra disciplina con la que debe tener anidades es la Lingstica. La Lingstica es, quizs, la ms formalizada de las Ciencias Humansticas. La razn de ello es que el Lenguaje, objeto de su estudio, presenta unas caractersticas altamente estructuradas y, por lo tanto, es ms susceptible de formalizacin que otros aspectos de la actividad humana. La Lingstica trata del estudio del Lenguaje tanto en general como de las diferentes lenguas particulares que los seres humanos hablamos. E, incluso, trata de los Sublenguajes: Subconjuntos ms o menos cerrados de un lenguaje que permiten un tratamiento formal o computacional ms ecientes. Durante aos, el desarrollo de la Lingstica (evidentemente anterior) y el del TLN siguieron caminos casi paralelos con apenas transferencia de resultados de uno a otro. Los lingistas construan sus teoras, bsicamente sintcticas, sin tener en cuenta la posible realizacin computacional de las mismas y los informticos trataban las aplicaciones informticas del lenguaje natural como un problema ms de Ingeniera del Software. No se lleg muy lejos en ninguna de las disciplinas (a pesar de xitos inicialmente notables en ambas) y nalmente se impuso la sensatez. En la actualidad cualquier propuesta de Teora Lingstica lleva aparejado el estudio de su componente computacional (bsicamente expresada en cmo aplicarla al anlisis y/o a la generacin del Lenguaje y con qu coste computacional hacerlo). Cualquier aplicacin seria del Lenguaje Natural, descansa, por otra parte, en teoras o modelos lingsticos previamente establecidos. En cuanto el TLN adquiri un cierto nivel de utilizacin y las exigencias de calidad aumentaron, 185
186
INTELIGENCIA ARTIFICIAL
......
se hizo patente que una adaptacin pura y simple de los mtodos y tcnicas provinientes del Tratamiento de los Lenguajes Articiales no conduca a nada. Se vi que el proceso de Comprensin (y, ms adelante, de Generacin) del lenguaje natural implicaba el manejo de una cantidad ingente de Conocimiento de ndole diversa y la utilizacin de procesos inteligentes. La inteligencia articial proporcion la base para elevar decisivamente el nivel y las prestaciones de los sistemas de TLN Un ltimo punto a mencionar, a caballo entre la Psicologa y la Lingstica, es el de la Psicolingstica, que estudia los mecanismos humanos de comprensin y generacin del lenguaje. Aqu se reproduce el eterno dilema de la inteligencia articial, Debe modelizar formas humanas de tratamiento de los problemas o debe limitarse a obtener resultados similares a los que los seres humanos, enfrentados a los mismos problemas, obtendran? Cindonos a la comprensin o la generacin del lenguaje natural, deben las mquinas intentar reproducir las formas humanas de tratamiento, de acuerdo a lo que la Psicolingstica proponga, o deben explorar sus propios mtodos de procesamiento, ms adecuados a sus peculiaridades? Como es lgico podemos encontrar abundantes ejemplos de uno y otro signo. La gura 19.1 expresa grcamente estas consideraciones.
19.3 Niveles de descripcin y tratamiento lingstico Ambigedad lxica: 1. Se sent en el banco 2. Entr en el banco y fue a la ventanilla
187
3. El avin localiz el banco y comunic su posicin. Qu tipo de conocimiento hay que utilizar y cmo debemos utilizarlo para conjeturar que (probablemente) la aparicin de banco en (1) se reere a un mueble que eventualmente sirve para sentarse, mientras que la aparicin en (2) se reere a una ocina en la que una entidad nanciera realiza operaciones a travs de una ventanilla y la aparicin en (3) se reere, una vez examinado el contexto, a un banco de pesca...? Ambigedad sintctica: 4. La vendedora de peridicos del barrio Queremos indicar aqu que la vendedora es del barrio o bien son los peridicos los que son del barrio? 5. Pedro vi al hombre en lo alto de la montaa con unos prismticos Era el hombre o Pedro (o ambos) quien estaba en la montaa? Quin llevaba (o usaba) los prismticos? ... Ambigedad semntica: 6. Pedro di un pastel a los nios Uno para todos? Uno a cada uno? A lo mejor depende del tamao (del pastel, no de Pedro ni de los nios) ... Referencia: 7. le dijo, despus, que lo pusiera encima Quin dijo? A quin? Cundo, despus de qu? Que pusiera qu? Encima de dnde? ... Todos estos ejemplos son gramaticales, usan un vocabulario sencillo y no recurren a ninguna licencia especial.
188
REGLAS BSICAS
S INTERPRETACIN SEMNTICA
ESTRUCTURA SUPERFICIAL
ESTRUCTURA FONOLGICA
Figura 19.2: Teora estndar menudo expresados en otros niveles. Conviene detallar un poco ms las caractersticas de los diferentes tipos de Conocimiento implicados. El reconocimiento y utilizacin de estos niveles lingsticos corre parejo con el desarrollo de la lingstica computacional como disciplina. Vamos, a continuacin, a hacer un breve recorrido por la evolucin de la lingstica computacional en los ltimos aos para, despus, denir con ms precisin esos niveles y los tratamientos que en cada uno de ellos se llevan a cabo.
189
TRANSFORMACIONES
E. PROFUNDA
E.SUPERFICIAL
E. SEMANTICA
E.FONOLOGICA
morecre las Gramticas de Casos, origen de las Redes Semnticas, que tanto xito han tenido en inteligencia articial como mecanismo de Representacin del Conocimiento. Aunque la semntica no ha tenido en ningn momento el mismo xito que la sintaxis en cuanto a proponer formalizaciones lingsticas (seguramente por la mayor dicultad que supone su manejo) hay que citar aqu la obra de Montague2 que se considera en la base de la mayora de los sistemas de interpretacin semntica de tipo compositivo. A partir de los aos 80 se producen nuevos avances, ya claramente identicados con los objetivos de la lingstica computacional En el campo de la Sintaxis hay que acudir nuevamente a Chomsky que en 1983 propuso su teora de la Reccin y Ligadura ( Government and Binding ). sta teora ha supuesto el punto de partida de una polmica entre los partidarios de las formulaciones sintcticas basadas en la gramtica y los que dan ms importancia al lxico, reduciendo el papel de la gramtica a una serie de principios de buena formacin. Parece que los ltimos resultados en Teora Lingstica se inclinan hacia esta segunda opcin lexicalista. Las Gramticas de Estructura de Frase Generalizadas (GPSG), las Gramticas Lxico Funcionales" (LFG) o, ms recientemente, las Gramticas de Estructura de Frase Regidas por el Ncleo(HPSGHead Driven Phrase Structure Grammars ) siguen esta lnea. Paralelamente se han desarrollado formalismos basados en Unicacin, a partir, bsicamente, de las Gramticas de Clusulas Denidas (DCG ) y se han recuperado otros que haban quedado arrinconados, como las Gramticas Categoriale s (CG). En el campo de la semntica cabe resear los estudios sobre Semntica y Ontologa (Katz, Fodor), la Semntica Lxica, la Semntica de Prototipos y la Semntica de Situaciones (Perry, Barwise, 1983). Por ltimo cabe citar que se ha ampliado el campo de cobertura de la Lingstica para incluir, aunque en forma an incipiente, al menos desde la perspectiva del TLN campos como la Pragmtica, el estudio del nivel ilocutivo, la Lingstica textual y discursiva, la Teora de los dilogos, etc
190
Captulo 19. Tratamiento del Lenguaje Natural Nivel fonolgico: Trata de los sonidos desde el punto de vista de la realizacin de las palabras en forma de voz. Sus unidades son los fonemas. Nivel lxico: Trata de las palabras en cuanto depositarias de unidades de signicado. Sus unidades seran los lexemas. A este nivel se plantean los problemas de segmentacin del texto en palabras, la diferencia entre palabra ortogrca y lexema, las lexas, etc Nivel morfolgico: Trata de la formacin de las palabras a partir de fenmenos como la exin, la derivacin o la composicin. Sus unidades son los morfemas. Nivel sintctico: Trata de la forma en que las palabras se agrupan para formar frases. Las relaciones estructurales (sintcticas) entre los componentes de la frase son variadas. En los formalismos de tipo sintagmtico la estructura sintctica reeja la propia estructura de constituyentes de la frase (que se denominan sintagmas). Esta estructura se corresponde con el rbol de anlisis. Los sintagmas terminales (las hojas del rbol) se corresponden con los elementos de los niveles inferiores de la descripcin lingstica de la oracin (morfemas, palabras, cadenas de palabras, etc). Nivel lgico: Trata del signicado literal de la frase (sin tener en cuenta el contexto). A este nivel se introduce el concepto de forma lgica. Las unidades dependen del formalismo lgico empleado: predicados, funciones, constantes, variables, conectivos lgicos, cuanticadores, etc Nivel semntico: Se dota a la forma lgica de una interpretacin semntica, es decir, se conectan los elementos de la forma lgica con los elementos del mundo sobre el que la aplicacin informtica debe trabajar. Nivel pragmtico: Trata de la forma en que las oraciones se usan (y se interpretan) dentro del contexto en el que se expresan. Nivel ilocutivo: Trata de las intenciones que persigue quien produce la frase. Se pueden estudiar los actos de habla directos e indirectos. Otros fenmenos ligados a los objetivos, intenciones, planicacin de los dilogos, etc tambin se explican a este nivel.
191
2. Sistemas de Planicacin (Planicacin de dilogos, generacin en lenguaje natural a partir de planes, generacin de explicaciones, etc ). 3. Sistemas de Bsqueda Heurstica (Estrategias de anlisis sintctico, cooperacin sintaxis/semntica, etc ). 4. Sistemas de Razonamiento (Bsqueda de referentes, resolucin de anforas, determinacin del mbito de los cuanticadores, etc ). 5. Sistemas de representacin y razonamiento aproximado e incierto (cuanticadores difusos, informacin incierta, lgica de modalidades, analizadores probabilsticos, etc ). Hemos de tener en cuenta, por otra parte, que buena parte de las aplicaciones del TLN actan como interfaz de Sistemas Inteligentes en los cuales se integran. Buena parte de los sistemas de representacin de conocimiento e informacin que se utilizan al tratar el lenguaje natural deben tener en cuenta esta doble funcin.
192
Ya en los 80 asistimos a la incorporacin de los nuevos formalismos sintcticos a los que antes nos referamos, a la aparicin de las gramticas lgicas y los formalismos de unicacin y a la construccin de sistemas cada vez ms evolucionados. Sistemas como Ariane-78, EUROTRA o ATLAS, en el campo de la traduccin automtica, Interfaces como TEAM, CHAT-80, FRED o DATALOG en el campo de las Interfaces con bases de datos y otras como XCALIBUR, XTRA, INKA en otras aplicaciones completan el panorama de estos aos. Qu cabe decir de los 90? En primer lugar que se han ido incorporando a los sistemas de TLN algunos de los formalismos, sobre todo sintcticos, que se introdujeron como novedad en los 80. Que, igualmente, han seguido desarrollndose algunos de estos formalismos (las HPSG, por ejemplo, se han convertido en una referencia ineludible y las gramticas de clusulas denidas han evolucionado para dar lugar a formalismos ms adecuados a la descripcin lingstica como las MLG, las DCTG o las gramticas de rasgos (PATR-II, ALE). Se ha detectado la necesidad de adquisicin masiva de informacin lxica y gramatical y se han construdo sistemas para el aprovechamiento de fuentes de informacin lxica ya existentes, como los diccionarios para uso humano en soporte informtico o los crpora textuales. Se han perfeccionado las interfaces en las lneas de mejora de la calidad del dilogo, de las cualidades de transportabilidad de los productos, construccin de sistemas integrados (NAT, FRED) e interfaces multimodales (MMI2, XTRA). Se han establecido criterios de separacin clara entre la descripcin de la estructura de la lengua (Competence) y el tratamiento, usando esa descripcin, de los casos concretos (Performance). La descripcin debe estar orientada al usuario: lingista, lexicgrafo, usuario nal, etc y favorecer, por lo tanto las caractersticas de claridad, amplia cobertura, cohesin, reutilizacin, etc El tratamiento estar orientado a la mquina y debern, por lo tanto, privar los criterios de eciencia, tanto espacial como temporal. Los sistemas debern proveer mecanismos de transferencia entre uno y otro formalismo.
193
Transferencia
Anlisis
Generacin
Texto fuente
Texto objetivo
La traduccin automtica es, desde luego, la primera aplicacin en este campo (y la ms espectacular) pero junto a ella hemos de colocar los sistemas de formateo, resumen e indiciacin (semi) automticos de textos, los sistemas de correccin ortogrca, los de particin silbica, los de compaginacin, etc. El tratamiento de diccionarios, de crpora o, en general, la adquisicin (semi) automtica de informacin a partir de textos escritos (o hablados) constituyen aplicaciones en las que se trabaja intensamente.
194
del interlocutor humano, una frase ms o menos compleja. En los sistemas de tratamiento textual la unidad es a veces la oracin y en otras ocasiones el prrafo. El contexto depende, asimismo, del tipo de aplicacin. En un dilogo, la propia historia del proceso de la conversacin, las diferentes intervenciones de los interlocutores va proporcionando la estructura en la que deben interpretarse las oraciones. Es imposible interpretar adecuadamente la expresin dmelo" si antes no se ha especicado, directa o indirectamente, algo susceptible de ser dicho por nuestro interlocutor. Por supuesto el establecimiento y organizacin de este contexto no es tarea sencilla. Temas como el Conocimiento de sentido comn, el Conocimiento general del mundo o el Conocimiento del dominio tienen aqu importancia decisiva. Una vez delimitada la unidad a analizar y el contexto en el que llevar a cabo el anlisis, tiene lugar el proceso de comprensin. La manera ms simple de llevarlo a cabo es en cascada, mediante una serie de transductores que van pasando el texto a travs de los diferentes niveles de descripcin lingstica: anlisis morfolgico, anlisis lxico, anlisis sintctico, interpretacin semntica, etc La manera de representar estos niveles y los mecanismos de transduccin entre ellos puede estar ligada al propio nivel o ser homognea (es frecuente, por ejemplo, en los formalismos lgicos el empleo de notaciones homogneas). La ventaja de tal proceder es una mayor modularidad e independencia en los procesos. El inconveniente bsico es que, a menudo, la solucin de los problemas lingsticos de un nivel no se puede realizar en dicho nivel o slo con el conocimiento que dicho nivel posee sino que precisa de otros (el caso ms claro es la resolucin de ambigedades sintcticas mediante la utilizacin de informacin semntica). Una alternativa es el uso de mecanismos de cooperacin entre los diferentes niveles. Otra es el empleo de procedimientos de comprensin globales (no estraticados). Especial inters presentan los sistemas en los que se mantiene una diferencia formal en la expresin del Conocimiento Lingstico en los diferentes niveles, pero en los que toda esta informacin es compilada y tratada internamente de un modo uniforme.
20
El Conocimiento Lxico 20.1 Introduccin
El componente lxico es fundamental en cualquier sistema de TLN En ltima instancia las frases que el sistema debe comprender estn formadas por palabras y en ellas se deposita la informacin (morfolgica, sintctica, semntica) que se precisar en procesos posteriores. El tratamiento lxico no es sencillo, a pesar de lo que en una primera aproximacin pudiera parecer (de hecho, y en esto el TLN no se diferencia de otras disciplinas, construir un pequeo lexicn para una aplicacin de juguete es trivial, construir uno real para una aplicacin real no lo es). La razn de ello es doble: 1. Por una parte tenemos los problemas intrnsecos al propio lxico: segmentacin (e identicacin) de las palabras, homonimia (multiplicidad de acepciones), polisemia, desplazamientos de signicado (por ejemplo, los usos metafricos de las palabras), lexas, locuciones, etc 2. Por otra parte los problemas ligados al volumen de la informacin lxica necesaria: representacin, compacidad, redundancia, acceso eciente, adquisicin, etc Dividiremos esta seccin en tres subsecciones que tratarn, respectivamente, de la informacin lxica, los diccionarios (principales depositarios de dicha informacin) y la morfologa.
196
"reconstrucciones" Anlisis Morfolgico RE Anlisis Lxico
Repeticin + CONSTRUC +
Nombre CION +
Plural ES
CONSTRUIR construir ( , )
Dicc. Semntico
197
2. Propiedades sintcticas de concordancia, como el gnero, el nmero, la persona, el caso, etc 3. Otras propiedades sintcticas, como las restricciones selectivas (tipo de argumentos que una palabra, normalmente un verbo, admite), el tipo de complementos que una palabra rige, las preposiciones que acepta, etc 4. La informacin morfolgica, como el patrn de formacin de la palabra. 5. La informacin semntica, como la categora semntica, la forma lgica asociada, los rasgos semnticos, etc Por supuesto no todas las combinaciones ni el tipo de informacin ni los valores posibles son admisibles. Si, por ejemplo, la categora es un verbo, la concordancia no incluir seguramente el gnero (excepto para algunos tiempos); si la categora es una preposicin, no existirn restricciones selectivas, etc Por ejemplo, para los verbos podemos tener la siguiente informacin: 1. Aridad: Nmero de argumentos. 2. Argumentos internos y externos. 3. Opcionalidad de cada uno de ellos. 4. Restricciones selectivas sobre los argumentos: a ) Sintcticas (p. ej. preposiciones regidas). b) Semnticas (caractersticas exigibles al argumento: animado, humano, contable, medible, etc 5. Casos de los argumentos. 6. Tipo aspectual del verbo (suceso, estado, proceso). 7. Categora (tipo) de la informacin. Una manera bastante expresiva de representar la informacin lxica la constituyen las matrices de rasgos. Las matrices de rasgos (Feature Structures (FSs)) son esencialmente listas de atributos a los que se asocian valores. Los valores pueden ser atmicos o nuevamente FSs. Normalmente la estructura resultante no es un rbol ya que podemos identicar los valores correspondientes a dos o ms atributos distintos. En este sentido se suele hablar de estructuras reentrantes o simplemente DAGs (Directed Acyclic Graphs). Veamos algn ejemplo:
pepe: sin: cat: n concordancia:
198
en un formalismo del estilo de PATR-II (Schieber) esta estructura se podra expresar como: word pepe: <sin cat> = n <sin concordancia gen> = masculino <sin concordancia num> = singular <sin concordancia persona> = 3 <sem> = pepe ... Organizacin del Lexicn Un formalismo de representacin lxica como las FSs proporciona un nivel de expresividad adecuado pero presenta limitaciones graves cuando se trata de aplicarlo a un lexicn real, y por lo tanto voluminoso). Conviene, pues, incorporar a los lexicones mecanismos para: 1. Reducir la redundancia 2. Capturar y expresar generalizaciones 3. Realizar con facilidad la interfaz con las aplicaciones Veamos, brevemente, alguno de estos mecanismos: Convenciones abreviatorias Suponen el uso de smbolos que se expanden, a la manera de las macros de algunos lenguajes de programacin, permitiendo una descripcin ms concisa. La mayora de los lexicones admiten mecanismos de este estilo. Podemos citar, por ejemplo, los clusters de rasgos del LSP de Sager (ver ), los alias de Gazdar en GPSG o las templetas de Shieber en PATR-II. Veamos un ejemplo de estas ltimas: let nombre-masc-sing be: <sin <sin <sin <sin cat> = n concordancia gen> = masculino concordancia num> = singular concordancia persona> = 3.
Con esta declaracin previa la denicin de "pepe" se reducira a: word pepe: nombre-masc-sing <sem> = pepe. Herencia Diferentes mecanismos de herencia se han venido utilizando en la construccin de lexicones: herencia simple, herencia mltiple, herencia monotnica, herencia por omisin e incluso combinaciones entre ellas o formas ms complejas de herencia. Shieber, en PATR-II, permite la herencia simple de propiedades: let verbo be: <sin cat> = v <sin suj cat> = gn <sin suj caso> = nominativo.
20.2 Descripcin de la Informacin y el Conocimiento Lxicos let vt be: verbo <sin obj1 cat> = gn <sin obj1 caso> = acusativo. let vdat be: vt <sin obj2 cat> = gprep <sin obj2 prep> = a.
199
De forma que vdat heredara las propiedades de vt, que, a su vez, lo habra hecho de verbo. Haciendo uso de estas declaraciones previas podramos denir, en forma ms concisa, las entradas lxicas de tipo verbal: word reir: verbo <sem pred> = reir <sem arg1> = humano. (alguien re) word dar: vdat <sem pred> = dar <sem arg1> = humano <sem arg2> = cosa <sem arg3> = humano. (alguien da algo a alguien). Un sistema parecido al anterior es el de los Feature Networks de Flickinger, del que presentamos un ejemplo. En este caso la herencia es mltiple. $VERB $FINITE $THIRD-SING
Transformaciones Lxicas Se trata de reglas que permiten derivar entradas lxicas no presentes explcitamente en el lexicn a partir de las si existentes mediante la aplicacin de determinados procedimientos (normalmente reglas de produccin). La aplicacin de la regla permite modicar parte del contenido de la entrada lxica fuente para incorporarlo al resultado. La utilizacin de reglas lxicas permite obviar la presencia de un mdulo especco de Anlisis Morfolgico para las lenguas (como el ingls) en las que la exin o derivacin morfolgicas no plantean problemas graves.
200
Captulo 20. El Conocimiento Lxico Son numerosos los sistemas de tratamiento lxico que incorporan reglas lxicas (Kaplan, Bresnan, Ritchie, Jackendo, Copestake, etc ). Ms adelante se describe brevemente uno de tales sistemas. Mecanismos ligados al formalismo sintctico utilizado Dependiendo del formalismo sintctico utilizado se pueden incorporar al Tratamiento Lxico mecanismos de simplicacin especcos. Suele tratarse de mecanismos ligados a formalismos sintcticos fuertemente lexicalistas. En el caso de las GPSG, por ejemplo, algunos de los principios de buena formacin se aplican sobre la informacin lxica restringindola o amplindola. El FSD (Feature Specication Default), que asigna valores por defecto a algunas construcciones, o el FCR (Feature Coocurrence Restriction), que establece restricciones de coocurrencia de determinados atributos son alguno de ellos. Otros mecanismos Existen, nalmente, mecanismos ligados a la propia aplicacin informtica de la que el sistema de TLN es componente.
201
3. Reglas de consistencia. Se trata de reglas que permiten vericar la consistencia de los rasgos presentes en una estructura. Es decir no crean ni aaden nada, simplemente validan que lo existente hasta el momento es consistente. La siguiente, por ejemplo, es una regla de complecin que permite aadir, a una estructura de rasgos que carezca de l, el atributo BAR", asignndole el valor 1. En el ejemplo, x y bar son constantes (literales), _x y _rest son variables, _ es la variable annima y ~ indica la negacin (la no aparicin de determinado smbolo). (_ ((fix _fix) ~(bar _) _rest) _) = (&& ((fix _fix) (bar 1) _rest) &&) La siguiente es una regla de multiplicacin: (_ ((V = (_ ((V (_ ((V (_ ((V +) (N -) (BAR 0) (VFORM BSE) (INFL +) _rest) _) +) (N P) (BAR 0) (PN PER1) (INFL P) _rest) _) +) (N P) (BAR 0) (PN PER2) (INFL P) _rest) _) +) (N P) (BAR 0) (PN PLUR) (INFL P) _rest) _)
La regla indica que (en ingls) una forma verbal, caracterizada por los rasgos (V +) (N -) (BAR 0), bsica y que admite exin, da lugar a tres otras formas que corresponden a la primera y segunda persona del singular y a cualquiera del plural. Las reglas morfolgicas, por su parte, pueden ser de deletreo (spelling), de asignacin de valores por defecto o de formacin (word grammar). La siguiente regla, por ejemplo, permite describir que boxes, como plural de box se forma a partir de esta ultima forma y del morfema s en un proceso que implica la inclusin lxica de la letra e. +:e <s:s c:c h:h> s:s x:x z:z _s:s
202
La adquisicin manual se basa en la existencia de entornos interactivos de ayuda al lexicgrafo que permiten a ste incorporar y estructurar la informacin lxica. Se trata del sistema ms utilizado ya que posibilita, en forma relativamente sencilla, crear lexicones de tamao medio/bajo, sucientes para muchas aplicaciones. Un ejemplo notable de este tipo de entornos de adquisicin lo proporciona S. Nirenburg. Nirenburg parte del lema World rst, words later para construir primero una organizacin ontolgica de los conceptos a representar (en forma de frames), con sus propiedades y relaciones mutuas, para, ms adelante incorporar las palabras en que estos conceptos se realizan lxicamente. El sistema, en cuanto el volumen aumenta, se vuelve bastante complejo y difcil de manejar. Un enfoque similar, aunque a una escala bastante mayor es el usado por EDR para la construccin de lexicones del japons y el ingls (incluyendo la traduccin entre lenguas). El volumen previsto por este sistema es de unas 50.000 entradas lxicas por lengua. Tambin podemos citar aqu, aunque el sistema tiene ms que ver con la informacin conceptual que con la lxica, a CYC, de D.Lenat. Se trata de un proyecto, de construccin de una Base de Conocimiento con un contenido equivalente al de una enciclopedia de uso general. La alternativa es la utilizacin de recursos lxicos ya existentes (diccionarios para uso humano, corpus textuales, etc ) para extraer de ellos de forma automtica la informacin lxica que se precisa. Especial inters han tenido en los ltimos aos las experiencias de extraccin de informacin lxica a partir de diccionarios de uso humano en soporte magntico (MRD, Machine Readable Dictionaries). A partir de los trabajos iniciales de Amsler, se han desarrollado varios proyectos (Chodorov, Calzolari, Briscoe, Boguraev, Byrd, etc ). Uno de los proyectos ms ambiciosos es Acquilex. Este proyecto condujo, en una primera etapa a la construccin de Bases de Datos Lxicas (BDL) multilinges a partir de diccionarios del ingls, italiano, holands y espaol. La BDL contena, estructurada, la informacin presente en los distintos diccionarios. En una segunda etapa se desarrollaron mtodos de extraccin de la informacin semntica contenida en la BDL (especialmente a partir de las deniciones de las diferentes entradas). Ello condujo a la construccin de una Base de Conocimientos Lxica Multilinge (BCL).
20.4 Morfologa
203
utilizacin de FSs en formalismos de unicacin hace que, a menudo, las FS se implementen en forma de trminos de PROLOG (se suele hablar de compilacin de FSs a trminos). La presencia de estructuras reentrantes hace que surjan problemas tanto de representacin como de unicacin de las FSss.
20.4 Morfologa
Se ha prestado poca importancia a la Morfologa en el TLN debido, bsicamente, a la poca complejidad de los problemas morfolgicos en la lengua inglesa. Otras lenguas, sin embargo, con gran capacidad aglutinante, exiva o derivativa, presentan graves problemas en cuanto a la identicacin de las formas lxicas y por ello es importante el empleo de Analizadores Morfolgicos. El tratamiento morfolgico puede afectar a la adquisicin del Conocimiento Lxico, al almacenamiento del mismo, o a ambos. El tratamiento morfolgico se basa en los mecanismos de formacin de las palabras. En cierto modo un analizador morfolgico trata de realizar el proceso inverso al que condujo a la formacin de la palabra ortogrca que se examina. Las palabras pueden formarse por concatenacin o composicin de formas ms simples (rascacielos) o por adjuncin. La adjuncin supone que a una raiz se le adjunten uno o varios ajos. Los ajos, de acuerdo con el punto de adjuncin, pueden ser prejos, injos o sujos. Estos ltimos pueden ser exivos o derivativos. As por ejemplo, adormecedoras presenta la adjuncin del prejo a, de la raiz dorm, del sujo derivativo ecedor y de los sujos exivos a y s. No todos estos fenmenos tienen la misma importancia en la formacin de las palabras en las distintas lenguas y, por lo tanto no todos se tratan en un analizador morfolgico concreto. En castellano, por ejemplo, es bastante complicada la casustica de la exin verbal y la de los derivados (nominalizaciones verbales, por ejemplo), mientras que no tiene demasiada importancia la composicin. El punto bsico en un analizador morfolgico es la obtencin de la descomposicin (pattern) de la palabra en una cadena de morfemas. A menudo se trata, adems, de obtener el lexema asociado a la forma lxica para, a travs de l, acceder a la informacin semntica. Existen dos tipos bsicos de analizadores morfolgico, los analizadores de dos niveles y los analizadores de un nivel. Los analizadores de dos niveles (Ritchie, Koskeniemi) funcionan como transductores (normalmente de estados nitos) de forma que existe un nivel de entrada (supercial) y otro de salida (lxico). La entrada correspondera a la palabra que se analiza y la salida al lexema correspondiente. Las reglas morfolgicas establecen las condiciones sobre las letras que se van consumiendo y las que se van produciendo. Los analizadores de un solo nivel trabajan slamente a nivel supercial. Las reglas, en este caso, establecen condiciones vlidas de concatenacin entre los diferentes morfemas. Existen abundantes ejemplos que utilizan tcnicas muy variadas. MARS, por ejemplo, utiliza una red de transicin (TN) para denir las transiciones posibles. SIPA utiliza autmatas de estados nitos con condiciones ligadas a las transiciones entre estados. Ben Hamadou, por su parte, utiliza matrices para denir las combinaciones vlidas de ajos. Un sistema interesante es SEGWORD. En este sistema, tambin de un solo nivel, se permite no slo la concatenacin de ajos sino tambin la eliminacin de ajos de la forma lxica. El resultado es que el sistema no consta de raiz y ajos concatenados a ella sino de forma base y de ajos concatenados o eliminados de la misma. El inters reside en que entonces es posible sustituir el posible diccionario de raices por un diccionario de formas base (o formas cannicas) que puede ser un diccionario de uso humano.
204
21
La dimensin sintctica 21.1 Introduccin
El anlisis sintctico constituye el ncleo de cualquier sistema de TLN El objetivo del Analizador Sintctico es doble: 1. Determinar si una frase es correcta (es gramatical) 2. Proporcionar una estructura de la frase que reeje sus relaciones sintcticas y que pueda ser usada como base de los tratamientos posteriores. En general, lo que pretende el anlisis sintctico es determinar si una frase pertenece o no al lenguaje que se trata de analizar. Si los elementos de la frase son palabras, podemos decir que una frase est constituda por una cadena de palabras, es decir, w V*, donde V nota al vocabulario terminal de la gramtica o lo que es lo mismo, al conjunto de palabras vlidas. Por supuesto, no toda concatenacin de elementos de V se puede considerar como una frase correcta (es decir, perteneciente al lenguaje). En general tendremos que el lenguaje es un subconjunto estricto de las cadenas posibles, L V*. La manera de denir el lenguaje L puede ser a travs de una lista de frases correctas, a travs de procedimientos interpretativos, o constructivos, o a travs de una gramtica.
206
det q1
n v
det n
q4
q0
q2
q3
q5
np
adj
adj
Figura 21.1: Ejemplo de R.T. ventana sobre la cadena de entrada. Si al consumir completamente la cadena a analizar estamos en un estado nal, entonces la frase es correcta. Si no fuera as, o bien si en el curso del recorrido nos encontramos en una situacin en que ninguna transicin es posible, entonces la frase es incorrecta. Podemos admitir no-determinismo, bien porque exista ms de un estado de inicio, bien porque de un estado a otro salgan varios arcos con la misma etiqueta o bien por que alguna de las palabras de la cadena de entrada sea ambigua (tenga ms de una categora). En este caso el algoritmo de anlisis debera incluir un sencillo mecanismo de backtracking que gestionara el no-determinismo. Supongamos que, con el autmata de la gura 21.1, tratamos de analizar la frase el gato come pescado. Un anlisis lxico previo nos ha proporcionado la informacin siguiente:
el: cat: det gato: cat: n come: cat: v pescado: cat: n La aplicacin del algoritmo nos conducira desde el estado q0 (inicio) al q1 consumiendo el, al q2 consumiendo gato, al q3 consumiendo come y al q4 consumiendo pescado. Hemos acabado la frase y estamos en un estado nal, por lo tanto la frase es correcta. Es fcil comprobar que la capacidad expresiva de las RT no iba mucho ms all de lo conseguido mediante analizadores de pattern-matching u otros artilugios. El siguiente hito lo supusieron las textbfRedes de Transicin Recursivasindexredes de transicin recursivas (RTN). Una RTN consiste en una coleccin de RT etiquetadas con un nombre. Los arcos de cualquiera de las RT pueden estar etiquetados con categoras (como en el caso precedente) o con identicadores de las RT. El procedimiento de reconocimiento se complica algo. Cuando la etiqueta del arco es de tipo categora se procede como hasta ahora; cuando es de tipo RT entonces se contina el reconocimiento situndose en el estado de inicio de la red referenciada. Cuando se alcanza un estado nal, si la red que estamos recorriendo no era la activada inicialmente lo que se hace es continuar el recorrido en el estado destino del arco cuya transicin motiv la llamada. En el fondo la transicin es una llamada recursiva a una nueva RT (de ah la denominacin) y el llegar a un estado nal implica el nal de la llamada recursiva y la continuacin dentro de la RT llamadora. El mecanismo de backtracking tambin se complica algo ya que se ha de gestionar una pila de estados de retorno o dejar que la recursividad se ocupe de ello. La gura 21.2 nos presenta una RTN compuesta de 4 redes: FRASE, GN, FV y GP. La primera analiza frases, la segunda grupos nominales, la tercera frases verbales y la cuarta grupos preposicionales. Fijmonos en la gura 21.3 en las llamadas recursivas cruzadas que se producen a travs del ejemplo siguiente: el perro de Pepe come pescado. Dado que no hay estado de retorno, que estamos en un estado nal y que hemos agotado la cadena de entrada, podemos armar que la frase es correcta.
207
GN FRASE: 1 2
FV 3
n 3 adj
GP
GN 3
GP:
GN
Posicion el perro de ... el perro de ... perro de pepe... de pepe come ... de pepe come ... pepe come pescado pepe come pescado come pescado come pescado come pescado come pescado come pescado pescado pescado -
Estado 1 1 2 3 1 2 1 3 3 3 2 1 2 1 3 3 3
Retorno FRASE:2 FRASE:2 FRASE:2 GN:3 GN:3 GP:3 GP:3 GN:3 FRASE:2 FRASE:3 FRASE:3 FV:3 FV:3 FRASE:3 -
208
Las RTN constituyeron una herramienta seria de TLN pero tenan varias limitaciones importantes. La primera era que al hacer depender la posibilidad de una transicin exclusivamente de la categora esperada el sistema era en exceso local y se dejaba de utilizar informacin no categorial. Por otra parte, las RTN eran reconocedoras y no analizadoras del lenguaje. La siguiente extensin la constituyeron las Redes de Transicin Aumentadas (ATN, propuestas por Woods en 1970). Las ATNs son, bsicamente, RTNs a las que se aaden operaciones en los arcos. Las operaciones son de dos tipos: 1. Condiciones, que permiten ltrar la transicin entre estados. 2. Acciones, que permiten construir estructuras de salida y convertir, de esta forma, el reconocedor en un verdadero analizador. Volveremos ms adelante con el tema de las ATNs. Los formalismos presentados, especialmente las ATNs, han sido y son ampliamente utilizados en el anlisis sintctico pero todos ellos presentan graves dicultades de expresividad notacional. Incluso incorporando mecanismos ms legibles para expresar las caractersticas de las redes: formas de denir las transiciones vlidas, formas de nombrar estados y arcos, etc e incluso facilitando medios interactivos, por ejemplo, editores sintcticos y/o grcos, difcilmente podemos considerar cmoda la forma de denir las condiciones de pertenencia al Lenguaje o las estructuras de salida. Por ello, la mayora de los sistemas actuales de anlisis sintctico se apoyan en dos componentes diferentes y diferenciados: la Gramtica y el Analizador, facilitando al lingsta la tarea de escribir la gramtica como componente separada. De ello nos ocuparemos en la seccin siguiente.
209
tipo 1 (gramticas sensitivas): en las cuales se establece la limitacin de ser la longitud de la cadena de u menor o igual que la de w. tipo 2 (gramticas de contexto libre, GCL): que establecen la limitacin adicional de permitir slo reglas del tipo Aw donde A es un no terminal y w, como en el caso anterior pertenece a V* (de hecho la aceptacin o no de la cadena nula a la derecha de las producciones , es decir, la aceptacin de elementos opcionales, es un punto importante que conviene precisar en los diferentes formalismos). tipo 3 (gramticas regulares, GR): son aquellas que admiten nicamente reglas del tipo: Aa
A aB donde A y B son elementos de N y a lo es de T. como la operacin de reescritura. Se dene el concepto de derivacin directa = G = uxw G uyw (que podemos leer como uxw deriva directamente a uyw) si la cadena uxw se reescribe en forma uyw a travs de la aplicacin de la produccin x y, que debe pertenecer a P. . Llamaremos Podemos denir la relacin = como la clausura transitiva de la relacin = G G derivacin a esta relacin. Diremos que una cadena de elementos de T (es decir, una frase), w, pertenece al lenguaje generado por la gramtica G (w L(G)) si es posible encontrar una derivacin de w a partir de S, es decir si S = w. G Se puede demostrar que las RTNs son equivalentes a las GCL, es decir que a cada RTN le podemos asociar una gramticas de contexto libre y viceversa, de forma que generen reconozcan el mismo lenguaje. Es preciso establecer un compromiso entre las capacidades expresivas de cada tipo de gramtica, las necesidades de expresin necesarias para el tratamiento del lenguaje natural y la existencia de mecanismos computacionales que hagan tratable el formalismo. En general se considera que el lenguaje natural es demasiado complejo para ser expresado mediante gramticas de contexto libre. Sin embargo, dado que stas son aquellas que permiten un tratamiento ms eciente (dejamos de lado las GR cuya cobertura es claramente insuciente) la aproximacin ms extendida en el TLN, a nivel sintctico, es la de proporcionar una gramtica de contexto libre nuclear y tratar los fenmenos sensitivos en forma de aadidos locales, ltros, etc (a menudo implementados ad-hoc).
210
Supongamos que deseamos construir una gramtica que cubra el mismo lenguaje que la RTN de la gura 21.2 (ya hemos dicho que las gramticas de contexto libre y las RTNs son equivalentes). Una posibilidad es la siguiente: (G1) G1= <N1,T1,P1,FRASE> donde N1 = FRASE,GN,FV,RGN,GP T1 = det,n,np,adj,vi,vt,prep P1 = { 1 FRASE GN FV. 2 GN det n RGN. 3 GN n RGN. 4 GN np RGN. 5 RGN . 6 RGN GP RGN. 7 RGN adj RGN. 8 FV vi. 9 FV vt GN. 10 GP prep GN. }
La gramtica G1 es obviamente una gramticas de contexto libre que incluye categoras opcionales ( RGN). Es fcil ver que la cobertura es la misma que la de la RTN de la gura 21.2. La frase el gato come pescado ser, pues, correctamente analizada (es fcil comprobarlo). Ahora bien, qu ocurre si tratamos de analizar la gato come pescado o las gatas come pescado o el gato comen pescado? Todas estas frases, obviamente incorrectas, sern reconocidas como pertenecientes a L(G1). Cabe una solucin a este problema dentro del formalismo de las gramticas de contexto libre? Por supuesto podramos multiplicar los elementos de V incorporando a las categoras la informacin de gnero, nmero, persona, etc ... (nmassing,nmaspl , etc ... para indicar, respectivamente, un nombre, masculino, singular o un nombre masculino plural). Deberamos tambin aumentar el nmero de reglas de P (GN detmassing nmassing) pero esta multiplicacin se hara totalmente insoportable en cuanto el nmero de fenmenos a tratar, concordancia, dependencias a larga distancia, movimiento de constituyentes, conjuncin, etc y la informacin requerida para el tratamiento se incorporarn a los elementos de V para producir nuevas particiones. La solucin que antes sugeramos es la del enriquecimiento de las gramticas con componentes (a menudo de tipo procedural) que traten estos problemas. As, la segunda produccin de G1 podra sustituirse por la siguiente: GN det n RGN {concordancia_1} donde concordancia_1 sera algn ltro capaz de vericar la concordancia. Formalismos que siguen esta losofa son DIAGRAM y LSP. Veamos un ejemplo de este ltimo.
*BNF
21.5 Analizadores Bsicos <SENTENCE> <ENUNCIACION> <SUJETO> <LNR> <LN> <RN> <VERBO> <OD> *RESTR WCONC1 $SING $PLUR IN LNR % BOTH $SING AND $PLUR. = IF CORE OF LNR HAS ATTRIBUTE SG THEN CORE OF LN DOES NOT HAVE ATTRIBUTE PL. = IF CORE OF LNR HAS ATTRIBUTE PL THEN CORE OF LN DOES NOT HAVE ATTRIBUTE SG. = % %= % %= % %= % %= % %= % %= % %= % %= <ENUNCIACION> .. <SUJETO><VERBO><OD>. <LNR> /<*NULL>. <LN><*N><RN> / <*NULL>. <*ART> / <*NULL>. <*NULL>. <*TV>. <LNR>.
211
En este ejemplo simplicado vemos que la gramtica incluye dos partes, identicadas por las claves *BNF y *RESTR, la primera correspondiente a la gramtica de contexto libre y la segunda a las restricciones. La primera parte admite, en el formalismo de LSP, algunas facilidades expresivas (del estilo del formato BNF). La gramtica del ejemplo se autoexplica. La parte de restricciones est escrita en un lenguaje, el RL (Restriction Language), prximo a Lisp. El RL trabaja sobre los fragmentos de rbol de anlisis que se estn construyendo. Las primitivas del lenguaje permiten hacer navegaciones sobre el rbol de anlisis, consultas sobre la informacin asociada a los nodos del rbol y anotaciones sobre los mismos. El ejemplo que presentamos establece que a todos los nodos LNR (grupo nominal) se les debe asociar un chequeo de la concordancia en nmero. Este chequeo se lleva a cabo a travs de dos operaciones $SING y $PLUR. La primera de ellas exige que, de existir el atributo SG en el ncleo de la componente, no debe aparecer el atributo PL en el adjunto izquierdo. La otra operacin es simtrica.
212
tratamiento en el que ms se aprecian las diferencias entre estos dos modelos es, precisamente, en el sintctico/semntico. Se han seguido bsicamente las siguientes aproximaciones: 1. Ausencia de Semntica. Modelos exclusivamente sintcticos que producen un rbol de anlisis a partir del cual acta la aplicacin informtica. Muchos sistemas de traduccin automtica siguen este modelo. 2. Ausencia de Sintaxis. Modelos bsicamente lexicalistas que prescinden de la sintaxis obteniendo toda la informacin necesaria para el tratamiento de las palabras que forman la oracin. Modelos aplicados a dominios muy restringidos siguen esta aproximacin. 3. Sntesis de las dos aproximaciones anteriores. La categorizacin es sintctico-semntica y el rbol de anlisis tiene en s mismo un etiquetado que incluye la semntica. Las gramticas semnticas son un ejemplo relevante. 4. Actuacin en secuencia. Elanlisis sintctico produce un rbol de anlisis y, a partir de l, el Intrprete Semntico (IS) produce la Estructura Semntica. Se trata del modelo ms sencillo. Permite una modularizacin del Conocimiento y de los Tratamientos implicados sin graves complicaciones. 5. Actuacin en paralelo. Modelos cooperativos. Existen formas diversas de realizar la cooperacin: Uso de interpretaciones semnticas parciales para validar algunas construcciones sintcticas, igualmente parciales. Normalmente estas interpretaciones se incorporan al rbol de anlisis (en lo que se suelen llamar decoraciones del rbol) para evitar la redundancia en los clculos. Uso de restricciones selectivas (informacin lxica de tipo semntico que determinadas componentes sintcticas deben poseer: el verbo reir, por ejemplo, exige un sujeto de tipo humano). Valencia sintctica adecuada a determinadas relaciones semnticas. El tercer punto se reere a las Fuentes de Conocimiento implicadas en el anlisis. La primera, por supuesto, es la Gramtica. No es la nica, sin embargo. El Lexicn juega, asimismo, un papel predominante no slo como fuente de categorizacin sintctica sino como fuente de asignacin de las diferentes propiedades que pueden ser utilizadas por la extensin de la gramtica de contexto libre. Son igualmente frecuentes sistemas que incorporan diferentes tipos de reglas de formacin al margen de las expresadas en la Gramtica: Sistemas basados en Principios, Transformaciones, Metarreglas, etc
213
Las estrategias bsicas son la Descendente (dirigida por objetivos, top-down) y la Ascendente (dirigida por hechos, bottom-up). Ambas tienen ventajas e inconvenientes y la eleccin de una u otra depender de las caractersticas de la Gramtica, del grado de ambigedad lxica y de la tcnica de anlisis a emplear. Existen mtodos que combinan ambas estrategias, esttica o dinmicamente. En ellos la dicultad estriba en dotar al mecanismo de control de suciente conocimiento para que la mejora de las prestaciones compense el overhead. Direccin del Anlisis La mayora de los analizadores operan de izquierda a derecha. Existen, sin embargo, excepciones. La ms conocida es la de los analizadores activados por islas en los cuales la localizacin de determinadas palabras (no ambiguas, muy denotativas, etc ) activa el proceso ascendente en forma de capas concntricas alrededor de dichas islas. Otro ejemplo notable de bidireccionalidad lo constituyen los analizadores regidos por el ncleo (Head Driven) en los cuales la activacin se lleva a cabo, para cada regla , a partir del ncleo (head) o componente principal del sintagma correspondiente (el verbo para la frase, el nombre para el grupo nominal, etc ) Orden de aplicacin de las reglas. El azar o el orden de escritura de las reglas de la gramtica suele ser el criterio que se sigue al seleccionar las reglas a aplicar en cada caso. Existen, sin embargo, sistemas ms sosticados en los que las reglas se ponderan o en los que se incluyen formas de seleccin inteligentes. La ambigedad Dos tipos de ambigedad tienen importancia durante el anlisis sintctico, la ambigedad lxica, que hace que una palabra pueda poseer ms de una categora sintctica, y la ambigedad sintctica que hace que puedan producirse ms de un rbol de anlisis correcto para alguna de las componentes (incluyendo, por supuesto, el propio axioma). Lo nico que debemos sealar es que cualquier sistema de AS debe poseer mecanismos de gestin de estos tipos de ambigedad. Existen sistemas que asignan probabilidades a las categorizaciones y a las reglas de forma que los rboles de anlisis obtenidos pueden dotarse de alguna medida de probabilidad relativa y ordenarse de acuerdo ella. En la mayora de los casos la seleccin del rbol adecuado se deja a procesos posteriores. No determinismo El analizador sintctico presenta, como hemos visto, varias fuentes de indeterminismo. En cualquier caso, e incluso para analizadores calicados de deterministas, es necesario gestionar un mayor o menor grado de indeterminismo. Las herramientas que se emplean para ello son el backtracking y el (pseudo) paralelismo.
Veamos, para acabar, como procedera un analizador sintctico para analizar la frase el gato come pescado usando la gramtica G1, con una estrategia descendente, unidireccional de izquierda a derecha y aplicando las reglas en el orden en el que estn escritas:
214 Objetivos 1 FRASE 2 GN FV 3 det n RGN FV 4 n RGN FV 5 RGN FV 6 FV 7 vi 8 vt GN 9 GN 10 det n RGN 11 n RGN 12 RGN 13 Hechos el gato come pescado el gato come pescado el gato come pescado gato come pescado come pescado come pescado come pescado come pescado pescado pescado pescado -
Captulo 21. La dimensin sintctica Regla aplicada 1 2 det = el n = gato 5 8 fallo (vuelta a 6) vt = come 2 fallo (vuelta a 9) n = pescado 5 xito
El enfoque alternativo, ascendente, dara lugar a: Hechos Regla aplicada 1 el gato come pescado el = <det> 2 <det> gato come pescado gato = <n> 3 <det> <n> come pescado <e> 4 <det> <n> <e> come pescado 5 5 <det> <n> <RGN> come pescado 2 6 <GN> come pescado come = <vt> 7 <GN> <vt> pescado pescado = <n> 8 <GN> <vt> <n> <e> 9 <GN> <vt> <n> <e> 5 10 <GN> <vt> <n> <RGN> 3 11 <GN> <vt> <GN> 9 12 <GN> <FV> 1 13 <FRASE> xito
215
Feature Dimensions: Number: Singular, Plural: default empty Initializations, Conditions and Actions: NP1: f Determiner g A: Set Number to the Number of * NP4: g Nounh C: Number is empty or Number is the Number of * A: Set Number to the Number of * NP5: f Pronounh A: Set Number to the Number of * NP6: f Proper h A: Set Number to the Number of *
216
El ejemplo presentado en la gura 21.4 est tomado de Winograd. Se reproduce un fragmento de una gramtica de ATNs. Concretamente se trata de una red, llamada NP, que trata de reconocer grupos nominales. Existen 3 nodos, identicados con f, g y h. f es inicial y h es nal (de l sale un arco SEND, en la nomenclatura de Winograd). La red es capaz de reconocer pronombres, nombres propios y nombres, opcionalmente precedidos de un determinante. Un nmero indeterminado de grupos preposicionales se puede postponer al ncleo. Un nmero indeterminado de adjetivos se podran anteponer al nombre. A algunos de los arcos se les asocian Condiciones (notadas con C) y Acciones (notadas con A). Las acciones asocian valores a determinadas variables, llamadas aqu rasgos, mientras que las condiciones chequean el valor de dichos rasgos.
217
Esta ltima correspondera a un arco inactivo y las anteriores a arcos activos. La primera es una mera hiptesis sin ninguna conrmacin, ni an parcial. Notaremos los arcos del Chart de la siguiente manera: <i, j, A .> donde: i es el nodo origen j es el nodo destino A es un no terminal y son elementos de V* A . es una DR A pertenece a P La regla bsica que permite combinar dos arcos es que si el Chart contiene dos arcos contiguos, el primero activo y el segundo inactivo, tales que el segundo es una continuacin vlida del primero, se crea un nuevo arco con origen en el origen del primero, con destino en el destino del segundo y con una etiqueta igual a la del primer arco con el punto desplazado a la derecha. Ser un arco activo o inactivo dependiendo de si quedan o no elementos a la derecha del punto <i, j, A .B> (activo) <j, k, B .> (inactivo) produciran: <i, k, A B.> El Chart debe inicializarse aadiendo los arcos (inactivos) que corresponden a las categoras lxicas (terminales). Las dos estrategias bsicas de anlisi se pueden implementar de la siguiente forma: Estrategia Ascendente: Cada vez que se aade un arco inactivo al Chart, <i, j, A .> entonces se debe aadir a su extremo izquierdo un arco activo <i, i, B .A> por cada regla B A de P. Estrategia Descendente: Cada vez que se aade un arco activo al Chart, <i, j, A .B> entonces, para cada regla B de P se deber aadir un arco activo a su extremo derecho: <j, j, B >. La combinacin de la regla bsica con la estrategia ascendente o descendente (o cualquier astuta combinacin de ambas) nos proporciona el mtodo de anlisis. Encontraremos un anlisis correcto si en cualquier momento del proceso logramos un arco inactivo que vaya desde el primer nodo al ltimo y est etiquetado con el axioma de la Gramtica. Consideremos la gramtica siguiente (G2): G2= <N2,T2,P2,FRASE>
218
det
el
gato
vt
come
pescado
3
Figura 21.5: Chart 1
donde N1 = FRASE,GN,FV T1 = det,n,vi,vt P1 = { 1 FRASE GN FV. 2 GN det n. 3 GN n. 4 FV vi. 5 FV vt GN. } Si deseamos analizar la frase el gato come pescado deberamos en primer lugar inicializar el Chart produciendo (ver la gura 21.5): 1 2 3 4 <1, <2, <3, <4, 2, 3, 4, 5, det el.> n gato.> vt come.> n pescado.>
Veamos el funcionamiento del analizador con una estrategia ascendente: Al aadir el arco inactivo 1 se creara un nuevo arco, correspondiente a la regla 2 de G2: 5 <1, 1, GN .det n> lo mismo ocurrira con los arcos 2, 3 y 4 dando lugar a la creacin de los siguientes arcos: 6 <2, 2, GN .n> 7 <3, 3, FV .vt GN> 8 <4, 4, GN .n> La aplicacin de la regla bsica entre los arcos 5 y 1 dara lugar a: 9 <1, 2, GN det . n> Entre 9 y 2: 10 <1, 3, GN det n .> De forma similar, los arcos 6 y 2, 7 y 3, 8 y 4 daran, respectivamente lugar a la creacin de: 11 <2, 3, GN n .> 12 <3, 4, FV vt . GN> 13 <4, 5, GN n .> Los arcos 10,11 y 13 son inactivos y dan, por lo tanto, lugar a la aplicacin de la regla del Anlisis Ascendente. 14 <1, 1, FRASE .GN FV> 15 <2, 2, FRASE .GN FV> 16 <4, 4, FRASE .GN FV>
21.6 Los formalismos de Unicacin Por otra parte, 12 y 13 pueden componerse para producir 17 <3, 5, FV vt GN .> Igualmente, 14 y 10, 15 y 11, 16 y 13 se pueden componer para dar lugar a 18 <1, 3, FRASE GN . FV> 19 <2, 3, FRASE GN . FV> 20 <4, 5, FRASE GN . FV> Finalmente 18 y 17 se compondran para producir 21 <1, 5, FRASE GN FV .>
219
que es precisamente la condicin de gramaticalidad de la frase. Veamos ahora, en forma grca el anlisis siguiendo la estrategia descendente (simplicamos para facilitar la lectura de las guras). Es preciso iniciar el anlisis con un arco activo que corresponde al objetivo de obtener una FRASE. Ello desencadena la regla descendiente con el objetivo de un GN y luego de un <n> y un <det>, tal como presenta la gura 21.6. Slo el tercero de estos arcos puede ser extendido, primero incorporando <det> y luego <n> hasta completarse. En este punto tambin el primer arco podr extenderse un paso para llegar a la gura 21.7. La creacin del arco <1, 3, FRASE GN . FV> activa, de nuevo la regla de anlisis descendente, como presentamos en la gura 21.8. La reiteracin de estos procesos conduce, nalmente, a la gura 21.9 en la que la aparicin de un arco <1, 5, FRASE GN FV .> nos indica la gramaticalidad de la frase analizada.
220
FRASE
GN FV n
det
vt
1 GN
2 n
GN
det n
FRASE
GN
FV
det
vt
GN
n det
GN
det n
221
FRASE
GN
FV
det
vt
3 FV vi
FV
vt GN
Figura 21.8: Chart 4
FRASE
GN FV
FRASE
GN
FV
GN
det
vt
3 FV vt
4 GN GN n
FV
Figura 21.9: Chart 5
vt GN
222
Es habitual el uso de las gramticas lgicaspara la tarea de comprensin del lenguaje natural aunque tambin podemos encontrar ejemplos interesantes de utilizacin para Generacin o Transferencia. Algunos de los formalismos de las gramticas lgicaspermiten la descripcin separada de la informacin sintctica y semntica (como las DCTG, Denite Clause Translation Grammars) mientras que en otros el mecanismo de descripcin es uniforme. Si quisiramos obtener las caractersticas bsicas de las gramticas lgicasa partir de la interseccin de las caractersticas de los diversos sistemas seguramente obtendramos el conjunto vacio. Existen, sin embargo, dos factores que podemos considerar fundamentales: el uso de la unicacin como mecanismo bsico (no nico) de composicin entre constituyentes y el uso de una aproximacin de estructuracin sintagmtica como forma bsica de descripcin gramatical. La utilizacin de la Unicacin permite entroncar a las gramticas lgicasen el paradigma lgico de programacin (o de resolucin de problemas) mientras la utilizacin de gramticas de estructura sintagmtica sigue la tradicin de descripcin sintctica de la gramtica generativa y concretamente la prctica habitual en el TLN de describir el ncleo del lenguaje mediante gramticas de contexto libre y modicar stas (extenderlas o restringirlas) para hacer frente a los aspectos sensitivos. En los ltimos tiempos y atendiendo a las tendencias ms recientes en descripcin sintctica (especialmente las basadas en la teora GB) que refuerzan el papel del lxico como fuente de informacin gramatical reduciendo relativamente el de la gramtica y substituyndolo (parcialmente) por principios generales de buena formacin, se han producido esfuerzos destinados a incluir estos elementos en los formalismos lgicos.
223
de Unicacin (UG, Unication Grammars, Kay) y, nalmente a las Gramticas Funcionales de Unicacin (FUG, Functional Unication Grammars, Kay). 3. La asociada a las Gramticas de Estructura de Frase Generalizadas (GPSG) y sus derivadas (HG, Head Grammars, Pollard), (HPSG, Pollard, Sag). Hemos mencionar tambin aqu la incorporacin de la familia de las Gramticas Categoriales (GC, Steedman) y posteriormente de las Gramticas Categoriales de Unicacin (UCG, Zeevat). Desde el punto de vista del formalismo, aparecieron en los aos 80 varios enriquecimientos de las gramticas de clusulas denidas que aportaban soluciones a problemas puntuales que las gramticas de clusulas denidas presentaban. Las Gramticas de Extraposicin (XP, Pereira), las SG (Slot Grammars, Mc Cord), las GG (Gap Grammars, Dahl), las DC (Discontinuous Grammars, Dahl), las SDG (Static Discontinuous Grammars, Dahl) o el sistema DISLOG de St.Dizier pueden considerarse as. Se realiza un estudio de la gramticas en la seccin 21.3. Ms inters presentan sistemas desarrollados posteriormente que intentan proporcionar medios de separar los diferentes tipos de informacin a describir, especialmente la informacin sintctica y la semntica. Las MSG (Modier Structure Grammars, Dahl y McCord) y las muy conocidas y utilizadas MLG (Modular Logic Grammars, McCord) son ejemplos signicativos. Mencin aparte merecen las DCTG ("Denite Clause Translation Grammars", Abramson) que se basan en las conocidas Gramticas de Atributos, ampliamente usadas en compilacin. Aportaciones como las de Hirshman o Sedogbo (RG, Restriction Grammars) que intentan proporcionar medios de describir las restricciones sobre el ncleo gramatical bsico en forma procedural, a partir de formalizaciones anteriores, son tambin reseables. Las ltimas aportaciones de Dahl y Saint Dizier en la linea de incorporar elementos de Sistemas basados en Principios son tambin dignas de mencin. Un ltimo punto a mencionar es el de las Gramticas de Rasgos. Se trata de formalismos en los cuales la descripcin de las restricciones se realiza a travs de ecuaciones que ligan los valores de determinados rasgos de los constituyentes. La inuencia de las FUG (Kay) o de las LFG (Kaplan, Bresnan) es patente. El ejemplo paradigmtico es PATR-II (Shieber), que se ha convertido de hecho en un estndar de este tipo de formalismos. Propuestas posteriores como ALE (Carpenter) son tambin interesantes.
224
Incorporemos, a continuacin, la frase a analizar (el perro ladra): (7) el(1,2) (8) perro(2,3) (9) ladra(3,4) Y planteemos el teorema a demostrar: que el perro ladra sea una frase gramatical respecto a la gramtica anterior. Estableceremos el teorema como: frase(1,4) es decir, hay una frase entre las posiciones 1 y 4 (jmonos en la similitud con la tcnica de los Charts). Razonando por refutacin deberemos negar el teorema: frase(1,4) y va derivacin descendente tratar de demostrar [ ]. Supongamos que los criterios de seleccin de trmino a expandir y expansin a realizar son los triviales: recorrido de izquierda a derecha de la negacin a convertir y bsqueda secuencial en la gramtica. La nica regla aplicable es (1). Se produce para ello la unicacin de (X 1, Y 4) dando lugar a la negacin siguiente: gnom(1,Z), gver(Z,4) Se aplican, a continuacin las reglas (2) y (4) sobre los trminos gnom(1,Z) y art(1,U) dando lugar a las siguientes negaciones de la secuencia: art(1,U), nom(U,Z), gver(Z,4) el(1,U), nom(U,Z), gver(Z,4) La aplicacin de la regla (7) incorpora a la lista de substituciones (U 2) y produce la siguiente negacin de la secuencia: nom(2,Z), gver(Z,4) La aplicacin de las reglas (5) y (8) incorpora a la lista de substituciones (Z 3) y produce la siguientes negaciones de la secuencia: perro(2,Z), gver(Z,4) gver(3,4) Se pueden aplicar a continuacin las reglas (3) (6) y (9) para producir: ver(3,4) ladra(3,4) [] Hemos derivado, pues, la contradiccin y por lo tanto la negacin de frase(1,4) no es cierta y por lo tanto es cierta la armacin frase(1,4), es decir, el perro ladra es una frase gramatical. Resumimos, a continuacin todo el proceso deductivo: frase(1,4) gnom(1,Z), gver(Z,4) art(1,U), nom(U,Z), gver(Z,4) el(1,U), nom(U,Z), gver(Z,4) nom(2,Z), gver(Z,4) perro(2,Z), gver(Z,4) gver(3,4) ver(3,4) ladra(3,4) []
225
Una implementacin obvia de este formalismo lo proporciona el lenguaje Prolog. El mecanismo deductivo, as como los criterios de seleccin de trminos y reglas, forman parte del propio lenguaje.
226
Los tomos son los reponsables de la parte sintctica de la gramtica. El cdigo entre llaves implica simplemente una llamada a Prolog. La lista de variables o constantes entre corchetes se unica con los elementos correspondientes de la lista de entrada (de hecho es lo que implementa la diferencia entre la lista de palabras de entrada y salida). Veamos un ejemplo: gver iver, [Palabra], verbo(Palabra), dver. gver, iver y dver son constantes. [Palabra] consume una palabra de la cadena de entrada y la unica con la variable Palabra. verbo(Palabra) llama a un predicado Prolog y le pasa la palabra anterior como argumento. La principal limitacin de las gramticas de clusulas denidas es la de limitar la longitud de la cadena izquierda a un solo elemento. Ello recuerda el formato de las gramticas de contexto libre aunque obviamente las DCG no lo son (podemos fcilmente implementar la contextualidad mediante comunicacin va argumentos de los functores). La siguiente gramtica es un ejemplo sencillo de DCG. (G4) asercion npr, verb_ser, adj (X), compl(X). asercion npr, verb(X), compl(X). compl([ ]) [ ]. compl([arg(X)|Y]) prep(X), npr,compl(Y). npr [clara]. npr [maria]. npr [juan]. verb([arg(en)])[piensa]. verb([arg(en)]) [esta]. verb_ser([ ]) [es]. verb_ser([ ]) [esta]. verb([ ]) [rie]. verb([arg(con)]) [habla]. prep(en) [en]. prep(con) [con]. prep(de) [de]. verb([arg(con),arg(de)]) [habla]. adj([(arg (con)]) [enfadado]. adj([(arg (a)]) [parecido]. prep(a) [a].
22
La interpretacin semntica 22.1 Introduccin
La Semntica se reere al signicado de las frases. La Interpretacin Semntica (IS) es el proceso de extraccin de dicho signicado. No existe unanimidad en cuanto a los lmites de la IS. En nuestra presentacin consideraremos que la IS se reere a la representacin del signicado literal de la frase considerada sta en forma aislada, es decir, sin tener en cuenta el contexto en que ha sido enunciada. El conseguir a partir de aqu la interpretacin nal de la oracin ser una cuestin que resolveremos a nivel de la Pragmtica. Ya indicamos en su momento que existen diferentes modelos semnticos, aunque ni de lejos se ha llegado en Semntica al mismo grado de formalizacin que en Sintaxis. Desde el punto de vista del TLN se suelen exigir una serie de cualidades al modelo semntico utilizado y, por lo tanto, al proceso de la interpretacin. Allen, por ejemplo, propone: La Semntica ha de ser compositiva. Es decir, la representacin semntica de un objeto debe poder realizarse a partir de la de sus componentes. Debe utilizarse una teora, no basarse en una Semntica ad-hoc. Se deben utilizar objetos semnticos. Se debe denir un Sistema de Representacin Semntico. Debe existir un mecanismo de interfaz entre Sintaxis y Semntica. La IS debe ser capaz de tratar fenmenos complejos como la cuanticacin, la predicacin en sus diversas formas, modalidades, negacin, etc La IS debe ser robusta frente a las ambigedades lxica (polisemia) y sintctica. El sistema de representacin ha de ser no ambiguo. El sistema de representacin debe soportar inferencias (herencia, conocimiento no explcito, etc ). En cuanto al mecanismo de la representacin semntica, se han utilizado formas variadas. Quizs lo ms corriente sea el uso de formas de representacin basadas en lgica, especialmente formas diversas del Clculo de Predicados de primer orden. Tambin las Redes Semnticas han sido ampliamente utilizadas. Representaciones ms profundas, como los grafos de dependencia conceptual de Schank (u otros de ms alto nivel, como los MOPs o SCRIPTs) tienen tambin sus partidarios. Los modelos ms basados en Semntica (con poca o nula incidencia de la Sintaxis) encuentran especial acomodo en representaciones estructuradas (como los Frames). Por ltimo, los enfoques ms lexicalistas y 227
228
prximos a las gramticas de rasgos suelen acomodar el formalismo de las FSs para incorporar a l los rasgos semnticos. Es habitual que la compositividad de la Semntica se realice a nivel sintctico. Es decir, que la IS de un objeto sea funcin de las IS de sus componentes sintcticas. sta ser la hiptesis que adoptaremos en lo que sigue. Si hablamos de semntica compositiva hemos de denir el nivel atmico, es decir el que no admite mayor descomposicin. En la hiptesis adoptada ste no puede ser sino el nivel lxico (es decir, consideraremos al lexema como unidad de signicado). En este sentido cabra asignar a las palabras, a travs del Lexicn, estas unidades de signicado. Consideremos, por ejemplo, un sistema de representacin basado en lgica. En l parece razonable que los nombres propios se interpreten como las constantes del formalismo (Pedro pedro). Los verbos intransitivos, por su parte, se podran interpretar como predicados unarios (rie (lambda(x), reir(x))), etc La composicin de signicados de estas unidades en la frase Pedro re podra, si la funcin de composicin fuera la aplicacin lambda, dar lugar a: (lambda(x), reir(x)) pedro reir(pedro). Cmo llevar a cabo la IS? Hay que decidir dos factores, la funcin (o funciones) de composicin y el momento de llevar a cabo la interpretacin. Respecto a la funcin de composicin, el enfoque ms elegante sera el de admitir una sola funcin de composicin de forma que las diferencias de comportamiento quedaran reejadas en los parmetros de tal funcin y, en ltimo extremo, en el lxico. Si siguiramos este enfoque no tendra demasiada importancia el momento de llevar a cabo la IS. Si lo hacemos con posterioridad al anlisis sintctico resultar que la IS dar lugar a un recorrido en postorden del rbol de anlisis (del que ya dispondremos) llamando recursivamente al IS que aplicara la misma funcin de interpretacin sobre las componentes sintcticas del nodo (es decir, sobre sus hijos en el rbol de anlisis). El enfoque opuesto sera el de la aplicacin regla a regla. Cada vez que se aplique una regla con xito, es decir, cada vez que se construya un nuevo nodo en el rbol de anlisis podemos calcular la IS del constituyente. La ventaja del primer caso es que no se presentan problemas con el backtracking (el rbol de anlisis ya ha sido construdo) y, por lo tanto, las acciones del IS sern ya denitivas. El inconveniente es que muy probablemente no tengamos un rbol de anlisis sino varios y que alguno de ellos pudiera haber sido eliminado por consideraciones de tipo semntico. El inconveniente de la aplicacin regla a regla es que se puede llevar a cabo procesamiento semntico intil (que el backtracking deshar). La ventaja es que la IS constituye una forma ms de restriccin de la regla ( adems de las posibles restricciones de tipo sintctico). Elegir una u otra aproximacin se puede basar en consideraciones sobre el coste relativo de los procesos sintctico y semntico. Una forma extendida de implementar la funcin de composicin es limitarla a una lambda evaluacin. En este caso, la nica informacin semntica que se debera asociar a las reglas de la gramtica sera el orden de aplicacin de los componentes. Consideremos la siguiente gramtica: (G5) FRASE GN FV, (2 1) GN np, (1) FV vi, (1) FV vt GN (1 2) y el siguiente lexicn:
22.1 Introduccin
229
Pedro re
Sentence
sem= Pedro
pn
iv
pedro
re
Figura 22.1: rbol de anlisis 1 Pedro np, pedro Mara np, maria re vi, ( (x), reir(x)) ama a vt, (( (x), (lambda (y), ama(y,x)))) La lista (2 1) que acompaa a la regla FRASE GN FV, indica que la IS de FRASE se obtendr aplicando la IS de la segunda componente (FV), que deber, por lo tanto ser una funcin con un solo parmetro, a la primera componente (GN). La lista (1) que acompaa a la regla GN np, indica que la IS de GN es la misma que la de np. Fijmonos en que Pedro y Mara se interpretan como objetos individuales, re (verbo intransitivo) como funcin que aplicada a un objeto produce un enunciado y ama a como una funcin que aplicada a un objeto produce una funcin como la anterior. Si aplicramos la IS regla a regla al anlisis de la frase Pedro re obtendramos el rbol de anlisis de la gura 22.1. mientras que al analizar Pedro ama a Mara obtendramos el rbol de anlisis de la gura 22.2. Es habitual, si se emplea la forma de interpretacin regla a regla, el almacenamiento de las interpretaciones parciales como etiquetas del rbol de anlisis (en nuestro ejemplo como valores del atributo SEM). Si empleamos el proceso a posteriori, lo nico que necesitamos almacenar es el orden de aplicacin de los argumentos de la composicin. No siempre es adecuado un sistema de interpretacin como el aqu presentado. A veces conviene utilizar ms de una funcin de composicin para atenuar la rigidez del mtodo. En esos casos la informacin asociada no es nicamente el orden de aplicacin sino tambin el tipo de operacin a efectuar. Allen, por ejemplo, propone un mtodo similar al presentado aqu, en el que se utilizan algunas operaciones ms de composicin. En cualquier caso, si el nmero de operaciones diferentes no es grande las mismas consideraciones que hemos hecho seran aplicables. En todos los casos anteriores, la informacin bsica de tipo semntico o es aportada por el lxico o se reduce a un mnimo (operacin y orden de aplicacin) que se debe incorporar a cada regla. Independientemente de que la IS se realice en paralelo o al nal del anlisis sintctico se produce una interaccin muy fuerte Sintaxis-Semntica. Difcilmente podr escribir la parte semntica de las reglas quien no haya escrito la parte sintctica. Existe, por supuesto, la aproximacin contraria: la
230
FRASE
SEM = pedro
Pedro FV
SEM = (1 2) = (vt:SEM GN:SEM) = (((lambda(y) (lambda (x) amar(x,y))) mara) = ((lambda(x) amar(x,mara))
vt
SEM= mara
Mara
Figura 22.2: rbol de anlisis 2 que se basa en una descripcin independiente de las reglas sintcticas y semnticas. En esta otra aproximacin el AS produce un rbol de anlisis y sobre l se aplicar la IS. No existe una correspondencia regla a regla. Cmo sern las reglas de IS en este caso? Suelen ser reglas que producen interpretaciones semnticas parciales que luego se combinarn entre s (recordemos la compositividad) para formar IS ms complejas. El mecanismo de activacin y actuacin de estas reglas suele ser del tipo de los sistemas de produccin. Las reglas constan de una condicin y una accin. La condicin se aplica sobre un fragmento del rbol de anlisis y cuando tiene xito se ejecuta la accin. sta suele incorporar nueva informacin al rbol de anlisis. La condicin acostumbra a implicar la actuacin de un mecanismo de pattern-matching. As expuesto el sistema parece sencillo. No lo es. En primer lugar, un mecanismo de patternmatching sobre los nodos de un rbol (potencialmente a diferente profundidad) que suponga el examen de todos los posibles cortes del rbol para intentar asociarlos a los patrones de todas las reglas de interpretacin es a todas luces computacionalmente impracticable. Es necesario limitar el espacio de bsqueda en ambos sentidos: no todos los cortes, no todas las reglas. Ello obliga, en primer lugar, a establecer algn tipo de indiciacin de las reglas (agrupacin en paquetes, acceso eciente, posiblemente a travs de multindices, etc ) y, en segundo lugar, a incluir algn tipo de mecanismo de control que establezca cundo deben aplicarse qu reglas.
22.1 Introduccin
231
Consideremos el siguiente ejemplo, tomado de Allen. Supongamos que la frase una manzana verde ha sido analizada sintcticamente dando lugar al siguiente rbol de anlisis: (NP DET una HEAD manzana ADJ verde)
Supongamos que indexadas por lexemas se encuentran las siguientes reglas de interpretacin semntica: (verde 1) (NP ADJ verde HEAD +objeto-sico) (? * T(HEAD) (COLOR * verde)) (verde 2) (NP ADJ verde HEAD +fruta) (? * T(HEAD) (verde *)) (una 1) (NP DET una NUM sg) (INDEF/SG * ? ?) (manzana 1) (NP HEAD manzana) (? * manzana) Las reglas que Allen propone constan de una condicin, que debe emparejarse con un fragmento del rbol de anlisis, y una accin, que consiste en una forma lgica completada parcialmente. Las formas lgicas que Allen utiliza suelen ser tuplas de 4 elementos. El primero es el operador, que depende del tipo de objeto, frase, grupo nominal, nombre propio, etc , que se trata de describir. El segundo es el identicador (nico) del objeto, el tercero, el tipo o clase genrica a que pertenece, el cuarto, la lista de posibles modicadores. Las dos primeras reglas de interpretacin corresponden a dos interpretaciones de "verde": color, si se trata de un objeto fsico, grado de maduracin si se trata de una fruta. La interpretacin semntica producira los intentos de emparejamiento de las reglas anteriores con el resultado del rbol de anlisis y la posterior unicacin de los resultados. El resultado nal sera en este caso: (INDEF/SG M1 manzana {(color M1 verde) (verde M1)}) Este sistema separa completamente la IS del AS (slo el conocimiento de las formas posibles de rbol de anlisis es necesario). Ahora bien, esto no quere decir que la IS se deba llevar a cabo obligatoriamente despus del AS. Podemos perfectamente interpretar semnticamente cualquier fragmento de rbol de anlisis, no necesariamente el completo, una vez est construdo, y almacenar las interpretaciones parciales en el rbol. De esta manera es posible implementar una estrategia cooperativa entre sintaxis y semntica sin vernos obligados a desarrollar en paralelo las dos fuentes de conocimiento. Si usramos esta aproximacin, iramos construyendo y decorando semnticamente el rbol de anlisis en forma incremental. Los mismos argumentos que se adujeron al hablar de la IS regla a regla seran aplicables aqu.
232
233
23
Aprendizaje Automtico 23.1 Introduccin
Todas las tcnicas que hemos visto hasta ahora estn encaminadas a desarrollar aplicaciones para problemas que necesitan inteligencia en su resolucin. Fundamentalmente, stas estn orientadas a incluir conocimiento del dominio para facilitar su resolucin, intentando evitar el coste computacional que implican los algoritmos generales. Una de las limitaciones que podemos percibir es que estas aplicaciones no podrn resolver problemas para las que no haya sido programadas. Es decir, sus lmites estn impuestos por el conocimiento que hemos integrado en ellas. Si queremos tener aplicaciones que podamos considerar inteligentes en un sentido amplio, estas han de ser capaces de ir mas all de este lmite. De hecho nos parecera mas inteligente una aplicacin capaz de adaptarse y poder integrar nuevo conocimiento, de manera que pueda resolver nuevos problemas. El rea de aprendizaje automtico dentro de la inteligencia articial es la que se encarga de estas tcnicas. La idea es buscar mtodos capaces de aumentar las capacidades de las aplicaciones habituales (sistemas basados en el conocimiento, tratamiento del lenguaje natural, robtica, ...) de manera que puedan ser mas exibles y ecaces. Hay diversas utilidades que podemos dar al aprendizaje en los programas de inteligencia articial (y en el resto tambin) podemos citar tres esenciales: Tareas difciles de programar: Existen muchas tareas excesivamente complejas en las que construir un programa capaz de resolverlas es prcticamente imposible. Por ejemplo, si queremos crear un sistema de visin capaz de reconocer un conjunto de caras sera imposible programar a mano ese reconocimiento. El aprendizaje automtico nos permitira construir un modelo a partir de un conjunto de ejemplos que nos hara la tarea de reconocimiento. Otras tareas de este tipo lo constituiran ciertos tipos de sistemas basados en el conocimiento (sobre todo los de anlisis), en los que a partir de ejemplos dados por expertos podramos crear un modelo que realizara su tarea Aplicaciones auto adaptables: Muchos sistemas realizan mejor su labor si son capaces de adaptarse a las circunstancias. Por ejemplo, podemos tener una aplicacin que adapte su interfaz a la experiencia del usuario. Un ejemplo bastante cercano de aplicaciones auto adaptables son los gestores de correo electrnico, que son capaces de aprender a distinguir entre el correo no deseado y el correo normal. Minera de datos/Descubrimiento de conocimiento: El aprendizaje puede servir para ayudar a analizar informacin, extrayendo de manera automtica conocimiento a partir de 235
236
Captulo 23. Aprendizaje Automtico conjuntos de ejemplos (usualmente millones) y descubriendo patrones complejos.
237
limitado de ejemplos es suciente para sacar conclusiones generales, a pesar de que un solo ejemplo puede invalidarlas1 . Pese a esta falta de fundamento en el aprendizaje inductivo, podemos observar que gran parte del aprendizaje humano es de este tipo, de hecho la mayor parte de las ciencias se basan en l.
238
grupos en los que los ejemplos similares estn juntos y separados de otros ejemplos menos similares. El resultado de este proceso de aprendizaje es una particin de los ejemplos y una descripcin de los grupos de la particin.
239
I (M ) =
i=1
Este valor se puede interpretar como la informacin necesaria para distinguir entre los mensajes de M (Cuantos bits de informacin son necesarios para codicarlos). Dado un conjunto de mensajes podemos obtener la mejor manera de codicarlos para que el coste de su transmisin sea mnimo4 . Podemos hacer la analoga con la codicacin de mensajes suponiendo que las clases son los mensajes y la proporcin de ejemplos de cada clase su probabilidad. Podemos ver un rbol de decisin como la codicacin que permite distinguir entre las diferentes clases. El objetivo es encontrar el mnimo rbol (codicacin) que nos permite distinguir los ejemplos de cada clase. Cada atributo se deber evaluar para decidir si se le incluye en el cdigo (rbol). Un atributo ser mejor cuanto mas permita discriminar entre las diferentes clases. Como se ha comentado, el rbol se construye a partir de cero de manera recursiva, en cada nodo del rbol debemos evaluar que atributo permite minimizar el cdigo (minimizamos el tamao del
3 4
J. R. Quinlan, Induction of Decision Trees, Machine Learning, 1(1) 81-106, 1986. En estos mismos principios se basan tambin, por ejemplo, los algoritmos de compresion de datos.
240
Algoritmo 23.1 Algoritmo de aprendizaje de rboles de decisin Algoritmo: ID3 (X : Ejemplos, C : Classicacin, A: Atributos) si todos los ejemplos son de la misma clase entonces retorna una hoja con el nombre de la clase sino Calcular la funcin de cantidad de informacin de los ejemplos (I) para cada atributo en A hacer Calcular la funcin de entropia (E) y la ganancia de informacin (G) n Escoger el atributo que maximiza G (a) Eliminar a de la lista de atributos (A) Generar un nodo raz para el atributo a para cada Particin generada por los valores vi del atributo a hacer rboli =ID3(ejemplos de X con a=vi , Clasicacin de los ejemplos,Atributos restante) Generar una nueva rama con a=vi y rboli n retorna El nodo raz para a n
rbol). Este atributo ser el que haga que la cantidad de informacin que quede por cubrir sea la menor posible, es decir, el que minimice el nmero de atributos que hace falta aadir para discriminar totalmente los ejemplos del nodo. La eleccin de un atributo debera hacer que los subconjuntos de ejemplos que genera el atributo sean mayoritariamente de una clase. Para medir esto necesitamos una medida de la cantidad de informacin que no cubre un atributo (medida de Entropia, E ) La formulacin es la siguiente, dado un conjunto de ejemplos X clasicados en un conjunto de clases C = {c1 , c2 , cn }, siendo #ci la cardinalidad de la clase ci y #X el numero total de ejemplos, se dene la funcin cantidad de informacin como: I (X , C ) =
ci C
# ci #ci log( ) #X #X
Para cada uno de los atributos Ai , siendo {vi1 , . . . vin } el conjunto de modalidades del atributo Ai y #[Ai (C ) = vij ] el numero de ejemplos que tienen el valor vij en su atributo Ai , se dene la funcin de entropa como: E (X , C , Ai ) =
vij Ai
Con estas dos medidas se dene la funcin de ganancia de informacin para cada atributo como: G(#X , C , Ai ) = I (X, C ) E (X, Ai ) El atributo que maximice este valor se considera como la mejor eleccin para expandir el siguiente nivel del rbol (es el atributo que menor cantidad de informacin deja por cubrir). El algoritmo que se sigue para la generacin de rboles de decisin es que se puede ver en el algoritmo 23.1. Este algoritmo de generacin de rboles de decisin no es el nico que existe, por ejemplo se
241
pueden escoger otras heursticas para hacer la eleccin de atributos en cada nodo5 o se puede hacer ms de una pregunta en cada nodo del rbol. Un rbol de decisin se puede transformar fcilmente en otras representaciones. Por ejemplo, para generar un conjunto de reglas a partir de un rbol es suciente con recorrer todos los caminos desde la raz hasta las hojas generando una regla con los atributos y valores que aparecen en los nodos de cada camino. Ejemplo 23.1 Tomemos la siguiente clasicacin: Ej. Ojos 1 Azules 2 Azules 3 Marrones 4 Verdes 5 Verdes 6 Marrones 7 Verdes 8 Azules Cabello Estatura Rubio Alto Moreno Medio Moreno Medio Moreno Medio Moreno Alto Moreno Bajo Rubio Bajo Moreno Medio Clase + + + +
I (X, C ) = 1/2 log (1/2) 1/2 log (1/2) = 1 E (X, ojos) = (azul) 3/8 (1 log (1) 0 log (0)) + (marrones) 2/8 (1 log (1) 0 log (0)) + (verde) 3/8 (1/3 log (1/3) 2/3 log (2/3)) = 0.344 E (X, cabello) = (rubio) 2/8 (1/2 log (1/2) 1/2 log (1/2)) + (moreno) 6/8 (1/2 log (1/2) 1/2 log (1/2)) = 1 E (X, estatura) = (alto) 2/8 (1 log (1) 0 log (0)) + (medio) 4/8 (1/2 log (1/2) 1/2 log (1/2)) + (bajo) 2/8 (0 log (0) 1 log (1)) = 0 .5 Como podemos comprobar, es el atributo ojos el que maximiza la funcin.
G(X, ojos) = 1 0.344 = 0.656 G(X, cabello) = 1 1 = 0 G(X, estatura) = 1 0.5 = 0.5
Este atributo nos genera una particin que forma el primer nivel del rbol.
5 La entropa no es el nico criterio, de hecho no existe ninguna heurstica que sea mejor que el resto y el resultado depende muchas veces del dominio de aplicacin
242
OJOS
AZULES
MARRONES
VERDES
4,7 5 3,6 1,2,8 + + Ahora solo en el nodo correspondiente al valor verdes tenemos mezclados objetos de las dos clases, por lo que repetimos el proceso con esos objetos.
Ej. 4 5 7
Si calculamos los valores para las funciones I y E : I (X, C ) = 1/3 log (1/3) 2/3 log (2/3) = 0.918 E (X, cabello) = (rubio) 1/3 (0 log (0) 1 log (1)) + (moreno) 2/3 (1/2 log (1/2) 1/2 log (1/2)) = 0.666 E (X, estatura) = (alto) 1/3 (0log (0) 1 log (1)) + (medio) 1/3 (1 log (1) 0 log (0)) + (bajo) 1/3 (0 log (0) 1 log (1)) = 0 Ahora el atributo que maximiza la funcin es ojos. G(X, cabello) = 0.918 0.666 = 0.252 G(X, estatura) = 0.918 0 = 0.918
AZULES
MARRONES
VERDES ESTATURA
1,2,8 +
23.4 rboles de Induccin Este rbol se podra reescribir por ejemplo como un conjunto de reglas: (Ojos (Ojos (Ojos (Ojos (Ojos = = = = = Azul C+) Marrones C-) Verdes y Altura = Medio C-) Verdes y Altura = Bajo C-) Verdes y Altura = Alto C+)
243
244
Bibliografa
[1] James Allen Natural language understanding, Benjamin /Cummings, 1995. [2] Joseph Giarratano, Gary Riley Expert systems: principles and programming, Thomson Course Technology, 2005. [3] Avelino J. Gonzlez, Douglas D. Dankel The Engineering of knowledge-based systems : theory and practice, Prentice Hall, 1993. [4] Jackson, P. Introduction to Expert Systems, Addison-Wesley, 1990. [5] Noy & McGuinness Ontology Development 101: A Guide to Creating Your First Ontology, (2000) [6] Stuart J. Russell and Peter Norvig Articial intelligence: a modern approach, Prentice Hall, 2003.
245
ndice alfabtico
A , 25 Abstraccin de datos, 145 Adecuacin Inferencial, 78 Adecuacin Representacional, 78 Adquisicin de conocimiento, 137 Agentes Inteligente, 133 Algoritmo de distancia inferencial, 97 Algoritmo de unicacin, 83 Algoritmo gentico cannico, 50 Algoritmo minimax, 58 Algoritmos genticos, 46 ALVEY, 186, 200 Anlisis, 144 anlisis lxico, 196 analizador, 208 analizadores activados por islas, 213 analizadores de dos niveles, 203 analizadores de un nivel, 203 analizadores regidos por el ncleo, 213 aplicaciones del lenguaje natural, 191 arco-consistencia, 67 Asociacin heurstica, 145 ATN, 208 Bsqueda en anchura, 13 Bsqueda en haces, 38 Bsqueda en profundidad, 14 Bsqueda en profundidad iterativa, 17 Backtracking cronolgico, 65 Backward chaining, 91 Base de casos, 128 Base de conocimiento, 86, 124 Base de Hechos, 86 Beam search, 38 Branch and bound, 37 Case Based Reasoning, 127
CG, 189, 219 Chomsky, N., 188 Ciclo de vida, 138 Clusulas de Horn, 85 Clasicacin de los SBC, 143 Clasicacin Heurstica, 145 Colmerauer, A., 222 CommonKADS, 139 Conectivas difusas, 171 Conjunto de conicto, 88 conjunto de conicto, 87 Conjunto difuso, 170 Conocimiento, 75 conocimiento de sentido comn, 194 Conocimiento declarativo, 78 Conocimiento heredable, 79 Conocimiento inferible, 79 Conocimiento procedimental, 79 Conocimiento relacional, 79 Constraint satisfaction, 63 Constructive Problem Solving, 150 CYC, 202 DAG, 197 DCG, 189, 219 DCTG, 222 Demons, 97 Description Logics, 97 Diagram, 186 Discontinuous Grammars, 223 DISLOG, 223 dotted rules, 216 Eciencia en la Adquisicin, 78 Eciencia Inferencial, 78 Eliminacin de variables, 164 Espacio de estados, 6 246
NDICE ALFABTICO Esquema de representacin, 76 Estado, 6 Estrategia de control, 87 Estrategia de enfriamiento, 43 Estrategia de resolucin de conictos, 87 Etiqueta lingstica, 169 Expert Systems, 115 Facet, 96 Factores, 164 Feature Structures, 197 FG, 222 Forma normal de skolem, 83 formalismos de unicacin, 219 Forward chaining, 90 Forward checking, 69 frame, 190 Frame problem, 77 Frames, 96 FUG, 223 Funcin de adaptacin, 47 Funcion de tness, 47 Gap Grammars, 223 GPSG, 219 gramtica, 208 Gramtica Generativa, 188 Gramtica Transformacional Generativa, 188 gramticas categoriales de unicacin, 223 gramticas de casos, 189 gramticas de contexto libre, 209 gramticas de extraposicin, 223 gramticas de metamorfosis, 222 gramticas de rasgos, 223 gramticas de unicacin, 223 gramticas funcionales, 222 gramticas funcionales de unicacin, 223 gramticas lxico funcionales, 222 gramticas lgicas, 219 gramticas regulares, 209 gramticas sensitivas, 209 greedy best rst, 24 Hechos, 86 Herncia, 97 Herncia mltiple, 97 Heuristic Classication, 145 Hill-climbing, 37 HPSG, 223 IDA , 30 Independencia condicional, 161
247 Inferencia difusa, 178 Inferencia difusa de Sugeno, 178 Inferencia probabilstica, 163 Informacin, 75 Ingeniero del conocimiento, 135 Intrprete de reglas, 87 interfaces en lenguaje natural, 192 interfaces multimodales, 192 interpretacin semntica, 227 Iterative Deepening, 17 Justicacin de la solucin, 126 k-consistencia, 67 Knowledge Based Systems, 115 Knowledge Elicitation, 137 Koskeniemi, K., 203 Lgica de la descripcin, 97 Lgica difusa, 170 Lgica Posibilista, 169 Lgica proposicional, 81 Lako, G., 188 Least Commitment, 151 lenguaje natural, 185 lexicn, 195 LFG, 222 lingstica computacional, 185 Mtodo de resolucin, 82 Mtodos, 97 Mtodos dbiles, 115 Mtodos fuertes, 115 Mnimo Compromiso, 151 Marcos, 96 matrices de rasgos, 197 Memoria de trabajo, 126 Memory bound A , 33 Meta-reglas, 125 Metaconocimiento, 119 MIKE, 140 MLG, 219 Modelo en cascada, 135 Modelo en espiral, 136 Modelo probabilista, 157 Montague, R., 189 Motor de inferencia, 125 Motor de inferencias, 87 Negacin fuerte, 172 Nitidicacin, 179 no-determinismo, 206
248 One point crossover, 48 Operador, 6 Operador gentico de cruce, 48 Operador gentico de mutacin, 48 Paradoja del experto, 119 PATR-II, 219 Poblacin, 49 poda alfa-beta, 58 Polirbol, 168 Preguntas de competencia, 106 Propagacin de restricciones, 67 Proponer y Aplicar, 150 Propose and Apply, 150 Prototipado Rpido, 138 psicolingstica, 186 Q-Systems, 222 Random restarting hill climbing, 38 Rapid Prototyping, 138 Razonamiento Basado en Casos, 127 Razonamiento Basado en Modelos, 131 Razonamiento guiado por los datos, 90 Razonamiento guiado por los objetivos, 91 Razonamiento hacia adelante, 90 Razonamiento hacia atrs, 91 Recuperacin de casos, 127 Recursive best rst, 31 Red bayesiana, 161 redes de transicin, 205 redes de transicin aumentadas, 208 Redes Neuronales, 130 Redes semnticas, 95 redes semnticas, 190 Renamiento de la solucin, 146 Regla de Bayes, 161 Regla del producto, 158 Reglas de produccin, 85 Relacin de accesibilidad, 6 Resolucin Constructiva, 150 Resolucin de problemas, 145 Restriction Grammars, 223 Ritchie, G.D., 200, 203 Sntesis, 144 Satisfaccin de restricciones, 63 semntica, 227 semntica compositiva, 228 SHRDLU, 191 Simulated annealing, 43 Sistemas Basados en el Conocimiento, 115
NDICE ALFABTICO Sistemas Expertos, 115 Sistemas multiagente, 133 Slot, 96 Slot Grammars, 223 Solucin, 7 Static Discontinuous Grammars, 223 Steedman, M.J., 223 Steepest ascent hill climbing, 37 Sublenguajes, 185 T-conorma, 172 T-norma, 171 tablas de cadenas bien formadas, 216 traduccin automtica, 191 UCG, 223 UG, 223 unicacin, 222 Universo del discurso, 169 Variables observadas, 163 Variables ocultas, 163 Woods, W.A., 208