VinBR

Verificação 15/03/2012

Apr 3rd, 2012
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.20 KB | None | 0 0
  1.  
  2. # # # # # # # # # # # # #
  3. # Verificação Automatica #
  4. # Prof. Sérgio Campos #
  5. # notasdogarcia.blog.com #
  6. # # # # # # # # # # # # #
  7.  
  8. Model Checking
  9.  
  10. Model checking consiste em uma construção de um modelo finito, ou seja sem variáveis reais.
  11.  
  12. A checagem é aplicada por uma checagem exaustiva dos estados.
  13.  
  14. A brincadeira então é tentar encontrar algoritimos eficientes para lidar com isso.
  15.  
  16. There are two general aproachs:
  17. Tem duas aproximações:
  18. - Temporal Logic Model Checking.
  19. - Behavior Conformance Checking.
  20.  
  21. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  22.  
  23. Modelos de Computação:
  24.  
  25. Estados de
  26. // arvore infinita expressa em uma finita =D
  27.  
  28. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  29.  
  30. Logica de arvore Computacional
  31.  
  32. Existem os Path quantifier
  33.  
  34. A - para todos os caminhos
  35. E - existe um caminho
  36.  
  37. Vamos juntar isso com os F, e Gs que já estudamos na ultima aula.
  38.  
  39. Assim temos:
  40.  
  41. EF g: existe um caminho onde fatalmente se atinge g.
  42.  
  43. AF g: diz que é inevitavel atingir g por qualquer caminho.
  44.  
  45. EG g: Existe um caminho onde g é sempre verdade.
  46.  
  47. AG g: para todos os caminhos g é verdade =].
  48.  
  49. Note que cada propriedade dessa pode ser verdadeira ou não dependendo do estado que ela está.
  50.  
  51. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  52.  
  53. Exemplos:
  54.  
  55. EF (started & !ready) existe um estado onde não se está pronto mas já começou? isso leva a erro.
  56. AG (req => AF ack) se uma requisição ocorrer ela será recebida?
  57.  
  58. AG (AF device_enabled): enable está sempre presente
  59. AG (EF restart): restart pode ser alcançado de qualquer lugar.
  60.  
  61. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  62.  
  63. O problema do model checking é descobrir quais estados s stisfasem a formula f =]
  64.  
  65. find all states of M that s |= f
  66.  
  67. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  68.  
  69. Behavior Conformance Checking
  70.  
  71. O sistema e a especificação são modelados em grafos simples, E então compara-se os dois grafos para determinar se o o comportamento do sistema é de acordo com a especificação.
  72.  
  73. Diferentes noções de Conformance:
  74. - Language inclusion
  75. - Refinement orderings
  76. - Observcational equivalence.
  77.  
  78. Esses grafos podem ser muito simples ex: ( ) ------> ( P ) esse grafo indica que inevitavelmente P será chamado.
  79. Loop interno
  80.  
  81. ( R ) ---> ( ) ---------> ( ack ) denota que R implica em ack em algum momento.
  82. Loop interno
  83.  
  84. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  85.  
  86. Automato de Büchi:
  87.  
  88. é uma tupla de 5:
  89.  
  90. K um set de estados finitos.
  91. P0 € K é o estado inicial
  92. €€ é é um alfabeto finito.
  93.  
  94. Aceitação da linguagem:
  95.  
  96. Se o negócio chegar no estado de aceitação uma unica vez.
  97.  
  98. // Infinitamente frequente é o negocio de voce ranformar as repetições infinitas em loops em um grafo finito, ao invez de um grafo infinito.
  99.  
  100. // Esse tipo de verificação existe mas o professor usa é logica temporal ele não gosta mto desse modelo
  101.  
  102. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  103.  
  104. Vantagens do Model Checking:
  105.  
  106. Provador de teoremas é um metodo do tipo:
  107.  
  108. a=>b & a ==> b, então se voce estava em um estado que voce já tinha a e chega em um que a e b são verdade.
  109.  
  110. É interessante, porque tudo o que é possível provar é provavél por ele.
  111. Mas não é muito eficiente e é dificil de usar.
  112. // Ele chega a parar e perguntar pro usuário o que fazer
  113.  
  114. Model checking é totalmente automático e rápido.
  115. Voce consegue verificar corretude do seu sistema, mesmo antes de terminar a especificação. Assim isso é muito útiil.
  116.  
  117. Então voce consegue fazer correções durante a fase de projeto!
  118.  
  119. É muito bom em encontrar erros pouco comuns.
  120.  
  121. Desvantagens:
  122. Explosão do grafo: O grafo é gigante.
  123.  
  124. Outras tecnicas aleviam isso:
  125.  
  126. BDDs // o professor conhece o cara que fez isso
  127.  
  128. Abstração // retirar partes do sistema para torna-lo mais simples
  129. Raciocinio Composicional // Divida o problema em subproblemas menores e resolva.
  130. Symmetry
  131. Ordem parcial
  132. Minimização semantica
  133.  
  134. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  135.  
  136. Já se pode verificar ate 10¹²⁰ estados, então essencialmente é um número infinito de estados.
  137.  
  138. // Curiosamente: em um mesmo barramento pode-se colocar no máximo uns 4 processadores. Senão ia dar muito conflito.
  139.  
  140. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  141.  
  142. Seguiram-se exemplos de erros encontrados por model checking
  143.  
  144. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  145.  
  146. EMC CAESAR os primeiros
  147.  
  148. SMV o primeiro a usar BDD
  149.  
  150. Spin usa partial order reduction para evitar a explosão de estados.
  151.  
  152. Mur<phi> são baseado no Unity programming
  153.  
  154. E outros.
  155.  
  156. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  157.  
  158. // Fim da aula =]
Advertisement
Add Comment
Please, Sign In to add comment