stringtranslate.com

Problema de marco

En inteligencia artificial , con implicaciones para la ciencia cognitiva , el problema del marco describe un problema relacionado con el uso de la lógica de primer orden para expresar hechos sobre un robot en el mundo. Representar el estado de un robot con lógica tradicional de primer orden requiere el uso de muchos axiomas que simplemente implican que las cosas en el entorno no cambian arbitrariamente. Por ejemplo, Hayes describe un " mundo de bloques " con reglas sobre cómo apilar bloques. En un sistema lógico de primer orden, se requieren axiomas adicionales para hacer inferencias sobre el entorno (por ejemplo, que un bloque no puede cambiar de posición a menos que se mueva físicamente). El problema del marco es el problema de encontrar colecciones adecuadas de axiomas para una descripción viable del entorno de un robot. [1]

John McCarthy y Patrick J. Hayes definieron este problema en su artículo de 1969, Algunos problemas filosóficos desde el punto de vista de la inteligencia artificial . En este artículo, y en muchos posteriores, el problema matemático formal fue un punto de partida para discusiones más generales sobre la dificultad de la representación del conocimiento para la inteligencia artificial. Cuestiones como cómo proporcionar supuestos racionales predeterminados y qué los humanos consideran sentido común en un entorno virtual. [2]

En filosofía , el problema del marco pasó a interpretarse de manera más amplia en relación con el problema de limitar las creencias que deben actualizarse en respuesta a las acciones. En el contexto lógico, las acciones suelen especificarse por lo que cambian, con el supuesto implícito de que todo lo demás (el marco) permanece sin cambios.

Descripción

El problema del marco ocurre incluso en dominios muy simples. Un escenario con una puerta, que puede estar abierta o cerrada, y una luz, que puede estar encendida o apagada, está representado estáticamente por dos proposiciones y . Si estas condiciones pueden cambiar, están mejor representadas por dos predicados y eso depende del tiempo; tales predicados se llaman fluidos . Un dominio en el que la puerta está cerrada y la luz apagada en el momento 0, y la puerta abierta en el momento 1, se puede representar directamente en lógica [ se necesita aclaración ] mediante las siguientes fórmulas:

Las dos primeras fórmulas representan la situación inicial; la tercera fórmula representa el efecto de ejecutar la acción de abrir la puerta en el momento 1. Si dicha acción tuviera condiciones previas, como que la puerta se desbloqueara, habría estado representada por . En la práctica, tendríamos un predicado para especificar cuándo se ejecuta una acción y una regla para especificar los efectos de las acciones. El artículo sobre el cálculo de la situación ofrece más detalles.

Si bien las tres fórmulas anteriores son una expresión lógica directa de lo que se sabe, no son suficientes para sacar consecuencias correctamente. Si bien las siguientes condiciones (que representan la situación esperada) son consistentes con las tres fórmulas anteriores, no son las únicas.

De hecho, otro conjunto de condiciones que es consistente con las tres fórmulas anteriores es:

El problema del marco es que especificar sólo qué condiciones cambian mediante las acciones no implica que todas las demás condiciones no cambien. Este problema se puede resolver agregando los llamados "axiomas del marco", que especifican explícitamente que todas las condiciones que no se ven afectadas por las acciones no cambian mientras se ejecuta esa acción. Por ejemplo, dado que la acción ejecutada en el tiempo 0 es la de abrir la puerta, un axioma del marco afirmaría que el estado de la luz no cambia del tiempo 0 al tiempo 1:

El problema del marco es que uno de esos axiomas del marco es necesario para cada par de acción y condición de modo que la acción no afecte la condición. [ se necesita aclaración ] En otras palabras, el problema es el de formalizar un dominio dinámico sin especificar explícitamente los axiomas del marco.

La solución propuesta por McCarthy para resolver este problema implica asumir que ha ocurrido una cantidad mínima de cambios de condición; esta solución se formaliza utilizando el marco de la circunscripción . El problema del tiroteo en Yale , sin embargo, demuestra que esta solución no siempre es correcta. Luego se propusieron soluciones alternativas, que incluían terminación de predicados, oclusión fluida, axiomas de estados sucesores , etc.; se explican a continuación. A finales de la década de 1980, el problema del marco definido por McCarthy y Hayes estaba resuelto [ se necesita aclaración ] . Sin embargo, incluso después de eso, el término “problema de marco” se siguió usando, en parte para referirse al mismo problema pero bajo diferentes escenarios (por ejemplo, acciones concurrentes), y en parte para referirse al problema general de representar y razonar con elementos dinámicos. dominios.

