Heurísticas para estimar a eficiência de diagramas de decisão binária com ordem reduzida?


8

Os diagramas de decisão binária ordenada reduzida (ROBDD) são uma estrutura de dados eficiente para representar funções booleanas de várias variáveis . Eu gostaria de ter uma intuição de quão eficientes eles são.f(x1,x2,...,xn)

Por exemplo, para compactação de dados, sabemos que dados com baixa entropia (alguns símbolos aparecem com mais frequência que outras, muitas repetições) podem ser compactados muito bem, enquanto dados completamente aleatórios não podem ser compactados.

Existe uma intuição análoga para estimar com que eficiência os ROBDDs podem representar uma dada fórmula booleana?

Por exemplo, ouvi dizer que a multiplicação de números de bits não pode ser representada com eficiência, o tamanho mínimo do ROBDD é exponencial em . Você conhece um argumento intuitivo que explica por que esse é o caso?nnn

Pergunta relacionada: intuição sobre a eficiência de BDDs que calculam números (múltiplos BDDs terminais, etc.)

Respostas:


7

Há uma relação entre a largura de um OBDD para uma função e a complexidade da comunicação de um protocolo de comunicação unidirecional para a melhor partição de variáveis ​​para (consulte E. Kushilevitz e N. Nisan. Complexidade da comunicação. Universidade de Cambridge Press, 1997 ).fff

Esta é uma ferramenta poderosa para provar OBDDs de tamanho exponencial para várias funções (juntamente com os co-autores, usamos este método para provar que -bipartiteness é difícil para OBDDs, veja aqui ). Basicamente, se existe um OBDD de largura no máximo que resolve , então . Eu acho que isso é mais intuitivo em termos de complexidade da comunicação do que em OBDD.w f κ b e s t ( f ) log wϵwfκbest(f)logw


3
Ah, então você divide as entradas de em duas partes . Então, Alice simplesmente segue as ramificações do BDD em sua entrada e comunica seu nó final a Bob, que conclui o cálculo com . Como a largura é , ela precisa no máximo bits para comunicar seu nó. Agradável! Isso está um pouco relacionado à resposta do "diagrama de blocos" de Radu, pois a existência de um diagrama de blocos certamente implica uma pequena complexidade de comunicação. (No entanto, o inverso "pequena complexidade de comunicação => pequena largura" não necessariamente segurar, não é?)f ( x 1 , , x k , y 1 , , y l ) x y w log wff(x1,,xk,y1,,yl)xywlogw
Heinrich Apfelmus

Pedido menor: você conhece uma versão do seu artigo vinculado que está disponível gratuitamente, ou seja, não está atrás de um paywall?
Heinrich Apfelmus


"(No entanto, o contrário" complexidade da comunicação pequena => largura pequena "não é necessariamente válido, é?)" De fato, ele não é necessariamente válido.
Sylvain Peyronnet

6

Uma maneira de calcular uma função booleana é ter uma cadeia de blocos de circuitos booleanos modo que leia apenas (das entradas) e esteja conectado apenas a e . Uma das saídas do último bloco é o valor de . O teorema M no fascículo 1 do TAoCP 4 diz que o BDD de deve ser grande se, para todos esses circuitos, você precisar de muitos links para trás (de a ).b 1 , , b n b k x k b k - 1 b k + 1 b n f f b k b k - 1f(x1,,xn)b1,,bnbkxkbk1bk+1bnffbkbk1

Em outras palavras, para que o BDD seja pequeno, deve haver uma maneira de resumir as informações em para . A largura do BDD corresponde ao mais difícil de compactar, intuitivamente. 1 k n kx1,,xk1knk

(Um exemplo dado no TAoCP é o seguinte: imagine um ciclo de comprimento e uma função booleana que diz "não há nó que tenha a mesma cor dos dois vizinhos", onde diz se o nó é preto ou branco. Em seguida, o 'resumo' depois de examinar os nós deve armazenar a cor , , e se você já notou uma violação. e de modo que você pode verificar se a propriedade é violada em uma vez que você também ver . você precisa def ( x 1 , , x n ) x k k 1 , 2 , , k 1 k - 1 k k - 1 k k k + 1 1 nnf(x1,,xn)xkk1,2,,k1k1kk1kkk+11para que você possa verificar se a propriedade foi violada em , quando chegar ao final.)n

Além disso, se você se preocupa com operações entre BDDs, em seguida, fazer uma operação binária entre e , onde é representado por um BDD que tem nós e é representado por um BDD que tem nós leva tempo, mas tende levar apenas tempo para funções que você encontra na prática. Não estou ciente de uma versão precisa do que acabei de dizer, mas estaria interessado se houver.g f m g n O ( m n ) O ( m + n )fgfmgnO(mn)O(m+n)


Eu gosto desse critério de ser composto pelos blocos . Obrigado pelo link para o fascículo de Knuth! b ifbi
Heinrich Apfelmus

2

Para calcular números, você deve considerar os MTBDDs (Multi Terminal BDDs), uma estrutura de dados usada para verificação de modelo (probabilístico). Veja, por exemplo, Representações de Funções Discretas, Sasao, Tsutomu; Fujita, Masahira (Eds.), Springer, 1996 , capítulo 4, de Clarke et al. é sobre MTBDDs e diagrama de decisão híbrido.


2

No TAoCP 4 fascículo 1 , Knuth também menciona que

  • f(x1,x2,,xn)nO(n2)fn+1x1+x2++xn{0,1,2,n}2n
  • g(x1,x2):=f(x1,x2,x2)

Isso mostra que funções como possuem BDDs eficientes, pois é uma especialização da função simétrica .f ( x 1 + x 2 + + x 107 )f(x1,x2,x3):=(2x1+5x2+3x37)f(x1+x2++x107)


Há também uma parte sobre funções 'desagradáveis'.
Radu GRIGore
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.