• No results found

anterior, separamos el algoritmo en dos partes: B´usqueda de estados esenciales y creaci´on de la matriz de transiciones esencial. Estas dos etapas se detallan respectivamente en los algoritmos 5.2.1 y 5.2.2. Lamatriz de clases EC se representa en un BDD utilizando la misma codificaci´on de estados de la matriz transiciones, presentada en la secci´on 4.1.1. Para efectuar el c´alculo, el algoritmo necesita el BDD que representa la matriz de tran- siciones del SNP donde las probabilidades han sido abstra´ıdas. Este BDD se obtiene de la siguiente manera: seaT la matriz de transiciones, entonces T01=threshold(T, >,0) es la matriz representando las transiciones.

Algoritmo 5.2.1findEssential(S?, T 01) 1: C =Identity(⃗x, ⃗y) 2: T? 01=ThereExists(⃗z, T01∧S?) 3: fin :=false 4: while (fin =false)do 5: A:=BoolMatrixMultiply(T? 01, C) 6: bien:=ClassCheck(A)

7: C′ := (bien∧A)(Not(bien)∧C)

8: if (C′ =C) then 9: fin :=true 10: end if 11: C :=C′ 12: end while 13: return C

El algoritmo findEssential comienza asignando a C (la matriz de clases) la iden- tidad|S| × |S|. En la l´ınea 2, (T01∧S?) resulta en la matriz T01 pero sin las filas de los estados fuera de S?, es decir, se eliminan sus transiciones salientes. Sobre ese resultado se abstrae el no determinismo, unificando todas las transiciones salientes de cada estado en una sola fila, dejando en T?

01 una matriz con una sola fila por estado. En la l´ınea 5 se efect´ua la multiplicaci´on booleana entre T?

01 y C dando como resultado la matriz A tal que para todo s, s′ ∈S?, A(s, s′) =∨s′′S

(

T01?(s, s′′)∧C(s′′, s′)). Esta matriz es un paso intermedio y se utiliza para averiguar para cada estado, si todas sus transiciones llevan a estados de la misma clase. Esto es indicado cuando en la fila correspondiente a un estado hay exactamente un solo 1. En la l´ınea 6, a partir deAse crea un conjunto de estados bien que contiene las filas de A que posean un ´unico 1. Finalmente, en la l´ınea 7 utilizamos bien como una mascara para generar nuestra C′ con las filas bien de A y el resto, tal cual como estaban enC. El algoritmo termina cuando se haya alcanzado el punto fijo deC, es decir cuando C′ =C.

Haciendo uso de la informaci´on enC, el algoritmo makeEssentialgenera la matriz de transiciones esencialTE a partir matriz de transiciones original T.

CAP´ITULO 5. REDUCCI ´ON A ESTADOS ESENCIALES 45 Algoritmo 5.2.2makeEssential(T, C) 1: esenciales:=ThereExists(⃗y, C) 2: A := (T SwapVars(⃗x, ⃗y, esenciales)) 3: TE :=MatrixMultiply(A, C) 4: return TE

En la l´ınea 1, con ThereExists(⃗y, C) se abstraen de C todas las variables de las filas, dejando enesenciales un vector sobre ⃗x ´unicamente con los estados esenciales. En la fila 2, con SwapVars(⃗x, ⃗y, esenciales) nuestro esenciales pasa a estar en t´erminos de las variables ⃗y. Por lo que luego, al aplicar la disyunci´on con T, deja en A la matriz

T sin las filas correspondientes a estados no esenciales, i.e. sin transiciones salientes. Finalmente s´olo queda aplicar la sumatoria de la ecuaci´on 5.1. En la l´ınea 3 se efect´ua la multiplicaci´on de la matrizApor laC, dejando como resultado enTE, la matriz esencial completa.

Como ocurre al eliminar los estados no alcanzables, quitar los estados no esenciales disminuye la regularidad del MTBDD que representa el SNP. En general, esto produce un incremento en la cantidad de nodos, aumentando tanto el uso de memoria, como el costo de las operaciones. Afortunadamente, la cantidad de iteraciones necesarias durante el c´alculo num´erico se ve tambi´en reducida. Esto, sumado a la demora que introduce nuestro algoritmo de reducci´on, son las cuestiones que definen la mejora introducida en el model checker.

Se espera que nuestro m´etodo tenga un buen desempe˜no al aplicarse durante la verificaci´on de modelos con mucho costo num´erico. Adem´as, ya que nuestro m´etodo ataca a cadenas de estados, cuya transici´on de uno a otro se efect´ua con probabilidad 1, se espera que se produzcan grandes reducciones en los casos: que se modele tiempo (transiciones que representen ticks) o, en donde el no determinismo produzca islas de estados muy interconectados ente s´ı, pero con pocas transiciones salientes.

Notar que al haber eliminado estados durante la reducci´on, se pudieron haber elimi- nado estados con probabilidad mayor a cero, es m´as, si el estado inicial no es esencial, tambi´en fue eliminado. Afortunadamente, conocemos las probabilidades de los estados eliminados: la misma probabilidad que su estado esencial dominador. Por lo que, utili- zando la misma matriz generada en el proceso iterativo, podemos reconstruir el vector de soluci´on completo. A nivel implementaci´on, cuando se efect´ua una verificaci´on uti- lizando el m´etodo h´ıbrido, recuperar el vector de soluciones completo implica un gran costo. Esto es, al menos con el m´etodo que utilizamos para efectuar esta recuperaci´on. Por esto se decidi´o recuperar s´olo la probabilidad del estado esencial correspondiente al estado inicial del modelo, lo cual es relativamente instant´aneo. La misma idea puede aplicarse al caso puro, pero la mejora ser´ıa ´ınfima.

Casos de estudio

A continuaci´on analizamos el desempe˜no de la implementaci´on de la herramienta. A partir de los resultados intentamos identificar con mayor precisi´on los casos donde su uso es beneficioso (tanto en uso de memoria como en costo computacional), contrastando la informaci´on obtenida del model checking con y sin la reducci´on de estados. Los c´alculos fueron hechos sobe un procesador AMD Opteron(tm) Dual-Core 2010 Mhz. (4020.67 BogoMIPS) con 32 GB de RAM. La CPU est´a dedicada 100 % al proceso debido a que la PC cuenta con 4 procesadores.

Related documents