Soluciones

Las siguientes soluciones describen cómo se resuelve el problema del marco en varios formalismos. Los formalismos en sí no se presentan en su totalidad: lo que se presentan son versiones simplificadas que son suficientes para explicar la solución completa.

Solución de oclusión fluida

Esta solución fue propuesta por Erik Sandewall , quien también definió un lenguaje formal para la especificación de dominios dinámicos; por lo tanto, dicho dominio puede expresarse primero en este idioma y luego traducirse automáticamente a la lógica. En este artículo, solo se muestra la expresión en lógica y solo en lenguaje simplificado sin nombres de acciones.

El fundamento de esta solución es representar no sólo el valor de las condiciones a lo largo del tiempo, sino también si pueden verse afectadas por la última acción ejecutada. Este último está representado por otra condición, llamada oclusión. Se dice que una condición está ocluida en un momento dado si se acaba de ejecutar una acción que hace que la condición sea verdadera o falsa como efecto. La oclusión puede verse como “permiso para cambiar”: si una condición está ocluida, queda exenta de obedecer la restricción de la inercia.

En el ejemplo simplificado de la puerta y la luz, la oclusión puede formalizarse mediante dos predicados y . La razón es que una condición puede cambiar de valor sólo si el predicado de oclusión correspondiente es verdadero en el siguiente momento. A su vez, el predicado de oclusión es verdadero sólo cuando se ejecuta una acción que afecta la condición.

En general, cada acción que hace que una condición sea verdadera o falsa también hace que el predicado de oclusión correspondiente sea verdadero. En este caso, es verdadero, lo que hace que el antecedente de la cuarta fórmula anterior sea falso para ; por lo tanto, la restricción que no se cumple para . Por tanto, puede cambiar de valor, que es también lo que impone la tercera fórmula.

Para que esta condición funcione, los predicados de oclusión tienen que ser verdaderos sólo cuando se hacen verdaderos como efecto de una acción. Esto se puede lograr mediante circunscripción o completación de predicados. Vale la pena señalar que la oclusión no implica necesariamente un cambio: por ejemplo, ejecutar la acción de abrir la puerta cuando ya estaba abierta (en la formalización anterior) hace que el predicado sea verdadero y se vuelve verdadero; sin embargo, no ha cambiado de valor, como ya era cierto.

Solución de finalización de predicado

Esta codificación es similar a la solución de oclusión fluida, pero los predicados adicionales denotan cambio, no permiso para cambiar. Por ejemplo, representa el hecho de que el predicado cambiará de vez en cuando . Como resultado, un predicado cambia si y sólo si el predicado de cambio correspondiente es verdadero. Una acción resulta en un cambio si y sólo si convierte en verdadera una condición que antes era falsa o viceversa.

La tercera fórmula es una forma diferente de decir que abrir la puerta hace que se abra la puerta. Precisamente, afirma que abrir la puerta cambia el estado de la misma si anteriormente había estado cerrada. Las dos últimas condiciones establecen que una condición cambia de valor en el momento si y sólo si el predicado de cambio correspondiente es verdadero en el momento . Para completar la solución, los momentos en los que los predicados de cambio son verdaderos deben ser el menor posible, y esto se puede lograr aplicando la finalización de predicados a las reglas que especifican los efectos de las acciones.

Solución de axiomas del estado sucesor

El valor de una condición después de la ejecución de una acción puede determinarse por el hecho de que la condición es verdadera si y sólo si:

  1. la acción hace verdadera la condición; o
  2. la condición era previamente verdadera y la acción no la convierte en falsa.

Un axioma del estado sucesor es una formalización lógica de estos dos hechos. Por ejemplo, si y son dos condiciones utilizadas para indicar que la acción ejecutada en ese momento fue abrir o cerrar la puerta, respectivamente, el ejemplo en ejecución se codifica de la siguiente manera.

Esta solución se centra en el valor de las condiciones, más que en los efectos de las acciones. En otras palabras, existe un axioma para cada condición, más que una fórmula para cada acción. Las condiciones previas a las acciones (que no están presentes en este ejemplo) se formalizan mediante otras fórmulas. Los axiomas del estado sucesor se utilizan en la variante del cálculo de situación propuesto por Ray Reiter .

Solución de cálculo fluida

