SlideShare uma empresa Scribd logo
1 de 19
Baixar para ler offline
BDD
Diagramas de Decisão Binária [Bryant 1986]
Conceitos e aplicação em Verificação de Modelos
Apresentação
Marcos Paulo Maia dos Santos
◉ Ciência da Computação
◉ LINCE - Inteligência Artificial
◉ Bolsista de Iniciação Científica
Orientadora: Profa. Dra. Maria Viviane de Menezes
Universidade Federal
do Ceará 2
➔ Lógica Proposicional
➔ BDD
Introdução1
3
Lógica Proposicional
◉ Linguagem para expressão de sentenças declarativas (proposições)
◉ Proposições: Verdadeiro ou Falso
φ ::= p | ⊤ | ⊥ | (¬φ) | (φ∧φ) | (φ∨φ) | (φ->φ)
4
p q ¬q
p ∧
¬q
V V F F
F V F F
V F V V
F F V F
Exemplo: Russas é quente e não chove
p = Russas é quente
q = chove
◉ p ∧ ¬q
◉ Satisfazível? Válida?
Árvore de Decisão Binária
◉ Estrutura de dados para representação de uma fórmula
proposicional
◉ Representa cada valoração possível para as variáveis
p
F (0)
V (1)
p p ∨ q
p q p ∨ q
0 0 F (0)
0 1 V (1)
1 0 V (1)
1 1 V (1)
5
Árvore de Decisão Binária
◉ Pode ficar melhor
p ∨ q
6
BDD○ Compartilhamento de subgrafos isomorfos
○ Remoção de testes redundantes
Diagrama de Decisão Binária
BDD → Binary Decision Diagram
◉ Grafo direcionado acíclico
◉ Vértices
◉ Arestas
T ⊥ p p ∧ q
7
BDD Ordenado e Reduzido - ROBDD
Ordem x1
, x2
, x3
, x4
, x5
, x6
Ordem x1
, x3
, x5
, x2
, x4
, x6
(x1
∨ x2
) ∧ (x3
∨ x4
) ∧ (x5
∨ x6
)
8
Operações
◉ aplicar(operação, B1
, B2
)
○ Disjunção (∨), conjunção (∧), implicação(->), negação (¬)
9
∧ =
Operações
◉ aplicar(operação, B1
, B2
)
○ Disjunção (∨), conjunção (∧), implicação(->), negação (¬)
10
∧ =
Comparação
11
Representação de
funções booleanas
Compacta?
Teste para operações booleanas
Satisfatibilidade Validade ∧ ∨ ¬
Fórmulas
proposicionais
Frequentemente Difícil Difícil Fácil Fácil Fácil
Forma normal
disjuntiva
Às vezes Fácil Difícil Difícil Fácil Difícil
Forma normal
conjuntiva
Às vezes Difícil Fácil Fácil Difícil Difícil
Tabela-verdade Nunca Difícil Difícil Difícil Difícil Difícil
ROBDDs Frequentemente Fácil Fácil Médio Médio Fácil
Comparando eficiência de cinco representações de fórmulas booleanas [Huth & Ryan, 2004]
➔ Verificação de Modelos
➔ Representação Simbólica
Verificação Simbólica
de Modelos2
12
Verificação de Modelos
◉ Método formal de verificação de sistemas
◉ Usada para determinar se um modelo de software ou
hardware K satisfaz uma dada propriedade φ
13
[Pereira & Barros 2007]
Verificação de Modelos
◉ Modelo como uma estrutura de Kripke [Kripke, 1963]
14
Menu
Pontos,
Ganhou
Jogando
Inicia
Ganha
Perde
Continua
A
B
C
◉ Propriedade em lógica temporal
○ EF (Ganhou)
○ (É possível ganhar o jogo?)
Verificação Simbólica de Modelos
◉ Estados individuais não estão representados, e sim conjuntos
de estados (simbolicamente)
◉ BDD como estrutura de dados básica
○ Estado: conjunção das proposições
○ Conjunto de estados: disjunção dos estados
○ Transição: conjunção dos dois estados
○ Conjunto de transições: disjunção das transições
15
C = Pontos ∧ Ganhou
{A,C} = (Pontos ∧ Ganhou) ∨ Menu
Verificação Simbólica de Modelos
C = Pontos ∧ Ganhou
{A,C} = (Pontos ∧ Ganhou) ∨ Menu
T (B, A) = Jogando ∧ Menu
T = (Jogando ∧ Menu)
∨ (Menu ∧ Jogando)
∨ (Pontos ∧ Ganhou ∧ Menu)
∨ (Jogando ∧ Pontos ∧ Ganhou)
16
Menu
Pontos,
Ganhou
JogandoInicia
Ganha
Perde
Continua
A
B
C
Considerações Finais
◉ BDDs são uma forma compacta e eficiente para representação de
fórmulas proposicionais e permitem representar conjunto de
estados com até 1020
estados [Burch et al. 1992].
17
◉ A verificação de modelos pode ser usada para resolver problemas
de Planejamento em Inteligência Artificial
○ MBP (Model Based Planner) [Cimatti et al. 2003]
○ Planejador para Metas de Alcançabilidade Estendidas [Pereira 2007]
○ Mudanças em Problemas de Planejamento sem Solução [Menezes
2014]
Dúvidas ?
Contato em
◉ marcosp@alu.ufc.br
Obrigado!
18
Referências
Bryant, R. E. (1986). Graph-based algorithms for boolean function
manipulation. IEEE Trans. Comput., 35(8):677–691
Burch, J. R., Clarke, E. M., McMillan, K. L., Dill, D. L., and
Hwang, L.-J. (1992). Symbolic model checking: 1020
states and
beyond. Information and computation.
Cimatti, A.; Pistore, M.; Roveri, M.; and Traverso, P. (2003). Weak,
strong, and strong cyclic planning via symbolic model checking.
Artificial Intelligence Journal 147(12):35–84.
Huth, M. & Ryan, M. (2004). Logic in Computer Science:
Modelling and reasoning about systems. Cambridge Univ Pr.
Kripke, S. (1963). Semantical considerations on modal logic. Acta
Philosophica Fennica, 16:83–94.
19
Pereira, S. L. & Barros, L. N. (2007). A logic-based agent that plans
for extended reachability goals. In Journal of Autonomous Agents
and Multi-Agent Systems, Special issue on Computational
Logic-based Agents, Canada.
Pereira, S. L. (2007). Planejamento sob incerteza para metas de
alcançabilidade estendidas. Tese (Doutorado em Ciência da
Computação) - IME-USP.
Menezes, M. V. (2014). Mudanças em Problemas de Planejamento
sem Solução. Tese (Doutorado em Ciência da Computação) -
IME-USP

