이항 결정도

Binary decision diagram

컴퓨터 과학에서 BDD(binary decision diagram) 또는 분기 프로그램부울 함수를 나타내기 위해 사용되는 데이터 구조입니다.보다 추상적인 수준에서 BDD는 집합 또는 관계압축한 표현으로 간주할 수 있습니다.다른 압축 표현과 달리, 연산은 압축 표현에 대해 직접, 즉 압축 해제 없이 수행됩니다.

유사한 데이터 구조로는 부정 정규형(NNF), 제갈킨 다항식명제 지향 비순환 그래프(PDAG)가 있다.

정의.

부울 함수는 루트의 유도 비순환 그래프로 나타낼 수 있습니다.이 그래프는 여러 개의 (결정) 노드와 두 개의 터미널 노드로 구성됩니다.2개의 터미널 노드에는 0(FALSE)과 1(TRUE)의 라벨이 붙어 있습니다.각 () u {displaystyleu}에는 부울 i {\} 로 라벨이 부착되어 있으며 하위 노드와 상위 노드라는2개의 하위 노드가 있습니다.u {\u}에서 하위(또는 높음) 자에 대한 엣지는 값 FALSE(또는 TRUE)를 xi{\에 할당한 것을 나타냅니다.루트로부터의 모든 경로에 다른 변수가 같은 순서로 표시되는 경우는, 이러한 BDD를 「순서」라고 부릅니다.BDD의 그래프에 다음의 2개의 룰이 적용되고 있는 경우, BDD는 「축소」라고 불립니다.

  • 모든 동형 서브그래프를 병합합니다.
  • 두 자녀가 동형인 노드를 모두 제거합니다.

일반적인 용법에서 BDD라는 용어는 거의 항상 순서부여된 이진 의사결정도(문헌에서 순서부여 및 감소 측면을 강조해야 할 때 사용되는 ROBDD)를 나타냅니다.ROBDD의 장점은 특정 함수 및 가변 [1]순서에 대해 표준(고유)이라는 것입니다.이 속성은 기능적 동등성 검사 및 기능적 기술 매핑과 같은 기타 작업에 유용합니다.

루트 노드에서1 터미널까지의 경로는 표현된 부울 함수가 참인 (일부적인) 변수 할당을 나타냅니다.경로가 노드에서 하위(또는 상위) 하위(또는 하위)로 내려가면 해당 노드의 변수가 0(각각 1)에 할당됩니다.

아래 왼쪽 그림은 함수 1, 2, x){ f를 나타내는 이진수 결정 트리(축소 규칙은 적용되지 않음)와 진실 테이블을 보여 줍니다.왼쪽 트리에서 함수의 값은 단말기로의 경로를 따라 특정 변수 할당에 대해 확인할 수 있습니다.아래 그림에서 점선은 낮은 아이의 가장자리를 나타내며 실선은 높은 아이의 가장자리를 나타냅니다.따라서 f( , , f ( ,)}를 찾으려면 x1부터 시작하여 점선을 따라 x2까지 이동한 다음 (x1에 0이 할당되어 있으므로)2개의 실선으로 이동합니다(x2와 x3에 각각1이 할당되어 있기 때문에).이것에 의해, 단자 1에 연결됩니다.f ( , f ( ,) 의 값입니다.

왼쪽 그림의 2진수 결정 트리는 2개의 축소 규칙에 따라 최대 축소함으로써 2진수 결정 다이어그램으로 변환할 수 있습니다.결과 BDD는 오른쪽 그림에 나타나 있습니다.

f ( ,2, x) ( x 2 3) ( 2 x 2) ( ) ( x 3) { f},3}) = (\의 이진법 결정 트리 및 진실 오퍼레이터.
함수 f의 BDD

이 부울 함수를 쓰기 위한 다른 표기법은 1 x x 3 + x + {\ { \ } _ { _ { { \ } + { 1 } 입니다.3

보완된 가장자리

Diagram of a binary decision diagram represented using complemented edges.
보완된 모서리를 사용하여 표현되는 이항 결정 다이어그램의 다이어그램입니다.

보완된 모서리를 사용하여 [2][3]ROBDD를 더욱 콤팩트하게 표현할 수 있습니다.보완된 모서리는 낮은 모서리에 보완된 것인지 여부에 대한 주석을 달아 형성됩니다.에지가 보완되어 있는 경우는, 에지가 가리키는 노드(루트를 가지는 BDD에 의해서 나타나는 부울 함수)에 대응하는 부울 함수의 부정을 참조합니다.결과적인 BDD 표현이 정규 형식이 되도록 하기 위해 높은 에지는 보완되지 않습니다.이 그림에서 BDD에는 리프 노드가 1개 있습니다.이러한 이유는 다음과 같습니다.

BDD를 나타낼 때 보완 에지를 사용하는 두 가지 장점은 다음과 같습니다.

  • BDD의 부정 계산에는 일정한 시간이 걸린다
  • 공간 사용량(즉, 필요한 메모리) 감소

이 표현에서 BDD는 BDD의 루트를 가리키는 (보완될 가능성이 있는) 엣지입니다.이는 BDD의 루트 노드인 보완 에지를 사용하지 않고 표현에서 BDD를 참조하는 것과는 대조적입니다.이 표현에서 참조가 엣지여야 하는 이유는 각 부울 함수에 대해 함수와 부정이 BDD의 루트에 대한 엣지와 동일한 BDD의 루트에 대한 보완 엣지로 표현되기 때문입니다.이것이 부정하는 데 일정한 시간이 걸리는 이유이다.또한 단일 리프 노드가 충분한 이유에 대해서도 설명합니다.FALSE는 리프 노드를 가리키는 보완된 에지로 표현되며 TRUE는 리프 노드를 가리키는 일반 에지(즉, 보완되지 않음)로 표현됩니다.

예를 들어, 부울 함수가 보완된 에지를 사용하여 표현되는 BDD로 표현된다고 가정합니다.변수에 대한 (부울) 값의 특정 할당에 대한 부울 함수의 값을 찾으려면 BDD의 루트를 가리키는 참조 에지에서 시작하여 주어진 변수 값에 의해 정의된 경로를 따릅니다(노드에 FALSE라는 레이블이 있는 변수가 있으면 낮은 에지를 따르고 변수 th에 해당하는 경우 높은 에지를 따릅니다).라벨이 TRUE인 경우)로 설정합니다.이 경로를 따라 이동하는 동안 횡단한 보완 에지 수를 계산합니다.리프 노드에 도달했을 때 보완된 홀수의 에지를 넘었을 경우 지정된 변수 할당에 대한 부울 함수의 값은 FALSE이고, 그렇지 않을 경우(짝수의 보완된 에지를 넘었을 경우), 지정된 변수 할당에 대한 부울 함수의 값은 TRUE입니다.

이 표현에서의 BDD의 예시는 오른쪽에 나타나 있으며, 위의 그림과 같은 부울식을 나타내고 있습니다., ( x 1 x 2 3 ) ( 2 3)_ \ \ 낮은 가장자리는 점선 처리되고 높은 가장자리는 솔리드 처리되며 보완된 가장자리는 "-1" 라벨로 표시됩니다.라벨이 @ 기호로 시작하는 노드는 BDD에 대한 참조를 나타냅니다. 즉, 기준 에지는 이 노드에서 시작하는 에지입니다.

역사

데이터 구조가 생성된 기본 개념은 Shannon 확장입니다.스위칭 함수는 하나의 변수(if-then-else 정규형식 참조)를 할당함으로써 2개의 서브함수(코팩터)로 분할된다.이러한 하위 함수가 하위 트리로 간주될 경우, 이진수 결정 트리로 나타낼 수 있습니다.이진 결정 다이어그램(BDD)은 C. Y.[4] Lee에 의해 도입되었고 쉘든 B에 의해 추가로 연구되고 알려졌다.에이커스와[5] 레이먼드 T.Boute.[6] 이들 저자와는 별도로 속도 독립 [7]회로 분석을 위한 CAD에서 "캐노니컬 브래킷 형태"라는 이름의 BDD가 실현되었습니다.데이터 구조를 기반으로 한 효율적인 알고리즘의 모든 가능성을 Carnegie Mellon 대학Randal Bryant가 조사했습니다. 그의 주요 확장 기능은 고정 변수 순서(표준 표현용)와 공유 하위 그래프(압축용)를 사용하는 것이었습니다.이 두 가지 개념을 적용하면 집합과 [8][9]관계를 표현하기 위한 효율적인 데이터 구조와 알고리즘이 생성됩니다.공유를 여러 BDD로 확장함으로써, 즉 하나의 서브 그래프가 여러 BDD에 의해 사용됨으로써, 데이터 구조의 공유 감소 순서 바이너리 결정도[2]정의한다.현재 BDD의 개념은 일반적으로 특정 데이터 구조를 지칭하는 데 사용됩니다.

Donald Knuth는 비디오 강의인 Fun With Binary Decision Diagram(BDDs)[10]에서 BDD를 "지난 25년간 나온 가장 기본적인 데이터 구조 중 하나"라고 칭하며 Bryant의 1986년 논문은 한동안 컴퓨터 과학에서 가장 주목받는 논문 중 하나였다고 언급했습니다.

Adnan Darwiche와 그의 협력자들은 BDD가 각각 다른 요구사항 조합에 의해 유도되는 부울 함수의 몇 가지 정상적인 형태 중 하나라는 것을 보여주었다.Darwiche에 의해 식별된 또 다른 중요한 정상 형태는 분해 가능한 부정 정상형 또는 DNNF이다.

적용들

BDD는 CAD 소프트웨어에서 회로 합성(로직 합성) 및 형식 검증에 광범위하게 사용됩니다.BDD에는 폴트 트리 분석, 베이지안 추론, 제품 구성, 개인 정보 [11][12][citation needed]검색 등 잘 알려지지 않은 응용 프로그램이 몇 가지 있습니다.

각 노드를 2 대 1의 멀티플렉서로 대체함으로써 임의의 BDD를 하드웨어에 직접 구현할 수 있습니다.각 멀티플렉서는 FPGA의 4-LUT에 의해 직접 구현할 수 있습니다.논리 게이트의 임의의 네트워크에서 BDD로[citation needed] 변환하는 것은 그리 간단하지 않습니다(and-inverter 그래프와는 다릅니다).

가변 순서 지정

BDD의 크기는 표시되는 함수와 변수의 선택된 순서에 따라 결정됩니다.부울 함수 f ( 1 , ... ,n) { f ( x { , \, x { } )이 .변수의 순서에 따라 노드 수가 최대로 선형(n 단위), 최악의 경우 지수(예: 리플 캐리 가산기)인 그래프를 얻을 수 있습니다.부울 f ( , ) x + x + + n - 2. { f ( x { , \, _ 2 n } = x { 1 _ { 2 } + x n .} 1 < 3 < - 1 < > < 4 > < 2 x _ { x } <\ < x _ { 2 n - 1 } <x _ { } <\ <x { 2 n} } 를 사용하면, BDD 2 + 1합니다 1< < < 4 n - < n - 1 < x 2 < _ { x _ { 3 } < x { <\ < _ { - 1 } < } <x_{ 4 >를 사용하면, BDD는 + n노드로 됩니다.

함수 δ(x1, ..., x8)의12 BDD = xx3456 + xx78 + xx + xx + xx 의 잘못된 변수 순서를 사용합니다.
양호한 변수 순서 지정

실제로 이 데이터 구조를 적용할 때는 변수 순서에 주의를 기울이는 것이 매우 중요합니다.최적의 변수 순서를 찾는 문제는 NP-hard입니다.[13]상수 c > 1에 대해 변수 순서를 계산하는 것은 NP조차 어렵습니다.그 결과,[14] OBDD의 사이즈는 최적보다 최대 c배 커집니다.그러나 이 [15]문제를 해결하기 위한 효율적인 휴리스틱스가 존재한다.

그래프 크기가 변수 순서와 관계없이 항상 지수 함수인 함수가 있습니다.이것은 예를 들어 곱셈 [1]함수의 경우 유지된다.실제로 곱의 중간비트를 계산하는 함수에는 - 4/261-4의 정점보다 OBDD가 없습니다.(곱셈 함수에 다항식 크기의 OBDD가 있는 경우 정수 인수분해 P/poly로 나타나며 이는 사실이 아닙니다.)[17]

연구자들은 BMD(이진 모멘트 다이어그램), ZDD(제로 억제 결정 다이어그램), FDD(자유 이진 결정 다이어그램), PDD(패리티 결정 다이어그램), MTBDD(복수 터미널 BDD)와 같은 많은 관련 그래프에 자리를 내주는 BDD 데이터 구조에 대한 개선을 제안했다.

BDD에서의 논리 연산

BDD의 많은 논리 연산은 다항식 시간 그래프 조작 [18]: 20 알고리즘에 의해 구현될 수 있습니다.

단, 예를 들어 일련의 BDD의 결합 또는 분리를 형성하는 등 이러한 조작을 여러 번 반복하면 최악의 경우 BDD가 기하급수적으로 커질 수 있습니다.이것은, 2개의 BDD에 대해서 상기의 조작 중 어느 것이든, BDD의 사이즈의 곱에 비례하는 사이즈의 BDD가 되는 경우가 있기 때문에, 복수의 BDD에 대해서, 그 사이즈는 조작의 수에 있어서 기하급수적인 경우가 있습니다.변수 순서를 다시 검토할 필요가 있습니다.일부 BDD 세트에 대해 적절한 순서가 될 수 있는 것은 조작 결과에 대한 적절한 순서가 아닐 수 있습니다.또, 부울 함수의 BDD를 구축하면, NP완전 부울 만족도 문제와 co-NP완전 타우톨로지 문제가 해결되기 때문에, BDD의 구축은, BDD가 작은 경우에도 부울식의 사이즈의 기하급수적인 시간이 걸릴 수 있다.

감소된 BDD의 여러 변수에 대한 실존적 추상화 계산은 [19]NP-완료입니다.

BDD의 경우 Boolean 공식의 만족스러운 할당 수를 카운트하는 모델 카운팅을 다항식 시간으로 수행할 수 있습니다.일반적인 명제 공식의 경우 문제는 p-complete이며 가장 잘 알려진 알고리즘은 최악의 경우 지수 시간이 필요합니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ a b 부울 함수 조작을 위한 그래프 기반 알고리즘, 랜달 E.브라이언트, 1986
  2. ^ a b 칼 S. 브레이스, 리처드 L.루델과 랜달 E.브라이언트."BDD 패키지의 효율적인 구현"「제27회 ACM/IEEE 설계 자동화 회의(DAC 1990)의 속행」(40~45페이지).IEEE Computer Society Press, 1990.
  3. ^ Fabio Somenzi, "이진 결정도", 계산 시스템 설계, Vol.173, 나토 과학 시리즈 F: 컴퓨터와 시스템 과학, 페이지 303-366, IOS Press, 1999
  4. ^ C. Y. Lee. "이진 결정 프로그램에 의한 스위칭 회로 표현"Bell System Technical Journal, 38:985–999, 1959.
  5. ^ 셸던 B. Akers, Jr. Binary Decision Diagram, 컴퓨터의 IEEE 트랜잭션, C-27(6):509-516, 1978년 6월
  6. ^ 레이먼드 T.Boute, "프로그래밍 가능한 컨트롤러로서의 바이너리 의사결정 머신"EUROMICRO 뉴스레터, 제1권 (2): 1976년 1월 16일 ~ 22일
  7. ^ Yu. V. Mamrukov, 비주기 회로 및 비동기 프로세스 분석박사 학위 논문레닌그라드 전기 기술 연구소, 1984, 219 p.m.
  8. ^ 랜달 E브라이언트."부울 함수 조작을 위한 그래프 기반 알고리즘"컴퓨터의 IEEE 트랜잭션, C-35(8):677~691, 1986.
  9. ^ 랜달 E브라이언트, "질서 있는 이진 의사결정 다이어그램에 의한 기호 부울 조작", ACM Computing Surveies, Vol. 24, No. 3(1992년 9월), 페이지 293–318.
  10. ^ "Stanford Center for Professional Development". scpd.stanford.edu. Archived from the original on 2014-06-04. Retrieved 2018-04-23.
  11. ^ R. M. 젠슨"CLAB: C++ 라이브러리.백트랙이 필요 없는 인터랙티브한 제품 구성을 고속화합니다."제약 프로그래밍의 원칙과 실천에 관한 제10차 국제회의, 2004년.
  12. ^ H. L. 립마"데이터 의존 연산을 사용하는 최초의 CPIR 프로토콜"ICISC 2009.
  13. ^ 베이트 벌리그, 잉고 웨그너OBDD의 변수 순서 개선은 NP-Complete, 컴퓨터의 IEEE 트랜잭션, 45(9):993-1002, 1996년 9월
  14. ^ 데틀프 시링."OBDD 최소화의 비근접성"정보 및 계산 172, 103~138. 2002.
  15. ^ Rice, Michael. "A Survey of Static Variable Ordering Heuristics for Efficient BDD/MDD Construction" (PDF).
  16. ^ 필립 울펠."범용 해시를 통한 정수 곱셈의 OBDD 크기에 대한 의견." 컴퓨터 시스템 과학 저널 71, 520-534, 2005.
  17. ^ 리처드 J. 립튼'BDD와 팩터링'괴델의 잃어버린 편지P=NP, 2009.
  18. ^ Andersen, H. R. (1999). "An Introduction to Binary Decision Diagrams" (PDF). Lecture Notes. IT University of Copenhagen.
  19. ^ Huth, Michael; Ryan, Mark (2004). Logic in computer science: modelling and reasoning about systems (2 ed.). Cambridge [U.K.]: Cambridge University Press. pp. 380–. ISBN 978-0-52154310-1. OCLC 54960031.

추가 정보

  • R. Ubar, Proc의 "대안 그래프를 사용한 디지털 회로 생성 테스트(러시아어)"탈린 기술 대학교, 1976년, 제409호, 에스토니아 탈린, 탈린 기술 대학교, 75-81페이지.
  • D. E. Knuth, "The Art of Computer Programming Volume 4, Faccle 1: Bitwise Tricks & Technologies; Binary Decision Diagram" (애디슨-Wesley Professional, 2009년 3월 27일) vi+260pp, ISBN 0-321-58050-8.패시클 1b의 초안을 다운로드 할 수 있습니다.
  • Ch. Meinel, T.Theobald, "VLSI-Design: OBDD Foundations and Applications", Springer-Verlag, 베를린, 하이델베르크, 뉴욕, 1998.전체 교재를 다운로드할 수 있습니다.
  • Ebendt, Rüdiger; Fey, Görschwin; Drechsler, Rolf (2005). Advanced BDD optimization. Springer. ISBN 978-0-387-25453-1.
  • Becker, Bernd; Drechsler, Rolf (1998). Binary Decision Diagrams: Theory and Implementation. Springer. ISBN 978-1-4419-5047-5.

외부 링크