Inteligencia artificial Módulo 3 Ingeniería de Software Inteligencia artificial Módulo 3: Problema de satisfacción de restricciones y lógica Autor: Miguel García Torres mgarciat@upo.es Doctor en Ciencias de la Computación e Inteligencia Artificial Fecha de actualización: 18 de marzo de 2017 Inteligencia artificial Módulo 3 Módulo 3: Problema de satisfacción de restricciones y lógica Introducción Este módulo aborda dos grandes temas: la resolución de problemas de satisfacción de restricciones (PSR) y la lógica. El primero de ellos es ampliamente usado en problemas grandes y complejos y, principalmente, combinatorios. Se partirá de una introducción en la que se da una definición formal y se continuará presentando cómo se modelan varios problemas para resolverlos como un PSR. Finalmente, se presentará los tipos de técnicas que hay y se entrará en detalle con la estrategia vuelta atrás. En el segundo tema se introduce la lógica, cuyo objetivo de estudio es el aprendizaje de las técnicas de demostración formales y sus aplicaciones en la resolución de problemas. Para ello es necesario llevar a cabo la formalización del conocimiento y aprender la manipulación del mismo. La formalización se hace mediante el lenguaje formal lógico. En este tema se introduce el lenguaje de la lógica de primer orden para aprender a formular proposiciones y razonamiento con dicho lenguaje. Inteligencia artificial Módulo 3 Tabla de contenido Módulo 3: Problemas de satisfacción de restricciones y lógica ............................... 2 Introducción ............................................................................................................. 2 Unidad temática 5 .................................................................................................. 4 5.1. Introducción ................................................................................................... 4 5.2. Marco conceptual ........................................................................................... 4 5.2.1 Introducción ............................................................................................. 4 5.2.2 Modelización de problemas de satisfacción de restricciones ....................... 5 5.2.3 Técnicas de resolución de PSR ................................................................... 8 5.3. Ejemplos ........................................................................................................ 9 5.4. Conclusiones ................................................................................................ 11 Unidad temática 6 ................................................................................................ 12 6.1. Introducción ................................................................................................. 12 6.2. Marco conceptual ......................................................................................... 12 6.2.1. Representación del conocimiento y razonamiento ................................... 12 6.2.2 Lógica ..................................................................................................... 16 6.2.3 Tipos de lógica ........................................................................................ 17 6.3. Ejemplos ...................................................................................................... 21 6.4. Ejercicios de reflexión ................................................................................... 23 6.5. Conclusiones ................................................................................................ 24 Referencias bibliográficas ....................................................................................... 25 Inteligencia artificial Módulo 3 Unidad temática 5 5.1. Introducción La modelización de un problema como un problema de satisfacción de restricciones (PSR) es una metodología utilizada para la descripción y posterior resolución efectiva de cierto tipo de problemas, típicamente combinatorios y de optimización. Las principales aplicaciones de este tipo de problema son planificación, razonamiento temporal, diseño en la ingeniería, problemas de empaquetamiento, criptografía, diagnóstico, toma de decisiones, etc. Los primeros trabajos relacionados con la programación de restricciones datan de los años 60 y 70 en el campo de la inteligencia artificial. La importancia de esta área radica en que muchas decisiones que se toman diariamente están sujetas a restricciones, como planificar un viaje, concertar una cita para el médico, comprar una casa, etc. 5.2. Marco conceptual 5.2.1 Introducción Los problemas de satisfacción de restricciones (PSR) se caracterizan porque los estados y el test objetivo están representados de forma estructurada. Un estado está compuesto por variables que pueden tomar diferentes valores y un estado es de tipo meta si los valores que cumplen las variables implicadas (en dicho estado) cumplen una serie de restricciones. Desde un punto de vista formal, un PSR se define como una tripleta ( , , ) donde: es un conjunto de variables. , ,…, : → Es una función que asigna un dominio (conjunto de valores de ) a cada variable. El dominio de una variable suele denotarse como y contiene los posibles valores que puede tomar la variable. La cardinalidad del dominio es = | |. = , ,…, Es un conjunto finito de restricciones de modo que cada restricción implica algún subconjunto de variables y especifica las combinaciones aceptables de valores para ese subconjunto. Una variable viene dada por el par variable-valor ( , ) que representa la asignación del valor a la variable ( = ). De la misma firma un conjunto de Inteligencia artificial Módulo 3 variables viene dado por una tupla de pares ordenados, donde cada par ordenado ( , ) asigna el valor { ∈ } a la variable . Una tupla , ,…, , se dice que es localmente consistente si satisface todas las restricciones formadas por las variables sustituiremos dicha tupla por ,…, ,…, . Por simplificación . Un valor ∈ se dice que es un valor consistente para si existe al menos una solución del PSR en la que = . Un estado del problema está definido por una asignación de valores a unas o todas las variables .A ,… una asignación se le dice consistente si no viola ninguna restricción y es completa si todas las variables están representadas. De esta forma se puede definir una solución de un PSR como una asignación completa y consistente. Este tipo de problemas pueden tener asociados una función objetivo, de modo que se requiere que la solución encontrada maximice o minimice dicha función. Un PSR puede modelarse como un grafo de restricciones, de modo que cada nodo representa una variable y los arcos las restricciones. Esta modelización permite aplicar algoritmos de búsqueda sobre grafos. Además, un PSR se le puede dar una formulación incremental similar a la de un problema de búsqueda estándar: Estado inicial: asignación vacía { }, en la que ninguna variable ha sido asignada. Función sucesor: un valor se puede asignar a cualquier variable no asignada, siempre y cuando no viole ninguna restricción. Test objetivo: la asignación actual es completa. Costo del camino: un coste constante para cada paso. Cada solución debe ser una asignación completa, de modo que el árbol de búsqueda tendrá una profundidad equivalente al número de variables . 5.2.2 Modelización de problemas de satisfacción de restricciones A continuación se introducirá un par de problemas y cómo se modelan para ser tratados como un PSR. El problema de las N-Reinas Inteligencia artificial Módulo 3 Dado un tablero de ajedrez × , hay que colocar reinas de tal modo que ninguna de ellas pueda ser alcanzada por otra con un movimiento. En otras palabras, que ninguna reina pueda ser comida por otra con los movimientos que tiene permitidos. Las restricciones, por tanto, son que dos reinas no pueden coincidir en la misma fila o columna, y tampoco pueden estar en diagonal. Esto hace que se pueda asociar cada reina con una columna distinta y se reduzcan las variables a las filas de modo que su valor representa la fila en la que se coloca la reina correspondiente a dicha variable. Desde el punto de vista de un PSR se puede formular del siguiente modo: Variables: { }, = 1, … , . Dominio: {1, … , }, para todas las variables. Restricciones (∀ , , ≠ ): ◦ ≠ No pueden estar en la misma fila. ◦ − ≠ | − | No pueden estar en la diagonal. Figura 1. Dos soluciones del problema de la N Reinas para N=4. Fuente: elaboración propia. La Figura 1 muestra dos soluciones del problema para el caso tendría las siguientes restricciones: | − | ≠ 1. | − | ≠ 2. | − | ≠ 3. | − | ≠ 1. | − | ≠ 2. | − | ≠ 1. Coloración de mapas = 4, que Inteligencia artificial Módulo 3 Dado un conjunto de colores finitos y un mapa dividido en regiones, colorear cada región de modo que las regiones adyacentes no pueden tener el mismo color. En la formulación PSR se define una variable por cada región del mapa, y el dominio de cada variable es el conjunto de colores disponibles. La restricción es que las variables de dos regiones contiguas no pueden tener el mismo valor. Figura 2. Mapa con cuatro regiones a colorear. Fuente: elaboración propia. Por ejemplo, la Figura 2 muestra un mapa de cuatro regiones , , , para ser coloreadas con los colores rojo, verde y azul. La formulación PSR sería: Variables: { , , , } } Dominio: { , , Restricciones: { ≠ , ≠ , ≠ , ≠ , ≠ } Inteligencia artificial Módulo 3 Figura 3. Grafo de restricciones del problema de coloreado de mapa. Fuente: adaptado por el autor. La Figura 3 muestra la representación de este problema como un grafo de restricciones en que cada nodo representa una región del mapa mientras que los arcos son las restricciones entre las mismas. Por tanto, se tendrán 5 aristas. En esta representación, todos los nodos adyacentes deben tener un valor distinto. 5.2.3 Técnicas de resolución de PSR Al formularse el PSR como un problema de búsqueda, se puede aplicar cualquier estrategia de búsqueda. Sin embargo, hay que tener en cuenta la complejidad del algoritmo pues el árbol de búsqueda con muchas ramificaciones que hacen que no pueda aplicarse algoritmos exhaustivos. Las técnicas más usuales que se llevan a cabo para manejar un PSR se pueden agrupar en tres tipos: Búsqueda sistemática: se centran en buscar en el espacio de estados del problema. Este tipo de técnicas pueden ser completas, si buscan en todo el espacio de estados o incompletas si solo buscan en una región de este. Técnicas inferenciales: tienen como objetivo deducir nuevas restricciones a partir de las planteadas de forma explícita en el problema. Inteligencia artificial Módulo 3 Por lo general inducen restricciones implícitas entre variables que hacen que se plantee un nuevo PSR equivalente al de partida. Técnicas híbridas: combinan las dos anteriores de modo que mediante una técnica inferencia plantea un PSR más restringido y equivalente al original. Esto permite acotar el espacio de búsqueda y aplica, sobre este nuevo espacio, una estrategia de búsqueda. Búsqueda con vuelta atrás (backtracking) Esta técnica es una estrategia primero en profundidad que en cada nivel del árbol de búsqueda, asigna un valor a una variable y vuelve para atrás cuando no hay opción de asignarle un valor consistente. función Búsqueda-con-Vuelta-Atrás(psr) devuelve una solución o fallo devolver Vuelta-Atrás-Recursiva({}, psr) función Vuelta-Atrás-Recursiva(asignación, psr) devuelve una solución o fallo ó es completa entonces devolver ó ←Selecciona-Variable-Noasignada(Variables[psr], ó ,psr) para cada valor en Orden-Valores-Dominio( , ó ,psr) hacer si si es consistente con asignación de acuerdo a las Restricciones[psr] entonces añadir { si borrar { = } a ó ←Vuelta-Atrás-Recursiva(asignación, ≠ entonces devolver = } de ó psr) devolver Figura 4. Pseudocódigo del algoritmo Vuelta Atrás para problemas de satisfacción de restricciones. Fuente: adaptado por el autor. La Figura 4 muestra el pseudocódigo de la Vuelta Atrás para el PSR. Como puede verse, se modela sobre la estrategia de búsqueda Primero en Profundidad recursiva. 5.3. Ejemplos En esta sección vamos a ver cómo se resolvería el problema de coloración del mapa mediante la técnica de búsqueda Vuelta Atrás. Para ello Inteligencia artificial Módulo 3 consideraremos el mapa de Australia, que está dividida, tal y como se ve en la Figura 5, en las siguientes regiones: Australia Occidental (AO) Territorio del Norte (TN) Australia del Sur (AS) Queensland (Q) Nueva Gales del Sur (NGS) Victoria (V). Tasmania (T) La formulación del problema es: Variables: { , , , , Dominio: { , , { ≠ , Restricciones: ≠ , , } } ≠ , , ≠ ≠ , ≠ , ≠ , ≠ , , ≠ } Haciendo uso de la librería AIMA, se puede resolver dicho problema con el código que se muestra en la Figura 6. Inteligencia artificial Módulo 3 import aima.core.search.csp.Assignment; import aima.core.search.csp.BacktrackingStrategy; import aima.core.search.csp.MapCSP; public class VueltaAtras { public static void main(String[] args) throws Exception { MapCSP csp = new MapCSP(); BacktrackingStrategy strategy = new BacktrackingStrategy(); Assignment assignment = strategy.solve(csp); System.out.println(assignment); } } Figura 6. Código en Java para resolver el problema de coloreado de las regiones del mapa de Australia con el algoritmo Vuelta Atrás usando la librería AIMA. Fuente: elaboración propia. 5.4. Conclusiones La modelización de un problema como un PSR permite que sea abordado mediante un amplio número de estrategias. Los PSR han demostrado su utilidad en ámbitos tan diversos como la investigación operativa, la bioinformática, las telecomunicaciones, etc. Inteligencia artificial Módulo 3 Unidad temática 6 6.1. Introducción No puede hablarse de inteligencia sin hablar de conocimiento. En IA todos los agentes manejan conocimiento de una u otra forma. Sin embargo, el conocimiento que manejan es muy específico de acuerdo al problema. En este sentido, los agentes basados en conocimiento pueden aprovechar el conocimiento expresado mediante alguna técnica de representación para combinar la información que extraen y adaptarse a diversos propósitos. El uso explícito que se hace en la IA del conocimiento es la diferencia fundamental entre esta disciplina y la informática convencional. Desde este punto de vista se puede decir que los objetivos que se persiguen son: Estudiar técnicas generales de representación del conocimiento. Estudiar nuevas estrategias de resolución de problemas. En esta unidad se hará un énfasis en el primer objetivo mediante el uso de la lógica como técnica de representación del conocimiento. 6.2. Marco conceptual 6.2.1. Representación del conocimiento y razonamiento El conocimiento y el razonamiento son dos conceptos centrales en el ámbito de la IA. Para poder inferir a partir de un conocimiento previo es necesario encontrar una forma de modelarlo. No obstante, los desafíos a los que se enfrenta son: La representación del conocimiento del sentido común. La habilidad para compensar la eficiencia computacional en busca de inferencias precisas. La habilidad de representar y manipular conocimiento e información con incertidumbre. La representación del conocimiento puede definirse como la transformación del conocimiento de un dominio a un lenguaje simbólico. En este caso se hace un planteamiento simbólico de resolución de problemas en el que cada elemento de la representación (símbolo) se refiere a un objeto, hecho o relación de interés perteneciente al dominio a representar. Este lenguaje de representación debe definir dos aspectos: Inteligencia artificial Módulo 3 La sintaxis: abarca las posibles formas de construir y combinar los elementos del lenguaje para representar los hechos del dominio real. Está centrada en la estructura formal del lenguaje. La semántica: determina la relación entre los elementos del lenguaje y su interpretación en el dominio. Está centrada en las condiciones de verdad de las oraciones. La representación del conocimiento tiene una fase de codificación, encargada de convertir los hechos reales en una representación interna, y otra de decodificación, que vuelve a convertir en hechos del mundo real los resultados de los procesos inferenciales realizados sobre la representación interna del conocimiento. El instrumento para codificar el dominio real en otra representación se denomina esquema de representación. Desde un punto de vista computacional un esquema de representación puede ser descrito como una combinación de estructuras de datos y procedimientos que representan la componente estática y dinámica del esquema: Parte estática: ◦ Formada por las estructuras que codifica el problema. ◦ Operaciones para crear, modificar y destruir elementos en la estructura. ◦ Predicados que dan un mecanismo para consultar esta estructura de datos. ◦ Semántica de la estructura: se necesita definir la relación entre la realidad y la representación escogida. Parte dinámica: ◦ 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 estática) a partir del conocimiento del dominio (de la parte dinámica). ▪ Controlar el uso de los datos: estrategias de control. ▪ Adquirir nuevo conocimiento. Además, todo esquema de representación debe presentar una serie de propiedades: Adecuación de la representación. Capacidad para poder representar de forma adecuada todo el conocimiento de un dominio, sobre todo el que se considere relevante. Inteligencia artificial Módulo 3 Adecuación inferencial. Posibilidad de manipular las estructuras de representación de forma que se puedan derivar nuevas estructuras asociadas con nuevo conocimiento inferido a partir del antiguo. Eficiencia inferencial. Posibilidad de mejorar la eficiencia del proceso inferencial mediante la inclusión de estrategias que agilicen dicho proceso. Eficiencia adquisicional. Capacidad para incorporar nuevo conocimiento de forma sencilla. En IA se usa la lógica como instrumento para la representación del conocimiento. Los principales motivos para esta elección son: Desde un punto de vista matemático son precisos, de modo que puede conocerse sus limitaciones, sus propiedades, la complejidad de una inferencia, etc. Son lenguajes formales, de modo que los programas computacionales pueden manipular sentencias en el propio lenguaje. Presentan una sintaxis y una semántica. Para manejar estos conceptos se introducen los agentes basados en conocimiento debido a su capacidad para inferir aspectos ocultos del estado del entorno a partir del conocimiento y las percepciones. Para ello requiere que el agente sea capaz de razonar con el conocimiento que maneja. Agentes basados en conocimientos El principal componente de este tipo de agentes es su base de conocimiento (BC). Informalmente, una BC es un conjunto de sentencias de modo que cada sentencia se expresa en un lenguaje de representación del conocimiento y representa alguna aserción acerca del mundo. Además, el agente debería estar dotado de tres cualidades fundamentales: Representar el conocimiento del mundo que le rodea. Razonar para generar nuevo conocimiento a partir del conocimiento disponible. Aprender nuevo conocimiento a partir de las observaciones que obtiene del entorno. Inteligencia artificial Módulo 3 Adicionalmente, estos agentes deben tener la capacidad de aceptar nuevas tareas, usar el conocimiento o inferir de forma eficiente y adaptarse a cambios en el entorno. Para ello, deben contar con mecanismos para conocer el estado actual del entorno, y cómo evoluciona a lo largo del tiempo. También necesita de algún mecanismo para poder inferir a partir de propiedades no vistas. función AGENTE-BC(percepción) devuelve un acción variables estáticas: BC, una base de conocimiento t, un contador, inicializado a 0, que indica el tiempo DECIR(BC, CONSTRUIR-SENTENCIA-DEPERCEPCIÓN(percepción, t)) acción ← PEGUNTAR(BC, PEDIR-ACCION(t)) DECIR(BC, CONSTRUIR-SENTENCIA-DEACCIÓN(acción, t)) t←t+1 devolver acción Figura 7. Programa de un agente basado en conocimiento genérico. Fuente: adaptado por el autor. La Figura 7 muestra el esquema general de un agente basado en conocimiento. Como otros agentes, este recibe una percepción y devuelve una acción. El agente mantiene una BC que contiene algún tipo de conocimiento de antecedentes. En dicho esquema los mecanismos para añadir sentencias nuevas a la BC y preguntar qué sabe el agente de acuerdo a dicho BC vienen dadas por las tareas DECIR y PREGUNTAR, respectivamente. Ambas tareas requieren realizar inferencia. Cada vez que el agente es invocado realiza dos cosas: primero dice a la BC lo que ha percibido y, a continuación, pregunta a la BC qué acción ejecutar. Tras elegir la acción, el agente graba su elección mediante la tarea DECIR y ejecuta la acción. Las funciones CONSTRUIR-SENTENCIA-DE-PERCEPCIÓN y PEDIRACCION ocultan los detalles del lenguaje de representación. La primera de ellas toma una percepción en un instante de tiempo y devuelve una sentencia afirmando lo que el agente ha percibido en dicho instante de tiempo. La segunda función toma un instante de tiempo como entrada y devuelve una sentencia para preguntarle a la BC qué acción se debe realizar en dicho instante de tiempo. En este esquema los detalles de los mecanismos de inferencia (DECIR y PREGUNTAR) están ocultos. Inteligencia artificial Módulo 3 6.2.2 Lógica En esta sección se expondrá la representación del conocimiento basado en lógica. Como se dijo anteriormente, se caracteriza por tener una base teórica muy sólida y porque los mecanismos de inferencia son potentes y conocidos. Además, separa el conocimiento del razonamiento. La lógica, como mecanismo de representación, consta de tres elementos: Una sintaxis, que indica qué símbolos pueden usarse y cómo construir las sentencias legales. Una semántica, que asocia los elementos del lenguaje con los elementos reales del dominio. Da el significado de las sentencias lógicas. Un conjunto de reglas de inferencia, que permiten inferir conocimiento nuevo a partir del ya existente. La semántica del lenguaje define el valor de la verdad de cada sentencia respecto al modelo. Dicho modelo no es más que una abstracción matemática de un entorno real que permite definir la verdad o falsedad de una sentencia. Razonamiento automático En inferencia es importante poder representar estructuras con conocimiento para poder caracterizar el nuevo conocimiento generado. Existen varios tipos de razonamientos lógicos para inferir: Razonamiento deductivo: razonamiento que pasa, a partir de un conocimiento general, a otro específico. El nuevo conocimiento generado es cierto si parte de otro conocimiento cierto. Abarca las reglas de inferencias de la lógica (por ejemplo, el Modus Ponens). Razonamiento inductivo: se caracteriza por generalizar a partir de un conocimiento más específico. Este es el mecanismo del aprendizaje automático. Razonamiento abductivo: este método de razonamiento parte de un conocimiento (reglas y hechos observados) y genera un conjunto de explicaciones posibles o hipótesis que harían, usando la deducción, coherente el conocimiento de partida. Estos métodos de inferencia deben caracterizarse por ser sólidos y completos. Se dice que un método de inferencia es sólido o mantiene la verdad si solo deriva conocimiento implicado y es completo si puede derivar cualquier conocimiento que está implicado. Inteligencia artificial Módulo 3 6.2.3 Tipos de lógica Los modelos lógicos más conocidos en IA son la lógica proposicional y la lógica de predicados o de primer orden. Básicamente, se diferencian en que la primera no admite argumentos en los predicados mientras que la segunda sí. Lógica proposicional (orden 0) Es una lógica que representa hechos discretos del mundo real que pueden ser ciertos o falsos. Está compuesto de proposiciones, que son afirmaciones (ciertas o falsas) sobre un hecho único del dominio. De igual forma, estas proposiciones pueden combinarse mediante conectores para expresar hechos más complejos. Sin embargo, esta lógica padece de poca expresividad debido a la dificultad de expresar un conjunto de hechos con características comunes pues una proposición está asociada a un hecho y no permite la cuantificación. Sintaxis y semántica La sintaxis se compone de los siguientes elementos: Sentencia atómica: representa los elementos sintácticos indivisibles que se componen de un único símbolo proposicional. ◦ Constantes lógicas. Son dos símbolos proposicionales con significado fijado: verdadero (V) y falso (F). ◦ Proposiciones lógicas. Son símbolos proposicionales que pueden ser verdadera o falsa. Suelen usarse mayúsculas para denotar estos símbolos: P, Q, R, etc. Conectivas lógicas: permite construir sentencias complejas combinando sentencias más simples. Existen cinco conectivas: ◦ ¬(no) se denomina negación. ◦ ∧(y) se denomina conjunción. ◦ ∨(o) se denomina disyunción. ◦ ⇒(implica) se denomina implicación y está compuesto por una premisa o antecedente y una conclusión o consecuente. También se les conoce como reglas si-entonces. ◦ ⇔(si y solo si) se denomina bicondicional. Sentencias: son elementos sintácticos que se construyen a partir de átomos y/o sentencias mediante conectivas lógicas. Inteligencia artificial Módulo 3 Con el objetivo de evitar la ambigüedad, cada sentencia construida a partir de conectivas binarias puede estar encerrada en paréntesis. Por ejemplo, se podría poner ( ∧ ) ⇒ en vez de ∧ ⇒ .Sin embargo, con el objetivo de mejorar la legibilidad suele omitirse dicho paréntesis atendiendo al siguiente orden de precedencia descendente (de mayor a menor) de los símbolos: ¬,∧,∨,⇒y⇔. La semántica, en cambio, define las reglas para asociar un valor de verdad (V o F) a cada sentencia. La interpretación de las sentencias consistirá en asignar un valor de verdad a cada proposición y habrá que considerar la correspondencia que haya entre elementos del lenguaje y el mundo a representar. Lógica de primer orden La lógica proposicional tiene muchas limitaciones derivadas del uso exclusivo de la proposición como construcción del lenguaje. Su lenguaje no permite representar de forma precisa el conocimiento de entornos complejos. La lógica de primer orden (LPO) extiende la lógica proposicional adoptando sus fundamentos, es decir, adoptando una semántica composicional declarativa, que es independiente del contexto y no ambigua. Además, construye una lógica más expresiva basada en dicho fundamento y tomando prestada, de los lenguajes naturales, su idea de la representación. La representación del conocimiento se lleva a cabo considerando que en el lenguaje natural los nombres y las sentencias nominales se refieren a objetos que tienen unas características distintivas (propiedades). Por otro lado, están los verbos y las sentencias verbales que hacen referencia a relaciones entre objetos. Algunas de estas relaciones son funciones, las cuales son un tipo de relaciones que requieren una entrada determinada y proporcionan una salida. Los siguientes son ejemplos de lo mencionado anteriormente: Objetos: gente, casas, números, colores, ... Propiedades: alto, rojo, .. Relaciones: hermano, más alto que, ... Funciones: padre de, tejado de, ... Así pues, la principal diferencia entre la lógica proposicional y la LPO es lo que cada uno asume, que es la naturaleza de la realidad y lo que comprende el compromiso ontológico de cada lenguaje. La lógica proposicional considera que hay hechos que suceden o no en el mundo mientras que la LPO asume que el mundo se compone de objetos con ciertas relaciones que suceden o no. Inteligencia artificial Módulo 3 El compromiso epistemológico es otra caracterización posible de la lógica, la cual se refiere a los posibles estados del conocimiento respecto a cada hecho que la propia lógica permite. En este caso, ambas lógicas analizadas permiten que el agente adopte tres posibles valores ante un hecho representado mediante una sentencia: verdadero, falso o desconocido. Sintaxis y semántica Los elementos sintácticos básicos de la LPO son los símbolos que representan los objetos, las relaciones y las funciones. Por lo tanto, los símbolos se agrupan en tres tipos: Símbolos de constante, que representan los objetos. Símbolos de predicado, que representan las relaciones. Símbolos de función, que representan funciones. Cada símbolo de predicado y de función tiene una aridad que establece su número de argumentos. Cada relación tiene una aridad mayor o igual a 0 mientras que una función tiene una aridad mayor que 0. Por ejemplo, se puede representar el lenguaje de la aritmética para representar los números naturales: Símbolos de constantes:{0,1}. Símbolos de función: ◦ Monaria: s (siguiente). ◦ Binarias:{+,∗}. Símbolo de relaciones binaria:{ }. Otros símbolos que usa la sintaxis de la LPO son: Símbolos lógicos: ◦ Variables: x, y, z, etc. ◦ Conectivas: ¬,∧,∨,⇒y⇔. ◦ Cuantificadores: ∀, ∃. ◦ Símbolo de igualdad:. Símbolos auxiliares: ◦ Los paréntesis: “(“, “)”. ◦ La coma: “,”. A partir de los símbolos anteriormente descritos se pueden definir las siguientes nociones: Inteligencia artificial Módulo 3 Términos. Un término es una expresión lógica que se refiere a un objeto. Por tanto abarca los símbolos de variable, constante y los de función. En este último caso tendrá la forma ,con haciendo referencia a ,…, un símbolo de función, es la aridad y es un término. Siguiendo con el ejemplo del lengiaje de la aritmética se tendría: ◦ Es un término que se suele escribir ( ∗ 1) + ( ). , <∗ , ( ) no es un término. + Sentencias atómicas. Representan hechos y están formados por un símbolo de predicado seguido de una lista de términos entre paréntesis. Estas sentencias pueden tener términos complejos. Una sentencia atómica es verdadera en un modelo dado, y bajo una interpretación dada, si se cumple la relación (símbolo de predicado) entre los objetos (argumentos). Continuando con el ejemplo de la aritmética: ◦ ∗ ( , 1), ( ) es una sentencia atómica que se suele escribir como ∗ 1 < ( ). ◦ +( , ) =∗ ( , ) es una sentencia atómica que se suele escribir como + = ∗ . Sentencias compuestas. Las sentencias pueden hacerse más complejas haciendo uso de las conectivas lógicas. La semántica es idéntica a la de la lógica proposicional. Cuantificadores. Para poder expresar propiedades de colecciones de objetos, se puede hacer uso de los cuantificadores para no tener que enumerarlos todos. La LPO tiene dos cuantificadores: ◦ Cuantificador universal( ).Hace referencia a todo objeto y se lee “para todo...”. ◦ Cuantificador existencial ( ). Permite construir enunciados indicando que de todos los objetos existe al menos uno sin nombrarlo específicamente. Se lee “existe...”. Igualdad. La LPO usa el símbolo de igualdad para construir enunciados describiendo que dos términos se refieren al mismo objeto. ◦ Uso de la LPO Se parte de una BC a la que se irán añadiendo sentencias mediante DECIR, que corresponde a una sentencia que se denomina aserción. Por ejemplo, se puede afirmar que un rey es una persona mediante la siguiente sentencia ( )⇒ ( ) . Además, se puede preguntar a la BC ,∀ Inteligencia artificial Módulo 3 ( ) . Esta mediante PREGUNTAR. Por ejemplo, , sentencia se denomina petición u objetivo. Estas dos interfaces permiten interactuar con la BC. A continuación se tratará, como ejemplo, el dominio de las relaciones familiares o de parentesco. La modelización de este dominio se caracterizaría del siguiente modo: Objetos: personas Propiedades: género → predicados unarios: masculino y femenino. Relaciones (de parentesco): progenitor, descendiente, hijo, hija, cónyuge, esposo, esposa,... → predicados binarios progenitor, descendiente, hijo, hija, cónyuge, esposo, esposa,… Funciones: padre y madre → funciones padre y madre A partir de esto se pueden escribir algunas sentencias sobre lo que se sabe acerca de los símbolos: La madre de alguien es su progenitor femenino. ( )= ⇔ ( )∧ ( , ) ∀ , El esposo de alguien es su cónyuge masculino. ( , )⇔ ( )∧ ó ( , ) ∀ , Masculino y femenino son géneros disjuntos. ( )⇔¬ ( ) ∀ Progenitor y descendiente son relaciones inversas. Cada una de estas sentencias puede verse como un axioma del dominio de parentesco. Sin embargo, no todas las sentencias son axiomas. Algunas son teoremas pues son deducidas a parir de los axiomas. Desde el punto de vista lógico, la BC solo necesita saber tener los axiomas de modo que todo el conocimiento derivará en forma de teoremas y, por lo tanto, no es necesario almacenarlos en la BC. Sin embargo, desde un punto de vista práctico, su almacenamiento reducirá el coste computacional para derivar nuevo conocimiento pues en caso de no almacenarlo siempre tendrá que empezar desde los axiomas. 6.3. Ejemplos A continuación se analizará el modelo de lógica de primer orden que se muestra en la Figura 8. El modelo consta de: Inteligencia artificial Módulo 3 Cinco objetos: Ricardo corazón de León, Juan, pierna izquierda de Ricardo, pierna izquierda de Juan y una corona. Dos relaciones binarias: hermano y sobre la cabeza. Tres relaciones unitarias: corona, rey y persona. Una función unitaria: pierna izquierda. Figura 8. Modelo sencillo en lógica de primer orden. Fuente: http://www.slideshare.net/rushdishams/first-order-logic-26695335 Los símbolos de LPO del modelo son: Símbolos de constante: Ricardo y Juan. Símbolos de predicado: hermano, sobre la cabeza, persona, rey y corona. Símbolo de función: pierna izquierda. La semántica ayuda a interpretar qué objetos, relaciones y funciones son referenciados mediante los símbolos anteriormente mencionados. Una posible interpretación de este ejemplo podría ser: Símbolos de constante: ◦ Ricardo se refiere a Ricardo Corazón de León. ◦ Juan se refiere al Rey Juan. Símbolos de predicado: Inteligencia artificial Módulo 3 Hermano se refiere a la relación de hermandad entre dos personas. Sobre la cabeza se refiere a la relación que hay entre el Rey Juan y la corona que está sobre su cabeza. ◦ Persona, rey y corona hacen referencia a los conjuntos de objetos que son una persona, un rey y una corona. Símbolo de función pierna izquierda es una función que se refiere a la pierna situada en dicha posición. ◦ ◦ A partir de aquí se pueden considerar diversas sentencias que representarán los axiomas de este modelo. 6.4. Ejercicios de reflexión 1. Considerando el dominio del parentesco para la LPO, indicar cómo se escribirían las siguientes sentencias: Padre e hijo son relaciones inversas. Un abuelo es el padre del padre de uno. Un hermano es otro hijo del padre de uno. 2. Considere una serie de bloques dispuestos como se muestra en la Figura X. Modele su lenguaje dentro de la lógica de primer orden indicando qué tipo de símbolo es cada cosa. Para el caso de los símbolos de predicado y función, indique su aridad: Tipos de símbolos: constantes predicado función - Símbolos a identificar: libre, a, superior, bajo, b, es_bloque, d, e, sobre_mesa, pila, sobre, encima, tope y c. 3. En el lenguaje del mundo de los bloques indique: Si es o no un término: ◦ Superior (superior(c)). [S] ◦ Libre (superior(c)). [N] Si es o no una sentencia atómica: ◦ Libre (superior(c)) [S] ◦ Tope (c) = superior(b) [S] Inteligencia artificial Módulo 3 4. Traduzca a lógica de primer orden: El Everest es la montaña más alta de la tierra. Hay al menos dos manzanas en el barril. Elena se comió una seta que había seleccionado ella misma. Ninguna rana amarilla es comestible. Todos los estudiantes hornearon, al menos, dos bizcochos. 6.5. Conclusiones En esta unidad se vieron qué características hay que tener en cuenta para representar el conocimiento. Además, se introdujeron los dos tipos de lógica más usados (la lógica proposicional y la de primer orden) como lenguaje para poder representar dicho conocimiento. El motivo por el que la LPO ha desbancado la popularidad de la lógica proposicional se debe a las limitaciones de esta, principalmente, en la expresividad. Sin embargo, la lógica proposicional es muy útil para los casos en los que no importa el contenido de la proposición sino la estructura de la información. Inteligencia artificial Módulo 3 Referencias bibliográficas Barber, F., & Salido, M. (2008). Inteligencia Artificial: Técnicas, métodos y aplicaciones. Capítulo 10. Problemas de Satisfacción de Restricciones (CSP). México: McGraw-Hill, p. 385-432. Obtenido de: http://site.ebrary.com/lib/biblioumbsp/reader.action?docID=10491454&ppg=10 Russel, S., Norvig, P., (2008). Inteligencia Artificial. Un enfoque moderno. Madrid: Pearson Prentice Hall. Recuperado de: http://www.ebooks724.com/book.aspx?i=3299