Бінарна діаграма рішень (англ. Binary decision diagram) або програма розгалуження — це структура даних в інформатиці, яка використовується для представлення булевої функції. На більш абстрактному рівні, БДР можна розглядати як стиснене представлення множин або відношень. На відміну від інших стиснених представлень, операції виконуються безпосередньо на стислому представлені, тобто без декомпресії. Інші структури даних, які використовуються для представлення булевої функції мають в собі заперечення нормальної форми, [en].
Визначення
Булева функція може бути представлена у вигляді орієнтованого ациклічного графа, який складається з декількох вузлів рішень і термінальних вузлів. Існують два типи кінцевих вузлів: 0-термінал і 1-термінал. Кожен вузол рішень позначений булевою (логічною) змінною і має два дочірніх вузли з назвою нижній дочірній та верхній дочірній. Ребро з вузла до нижнього (або верхнього) дочірнього вузла являє собою відповідність нулю (або 1). Така БДР називається «впорядкованою», якщо різні змінні з'являються в тому ж порядку на всіх шляхах від кореня. БДР називають скороченою, якщо наступні два правила вже були застосовані до його графу:
- Злиті будь-які ізоморфні підграфи.
- Вилучено будь-який вузол, у якого обидва нащадки ізоморфні.
У більшості випадків під бінарною діаграмою рішень розуміють саме скорочену впорядковану бінарну діаграму рішень (СВБДР). Перевага скороченої впорядкованої БДР в тому, що вона є канонічною (єдиною) для конкретної функції й заданого порядку змінних. Ця властивість робить СВБДР корисною для перевірки функціональної еквівалентності.
Шлях від кореня до 1-терміналу представляє (можливо частково) набори змінних, для яких задана булева функція приймає значення «істина». Як шлях прямує від кореня до нижнього або верхнього нащадка, так і змінна у вузлі ставиться у відповідність 0 або 1.
Приклад
На малюнку ліворуч зображене бінарне дерево прийняття рішень (без застосування правил скорочення), відповідне наведеної на цьому ж малюнку таблиці істинності для булевої функції . Для заданих вхідних значень , , можна визначити значення логічної функції, рухаючись по дереву від кореневого вузла дерева до термінальних вузлів, вибираючи напрямок переходу з вузла залежно від вхідного значення . Пунктирними лініями на малюнку зображені переходи до молодшого нащадку, а безперервними лініями зображені переходи до старшого нащадку. Наприклад, якщо задано вхідні значення (, , ), то з кореневого вузла необхідно перейти по пунктирній лінії ліворуч (оскільки значення дорівнює 0), після цього необхідно перейти по безперервним лініям праворуч (бо значення та дорівнюють 1). У результаті ми опинимося в 1-термінальному вузлі, тобто значення дорівнює 1.
Бінарне дерево прийняття рішень на малюнку ліворуч можна перетворити в бінарну діаграму рішень шляхом застосування двох правил скорочення. БДР, яка буде отримана після скорочення, зображена на малюнку праворуч.
Історія
Основною ідеєю для створення такої структури даних послужило . Будь-яку булеву функцію по одній з вхідних змінних можна розділити на дві підфункції, званих позитивним і негативним доповненням, з яких за принципом if-then-else вибирається тільки одна підфункція залежно від значення вхідної змінної (за якою виконувалося розкладання Шеннона). Представляючи кожну таку підфункцію у вигляді піддерева і продовжуючи розкладання по решті вхідних змінних, можна отримати дерево прийняття рішень, скорочення якого дасть бінарну діаграму рішень. Інформація про використання бінарних діаграм рішень або бінарних розгалужених програм була вперше опублікована в 1959 році в технічному журналі «Bell Systems Technical Journal».
Потенціал для створення ефективних алгоритмів, заснованих на використанні цієї структури даних, досліджував Рендел Брайнт з університету Карнегі — Меллон: його підхід полягав у використанні фіксованого порядку змінних (для однозначності канонічного представлення кожної булевої функції) і повторного використання загальних підграфів (для компактності). Застосування цих двох ключових концепцій дозволяє підвищити ефективність структур даних і алгоритмів для представлення множин і відносин між ними. Використання декількома БДР загальних підграфів призвело до появи такої структури даних, як розділювана скорочена впорядкована бінарна діаграма рішень (англ. Shared Reduced Ordered Binary Decision Diagram). Назва БДР тепер в основному використовується для цієї конкретної структури даних.
Дональд Кнут у своїй відеолекції назвав бінарні діаграми рішень «однією з дійсно фундаментальних структур даних, які з'явилися за останні двадцять п'ять років» і зазначив, що публікація Рендела Брайнта 1986 року, яка пояснила використання бінарних діаграм рішень для маніпуляції над булевими функціями, була деякий час найбільш цитованою публікацією в комп'ютерній науці.
Застосування
БДР широко використовуються в системах автоматизованого проєктування (САПР) для синтезу логічних схем і у формальній верифікації.
В електроніці кожна конкретна БДР (навіть не скорочена і не впорядкована) може бути безпосередньо реалізована заміною кожного вузла на мультиплексор з двома входами й одним виходом.
Порядок змінних
Розмір БДР визначається як булевою функцією, так і вибором порядку вхідних змінних. При складанні графа для булевої функції кількість вузлів у найкращому випадку може лінійно залежати від , а в найгіршому випадку залежність може бути експоненційною при невдалому виборі порядку вхідних змінних. Наприклад, дана булева функція . Якщо використовувати порядок змінних , то знадобиться 2 n + 1 вузлів для представлення функції у вигляді БДР. Ілюструє БДР для функції від 8 змінних зображена на малюнку зліва. А якщо використовувати порядок , то можна отримати еквівалентну БДР з 2n + 2 вузлів. Ілюстрована БДР для функції від 8 змінних зображена на малюнку праворуч.
Вибір порядку змінних є критично важливим при використанні таких структур даних на практиці. Проблема знаходження найкращого порядку змінних є NP-складним завданням. На додаток, NP-складним є навіть завдання знаходження субоптимального порядку змінних, при якому для будь-якої константи c > 1 розмір БДР не більше ніж в c раз більше оптимального. Однак існують ефективні евристичні методи для розв'язання цієї проблеми.
Крім того, існують такі функції, для яких розмір графа завжди зростає експоненціально з ростом числа змінних, незалежно від порядку змінних. Це належить до функцій множення, що вказує на явну складність факторизації.
Дослідження бінарних діаграм рішень привели до появи безлічі суміжних видів графів, таких, як BMD (), ZDD (), FDD (), PDD (), і MTBDDs ().
Логічні операції над БДР
Багато логічних операцій можуть бути виконані безпосередньо над БДР за допомогою алгоритмів, що виконують маніпуляції над графами за поліноміальний час.
- кон'юнкція
- диз'юнкція
- заперечення
- екзистенціальна абстракція
- універсальна абстракція
Однак повторення цих операцій безліч разів, наприклад, при формуванні кон'юнкцій або диз'юнкцій набору БДР, можуть призвести до експоненціально великого БДР в гіршому випадку. Це відбувається через те, що результатом будь-яких попередніх операцій над двома БДР в загальному випадку може бути БДР з розміром, пропорційним добутку попередніх розмірів, тому для декількох БДР розмір може збільшуватися експоненціально.
Див. також
Примітки
- Graph-Based Algorithms for Boolean Function Manipulation, Randal E. Bryant, 1986
- C. Y. Lee.
- Sheldon B. Akers.
- Raymond T. Boute, «The Binary Decision Machine as a programmable controller».
- Randal E. Bryant.
- R. E. Bryant, «Symbolic Boolean Manipulation with Ordered Binary Decision Diagrams» [ 23 вересня 2015 у Wayback Machine.], ACM Computing Surveys, Vol. 24, No. 3 (September, 1992), pp. 293—318.
- Karl S. Brace, Richard L. Rudell and Randal E. Bryant.
- Beate Bollig, Ingo Wegener. Improving the Variable Ordering of OBDDs Is NP-Complete, IEEE Transactions on Computers, 45(9):993-1002, September 1996.
- Detlef Sieling. «The nonapproximability of OBDD minimization.» Information and Computation 172, 103–138. 2002.
Рекомендована література
- D. E. Knuth, «The Art of Computer Programming Volume 4, Fascicle 1: Bitwise tricks & techniques; Binary Decision Diagrams» (Addison-Wesley Professional, March 27, 2009) viii+260pp, . Draft of Fascicle 1b [ 12 березня 2016 у Wayback Machine.] available for download.
- H. R. Andersen «» Lecture Notes, 1999, IT University of Copenhagen.
- Ch. Meinel, T. Theobald, «Algorithms and Data Structures in VLSI-Design: OBDD — Foundations and Applications» [ 24 вересня 2015 у Wayback Machine.], Springer-Verlag, Berlin, Heidelberg, New York, 1998. Complete textbook available for download.
- Rüdiger Ebendt; Görschwin Fey; Rolf Drechsler (2005). Advanced BDD optimization. Springer. ISBN .
- Bernd Becker; Rolf Drechsler (1998). Binary Decision Diagrams: Theory and Implementation. Springer. ISBN .
Посилання
- ABCD [ 24 жовтня 2020 у Wayback Machine.]: The ABCD package by Armin Biere, Johannes Kepler Universität, Linz.
- CMU BDD [ 26 вересня 2011 у Wayback Machine.], BDD package, Carnegie Mellon University, Pittsburgh
- : BDD package, University of Colorado, Boulder
- Biddy [ 6 жовтня 2015 у Wayback Machine.]: multi-platform academic BDD package, University of Maribor, Slovenia
- JavaBDD [ 22 квітня 2020 у Wayback Machine.], a Java port of BuDDy that also interfaces to CUDD, CAL, and JDD
- The Berkeley package which does breadth-first manipulation
- A. Costa BFunc [ 12 липня 2012 у Wayback Machine.], includes a BDD boolean logic simplifier supporting up to 32 inputs / 32 outputs (independently)
- DDD [ 9 липня 2017 у Wayback Machine.]: A C++ library with support for integer valued and hierarchical decision diagrams.
- JINC: A C++ library developed at University of Bonn, Germany, supporting several BDD variants and multi-threading.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Binarna diagrama rishen angl Binary decision diagram abo programa rozgaluzhennya ce struktura danih v informatici yaka vikoristovuyetsya dlya predstavlennya bulevoyi funkciyi Na bilsh abstraktnomu rivni BDR mozhna rozglyadati yak stisnene predstavlennya mnozhin abo vidnoshen Na vidminu vid inshih stisnenih predstavlen operaciyi vikonuyutsya bezposeredno na stislomu predstavleni tobto bez dekompresiyi Inshi strukturi danih yaki vikoristovuyutsya dlya predstavlennya bulevoyi funkciyi mayut v sobi zaperechennya normalnoyi formi en ViznachennyaBuleva funkciya mozhe buti predstavlena u viglyadi oriyentovanogo aciklichnogo grafa yakij skladayetsya z dekilkoh vuzliv rishen i terminalnih vuzliv Isnuyut dva tipi kincevih vuzliv 0 terminal i 1 terminal Kozhen vuzol rishen N displaystyle N poznachenij bulevoyu logichnoyu zminnoyu VN displaystyle V N i maye dva dochirnih vuzli z nazvoyu nizhnij dochirnij ta verhnij dochirnij Rebro z vuzla VN displaystyle V N do nizhnogo abo verhnogo dochirnogo vuzla yavlyaye soboyu vidpovidnist VN displaystyle V N nulyu abo 1 Taka BDR nazivayetsya vporyadkovanoyu yaksho rizni zminni z yavlyayutsya v tomu zh poryadku na vsih shlyahah vid korenya BDR nazivayut skorochenoyu yaksho nastupni dva pravila vzhe buli zastosovani do jogo grafu Zliti bud yaki izomorfni pidgrafi Vilucheno bud yakij vuzol u yakogo obidva nashadki izomorfni U bilshosti vipadkiv pid binarnoyu diagramoyu rishen rozumiyut same skorochenu vporyadkovanu binarnu diagramu rishen SVBDR Perevaga skorochenoyi vporyadkovanoyi BDR v tomu sho vona ye kanonichnoyu yedinoyu dlya konkretnoyi funkciyi j zadanogo poryadku zminnih Cya vlastivist robit SVBDR korisnoyu dlya perevirki funkcionalnoyi ekvivalentnosti Shlyah vid korenya do 1 terminalu predstavlyaye mozhlivo chastkovo nabori zminnih dlya yakih zadana buleva funkciya prijmaye znachennya istina Yak shlyah pryamuye vid korenya do nizhnogo abo verhnogo nashadka tak i zminna u vuzli stavitsya u vidpovidnist 0 abo 1 Priklad Na malyunku livoruch zobrazhene binarne derevo prijnyattya rishen bez zastosuvannya pravil skorochennya vidpovidne navedenoyi na comu zh malyunku tablici istinnosti dlya bulevoyi funkciyi f x1 x2 x3 displaystyle f x 1 x 2 x 3 Dlya zadanih vhidnih znachen x1 displaystyle x 1 x2 displaystyle x 2 x3 displaystyle x 3 mozhna viznachiti znachennya logichnoyi funkciyi ruhayuchis po derevu vid korenevogo vuzla dereva do terminalnih vuzliv vibirayuchi napryamok perehodu z vuzla xi displaystyle x i zalezhno vid vhidnogo znachennya xi displaystyle x i Punktirnimi liniyami na malyunku zobrazheni perehodi do molodshogo nashadku a bezperervnimi liniyami zobrazheni perehodi do starshogo nashadku Napriklad yaksho zadano vhidni znachennya x1 0 displaystyle x 1 0 x2 1 displaystyle x 2 1 x3 1 displaystyle x 3 1 to z korenevogo vuzla x1 displaystyle x 1 neobhidno perejti po punktirnij liniyi livoruch oskilki znachennya x1 displaystyle x 1 dorivnyuye 0 pislya cogo neobhidno perejti po bezperervnim liniyam pravoruch bo znachennya x2 displaystyle x 2 ta x3 displaystyle x 3 dorivnyuyut 1 U rezultati mi opinimosya v 1 terminalnomu vuzli tobto znachennya f x1 0 x2 1 x3 1 displaystyle f x 1 0 x 2 1 x 3 1 dorivnyuye 1 Binarne derevo prijnyattya rishen na malyunku livoruch mozhna peretvoriti v binarnu diagramu rishen shlyahom zastosuvannya dvoh pravil skorochennya BDR yaka bude otrimana pislya skorochennya zobrazhena na malyunku pravoruch Binarne derevo rishen ta tablicya istinnosti funkciyi f x1 x2 x3 x 1x 2x 3 x1x2 x2x3 displaystyle f x 1 x 2 x 3 bar x 1 bar x 2 bar x 3 x 1 x 2 x 2 x 3 BDR funkciyi fIstoriyaOsnovnoyu ideyeyu dlya stvorennya takoyi strukturi danih posluzhilo Bud yaku bulevu funkciyu po odnij z vhidnih zminnih mozhna rozdiliti na dvi pidfunkciyi zvanih pozitivnim i negativnim dopovnennyam z yakih za principom if then else vibirayetsya tilki odna pidfunkciya zalezhno vid znachennya vhidnoyi zminnoyi za yakoyu vikonuvalosya rozkladannya Shennona Predstavlyayuchi kozhnu taku pidfunkciyu u viglyadi piddereva i prodovzhuyuchi rozkladannya po reshti vhidnih zminnih mozhna otrimati derevo prijnyattya rishen skorochennya yakogo dast binarnu diagramu rishen Informaciya pro vikoristannya binarnih diagram rishen abo binarnih rozgaluzhenih program bula vpershe opublikovana v 1959 roci v tehnichnomu zhurnali Bell Systems Technical Journal Potencial dlya stvorennya efektivnih algoritmiv zasnovanih na vikoristanni ciyeyi strukturi danih doslidzhuvav Rendel Brajnt z universitetu Karnegi Mellon jogo pidhid polyagav u vikoristanni fiksovanogo poryadku zminnih dlya odnoznachnosti kanonichnogo predstavlennya kozhnoyi bulevoyi funkciyi i povtornogo vikoristannya zagalnih pidgrafiv dlya kompaktnosti Zastosuvannya cih dvoh klyuchovih koncepcij dozvolyaye pidvishiti efektivnist struktur danih i algoritmiv dlya predstavlennya mnozhin i vidnosin mizh nimi Vikoristannya dekilkoma BDR zagalnih pidgrafiv prizvelo do poyavi takoyi strukturi danih yak rozdilyuvana skorochena vporyadkovana binarna diagrama rishen angl Shared Reduced Ordered Binary Decision Diagram Nazva BDR teper v osnovnomu vikoristovuyetsya dlya ciyeyi konkretnoyi strukturi danih Donald Knut u svoyij videolekciyi nazvav binarni diagrami rishen odniyeyu z dijsno fundamentalnih struktur danih yaki z yavilisya za ostanni dvadcyat p yat rokiv i zaznachiv sho publikaciya Rendela Brajnta 1986 roku yaka poyasnila vikoristannya binarnih diagram rishen dlya manipulyaciyi nad bulevimi funkciyami bula deyakij chas najbilsh citovanoyu publikaciyeyu v komp yuternij nauci ZastosuvannyaBDR shiroko vikoristovuyutsya v sistemah avtomatizovanogo proyektuvannya SAPR dlya sintezu logichnih shem i u formalnij verifikaciyi V elektronici kozhna konkretna BDR navit ne skorochena i ne vporyadkovana mozhe buti bezposeredno realizovana zaminoyu kozhnogo vuzla na multipleksor z dvoma vhodami j odnim vihodom Poryadok zminnihRozmir BDR viznachayetsya yak bulevoyu funkciyeyu tak i viborom poryadku vhidnih zminnih Pri skladanni grafa dlya bulevoyi funkciyi f x1 xn displaystyle f x 1 ldots x n kilkist vuzliv u najkrashomu vipadku mozhe linijno zalezhati vid n displaystyle n a v najgirshomu vipadku zalezhnist mozhe buti eksponencijnoyu pri nevdalomu vibori poryadku vhidnih zminnih Napriklad dana buleva funkciya f x1 x2n x1x2 x3x4 x2n 1x2n displaystyle f x 1 ldots x 2n x 1 x 2 x 3 x 4 cdots x 2n 1 x 2n Yaksho vikoristovuvati poryadok zminnih x1 lt x3 lt lt x2n 1 lt x2 lt x4 lt lt x2n displaystyle x 1 lt x 3 lt cdots lt x 2n 1 lt x 2 lt x 4 lt cdots lt x 2n to znadobitsya 2 n 1 vuzliv dlya predstavlennya funkciyi u viglyadi BDR Ilyustruye BDR dlya funkciyi vid 8 zminnih zobrazhena na malyunku zliva A yaksho vikoristovuvati poryadok x1 lt x2 lt x3 lt x4 lt lt x2n 1 lt x2n displaystyle x 1 lt x 2 lt x 3 lt x 4 lt cdots lt x 2n 1 lt x 2n to mozhna otrimati ekvivalentnu BDR z 2n 2 vuzliv Ilyustrovana BDR dlya funkciyi vid 8 zminnih zobrazhena na malyunku pravoruch BDR dlya funkciyi ƒ x1 x8 x1x2 x3x4 x5x6 x7x8 pri vikoristanni nevdalogo poryadku zminnih Analogichna BDR pri vdalomu vibori poryadku zminnih Vibir poryadku zminnih ye kritichno vazhlivim pri vikoristanni takih struktur danih na praktici Problema znahodzhennya najkrashogo poryadku zminnih ye NP skladnim zavdannyam Na dodatok NP skladnim ye navit zavdannya znahodzhennya suboptimalnogo poryadku zminnih pri yakomu dlya bud yakoyi konstanti c gt 1 rozmir BDR ne bilshe nizh v c raz bilshe optimalnogo Odnak isnuyut efektivni evristichni metodi dlya rozv yazannya ciyeyi problemi Krim togo isnuyut taki funkciyi dlya yakih rozmir grafa zavzhdi zrostaye eksponencialno z rostom chisla zminnih nezalezhno vid poryadku zminnih Ce nalezhit do funkcij mnozhennya sho vkazuye na yavnu skladnist faktorizaciyi Doslidzhennya binarnih diagram rishen priveli do poyavi bezlichi sumizhnih vidiv grafiv takih yak BMD ZDD FDD PDD i MTBDDs Logichni operaciyi nad BDRBagato logichnih operacij mozhut buti vikonani bezposeredno nad BDR za dopomogoyu algoritmiv sho vikonuyut manipulyaciyi nad grafami za polinomialnij chas kon yunkciya diz yunkciya zaperechennya ekzistencialna abstrakciya universalna abstrakciya Odnak povtorennya cih operacij bezlich raziv napriklad pri formuvanni kon yunkcij abo diz yunkcij naboru BDR mozhut prizvesti do eksponencialno velikogo BDR v girshomu vipadku Ce vidbuvayetsya cherez te sho rezultatom bud yakih poperednih operacij nad dvoma BDR v zagalnomu vipadku mozhe buti BDR z rozmirom proporcijnim dobutku poperednih rozmiriv tomu dlya dekilkoh BDR rozmir mozhe zbilshuvatisya eksponencialno Div takozhZadacha zdijsnennosti bulovih formul Buleva AlgebraPrimitkiGraph Based Algorithms for Boolean Function Manipulation Randal E Bryant 1986 C Y Lee Sheldon B Akers Raymond T Boute The Binary Decision Machine as a programmable controller Randal E Bryant R E Bryant Symbolic Boolean Manipulation with Ordered Binary Decision Diagrams 23 veresnya 2015 u Wayback Machine ACM Computing Surveys Vol 24 No 3 September 1992 pp 293 318 Karl S Brace Richard L Rudell and Randal E Bryant Beate Bollig Ingo Wegener Improving the Variable Ordering of OBDDs Is NP Complete IEEE Transactions on Computers 45 9 993 1002 September 1996 Detlef Sieling The nonapproximability of OBDD minimization Information and Computation 172 103 138 2002 Rekomendovana literaturaD E Knuth The Art of Computer Programming Volume 4 Fascicle 1 Bitwise tricks amp techniques Binary Decision Diagrams Addison Wesley Professional March 27 2009 viii 260pp ISBN 0 321 58050 8 Draft of Fascicle 1b 12 bereznya 2016 u Wayback Machine available for download H R Andersen Lecture Notes 1999 IT University of Copenhagen Ch Meinel T Theobald Algorithms and Data Structures in VLSI Design OBDD Foundations and Applications 24 veresnya 2015 u Wayback Machine Springer Verlag Berlin Heidelberg New York 1998 Complete textbook available for download Rudiger Ebendt Gorschwin Fey Rolf Drechsler 2005 Advanced BDD optimization Springer ISBN 978 0 387 25453 1 Bernd Becker Rolf Drechsler 1998 Binary Decision Diagrams Theory and Implementation Springer ISBN 978 1 4419 5047 5 PosilannyaABCD 24 zhovtnya 2020 u Wayback Machine The ABCD package by Armin Biere Johannes Kepler Universitat Linz CMU BDD 26 veresnya 2011 u Wayback Machine BDD package Carnegie Mellon University Pittsburgh BDD package University of Colorado Boulder Biddy 6 zhovtnya 2015 u Wayback Machine multi platform academic BDD package University of Maribor Slovenia JavaBDD 22 kvitnya 2020 u Wayback Machine a Java port of BuDDy that also interfaces to CUDD CAL and JDD The Berkeley package which does breadth first manipulation A Costa BFunc 12 lipnya 2012 u Wayback Machine includes a BDD boolean logic simplifier supporting up to 32 inputs 32 outputs independently DDD 9 lipnya 2017 u Wayback Machine A C library with support for integer valued and hierarchical decision diagrams JINC A C library developed at University of Bonn Germany supporting several BDD variants and multi threading