A bináris döntési diagram ( BDE ) vagy egy elágazó program a változók Boole-függvényének egy irányított aciklikus gráfként való megjelenítésének egyik formája , amely belső döntési csomópontokból (címkével ) áll, amelyek mindegyikének két gyermeke és két terminális csomópontja van (0-val jelölve ). és 1) , amelyek mindegyike megfelel a Boole-függvény két értékének valamelyikének. A külföldi szakirodalomban a bináris döntési diagramokat és az elágazó programokat bináris döntési diagramnak ( BDD ), illetve elágazó programnak ( BP ) nevezik.
A Boole-függvény egy irányított aciklikus gráfként ábrázolható , amely több belső döntési csomópontból és két terminális csomópontból áll, amelyeket 0-terminális csomópontnak és 1-terminális csomópontnak neveznek. Egy szinten minden belső döntési csomópont egy logikai változóval van címkézve, és két gyermeke van , ezek az úgynevezett junior gyermek és idősebb gyermek. A belső csomópontról egy fiatalabb vagy idősebb gyermekre való áttérés a változó értékétől (0 vagy 1) függően történik . A megadott értékeknél a gyökércsomóponttól az 1-terminális csomópontig vezető út megfelel annak, hogy ezeken a bemeneti értékeken a Boole-függvény az 1 értéket veszi fel.
A BDR -ről azt mondjuk , hogy rendezett , ha a különböző változók ugyanabban a sorrendben jelennek meg a gráf gyökércsomópontjától a terminális csúcsok egyikéig tartó összes útvonalon . Ugyanakkor előfordulhat, hogy az útvonalak egyes változói hiányoznak, ha a redukciós műveletet korábban elvégezték a grafikonon.
A BDR -t rövidítettnek nevezzük, ha a következő két rövidítési szabályt alkalmazzuk a grafikonra:
A legtöbb esetben a bináris döntési diagramon egy redukált rendezett bináris döntési diagramot ( SUBDR ) kell érteni . A redukált rendezett BDD előnye, hogy kanonikus (egyedi) egy adott függvényhez és a változók adott sorrendjéhez. [1] Ez a tulajdonság a RUBMS-t hasznossá teszi a funkcionális egyenértékűség tesztelésére.
A bal oldali ábra egy bináris döntési fát mutat (a redukciós szabályok alkalmazása nélkül), amely megfelel az ugyanazon az ábrán látható Boole-függvény igazságtáblázatának . Adott bemeneti értékeknél a Boole - függvény értékét úgy határozhatja meg , hogy a fa gyökércsomópontjától a végcsomópontokig halad a fa mentén, a bemeneti értéktől függően kiválasztva a csomóponttól való átmenet irányát . Az ábrán látható szaggatott vonalak egy fiatalabb gyermekhez, a folyamatos vonalak pedig egy idősebb gyermekhez való átmenetet jelölnek. Például, ha a bemeneti értékek ( , , ) adottak, akkor a gyökércsomóponttól a szaggatott vonalon kell menni balra (mivel az érték 0), ezután a folytonos vonalakon kell haladni. jobbra (mivel az és az értékek egyenlőek 1-gyel). Ennek eredményeként egy 1-terminális csomópontba kerülünk, azaz az érték 1.
A bal oldali ábrán látható bináris döntési fa két redukciós szabály alkalmazásával bináris döntési diagrammá alakítható . Az eredményül kapott BDR a jobb oldali ábrán látható.
Az ilyen adatstruktúra létrehozásának fő ötlete a Shannon-dekompozíció volt . Bármely Boole-függvény az egyik bemeneti változón két alfüggvényre osztható, ezeket pozitív és negatív komplementernek nevezzük, amelyek közül csak egy alfüggvény kerül kiválasztásra az if-then-else elv szerint, a bemeneti változó értékétől függően (amelyen végrehajtották a Shannon-kiterjesztést). Minden egyes ilyen alfüggvényt részfaként ábrázolva, és folytatva a bővítést a többi bemeneti változóban, egy döntési fa állítható elő , melynek redukálásával bináris döntési diagramot kapunk . A bináris döntési diagramok vagy bináris elágazó programok használatára vonatkozó információk először 1959-ben jelentek meg a Bell Systems Technical Journal [2] [3] [4] című folyóiratban . A kanonikus zárójeles formának nevezett BDD-t Mamrukov [5] valósította meg CAD-ben sebességfüggetlen áramkörök elemzésére. Az ezen az adatstruktúrán alapuló hatékony algoritmusok létrehozásának lehetőségét Randal Bryant , a Carnegie Mellon Egyetem kutatója tárta fel : az ő megközelítése a változók rögzített sorrendjének alkalmazása volt (az egyes Boole-függvények egyedi kanonikus ábrázolásához), valamint a közös részgráfok újrafelhasználása (a tömörség érdekében). ). E két kulcsfogalom alkalmazása lehetővé teszi a halmazok és a köztük lévő kapcsolatok ábrázolására szolgáló adatstruktúrák és algoritmusok hatékonyságának növelését. [6] [7] A közös részgráfok több BDR általi használata a Shared Reduced Ordered Binary Decision Diagram adatstruktúra megjelenéséhez vezetett . [8] A BDR nevet manapság elsősorban erre a sajátos adatszerkezetre használják.
Donald Knuth a Fun With Binary Decision Diagrams (BDDs) című videoelőadásában a bináris döntési diagramokat " az egyik igazán alapvető adatszerkezetnek nevezte, amely az elmúlt huszonöt évben alakult ki ", és megjegyezte, hogy Randal Bryant 1986 -os publikációja [6 ] , amely a bináris döntési diagramok használatát emelte ki a Boole-függvények manipulálására, egy ideig a legtöbbet idézett számítástechnikai publikáció volt.
A BDR-eket széles körben használják számítógépes tervezési (CAD) rendszerekben logikai áramkörök szintézisére és formális ellenőrzésére .
Az elektronikában minden egyes meghatározott BDR (még nem is csökkentett és nem megrendelt) közvetlenül megvalósítható úgy, hogy minden csomópontot egy multiplexerre cserélünk , két bemenettel és egy kimenettel.
A BDR méretét egy logikai függvény és a bemeneti változók sorrendjének megválasztása egyaránt meghatározza. Boole-függvény gráfjának összeállításakor a csomópontok száma a legjobb esetben lineárisan függhet -tól , a legrosszabb esetben pedig a függőség exponenciális lehet a bemeneti változók sorrendjének sikertelen megválasztása esetén. Például egy logikai függvény esetén Ha változók sorrendjét használjuk , akkor 2 n +1 csomópontra van szükség a függvény BDD formájában történő megjelenítéséhez. A bal oldali ábrán egy szemléltető BDD látható egy 8 változós függvényhez. És ha a sorrendet használja , akkor 2 n +2 csomópontból egyenértékű BDR-t kaphat . A jobb oldali ábrán egy szemléltető BDD látható 8 változós függvényhez.
A változó sorrend megválasztása kritikus az ilyen adatstruktúrák gyakorlati alkalmazásakor. A változók legjobb sorrendjének megtalálásának problémája NP-teljes probléma. [9] Sőt, még a változók szuboptimális sorrendjének megtalálásának problémája is NP-teljes , így bármely c > 1 konstans esetén a BDD mérete legfeljebb c-szer nagyobb, mint az optimális. [10] Ennek a problémának a megoldására azonban léteznek hatékony heurisztikák.
Ezen kívül vannak olyan függvények, amelyeknél a grafikon mérete mindig exponenciálisan növekszik a változók számának növekedésével, függetlenül a változók sorrendjétől. Ez a szorzófüggvényekre vonatkozik, jelezve a faktorizáció puszta összetettségét .
A bináris döntési diagramokkal kapcsolatos kutatások számos kapcsolódó grafikon megjelenését eredményezték, mint például a BMD ( bináris pillanatdiagramok ), a ZDD ( zéró elnyomott döntési diagramok ), az FDD ( szabad bináris döntési diagramok ), a PDD ( paritási döntési diagramok ) és MTBDD-k (több terminálos BDD-k).
Számos logikai művelet ( konjunkció , diszjunkció , negáció ) végrehajtható közvetlenül a BDR-en olyan algoritmusok segítségével, amelyek polinomiális időben hajtanak végre gráfmanipulációkat. Azonban ezeknek a műveleteknek a többszöri megismétlése, például egy BDD halmaz konjunkcióinak vagy diszjunkcióinak képzésekor, a legrosszabb esetben exponenciálisan nagy BDD-hez vezethet. Ennek az az oka, hogy a két BDR-en végzett korábbi műveletek általában az előző méretek szorzatával arányos BDR-t eredményezhetnek, így több BDR esetén a méret exponenciálisan nőhet.
Adatstruktúrák | |
---|---|
Listák | |
fák | |
Számít | |
Egyéb |