Mais conteúdo relacionado

Mais de Marcos Paulo Maia dos Santos

Linguagens não recursivamente enumeráveis e Hierarquia de Chomsky
Linguagens não recursivamente enumeráveis e Hierarquia de ChomskyLinguagens não recursivamente enumeráveis e Hierarquia de Chomsky
Linguagens não recursivamente enumeráveis e Hierarquia de ChomskyMarcos Paulo Maia dos Santos
 
Regressão simbólica - Resolvendo problemas de planejamento não-determinísticos
Regressão simbólica - Resolvendo problemas de planejamento não-determinísticosRegressão simbólica - Resolvendo problemas de planejamento não-determinísticos
Regressão simbólica - Resolvendo problemas de planejamento não-determinísticosMarcos Paulo Maia dos Santos
 
Problema da Árvore Geradora de Rotulação Mínima (PAGRM)
Problema da Árvore Geradora de Rotulação Mínima (PAGRM)Problema da Árvore Geradora de Rotulação Mínima (PAGRM)
Problema da Árvore Geradora de Rotulação Mínima (PAGRM)Marcos Paulo Maia dos Santos
 
Applied plotting, charting & data representation in Python (pt. 2)
Applied plotting, charting & data representation in Python (pt. 2)Applied plotting, charting & data representation in Python (pt. 2)
Applied plotting, charting & data representation in Python (pt. 2)Marcos Paulo Maia dos Santos
 

Mais de Marcos Paulo Maia dos Santos (10)

Linguagens não recursivamente enumeráveis e Hierarquia de Chomsky
Linguagens não recursivamente enumeráveis e Hierarquia de ChomskyLinguagens não recursivamente enumeráveis e Hierarquia de Chomsky
Linguagens não recursivamente enumeráveis e Hierarquia de Chomsky
 
