Discusión:Inteligencia artificial para videojuegos/Representación lógica
Introducción
editarLa lógica proposicional está bien… si te gusta pasarte la vida escribiendo todas las combinaciones posibles de proposiciones. Hay un tipo de lógica que subsume o sirve de fundamento a miles de lenguajes de representación formales.
Es la lógica de predicados o lógica de primer orden que extiende significativamente la lógica proposicional.
Propiedades de la representación:
- Naturaleza declarativa, separa el conocimiento de una inferencia independiente de dominio
- La procedimental (lenguajes de programación imperativos, bases y estructuras de datos), usa algoritmos específicos de dominio
- Expresividad para información parcial, a diferencia de meras variables que, o tienen valor o valen null
- Composicionalidad, el significado de una proposición es función del significado de sus partes
Pero no todas las propiedades son buenas…
- Falta de expresividad/concisión Ej. “Todas las casillas vecinas de un agujero tienen brisa” suponen muchas proposiciones
Lo más expresivo es el lenguaje natural: Es declarativo también… pero su semántica depende del contexto, y produce ambigüedad, sin embargo, la lógica de primer orden expande la proposicional con ideas “naturales” pero evitando sus problemas.
En lógica de primer orden hay objetos y relaciones (hasta funciones de 1 resultado=) junto con hechos que son o verdaderos o falsos, sobre todos o algunos de estos objetos. El agente, o conoce o ignora estos hechos.
Sintaxis
editarEl dominio está compuesto de objetos (representados con un símbolo de constante, varios o ninguno), puestos en relación mediante tuplas, con símbolos de constante, predicado o función.
Semántica
editarUn modelo es una interpretación que conecta todos los símbolos con el dominio. Son infinitos y no se pueden enumerar, como antes. Un término puede ser símbolo de constante o de función con otros términos dentro. Una sentencia puede ser atómica (1 predicado) o compleja (conectivas lógicas).
- Atómica: también con la igualdad (=) entre términos
- Compleja: también con cuantificadores, el universal (∀) y el existencial (∃), que hacen interpretaciones extendidas del modelo y pueden anidarse
Ejemplo: “Los hermanos de Ricardo son Juan y Felipe” Hermano(Juan, Ricardo) ∧ Hermano(Felipe, Ricardo) ∧ ¬ (Juan=Felipe) ∧ ∀x Hermano(x, Ricardo) →(x=Juan ∨ x=Felipe)
Por eso a veces se usa la semántica alternativa que tiene una base de datos:
- Asunción de nombres únicos (X≠Y)
- Asunción de mundo cerrado (Desconocido → Falso)
- Cierre de dominio (existen tantos objetos como símbolos de constante tenga el dominio)
- Ej. Los hermanos de Ricardo son Juan y Felipe
- Hermano(Juan, Ricardo) ∧ Hermano(Felipe, Ricardo)
Uso de la Base de Conocimiento
editarLas sentencias que se dicen a la base de conocimiento se llaman aserciones(assertions). Algunas son axiomas, incluso definiciones si se expresan en una sentencia del tipo ∀x P(x) ↔ … Otras son teoremas, útiles, aunque en realidad están contenidos (⊨) en los axiomas. Las que se preguntan son consultas (queries), existiendo las consultas de variables. Si la BC lo permite, se responde con listas de sustituciones o ligaduras (valores para las variables). Ej. PreguntaVars (BC, Persona(x)) devuelve: {x/Ricardo} {x/Juan} {x/Felipe} Para más ejemplos, probad Prolog, que usa la semántica alternativa de una base de datos, alejándose de la “lógica pura” https://swish.swi-prolog.org/
Ingeniería del Conocimiento (knowledge engineering)
editarPasos a seguir para la construcción de bases de conocimiento:
- Identificar la tarea que debe hacer el agente
- Adquirir el conocimiento necesario
- Decidir el vocabulario de símbolos (ontología)
- Codificar conocimiento general del dominio
- Codificar conocimiento específico del problema
- Realizar consultas y conseguir respuestas
- Depurar la base y repetir el paso anterior
Proyectos como la Web Semántica se basan en lógicas descriptivas (Ontologías y bases de conocimiento algo menos expresivas pero más eficaces para razonar).
Carlos Sánchez Bouza (discusión) 20:36 5 jun 2018 (UTC)Carlos Sánchez Bouza