En la verificación de modelos , un subcampo de la informática , un reloj es un objeto matemático que se utiliza para modelar el tiempo. Más precisamente, un reloj mide cuánto tiempo ha transcurrido desde que ocurre un evento determinado; en este sentido, un reloj es una abstracción de un cronómetro . En el modelo de un programa específico, el valor del reloj puede ser el tiempo transcurrido desde que se inició el programa o desde que ocurrió un evento determinado en él. Estos relojes se utilizan en la definición de autómatas temporizados , autómatas de señales , lógica temporal proposicional temporizada y lógica temporal de reloj . También se utilizan en programas como UPPAAL , que implementan autómatas temporizados. [ 1 ]
Generalmente, el modelo de un sistema utiliza varios relojes. Estos relojes son necesarios para registrar un número limitado de eventos. Todos ellos están sincronizados, lo que significa que la diferencia de valor entre dos relojes fijos permanece constante hasta que uno de ellos se reinicia. En términos de electrónica, esto significa que la fluctuación del reloj es nula.
Ejemplo
Supongamos que queremos modelar un ascensor en un edificio de diez plantas. Nuestro modelo puede tenerrelojes, de tal manera que el valor del relojes el tiempo que alguien tuvo que esperar el ascensor en el pisoEste reloj se pone en marcha cuando alguien llama al ascensor en el piso(y el ascensor no ha sido llamado a este piso desde la última vez que lo visitó). Este reloj se puede apagar cuando el ascensor llega al pisoEn este ejemplo, en realidad necesitamos diez relojes distintos porque necesitamos rastrear diez eventos independientes. Otro relojPuede utilizarse para comprobar cuánto tiempo permaneció un ascensor en un piso determinado.
Un modelo de este ascensor puede entonces usar esos relojes para afirmar si el programa del ascensor satisface propiedades tales como "suponiendo que el ascensor no se mantiene en un piso durante más de quince segundos, entonces nadie tiene que esperar el ascensor durante más de tres minutos". Para comprobar si esta afirmación se cumple, basta con comprobar que, en cada ejecución del modelo en la que el relojsiempre es menor que quince segundos, cada relojSe apaga antes de que transcurran tres minutos.
Definición
Formalmente, un conjuntode relojes es simplemente un conjunto finito [ 1 ] : 191 . Cada elemento de un conjunto de relojes se llama reloj. Intuitivamente, un reloj es similar a una variable en lógica de primer orden , es un elemento que puede usarse en una fórmula lógica y que puede tomar varios valores diferentes.
Valoraciones de relojes
Una valoración o interpretación de un reloj [ 1 ] : 193encimageneralmente se define como una función deal conjunto de los números reales no negativos. De forma equivalente, una valoración puede considerarse como un punto en.
La tarea iniciales la función constante que envía cada reloj a 0. Intuitivamente, representa el tiempo inicial del programa, donde todos los relojes se inicializan simultáneamente.
Se me asignó un relojy un verdadero,indica la asignación de reloj que envía cada relojaIntuitivamente, representa la valoracióndespués de lo cualunidades de tiempo transcurridas.
Dado un subconjuntode relojes,denota la asignación similar aen el que los relojes dese reinician. Formalmente,envía cada reloja 0 y cada reloja.
Relojes inactivos
El programa UPPAAL introduce la noción de relojes inactivos . [ 2 ] Un reloj está inactivo en algún momento si no hay ningún futuro posible en el que se compruebe el valor del reloj sin reiniciarlo primero. En nuestro ejemplo anterior, el relojSe considera inactivo cuando el ascensor llega al pisoy permanece inactivo hasta que alguien llama al ascensor en el piso.
Al permitir relojes inactivos, una valoración puede asociar un reloja algún valor especialpara indicar que está inactivo. Sientoncestambién es igual a.
Restricción de reloj
Una restricción de reloj atómico es simplemente un término de la forma, dóndees un reloj,es un operador de comparación, como < , ≤ , = ≥ , o > , yes una constante integral. En nuestro ejemplo anterior, podemos usar las restricciones del reloj atómico .para afirmar que la persona en el pisoEsperó menos de tres minutos ypara afirmar que el ascensor permaneció en algún piso durante más de quince segundos. Una valoraciónSatisface una valoración de reloj atómicosi y solo si.
Una restricción de reloj es una conjunción finita de una restricción de reloj atómico o es la constante "verdadera" (que puede considerarse como la conjunción vacía). Una valoraciónsatisface una restricción de relojsi satisface cada restricción del reloj atómico.
Restricción diagonal
Dependiendo del contexto, una restricción de reloj atómico también puede tener la forma. Dicha restricción se denomina restricción diagonal, porquedefine una línea diagonal en.
Permitir restricciones diagonales puede reducir el tamaño de una fórmula o de un autómata utilizado para describir un sistema. Sin embargo, la complejidad del algoritmo puede aumentar al permitir restricciones diagonales. En la mayoría de los sistemas que utilizan relojes, permitir restricciones diagonales no aumenta la expresividad de la lógica. A continuación, explicamos cómo codificar dichas restricciones con variables booleanas y restricciones no diagonales.
Una restricción diagonalpuede simularse utilizando restricciones no diagonales de la siguiente manera. Cuandose reinicia, compruebe siSe cumple o no. Guarda esta información en una variable booleana.y reemplazarpor esta variable. Cuandose reinicia, se estableceverdadero sies < o ≤ o sies = y.
La forma de codificar una variable booleana depende del sistema que utiliza el reloj. Por ejemplo, UPPAAL admite variables booleanas directamente. Los autómatas temporizados y los autómatas de señales pueden codificar un valor booleano en sus ubicaciones. En la lógica temporal de reloj sobre palabras temporizadas, la variable booleana puede codificarse utilizando un nuevo reloj., cuyo valor es 0 si y solo sies falso. Es decir,se reinicia siempre queSe supone que es falso. En la lógica temporal proposicional cronometrada , la fórmula, que se reiniciany luego evalúa, puede ser reemplazado por la fórmula, dóndeyson copias de las fórmulas, dóndese reemplazan por la constante verdadera y falsa respectivamente.
Conjuntos definidos por restricciones de reloj
Una restricción de reloj define un conjunto de valoraciones. En la literatura se consideran dos tipos de dichos conjuntos.
Una zona es un conjunto no vacío de valoraciones que satisface una restricción de reloj. Las zonas y las restricciones de reloj se implementan utilizando la matriz de límites de diferencia .
Dado un modelo , utiliza un número finito de constantes en sus restricciones de reloj. Seasea la mayor constante utilizada. Una región es una zona no vacía en la que no hay ninguna restricción mayor quese utilizan y, además, de tal manera que sea mínimo para la inclusión.
Véase también
Notas
- 1 2 3 Alur, Rajeev; Dill, David L (25 de abril de 1994). "Una teoría de autómatas temporizados" (PDF) . Theoretical Computer Science . 126 (2): 183– 235. doi : 10.1016/0304-3975(94)90010-8 .
- ↑ Behrmann, Gerd; David, Alexandre; Larsen, Kim G (28 de noviembre de 2006). "Un tutorial sobre Uppaal 4.0" (PDF) : 28.
{{cite journal}}: Para citar una revista se requiere|journal=( ayuda )
- Autómatas (computación)
- Verificación de modelos