El cálculo fluido es una variante del cálculo de situación. Resuelve el problema del marco utilizando términos lógicos de primer orden , en lugar de predicados, para representar los estados. Convertir predicados en términos en lógica de primer orden se llama cosificación ; El cálculo fluido puede verse como una lógica en la que se cosifican los predicados que representan el estado de las condiciones.

La diferencia entre un predicado y un término en lógica de primer orden es que un término es una representación de un objeto (posiblemente un objeto complejo compuesto por otros objetos), mientras que un predicado representa una condición que puede ser verdadera o falsa cuando se evalúa sobre un conjunto de términos dado.

En el cálculo fluido, cada estado posible está representado por un término obtenido por composición de otros términos, representando cada uno de ellos las condiciones que son verdaderas en el estado. Por ejemplo, el estado en el que la puerta está abierta y la luz encendida está representado por el término . Es importante señalar que un término no es verdadero o falso por sí mismo, ya que es un objeto y no una condición. En otras palabras, el término representa un estado posible y no significa por sí solo que éste sea el estado actual. Se puede establecer una condición separada para especificar que este es realmente el estado en un momento dado, por ejemplo, significa que este es el estado en ese momento .

La solución al problema marco dado en el cálculo fluido es especificar los efectos de las acciones indicando cómo cambia un término que representa el estado cuando se ejecuta la acción. Por ejemplo, la acción de abrir la puerta en el tiempo 0 está representada por la fórmula:

La acción de cerrar la puerta, que hace que una condición sea falsa en lugar de verdadera, se representa de una manera ligeramente diferente:

Esta fórmula funciona siempre que se proporcionen axiomas adecuados sobre y , por ejemplo, un término que contenga la misma condición dos veces no es un estado válido (por ejemplo, siempre es falso para cada y ).

Solución de cálculo de eventos

El cálculo de eventos utiliza términos para representar fluidos, como el cálculo de fluidos, pero también tiene uno o más axiomas que limitan el valor de los fluidos, como los axiomas de estados sucesores. Hay muchas variantes del cálculo de eventos, pero una de las más simples y útiles emplea un único axioma para representar la ley de inercia:

El axioma establece que un fluido se mantiene en un momento , si un evento sucede y se inicia en un momento anterior , y no hay ningún evento que suceda y termine después o al mismo tiempo que y antes .

Para aplicar el cálculo de eventos a un dominio de problema particular, es necesario definir los predicados y para ese dominio. Por ejemplo:

Para aplicar el cálculo de eventos a un problema particular del dominio, es necesario especificar los eventos que suceden en el contexto del problema. Por ejemplo:

.
.

Para resolver un problema, como ¿qué fluidos se mantienen en el tiempo 5? , es necesario plantear el problema como una meta, como por ejemplo:

En este caso, obteniendo la solución única:

El cálculo de eventos resuelve el problema marco, eliminando soluciones no deseadas, utilizando una lógica no monótona , como la lógica de primer orden con circunscripción [3] o tratando el cálculo de eventos como un programa lógico que utiliza la negación como fracaso .

Solución lógica predeterminada

El problema del marco puede considerarse como el problema de formalizar el principio de que, por defecto, "se supone que todo permanece en el estado en que se encuentra" ( Leibniz , "Introducción a una enciclopedia secreta", c . 1679). Este valor predeterminado, a veces llamado ley de inercia de sentido común , fue expresado por Raymond Reiter en lógica predeterminada :

(Si es cierto en la situación y se puede asumir [4] que sigue siendo cierto después de ejecutar la acción , entonces podemos concluir que sigue siendo cierto).

Steve Hanks y Drew McDermott argumentaron, basándose en su ejemplo de rodaje en Yale , que esta solución al problema del marco no es satisfactoria. Hudson Turner demostró, sin embargo, que funciona correctamente en presencia de postulados adicionales apropiados.

Solución de programación de conjunto de respuestas

La contraparte de la solución lógica predeterminada en el lenguaje de programación de conjuntos de respuestas es una regla con fuerte negación :

(si es cierto en el momento y se puede suponer que sigue siendo cierto en el momento , entonces podemos concluir que sigue siendo cierto).

Solución lógica de separación

La lógica de separación es un formalismo para razonar sobre programas de computadora que utilizan especificaciones previas y posteriores del formulario . La lógica de separación es una extensión de la lógica de Hoare orientada al razonamiento sobre estructuras de datos mutables en la memoria de la computadora y otros recursos dinámicos, y tiene un conectivo especial *, pronunciado "y por separado", para respaldar el razonamiento independiente sobre regiones de memoria disjuntas. [5] [6]

