El cálculo situacional es un formalismo lógico diseñado para representar y razonar sobre dominios dinámicos. Fue introducido por primera vez por John McCarthy en 1963. [ 1 ] [ 2 ] La versión principal del cálculo situacional que se presenta en este artículo se basa en la introducida por Ray Reiter en 1991. A continuación, se incluyen secciones sobre la versión de McCarthy de 1986 y una formulación de programación lógica .
Descripción general
El cálculo de situaciones representa escenarios cambiantes como un conjunto de fórmulas de lógica de primer orden . Los elementos básicos del cálculo son:
- Los fluidos que describen el estado del mundo
- Las acciones que se pueden realizar en el mundo
- Las situaciones
Un dominio se formaliza mediante una serie de fórmulas, a saber:
- Axiomas de precondiciones de acción, uno para cada acción.
- Axiomas del estado sucesor, uno para cada fluido
- Axiomas que describen el mundo en diversas situaciones
- Los axiomas fundamentales del cálculo de situaciones
Se modelará un mundo robótico simple como ejemplo práctico. En este mundo hay un solo robot y varios objetos inanimados. El mundo está dispuesto según una cuadrícula para que las ubicaciones se puedan especificar en términos dePuntos de coordenadas. El robot puede desplazarse por el mundo, recoger y soltar objetos. Algunos objetos pueden ser demasiado pesados para que el robot los recoja o demasiado frágiles, de modo que se rompen al caer. El robot también tiene la capacidad de reparar cualquier objeto roto que sostenga.
Elementos
Los elementos principales del cálculo de situaciones son las acciones, los fluidos y las situaciones. También suelen intervenir varios objetos en la descripción del mundo. El cálculo de situaciones se basa en un dominio ordenado con tres tipos: acciones, situaciones y objetos, donde los objetos incluyen todo aquello que no es una acción ni una situación. Se pueden utilizar variables de cada tipo. Si bien las acciones, las situaciones y los objetos son elementos del dominio, los fluidos se modelan como predicados o funciones.
Comportamiento
Las acciones forman una especie de dominio. Se pueden usar variables de tipo acción y también funciones cuyo resultado es de tipo acción. Las acciones se pueden cuantificar. En el ejemplo del mundo de los robots, los posibles términos de acción serían:modelar el robot moviéndose a una nueva ubicación, ypara modelar al robot recogiendo un objeto o . Se utiliza un predicado especial Poss para indicar cuándo se puede ejecutar una acción.
Situaciones
En el cálculo de situaciones, un mundo dinámico se modela como un proceso que avanza a través de una serie de situaciones como resultado de diversas acciones realizadas dentro de ese mundo. Una situación representa un historial de sucesos. En la versión de Reiter del cálculo de situaciones que se describe aquí, una situación no representa un estado, contrariamente al significado literal del término y a la definición original de McCarthy y Hayes . Reiter resumió este punto de la siguiente manera:
- Una situación es una secuencia finita de acciones. Punto. No es un estado, no es una instantánea, es un historial . [ 3 ]
La situación antes de que se haya realizado cualquier acción se suele denotary se denomina situación inicial. La nueva situación resultante de la realización de una acción se denota mediante el símbolo de función do (algunas otras referencias [ 4 ] también utilizan result ). Este símbolo de función tiene como argumentos una situación y una acción, y como resultado una situación, que es la situación que resulta de realizar la acción dada en la situación dada.
El hecho de que las situaciones sean secuencias de acciones y no estados se ve reforzado por un axioma que establece quees igual asi y solo siyEsta condición no tiene sentido si las situaciones fueran estados, ya que dos acciones diferentes ejecutadas en dos estados diferentes pueden dar como resultado el mismo estado.
En el ejemplo del mundo del robot, si la primera acción del robot es moverse a la ubicación, la primera acción esy la situación resultante es. Si su siguiente acción es recoger la pelota, la situación resultante es. Situaciones términos comoydenotan las secuencias de acciones ejecutadas, y no la descripción del estado que resulta de la ejecución.
Fluidos
Las proposiciones cuyo valor de verdad puede cambiar se modelan mediante predicados relacionales , que toman una situación como argumento final. También son posibles los predicados funcionales , que toman una situación como argumento final y devuelven un valor que depende de dicha situación. Los predicados pueden considerarse como «propiedades del mundo».
En el ejemplo, el fluidopuede utilizarse para indicar que el robot está transportando un objeto en particular en una situación particular. Si el robot inicialmente no transporta nada,es falso mientrasEs cierto. La ubicación del robot se puede modelar utilizando un flujo funcional.que devuelve la ubicacióndel robot en una situación particular.
Fórmulas
La descripción de un mundo dinámico se codifica en lógica de segundo orden utilizando tres tipos de fórmulas: fórmulas sobre acciones (precondiciones y efectos), fórmulas sobre el estado del mundo y axiomas fundamentales.
Precondiciones de acción
Algunas acciones pueden no ser ejecutables en una situación dada. Por ejemplo, es imposible dejar un objeto a menos que uno lo esté llevando. Las restricciones en la ejecución de acciones se modelan mediante literales de la formadonde a es una acción, s una situación y Poss es un predicado binario especial que denota la ejecutabilidad de las acciones. En el ejemplo, la condición de que soltar un objeto solo es posible cuando uno lo está llevando se modela mediante:
Como ejemplo más complejo, los siguientes modelos indican que el robot solo puede transportar un objeto a la vez y que algunos objetos son demasiado pesados para que el robot los levante (indicado por el predicado heavy ):
Efectos de acción
Dado que una acción es posible en una situación, se deben especificar los efectos de esa acción sobre los fluidos. Esto se hace mediante los axiomas de efecto. Por ejemplo, el hecho de que recoger un objeto provoque que el robot lo transporte se puede modelar como:
También es posible especificar efectos condicionales, que son efectos que dependen del estado actual. Los siguientes modelos indican que algunos objetos son frágiles (indicado por el predicado fragile ) y que al soltarlos se rompen (indicado por el predicado broken ):
Aunque esta fórmula describe correctamente el efecto de las acciones, no es suficiente para describir correctamente la acción en lógica, debido al problema del marco .
El problema del marco
Si bien las fórmulas anteriores parecen adecuadas para razonar sobre los efectos de las acciones, presentan una debilidad crucial: no pueden utilizarse para derivar los no efectos de las acciones. Por ejemplo, no es posible deducir que, tras recoger un objeto, la ubicación del robot permanece inalterada. Esto requiere un axioma de marco, una fórmula como:
La necesidad de especificar axiomas de marco se ha reconocido desde hace tiempo como un problema en la axiomatización de mundos dinámicos, y se conoce como el problema del marco . Dado que generalmente existe un gran número de dichos axiomas, es muy fácil que el diseñador omita un axioma de marco necesario o que olvide modificar todos los axiomas pertinentes cuando se realiza un cambio en la descripción del mundo.
Los axiomas del estado sucesor
Los axiomas del estado sucesor "resuelven" el problema del marco en el cálculo de situaciones. Según esta solución, el diseñador debe enumerar como axiomas de efecto todas las formas en que se puede cambiar el valor de un fluente en particular. Los axiomas de efecto afectan el valor del fluente.puede escribirse de forma generalizada como un axioma de efecto positivo y otro de efecto negativo:
La fórmuladescribe las condiciones bajo las cuales la acción a en la situación s hace que la proposición F fluida se vuelva verdadera en la situación sucesora.. Asimismo,describe las condiciones bajo las cuales realizar la acción a en la situación s hace que la fluidez F sea falsa en la situación sucesora.
Si este par de axiomas describe todas las formas en que F fluido puede cambiar de valor, se pueden reescribir como un solo axioma:
En palabras, esta fórmula establece: "dado que es posible realizar la acción a en la situación s , la ecuación F fluida sería verdadera en la situación resultante".si y solo si realizar a en s lo haría verdadero, o si es verdadero en la situación s y realizar a en s no lo haría falso."
A modo de ejemplo, el valor del roto fluido introducido anteriormente viene dado por el siguiente axioma de estado sucesor:
Estados
Las propiedades de la situación inicial o de cualquier otra situación pueden especificarse simplemente expresándolas como fórmulas. Por ejemplo, un hecho sobre el estado inicial se formaliza haciendo afirmaciones sobre(que no es un estado, sino una situación ). Las siguientes afirmaciones modelan que, inicialmente, el robot no lleva nada, está en la ubicacióny no hay objetos rotos:
Axiomas fundamentales
Los axiomas fundamentales del cálculo de situaciones formalizan la idea de que las situaciones son historias al tener. También incluyen otras propiedades, como la inducción de segundo orden en situaciones.
Regresión
La regresión [ 5 ] es un mecanismo para probar consecuencias en el cálculo de situaciones. [ 6 ] Se basa en expresar una fórmula que contiene la situación.en términos de una fórmula que contiene la acción a y la situación s , pero no la situaciónAl repetir este procedimiento, se puede llegar a una fórmula equivalente que contiene únicamente la situación inicial S 0 . Se supone que demostrar las consecuencias es más sencillo a partir de esta fórmula que a partir de la original.
GOLOG
GOLOG es un lenguaje de programación lógica basado en el cálculo de situaciones. [ 7 ] [ 8 ]
La versión original del cálculo de situaciones
La principal diferencia entre el cálculo situacional original de McCarthy y Hayes y el que se utiliza hoy en día radica en la interpretación de las situaciones. En la versión moderna del cálculo situacional, una situación es una secuencia de acciones. Originalmente, las situaciones se definían como «el estado completo del universo en un instante dado». Desde el principio quedó claro que tales situaciones no podían describirse completamente; la idea era simplemente formular enunciados sobre las situaciones y derivar consecuencias a partir de ellos. Esto también difiere del enfoque adoptado por el cálculo fluido , donde un estado puede ser un conjunto de hechos conocidos, es decir, una descripción posiblemente incompleta del universo.
En la versión original del cálculo de situaciones, los fluentes no se reifican. En otras palabras, las condiciones que pueden cambiar se representan mediante predicados y no mediante funciones. De hecho, McCarthy y Hayes definieron un fluente como una función que depende de la situación, pero luego procedieron a utilizar siempre predicados para representar los fluentes. Por ejemplo, el hecho de que esté lloviendo en el lugar x en la situación s se representa mediante el literalEn la versión de 1986 del cálculo de situaciones de McCarthy, se utilizan fluentes funcionales. Por ejemplo, la posición de un objeto x en la situación s está representada por el valor dedonde la ubicación es una función. Las afirmaciones sobre dichas funciones se pueden expresar mediante la igualdad:significa que la ubicación del objeto x es la misma en las dos situaciones s y.
La ejecución de las acciones está representada por la función resultado : la ejecución de la acción a en la situación s es la situaciónLos efectos de las acciones se expresan mediante fórmulas que relacionan los fluidos en la situación s y los fluidos en la situación s.Por ejemplo, que la acción de abrir la puerta dé como resultado que la puerta quede abierta si no está cerrada con llave se representa mediante:
Los predicados `locked` y `open` representan las condiciones de una puerta cerrada y abierta, respectivamente. Dado que estas condiciones pueden variar, se representan mediante predicados con un argumento de situación. La fórmula indica que si la puerta no está cerrada en una situación determinada, entonces está abierta después de ejecutar la acción de abrirla, acción que se representa mediante la constante ` opens` .
Estas fórmulas no son suficientes para derivar todo lo que se considera plausible. De hecho, los fluidos en diferentes situaciones solo están relacionados si son precondiciones y efectos de acciones; si un fluido no se ve afectado por una acción, no hay forma de deducir que no cambió. Por ejemplo, la fórmula anterior no implica quesigue de, lo cual es lo que cabría esperar (la puerta no se cierra al abrirla). Para que la inercia se mantenga, se necesitan fórmulas llamadas axiomas de marco . Estas fórmulas especifican todos los efectos no derivados de las acciones:
En la formulación original del cálculo de situaciones, la situación inicial, posteriormente denotada por , no se identifica explícitamente. La situación inicial no es necesaria si las situaciones se toman como descripciones del mundo. Por ejemplo, para representar el escenario en el que la puerta estaba cerrada pero no bloqueada y se realiza la acción de abrirla se formaliza tomando una constante s para significar la situación inicial y haciendo afirmaciones sobre ella (por ejemplo,). Que la puerta esté abierta después del cambio se refleja en la fórmulaestando implicado. La situación inicial es necesaria si, como en el cálculo de situaciones moderno, se considera que una situación es una historia de acciones, ya que la situación inicial representa la secuencia vacía de acciones.
La versión del cálculo de situación introducida por McCarthy en 1986 difiere de la original por el uso de fluentes funcionales (por ejemplo,es un término que representa la posición de x en la situación s ) y para un intento de utilizar la circunscripción para reemplazar los axiomas del marco.
El cálculo situacional como programa lógico
También es posible (por ejemplo, Kowalski 1979, Apt y Bezem 1990, Shanahan 1997) escribir el cálculo de situaciones como un programa lógico:
Aquí Holds es un metapredicado y la variable f abarca a los fluentes. Los predicados Poss , Initiates y Terminates corresponden a los predicados Poss ,, yrespectivamente. La flecha izquierda ← es la mitad de la equivalencia ↔. La otra mitad está implícita en la finalización del programa, en el que la negación se interpreta como negación como fallo . Los axiomas de inducción también están implícitos y solo se necesitan para probar las propiedades del programa. El razonamiento hacia atrás, como en la resolución SLD , que es el mecanismo habitual utilizado para ejecutar programas lógicos, implementa la regresión implícitamente.
Véase también
Referencias
- ↑ McCarthy, John (1963). "Situaciones, acciones y leyes causales" (PDF) . Informe técnico de la Universidad de Stanford . Archivado del original (PDF) el 21 de marzo de 2020.
- ↑ "Cálculo de situación" . Engati . Consultado el 17 de noviembre de 2025 .
- ↑ "Contribución al debate de ECSTER" .
- ↑ "Combinando narrativas, John McCarthy et al. (1998)" (PDF) .
- ↑ Waldinger, Richard. "Lograr varios objetivos simultáneamente". En Lecturas sobre inteligencia artificial, págs. 250-271. Morgan Kaufmann, 1981.
- ↑ Reiter, R., 1991. El problema del marco en el cálculo de situaciones: una solución simple (a veces) y un resultado de completitud para la regresión de objetivos. Teoría artificial y matemática de la computación, 3.
- ↑ Lakemeyer, Gerhard. "El cálculo de situaciones y Golog: un tutorial" (PDF) . www.hybrid-reasoning.org . Consultado el 16 de julio de 2014 .
- ↑ "Publicaciones sobre GOLOG" . Consultado el 16 de julio de 2014 .
- J. McCarthy y P. Hayes (1969). Algunos problemas filosóficos desde el punto de vista de la inteligencia artificial . En B. Meltzer y D. Michie, editores, Machine Intelligence , 4:463–502. Edinburgh University Press, 1969.
- R. Kowalski (1979). Lógica para la resolución de problemas - Elsevier North Holland.
- KR Apt y M. Bezem (1990). Programas acíclicos. En: 7.ª Conferencia Internacional sobre Programación Lógica. MIT Press. Jerusalén, Israel.
- R. Reiter (1991). El problema del marco en el cálculo de situaciones: una solución simple (a veces) y un resultado de completitud para la regresión de objetivos. En Vladimir Lifshitz, editor, Inteligencia artificial y teoría matemática de la computación: artículos en honor a John McCarthy , páginas 359-380, San Diego, CA, EE. UU. Academic Press Professional, Inc. 1991.
- M. Shanahan (1997). Resolviendo el problema del marco: una investigación matemática de la ley de inercia del sentido común. MIT Press.
- H. Levesque, F. Pirri y R. Reiter (1998). Fundamentos del cálculo de situaciones . Electronic Transactions on Artificial Intelligence , 2(3–4):159-178.
- F. Pirri y R. Reiter (1999). Algunas contribuciones a la metateoría del cálculo de situaciones. Journal of the ACM , 46(3):325–361. doi : 10.1145/316542.316545
- R. Reiter (2001). El conocimiento en acción: fundamentos lógicos para especificar e implementar sistemas dinámicos. The MIT Press.
- Presentaciones de 1963
- Programación lógica
- Cálculos lógicos