Articulo de referencia

Cálculo de eventos

El cálculo de eventos es una teoría lógica para representar y razonar sobre eventos y sobre la forma en que estos modifican el estado de un mundo real o artificial. Aborda tanto...

El cálculo de eventos es una teoría lógica para representar y razonar sobre eventos y sobre la forma en que estos modifican el estado de un mundo real o artificial. Aborda tanto los eventos de acción, realizados por agentes, como los eventos externos, que escapan al control de cualquier agente.

El cálculo de eventos representa el estado del mundo en cualquier momento mediante el conjunto de todos los hechos (llamados fluentes ) que se dan en ese momento. Los eventos inician y terminan los fluentes:

Un flujo se mantiene en un momento dado si se inicia por un evento que ocurre en un momento anterior y no se termina por ningún evento que ocurra mientras tanto.

El cálculo de eventos se diferencia de la mayoría de los demás enfoques para razonar sobre el cambio al reificar el tiempo, asociando los eventos con el momento en que ocurren y asociando los flujos con los momentos en que se mantienen.

La versión original del cálculo de eventos, introducida por Robert Kowalski y Marek Sergot en 1986, [ 1 ] se formuló como un programa lógico y se desarrolló para representar narrativas y actualizaciones de bases de datos. [ 2 ] Kave Eshghi mostró cómo usar el cálculo de eventos para la planificación, [ 3 ] mediante la abducción para generar acciones hipotéticas para lograr un estado de cosas deseado.

Fue ampliada por Murray Shanahan y Rob Miller en la década de 1990 [ 4 ] y reformulada en lógica de primer orden con circunscripción . Estas y posteriores extensiones se han utilizado para formalizar acciones no deterministas, acciones concurrentes, acciones con efectos retardados, cambios graduales, acciones con duración, cambio continuo y fluentes no inerciales.

Van Lambalgen y Hamm demostraron cómo una formulación del cálculo de eventos como un programa de lógica de restricciones puede usarse para dar una semántica algorítmica al tiempo y al aspecto en el lenguaje natural. [ 5 ]

Fluents y eventos

En el cálculo de eventos, los fluentes se reifican . Esto significa que los fluentes están representados por términos . Por ejemplo,holdsAt(onorte(gramormiminorte_blodok,tablmi),1){\displaystyle {\mathit {holdsAt}}(on(green\_block,table),1)}expresa que elgramormiminorte_blodok{\displaystyle {\mathit {green\_block}}}está en eltablmi{\displaystyle {\mathit {table}}}en ese momento1{\displaystyle 1}. AquíholdsAt{\displaystyle {\mathit {holdsAt}}}es un predicado, mientras queonorte(gramormiminorte_blodok,tablmi){\displaystyle {\mathit {on(green\_block,table)}}}es un término. En general, la fórmula atómica

holdsAt(Flminortet,timetromi){\displaystyle {\mathit {holdsAt}}(fluent,time)}expresa que elFlminortet{\displaystyle {\mathit {fluido}}}se mantiene en eltimetromi.{\displaystyle {\mathit {tiempo.}}}

Los eventos también se reifican y se representan mediante términos. Por ejemplo,hapagpagminortesAt(metroovmi(gramormiminorte_blodok,rmid_blodok),3){\displaystyle {\mathit {happensAt}}(move(green\_block,red\_block),3)}expresa que elgramormiminorte_blodok{\displaystyle {\mathit {green\_block}}}se traslada alrmid_blodok){\displaystyle {\mathit {red_block)}}}en ese momento3{\displaystyle 3}. En general:

hapagpagminortesAt(mivminortet,timetromi){\displaystyle {\mathit {sucedeEn}}(evento,tiempo)}expresa que elmivminortet{\displaystyle {\mathit {evento}}}sucede en eltimetromi.{\displaystyle {\mathit {tiempo.}}}

Las relaciones entre los eventos y los fluidos que inician y finalizan también están representadas por fórmulas atómicas:

inorteitiatmis(mivminortet,Flminortet,timetromi){\displaystyle {\mathit {inicia}}(evento,fluido,tiempo)}expresa que si elmivminortet{\displaystyle {\mathit {evento}}}sucede en eltimetromi{\displaystyle {\mathit {tiempo}}}entonces elFlminortet{\displaystyle {\mathit {fluido}}}se convierte en realidad después de latimetromi{\displaystyle {\mathit {tiempo}}}.
tmirmetroinorteatmis(mivminortet,Flminortet,timetromi){\displaystyle {\mathit {termina}}(evento,fluido,tiempo)}expresa que si elmivminortet{\displaystyle {\mathit {evento}}}sucede en eltimetromi{\displaystyle {\mathit {tiempo}}}entonces elFlminortet{\displaystyle {\mathit {fluido}}}deja de ser cierto después de latimetromi{\displaystyle {\mathit {tiempo}}}.

Axioma independiente del dominio

El cálculo de eventos se desarrolló en parte como una alternativa al cálculo de situaciones , [ 6 ] [ 7 ] como una solución al problema del marco , de representar y razonar sobre la forma en que las acciones y otros eventos cambian el estado de algún mundo.

Existen muchas variantes del cálculo de eventos. Pero el axioma central de una de las variantes más simples y útiles puede expresarse como un único axioma independiente del dominio:

holdsAt(F,T2){\displaystyle {\mathit {holdsAt}}(F,T2)\leftarrow }
[hapagpagminortesAt(mi1,T1)inorteitiatmis(mi1,F,T1)(T1<T2){\displaystyle [{\mathit {happensAt}}(E1,T1)\wedge {\mathit {initiates}}(E1,F,T1)\wedge (T1<T2)\wedge }
¬mi2,T[hapagpagminortesAt(mi2,T)tmirmetroinorteatmis(mi2,F,T)(T1T<T2)]{\displaystyle \neg \exists E2,T[{\mathit {happensAt}}(E2,T)\wedge {\mathit {terminates}}(E2,F,T)\wedge (T1\leq T<T2)]}

El axioma afirma que

un fluidoF{\displaystyle F} se sostiene a la vezT2{\displaystyle T2}si
un eventomi1{\displaystyle E1}sucede en un momentoT1{\displaystyle T1}y
mi1{\displaystyle E1}iniciaF{\displaystyle F}enT1{\displaystyle T1}y
T1{\displaystyle T1}es antes T2{\displaystyle T2}y
No es el caso que exista un eventomi2{\displaystyle E2}y un tiempoT{\displaystyle T}de tal manera que
mi2{\displaystyle E2}sucede enT{\displaystyle T}y
mi2{\displaystyle E2}terminaF{\displaystyle F}enT{\displaystyle T}y
T1{\displaystyle T1}es antes o al mismo tiempo queT{\displaystyle T}y
T{\displaystyle T}es antesT2{\displaystyle T2}.

El cálculo de eventos resuelve el problema del marco interpretando este axioma en una lógica no monótona , como la lógica de primer orden con circunscripción [ 8 ] o, como un programa lógico , en la lógica de cláusulas de Horn con la negación como fallo . [ 1 ] De hecho, la circunscripción es una de las varias semánticas que se pueden dar a la negación como fallo, [ 9 ] y está estrechamente relacionada con la semántica de completitud para programas lógicos [ 10 ] (que interpreta if como if y only if ).

El axioma central del cálculo de eventos define elholdsAt{\displaystyle holdsAt} predicado en términos delhapagpagminortesAt{\displaystyle sucedeEn},inorteitiatmis{\displaystyle inicia},tmirmetroinorteatmis{\displaystyle termina},<{\displaystyle <}y{\displaystyle \leq }predicados. Para aplicar el cálculo de eventos a un problema particular, también es necesario definir estos otros predicados.

El cálculo de eventos es compatible con diferentes definiciones de los predicados temporales.<{\displaystyle <}y{\displaystyle \leq }En la mayoría de las aplicaciones, los tiempos se representan de forma discreta, mediante números naturales, o de forma continua, mediante números reales no negativos. Sin embargo, los tiempos también pueden estar parcialmente ordenados.

Axiomas dependientes del dominio

Para aplicar el cálculo de eventos en un dominio de problemas particular, es necesario definir elinorteitiatmis{\displaystyle inicia}ytmirmetroinorteatmis{\displaystyle termina}predicados para ese dominio. Por ejemplo, en el dominio del mundo de los bloques , un eventometroovmi(Objmidot,PAGladomi){\displaystyle mover(Objeto,Lugar)}El acto de mover un objeto a un lugar inicia la fluidezonorte(Objmidot,PAGladomi){\displaystyle on(Object,Place)}, que expresa que el objeto está en el lugar y termina la fluidezonorte(Objmidot,PAGladomi1){\displaystyle on(Object,Place1)}, lo que indica que el objeto se encuentra en un lugar diferente:

inorteitiatmis(metroovmi(Objmidot,PAGladomi),onorte(Objmidot,PAGladomi),Timetromi).{\displaystyle {\mathit {inicia}}(mover(Objeto,Lugar),en(Objeto,Lugar),Tiempo).}
tmirmetroinorteatmis(metroovmi(Objmidot,PAGladomi),onorte(Objmidot,PAGladomi1),Timetromi)diFFmirminortet(PAGladomi1,PAGladomi).{\displaystyle {\mathit {termina}}(move(Object,Place),on(Object,Place1),Time)\leftarrow different(Place1,Place).}

Si queremos representar el hecho de que unFlminortet{\displaystyle Fluent}se mantiene en un estado inicial, digamos en el tiempo 1, entonces con el axioma central simple anterior necesitamos un evento, digamosinorteitialismi(Flminortet){\displaystyle inicializar (fluido)}, que inicia elFlminortet{\displaystyle Fluent}en cualquier momento:

inorteitiatmis(inorteitialismi(Flminortet),Flminortet,Timetromi).{\displaystyle {\mathit {inicia}}(inicializar(Fluido),Fluido,Tiempo).}

Axiomas dependientes del problema

Para aplicar el cálculo de eventos, dadas las definiciones deholdsAt{\displaystyle holdsAt},inorteitiatmis{\displaystyle inicia},tmirmetroinorteatmis{\displaystyle termina},<{\displaystyle <}y{\displaystyle \leq }predicados, es necesario definir elhapagpagminortesAt{\displaystyle sucedeEn}predicados que describen el contexto específico del problema.

Por ejemplo, en el dominio del mundo de los bloques, podríamos querer describir un estado inicial en el que hay dos bloques, un bloque rojo sobre un bloque verde sobre una mesa, como un semáforo de juguete, seguido de mover el bloque rojo a la mesa en el tiempo 1 y mover el bloque verde sobre el bloque rojo en el tiempo 3, poniendo el semáforo boca abajo:

hapagpagminortesAt(inorteitialismi(onorte(rmid_blodok,gramormiminorte_blodok),0){\displaystyle {\mathit {happensAt}}(initialise(on(red_block,green_block),0)}
hapagpagminortesAt(inorteitialismi(onorte(gramormiminorte_blodok,tablmi),0){\displaystyle {\mathit {happensAt}}(initialise(on(green\_block,table),0)}
hapagpagminortesAt(metroovmi(rmid_blodok,tablmi),1){\displaystyle {\mathit {happensAt}}(move(red\_block,table),1)}
hapagpagminortesAt(metroovmi(gramormiminorte_blodok,rmid_blodok),3){\displaystyle {\mathit {happensAt}}(move(green\_block,red\_block),3)}

Una implementación de Prolog

El cálculo de eventos tiene una implementación natural en Prolog puro (sin características que no tengan una interpretación lógica). Por ejemplo, el escenario del mundo de bloques anterior se puede implementar (con pequeñas modificaciones) mediante el programa:

holdsAt ( Fluent , Time2 ) :- before ( Time1 , Time2 ), happensAt ( Event , Time1 ), initiates ( Event , Fluent , Time1 ), not ( clipped ( Fluent , Time1 , Time2 )).recortado ( Fluent , Time1 , Time2 ) :- termina ( Event , Fluent , Time ), sucedeEn ( Event , Time ), antes ( Time1 , Time ), antes ( Time , Time2 ).inicia ( inicializar ( fluido ), fluido , tiempo ). inicia ( mover ( objeto , lugar ), en ( objeto , lugar ), tiempo ). termina ( mover ( objeto , lugar ), en ( objeto , lugar1 ), tiempo ).happenAt ( initialise ( on ( green_block , table )), 0 ). happenAt ( initialise ( on ( red_block , green_block )), 0 ). happenAt ( move ( red_block , table ), 1 ). happenAt ( move ( green_block , red_block ), 3 ).

El programa Prolog difiere de la formalización anterior en los siguientes aspectos:

  • El axioma central ha sido reescrito, utilizando un predicado auxiliar. Esta reescritura permite la eliminación de cuantificadores existenciales, conforme a la convención de Prolog de que todas las variables están cuantificadas universalmente.clipped(Fact,Time1,Time2).
  • Se ha cambiado el orden de las condiciones en el cuerpo del axioma o axiomas centrales para generar respuestas a las consultas en orden temporal.
  • La igualdad en la condiciónT1T{\displaystyle T1\leq T}se ha eliminado de la condición correspondiente Esto incorpora una suposición simplificadora de que los eventos no inician y terminan simultáneamente el mismo flujo. Como consecuencia, la definición de la before(Time1,Time).tmirmetroinorteatmis{\displaystyle terminates}El predicado se ha simplificado eliminando la condición de quediFFmirminortet(PAGladomi1,PAGladomi){\displaystyle different(Place1,Place)}.

Dada una definición apropiada [ nota 1 ] del predicado, el programa Prolog genera todas las respuestas a la consulta ¿qué se cumple cuándo? en orden temporal:before(Time1,Time2),

?- holdsAt ( Fluent , Time ). Fluent = on ( green_block , table ), Time = 1. Fluent = on ( red_block , green_block ), Time = 1. Fluent = on ( green_block , table ), Time = 2. Fluent = on ( red_block , table ), Time = 2. Fluent = on ( green_block , table ), Time = 3. Fluent = on ( red_block , table ), Time = 3. Fluent = on ( red_block , table ), Time = 4. Fluent = on ( green_block , red_block ), Time = 4. Fluent = on ( red_block , table ), Time = 5. Fluent = on ( green_block , red_block ), Time = 5.

El programa también puede responder a consultas negativas, como por ejemplo, ¿ qué fluentes no se cumplen en qué momentos? Sin embargo, para que funcione correctamente, todas las variables en condiciones negativas deben primero instanciarse como términos que no contienen variables. Por ejemplo:

timePoint ( 1 ). timePoint ( 2 ). timePoint ( 3 ). timePoint ( 4 ). timePoint ( 5 ).fluent ( en ( bloque_rojo , bloque_verde )). fluent ( en ( bloque_verde , bloque_rojo )). fluent ( en ( bloque_rojo , tabla )). fluent ( en ( bloque_verde , tabla )).?- timePoint ( T ), fluent ( F ), not ( holdsAt ( F , T )). F = on ( green_block , red_block ), T = 1. F = on ( red_block , table ), T = 1. F = on ( red_block , green_block ), T = 2. F = on ( green_block , red_block ), T = 2. F = on ( red_block , green_block ), T = 3. F = on ( green_block , red_block ), T = 3. F = on ( red_block , green_block ), T = 4. F = on ( green_block , table ), T = 4. F = on ( red_block , green_block ), T = 5. F = on ( green_block , table ), T = 5.

Herramientas de razonamiento

Además de Prolog y sus variantes, también están disponibles otras herramientas para el razonamiento mediante el cálculo de eventos:

  • Planificadores de cálculo de eventos abductivos
  • Razonador de cálculo de eventos discretos
  • Programación de conjuntos de respuestas de cálculo de eventos
  • Cálculo de eventos reactivos
  • Cálculo de eventos en tiempo de ejecución (RTEC)
  • Cálculo de eventos probabilísticos epistémicos (EPEC) [ 11 ]

Extensiones

Entre las extensiones notables del cálculo de eventos se incluyen variantes basadas en redes de lógica de Markov [ 12 ] probabilísticas , [ 13 ] epistémicas [ 14 ] y sus combinaciones. [ 15 ]

Véase también

Referencias

  1. 1 2 Kowalski, Robert; Sergot, Marek (1986-03-01). "Un cálculo de eventos basado en la lógica" . New Generation Computing . 4 (1): 67– 95. doi : 10.1007/BF03037383 . ISSN 1882-7055 . S2CID 7584513 .  
  2. Kowalski, Robert (1992-01-01). "Actualizaciones de bases de datos en el cálculo de eventos" . The Journal of Logic Programming . 12 (1): 121– 146. doi : 10.1016/0743-1066(92)90041-Z . ISSN 0743-1066 . 
  3. Eshghi, Kave (1988). "Planificación abductiva con cálculo de eventos" . Iclp/SLP : 562–579 .
  4. Miller, Rob; Shanahan, Murray (2002), "Algunas formulaciones alternativas del cálculo de eventos" , en Kakas, Antonis C.; Sadri, Fariba (eds.), Lógica computacional: programación lógica y más allá: ensayos en honor a Robert A. Kowalski, Parte II , Lecture Notes in Computer Science, Berlín, Heidelberg: Springer, pp. 452–490 , doi : 10.1007/3-540-45632-5_17 , ISBN  978-3-540-45632-2, consultado el 5 de octubre de 2020
  5. Lambalgen, Hamm (2005). El tratamiento adecuado de los eventos . Malden, MA: Blackwell Pub. ISBN 978-0-470-75925-7OCLC 212129657 
  6. 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.
  7. 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.
  8. Shanahan, M. (1997) Resolviendo el problema del marco: Una investigación matemática de la ley de inercia de sentido común . MIT Press.
  9. Gelfond, M.; Przymusinska, H.; Przymusinski, T. (1989). "Sobre la relación entre circunscripción y negación como fallo". Inteligencia Artificial . 38 (1): 75– 94. doi : 10.1016/0004-3702(89)90068-4 .
  10. Clark, KL (1977). «La negación como fracaso». Lógica y bases de datos . Boston, MA: Springer US. págs. 293–322 . doi : 10.1007/978-1-4684-3384-5_11 . ISBN  978-1-4684-3386-9.
  11. D'Asaro, Fabio Aurelio; Bikakis, Antonis; Dickens, Luke; Miller, Rob (2024). "Una implementación basada en programación de conjuntos de respuestas del cálculo de eventos probabilísticos epistémicos" . International Journal of Approximate Reasoning . 165 109101. doi : 10.1016/j.ijar.2023.109101 . ISSN 0888-613X . 
  12. Skarlatidis, Anastasios; Paliouras, Georgios; Artikis, Alexander; Vouros, George A. (2015-02-17). "Cálculo probabilístico de eventos para el reconocimiento de eventos" . ACM Transactions on Computational Logic . 16 (2): 11:1–11:37. arXiv : 1207.3270 . doi : 10.1145/2699916 . ISSN 1529-3785 . S2CID 6389629 .  
  13. Skarlatidis, Anastasios; Artikis, Alexander; Filippou, Jason; Paliouras, Georgios (marzo de 2015). "Un cálculo de eventos de programación lógica probabilística" . Theory and Practice of Logic Programming . 15 (2): 213– 245. arXiv : 1204.1851 . doi : 10.1017/S1471068413000690 . ISSN 1471-0684 . S2CID 5701272 .  
  14. Ma, Jiefei; Miller, Rob; Morgenstern, Leora; Patkos, Theodore (2014-07-28). "Un cálculo de eventos epistémicos para el razonamiento basado en ASP sobre el conocimiento del pasado, presente y futuro" . EPiC Series in Computing . 26. EasyChair: 75–87 . doi : 10.29007/zswj .
  15. D'Asaro, Fabio Aurelio; Bikakis, Antonis; Dickens, Luke; Miller, Rob (2020-10-01). "Razonamiento probabilístico sobre narrativas de acción epistémica" . Inteligencia Artificial . 287 103352. doi : 10.1016/j.artint.2020.103352 . ISSN 0004-3702 . S2CID 221521535 .  

Lecturas adicionales

  • Brandano, S. (2001) " Evaluación del cálculo de eventos ," Simposio IEEE TIME : 7-12.
  • R. Kowalski y F. Sadri (1995) " Variantes del cálculo de eventos ", ICLP : 67-81.
  • Mueller, Erik T. (2015). Razonamiento de sentido común: Un enfoque basado en el cálculo de eventos (2.ª ed.) . Waltham, MA: Morgan Kaufmann/Elsevier. ISBN 978-0128014165(Guía para el uso del cálculo de eventos)
  • Shanahan, M. (1997) Resolviendo el problema del marco: Una investigación matemática de la ley de inercia del sentido común . MIT Press.
  • Shanahan, M. (1999) " El cálculo de eventos explicado " Springer Verlag, LNAI (1600): 409-30.

Notas

  1. Por ejemplo:
    antes ( Tiempo1 , Tiempo2 ) :- línea de tiempo ( Eternidad ), agregar ( Antes , [ Tiempo2 | Después ], Eternidad ), miembro ( Tiempo1 , Antes ).línea de tiempo ([ 0 , 1 , 2 , 3 , 4 , 5 ]).