Regressão simbólica - Resolvendo problemas de planejamento não-determinísticos
Regressão simbólica - Resolvendo problemas de planejamento não-determinísticosRegressão simbólica - Resolvendo problemas de planejamento não-determinísticos
Regressão simbólica - Resolvendo problemas de planejamento não-determinísticos
 
Problema da Árvore Geradora de Rotulação Mínima (PAGRM)
Problema da Árvore Geradora de Rotulação Mínima (PAGRM)Problema da Árvore Geradora de Rotulação Mínima (PAGRM)
Problema da Árvore Geradora de Rotulação Mínima (PAGRM)
 
Introdução a ciência de dados com Python
Introdução a ciência de dados com PythonIntrodução a ciência de dados com Python
Introdução a ciência de dados com Python
 
Applied plotting, charting & data representation in Python (pt. 2)
Applied plotting, charting & data representation in Python (pt. 2)Applied plotting, charting & data representation in Python (pt. 2)
Applied plotting, charting & data representation in Python (pt. 2)
 
Resolução de problemas por meio de busca
Resolução de problemas por meio de buscaResolução de problemas por meio de busca
Resolução de problemas por meio de busca
 
Planejamento em Inteligência Artificial
Planejamento em Inteligência ArtificialPlanejamento em Inteligência Artificial
Planejamento em Inteligência Artificial
 
Planejamento como verificação de modelos
Planejamento como verificação de modelosPlanejamento como verificação de modelos
Planejamento como verificação de modelos
 
Linguagens de programação - Go
Linguagens de programação - GoLinguagens de programação - Go
Linguagens de programação - Go
 
Planejamento em Inteligência Artificial
Planejamento em Inteligência ArtificialPlanejamento em Inteligência Artificial
Planejamento em Inteligência Artificial
 