La lógica de separación emplea una interpretación estricta de las especificaciones previas y posteriores, que dicen que el código solo puede acceder a ubicaciones de memoria cuya existencia está garantizada por la condición previa. [7] Esto conduce a la solidez de la regla de inferencia más importante de la lógica, la regla marco

La regla marco permite agregar a una especificación descripciones de memoria arbitraria fuera de la huella (memoria a la que se accede) del código: esto permite que la especificación inicial se concentre sólo en la huella. Por ejemplo, la inferencia

captura ese código que ordena una lista x , no desclasifica una lista separada y, y lo hace sin mencionar y en absoluto en la especificación inicial sobre la línea.

La automatización de la regla marco ha dado lugar a aumentos significativos en la escalabilidad de las técnicas de razonamiento automatizado para el código, [8] que finalmente se implementaron industrialmente en bases de código con decenas de millones de líneas. [9]

Parece haber cierta similitud entre la solución lógica de separación del problema marco y la del cálculo fluido mencionado anteriormente. [ Se necesita más explicación ]

Idiomas de descripción de acciones

Los lenguajes de descripción de acciones eluden el problema del marco en lugar de resolverlo. Un lenguaje de descripción de acciones es un lenguaje formal con una sintaxis específica para describir situaciones y acciones. Por ejemplo, que la acción hace que la puerta se abra si no está cerrada se expresa por:

causas si

La semántica de un lenguaje de descripción de acciones depende de lo que el lenguaje puede expresar (acciones concurrentes, efectos retardados, etc.) y suele basarse en sistemas de transición .

Dado que los dominios se expresan en estos lenguajes y no directamente en la lógica, el problema del marco sólo surge cuando una especificación dada en una lógica de descripción de acción debe traducirse a la lógica. Sin embargo, normalmente se proporciona una traducción de estos lenguajes para responder a la programación de conjuntos en lugar de a la lógica de primer orden.

Ver también

Notas

  1. ^ Hayes, Patricio (1973). "El problema del marco y problemas relacionados en la inteligencia artificial". Universidad de Edimburgo .
  2. ^ McCarthy, J; PJ Hayes (1969). "Algunos problemas filosóficos desde el punto de vista de la inteligencia artificial". Inteligencia de las máquinas . 4 : 463–502. CiteSeerX 10.1.1.85.5082 . 
  3. ^ Shanahan, M. (1997) Resolución del problema del marco: una investigación matemática de la ley de inercia del sentido común . Prensa del MIT.
  4. ^ es decir, no se conoce información contradictoria
  5. ^ Reynolds, JC (2002). "Lógica de separación: una lógica para estructuras de datos mutables compartidas". Actas del 17º Simposio anual del IEEE sobre lógica en informática . Copenhague, Dinamarca: IEEE Comput. Soc. págs. 55–74. CiteSeerX 10.1.1.110.7749 . doi :10.1109/LICS.2002.1029817. ISBN  978-0-7695-1483-3. S2CID  6271346.
  6. ^ O'Hearn, Peter (28 de enero de 2019). "Lógica de separación". Comunicaciones de la ACM . 62 (2): 86–95. doi : 10.1145/3211968 . ISSN  0001-0782.
  7. ^ O'Hearn, Peter; Reynolds, Juan; Yang, Hongseok (2001). "Razonamiento local sobre programas que alteran estructuras de datos". En Friburgo, Laurent (ed.). Lógica informática . Apuntes de conferencias sobre informática. vol. 2142. Berlín, Heidelberg: Springer. págs. 1-19. doi :10.1007/3-540-44802-0_1. ISBN 978-3-540-44802-0.
  8. ^ Calcagno Cristiano; Dino Distéfano; Peter O'Hearn; Hongseok Yang (1 de diciembre de 2011). "Análisis de forma composicional mediante bi-abducción". Revista de la ACM . 58 (6): 1–66. doi :10.1145/2049697.2049700. S2CID  52808268.
  9. ^ Distéfano, Dino; Fähndrich, Manuel; Logozzo, Francesco; O'Hearn, Peter (24 de julio de 2019). "Ampliación de los análisis estáticos en Facebook". Comunicaciones de la ACM . 62 (8): 62–70. doi : 10.1145/3338112 .

Referencias

enlaces externos