1 / 20

İkili Karar Diyagramı (Binary Decision Diagram : BDD)

v 1. v 2. v 3. İkili Karar Diyagramı (Binary Decision Diagram : BDD). Boole fonksiyonlarının bir gösterilim şekli: Lee - 1959, Akers - 1978, Bryant - 1986 BDD, çevre içermeyen köklü-yönlü graftır Her düğüm n değişkenden birisine karşı düşer Her düğümden 2 dal çıkar

Télécharger la présentation

İkili Karar Diyagramı (Binary Decision Diagram : BDD)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. v1 v2 v3 İkili Karar Diyagramı (Binary Decision Diagram : BDD) • Boole fonksiyonlarının bir gösterilim şekli: • Lee - 1959, Akers - 1978, Bryant - 1986 • BDD, çevre içermeyen köklü-yönlü graftır • Her düğüm n değişkenden birisine karşı düşer • Her düğümden 2 dal çıkar • Tek bir kök düğüm, 2 farklı uç düğüm • uç düğümlerin değeri = Boole fonksiyonunun değeri x1 x2 x3 0 1 f = x1x3+x2x3 fonksiyonunun BDD grafı

  2. v1 v2 v3 BDD Yol: kök düğümden uç düğüme kadar tüm düğüm ve elemanların kümesi Bir OBDD’de tanımlı bir yoldaki düğümlerde değişkenler sıralıdır Tüm yollarda değişken sırası aynıdır Değişken sıralaması: x1 < x2 < ... < xn x1 x2 x3 0 1 f = x1x3+x2x3 fonksiyonunun  değişken sıralaması: π: x1 < x2 < x3

  3. BDD’nin öteki gösterilimlerle kıyaslanması Sonuç: Temel işlemlerde BDD daha hızlı

  4. BDD’lerde yapılan öteki temel işlemler  BDD’deki algoritmaların karmaşıklığı BDD büyüklüğüne polinomsal bağlı BDD grafları nasıl küçültülebilir?

  5. Değişken Sıralama (Variable Ordering) f(x1, x2, x3) = x1x2+x3x4+x5x6 Değişken sıralaması πa : x1 < x2 < x3 < x4 < x5 < x6

  6. Değişken Sıralama (Variable Ordering) f(x1, x2, x3) = x1x2+x3x4+x5x6 Değişken sıralaması πb : x1 < x3 < x5 < x2 < x4 < x6

  7. Değişken Sıralama (Variable Ordering) Bir BDD düğümünün bellekte kapladığı yer: 20 bayt 2 farklı değişken sıralaması için gereken bellek: Sonuç: Değişken sıralaması işlem hızını etkiler

  8. BDD Uygulamaları İki Seviyeli İndirgeme - Asal bileşenleri üretme (bu çalışmanın konusu) - Minimal örtü (tek koşullu örtü problemi) Kısmen Belirli Ardışıl Makineleri İndirgeme - Uyumlular ve asal uyumlular sınıflarını üretme - Minimal kapalı örtü (çift koşullu örtü problemi) Ayrıştırma - Ashenhurst Ayrıştırması - Roth-Karp Ayrıştırması

  9. Asal Bileşenleri BDD Yardımıyla Üretme Boole fonksiyonunun asal bileşenleri, kofaktörlerindeki asal bileşenleri cinsinden ifade edilebilir Boole fonksiyonu f’in 1 noktalarını gösteren küplerin kümesi P P1k : xk değişkeni içermeyen küplerin kümesi Px’k : xk değişkeninin tümleyenini içeren küplerin kümesi Pxk : xk değişkeninin kendisini içeren küplerin kümesi  P = P1k ({x’k}  Px’k)  ({xk}  Pxk)

  10. Asal Bileşenleri BDD Yardımıyla Üretme Boole fonksiyonunun asal bileşen kümesi AB 3 alt kümeyle ifade edilir: - xk değişkenini içermeyen asal bileşenlerin kümesi - xk değişkenini içeren asal bileşenlerin kümesi - xk değişkenini içeren asal bileşenlerini kümesi ok xk sk Herhangi bir BDD grafının kök düğümü Boole fonksiyonunu temsil eder Herhangi bir AB BDD’sinin kök düğümü, Boole fonksiyonunun tüm AB’lerini gösterir

  11. Asal Bileşenleri BDD Yardımıyla Üretme Asal Bileşen Üretme f(x1, x2) = x1x2 f(o1, s1, o2, s2) = o1s1o2s2

  12. Asal Bileşenleri BDD Yardımıyla Üretme gereksiz düğüm ya da

  13. Asal Bileşenleri BDD Yardımıyla Üretme IPCP, Implicit Prime Computation Program (Kapalı Yöntemle Asal Bileşen Hesaplama Programı) IPCP optimal çözümü vermektedir 3000 satır C kodu BDD yapıları için BuDDy yazılım paketi kullanılmıştır BuDDy, Kopenhag Enformasyon Teknolojisi Enstitüsü’nden Jørn Lind-Nielsen’in doktora çalışmasında geliştirilmiştir http://www.itu.dk/research/buddy Sun Solaris 2.6 altında GCC 2.95.2 C derleyicisi ile derlenmiştir Sun UltraSPARC 80 iş istasyonu 2 x 450 MHz UltraSPARC II CPU, 2 GB RAM

  14. .i 2 .o 1 .p 2 1- 1 -1 1 .e gen_dnf_array gen_bool_to_bdd coudert_prime bdd_fnprintdot bdd_fnprintdot gen_bdd_pla gen_bdd_pla .i 2 .o 1 .p 2 1- 1 01 1 .e .i 2 .o 1 .p 2 1- 1 -1 1 .e Asal Bileşenleri BDD Yardımıyla Üretme ipcp -i or2.pla -f 0 -d -p or2.pla

  15. IPCP’nin Değişik Bençmarklarla Testi Zor bençmarklar I/O: I: Giriş değişken sayısı, O: çıkış fonksiyon sayısı NMI: Minterm sayısı NPI: Eerçekteki asal bileşen sayısı RNPI: BDD yardımıyla hesaplanan asal bileşen sayısı ENPI: Eleme sonucunda elde edilen asal bileşen sayısı TBDD: BDD graflarını oluşturma süresi [saniye] TPIBDD: Asal bileşenleri gösteren BDD graflarını oluşturma ve tüm asal bileşenleri elde süresi [saniye] TELIM: gereksiz asal bileşenleri eleme süresi [saniye] SBDD: BDD grafının bellekte kapladığı alan [bayt, megabayt] SRED: elenmemiş asal bileşenlerin karakter formatında bellekte kapladığı alan [bayt, megabayt] SIRR: elenmemiş asal bileşenlerin bit formatında bellekte kapladığı alan [bayt, megabayt]

  16. Diğer bençmarklar

  17. Diğer bençmarklar

  18. IPCP Sonuçları 9 tek çıkışlı, 81 çok çıkışlı toplam 90 PLA bençmarkında test yapıldı Gereksiz Düğümler (Redundant Vertices) Gereksiz düğümler nedeniyle asal bileşen listesi, fazla küpler içermekte Fazla küpler, gerçek asal bileşenler tarafından kapsanmakta Fazla küp oranı %0 ile %100.000 (1000 kat) arasında değişmekte Simetrik fonksiyonlarda fazla küp yok Çoğu bençmarkta fazla küp, asal bileşen sayısının yaklaşık 10 katı Bellek Fazla küp nedeniyle bellek kullanımı çoğu bençmarkta gereğinden 10 kat daha büyük Her bir asal bileşen biti bir char ile gösterildi Asal bileşenler için long long int kullanıldığında bellek yarıya düşüyor İşlem Zamanı Fazla küp nedeniyle aşırı büyük bellek yüzünden işlem süresi çok yüksek m fonksiyonun tüm kombinezonlarının asal bileşenlerini hesaplama uzun zaman alıyor

  19. IPCP Sonuçları 9 tek çıkışlı, 81 çok çıkışlı toplam 90 PLA bençmarkında test yapıldı BDD gösterilimi Boole fonksiyonlarının BDD grafı bellekte az yer tutuyor Örnek: sym10, 10 değişkenli simetrik fonksiyon. Minterm sayısı: 837, açık (explicit) yöntemde kullanılan bellek: 3348 bayt asal bileşen sayısı 3150, açık (explicit) yöntemde kullanılan bellek: 12.6K BDD grafı belleği: 760 bayt fonksiyonların çarpımlarını hesaplamak hızlı: Uygula (Apply) algoritması

  20. SONUÇ BDD’lerle ilgili Türkçe bir çalışmaya rastlanmamıştır Literatürde herhangi bir BDD paketi için PLA arayüzüne rastlanmamıştır BDD’lerle ilgili Türkçe bir uygulamaya rastlanmamıştır Literatürde BuDDy paketinde asal bileşen bulma uygulamasına rastlanmamıştır BDD’lerle Ardışıl Makinelerin İndirgenmesi uygulaması yapılabilir BDD’lerle Roth-Karp Ayrıştırması uygulaması yapılabilir

More Related