Diagramas de decisão binária

  • 1. BDD Diagramas de Decisão Binária [Bryant 1986] Conceitos e aplicação em Verificação de Modelos
  • 2. Apresentação Marcos Paulo Maia dos Santos ◉ Ciência da Computação ◉ LINCE - Inteligência Artificial ◉ Bolsista de Iniciação Científica Orientadora: Profa. Dra. Maria Viviane de Menezes Universidade Federal do Ceará 2
  • 3. ➔ Lógica Proposicional ➔ BDD Introdução1 3
  • 4. Lógica Proposicional ◉ Linguagem para expressão de sentenças declarativas (proposições) ◉ Proposições: Verdadeiro ou Falso φ ::= p | ⊤ | ⊥ | (¬φ) | (φ∧φ) | (φ∨φ) | (φ->φ) 4 p q ¬q p ∧ ¬q V V F F F V F F V F V V F F V F Exemplo: Russas é quente e não chove p = Russas é quente q = chove ◉ p ∧ ¬q ◉ Satisfazível? Válida?
  • 5. Árvore de Decisão Binária ◉ Estrutura de dados para representação de uma fórmula proposicional ◉ Representa cada valoração possível para as variáveis p F (0) V (1) p p ∨ q p q p ∨ q 0 0 F (0) 0 1 V (1) 1 0 V (1) 1 1 V (1) 5
  • 6. Árvore de Decisão Binária ◉ Pode ficar melhor p ∨ q 6 BDD○ Compartilhamento de subgrafos isomorfos ○ Remoção de testes redundantes
  • 7. Diagrama de Decisão Binária BDD → Binary Decision Diagram ◉ Grafo direcionado acíclico ◉ Vértices ◉ Arestas T ⊥ p p ∧ q 7
  • 8. BDD Ordenado e Reduzido - ROBDD Ordem x1 , x2 , x3 , x4 , x5 , x6 Ordem x1 , x3 , x5 , x2 , x4 , x6 (x1 ∨ x2 ) ∧ (x3 ∨ x4 ) ∧ (x5 ∨ x6 ) 8
  • 9. Operações ◉ aplicar(operação, B1 , B2 ) ○ Disjunção (∨), conjunção (∧), implicação(->), negação (¬) 9 ∧ =
  • 10. Operações ◉ aplicar(operação, B1 , B2 ) ○ Disjunção (∨), conjunção (∧), implicação(->), negação (¬) 10 ∧ =
  • 11. Comparação 11 Representação de funções booleanas Compacta? Teste para operações booleanas Satisfatibilidade Validade ∧ ∨ ¬ Fórmulas proposicionais Frequentemente Difícil Difícil Fácil Fácil Fácil Forma normal disjuntiva Às vezes Fácil Difícil Difícil Fácil Difícil Forma normal conjuntiva Às vezes Difícil Fácil Fácil Difícil Difícil Tabela-verdade Nunca Difícil Difícil Difícil Difícil Difícil ROBDDs Frequentemente Fácil Fácil Médio Médio Fácil Comparando eficiência de cinco representações de fórmulas booleanas [Huth & Ryan, 2004]
  • 12. ➔ Verificação de Modelos ➔ Representação Simbólica Verificação Simbólica de Modelos2 12
  • 13. Verificação de Modelos ◉ Método formal de verificação de sistemas ◉ Usada para determinar se um modelo de software ou hardware K satisfaz uma dada propriedade φ 13 [Pereira & Barros 2007]
  • 14. Verificação de Modelos ◉ Modelo como uma estrutura de Kripke [Kripke, 1963] 14 Menu Pontos, Ganhou Jogando Inicia Ganha Perde Continua A B C ◉ Propriedade em lógica temporal ○ EF (Ganhou) ○ (É possível ganhar o jogo?)
  • 15. Verificação Simbólica de Modelos ◉ Estados individuais não estão representados, e sim conjuntos de estados (simbolicamente) ◉ BDD como estrutura de dados básica ○ Estado: conjunção das proposições ○ Conjunto de estados: disjunção dos estados ○ Transição: conjunção dos dois estados ○ Conjunto de transições: disjunção das transições 15 C = Pontos ∧ Ganhou {A,C} = (Pontos ∧ Ganhou) ∨ Menu
  • 16. Verificação Simbólica de Modelos C = Pontos ∧ Ganhou {A,C} = (Pontos ∧ Ganhou) ∨ Menu T (B, A) = Jogando ∧ Menu T = (Jogando ∧ Menu) ∨ (Menu ∧ Jogando) ∨ (Pontos ∧ Ganhou ∧ Menu) ∨ (Jogando ∧ Pontos ∧ Ganhou) 16 Menu Pontos, Ganhou JogandoInicia Ganha Perde Continua A B C
  • 17. Considerações Finais ◉ BDDs são uma forma compacta e eficiente para representação de fórmulas proposicionais e permitem representar conjunto de estados com até 1020 estados [Burch et al. 1992]. 17 ◉ A verificação de modelos pode ser usada para resolver problemas de Planejamento em Inteligência Artificial ○ MBP (Model Based Planner) [Cimatti et al. 2003] ○ Planejador para Metas de Alcançabilidade Estendidas [Pereira 2007] ○ Mudanças em Problemas de Planejamento sem Solução [Menezes 2014]
  • 18. Dúvidas ? Contato em ◉ marcosp@alu.ufc.br Obrigado! 18
  • 19. Referências Bryant, R. E. (1986). Graph-based algorithms for boolean function manipulation. IEEE Trans. Comput., 35(8):677–691 Burch, J. R., Clarke, E. M., McMillan, K. L., Dill, D. L., and Hwang, L.-J. (1992). Symbolic model checking: 1020 states and beyond. Information and computation. Cimatti, A.; Pistore, M.; Roveri, M.; and Traverso, P. (2003). Weak, strong, and strong cyclic planning via symbolic model checking. Artificial Intelligence Journal 147(12):35–84. Huth, M. & Ryan, M. (2004). Logic in Computer Science: Modelling and reasoning about systems. Cambridge Univ Pr. Kripke, S. (1963). Semantical considerations on modal logic. Acta Philosophica Fennica, 16:83–94. 19 Pereira, S. L. & Barros, L. N. (2007). A logic-based agent that plans for extended reachability goals. In Journal of Autonomous Agents and Multi-Agent Systems, Special issue on Computational Logic-based Agents, Canada. Pereira, S. L. (2007). Planejamento sob incerteza para metas de alcançabilidade estendidas. Tese (Doutorado em Ciência da Computação) - IME-USP. Menezes, M. V. (2014). Mudanças em Problemas de Planejamento sem Solução. Tese (Doutorado em Ciência da Computação) - IME-USP