Ir al contenido

Discusión:Inteligencia artificial para videojuegos/Representación lógica

Contenido de la página no disponible en otros idiomas.
Añadir tema
De Wikiversidad

Introducción

[editar]

La 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

[editar]

El 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

[editar]

Un 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

[editar]

Las 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)

[editar]

Pasos 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 BouzaResponder