HY437 Αλγόριθμοι CAD Διδάςκων: Χ. Σωτηρίου http://inf-server.inf.uth.gr/courses/ce437/ 1 ΗΥ437 - Πολυεπίπεδθ Λογικι Απλοποίθςθ με Περιεχόμενα Είδθ Αδιάφορων Τιμϊν ςε Πολφ-επίπεδα Δυαδικά Δίκτυα Αδιάφορεσ Τιμζσ Ειςόδων - Input DCs Αδιάφορεσ Τιμζσ Εξόδων - Output DCs Τοπικζσ Αδιάφορεσ Τιμζσ Ικανοποίθςθσ Satisfiability DCs Τοπικζσ Αδιάφορεσ Τιμζσ Παρατθρθςιμότθτασ Observability DCs Χριςθ DC Συνόλου για τθν πράξθ SIMPLIFY Παραδείγματα Υπολογιςμόσ Συνόλου SDCs Υπολογιςμόσ Συνόλου ODCs 2 1
Αδιάφορεσ τιμέσ ςε Πολύ-επίπεδα Δυαδικά Δίκτυα Οι εξωτερικζσ και εςωτερικζσ Αδιάφορεσ τιμζσ προκφπτουν από τθν ενςωμάτωςθ των δυαδικών ςυναρτιςεων του πολφ-επίπεδου Δυαδικοφ Δικτφου ςε ζνα περιβάλλον! Είναι εφικτι και επικυμθτι θ επιτόπια βελτιςτοποίθςθ ςτο ςυγκεκριμζνο περιβάλλον PIs Boolean Network POs 3 Αδιάφορεσ Τιμέσ Satisfiability DCs (SDCs) Αδιάφορεσ τιμζσ Ικανοποίθςθσ από τισ ειςόδουσ Συνδυαςμοί ειςόδων που δεν μποροφν να ςυμβοφν και ειςόδων/εξόδου μιασ πφλθσ a b c SDC: c (+) ab Observability DCs (ODCs) Αδιάφορεσ τιμζσ Παρατιρθςθσ ςτισ εξόδουσ Συνδυαςμοί που φιλτράρονται από τιμζσ ελζγχου a b c ODC: a = 0, b DC b = 0, a DC 4 2
Αδιάφορεσ Τιμέσ ςε Δυαδικά Δίκτυα - SDCs Οριςμόσ: Οι Α.Τ. Ικανοποίθςθσ SDCs ενόσ δικτφου B, είναι το ςφνολο των SDCs (U - ζνωςθ) για κάκε επιμζρουσ κόμβο του δικτφου B. Για κάκε κόμβο, το SDC του είναι: f Η χριςθ τθσ (+) αντιςτοιχεί ςτθν λογικι διαφορά Το SDC ςφνολο εμπεριζχει όλουσ τουσ ςυνδυαςμοφσ τοπικϊν κόμβων και ειςόδων που ΔΕΝ μποροφν να ςυμβοφν 5 SDC ( G ( V, E)) n f V SDC Αδιάφορεσ Τιμέσ ςε Δυαδικά Δίκτυα - ODCs Οριςμόσ: Η Δυαδικι Διαφορά μιασ ςυνάρτθςθσ f, ωσ προσ μια μεταβλθτι, καταδεικνφει τισ ςυνκικεσ όπου θ f εξαρτάται από τθν : df d Οριςμόσ: Ζτςι, οι Α.Τ. Παρατθρθςιμότθτασ για τθν f ωσ προσ το είναι το αντίςτροφο τθσ Δυαδικισ Διαφοράσ: ODC f f ' df d Το ODC ςφνολο εμπεριζχει όλουσ τουσ ςυνδυαςμοφσ των ειςόδων ι κόμβων που ΔΕΝ επθρεάηουν τισ εξόδουσ 6 3
Αδιάφορεσ Τιμέσ ςε Δυαδικά Δίκτυα - ODCs Για δυο κόμβουσ και y ςε ςειρά (yf) ιςχφει ότι: ODC df y d ODC y y ODC ODC y Ο πρϊτοσ όροσ αντιςτοιχεί ςτισ ςυνκικεσ του που ΔΕΝ είναι παρατθριςιμεσ ςτον κόμβο y, ενϊ ο δεφτεροσ ςτισ ςυνκικεσ του ίδιου του y, που δεν είναι παρατθριςιμοσ 7 Παραδείγματα SIMPLIFY με SDC/ODC Ζςτω: y1 = w, y2 = + y, F = y1 + y2 αναηθτοφμε απλοποίθςθ του δικτφου Εξετάηουμε απλοποίθςθ τθσ y1, υπολογίηοντασ SDC, ODC για το δίκτυο SDC y2 = y2 (+) ( + y) = y2y + y2 + y2 y Το SDC y1 δεν βοθκά ςτθν απλοποίθςθ του y1 ODC y1 = y2, λόγω τθσ OR Κάλυψη ΜΕ DCs: w y y2 y1 11-- 1 ON-set ---1 - ODC -101 - SDC -0-0 - SDC --10 - SDC 8 4
Παραδείγματα SIMPLIFY με SDC/ODC Με τθν χριςθ του ςυνδυαςμοφ SDCs, ODCs, θ y1 απλοποιείται ςε y1 = w! Χωρίσ και τα δυο ςφνολα δεν προκφπτει θ απλοποίθςθ! Π.χ. αν θ F ιταν F = y1 (+) y2 Ζςτω: y1 = w, y2 = + y, y3 = y1y2, F = y3 + y αναηθτοφμε απλοποίθςθ του δικτφου 9 Παραδείγματα SIMPLIFY με SDC/ODC Ζςτω: y1 = w, y2 = + y, y3 = y1y2, F = y3 + y αναηθτοφμε απλοποίθςθ του δικτφου Εξετάηουμε απλοποίθςθ τθσ y1, υπολογίηοντασ SDC, ODC για το δίκτυο SDC y2 = y2y + y2 + y2 y ODC y1 = y2 + y, λόγω των AND και OR = + y Άρα θ y1 απαλείφεται κακϊσ ανικει ςτο ODC τθσ w < + y!!! Αν F = y1w + y2w + y1 y2, επιδείξτε ότι: ODC y1 = w y2 + wy2 ΠΩΣ; Υπολογίζοντασ το αντίςτροφο τησ Δυαδικθσ Διαφοράσ 10 5
Υπολογιςμόσ SDC ςε Δίκτυο Οριςμόσ: θ ομοφωνία τθσ f ωσ προσ μεταβλθτι ορίηεται ωσ: C (f) = f. f θ C (f) αντιςτοιχεί ςτθν ςυνιςτϊςα τθσ f που είναι ανεξάρτθτθ από τθν Για να υπολογίςουμε τα ςυνολικά SDC του δικτφου SDC out Διατρζχουμε το δίκτυο από τισ ειςόδουσ ςτισ εξόδουσ εξετάηοντασ ομάδεσ από κόμβουσ τθν φορά (τομζσ - cuts) Σε κάκε τομι νζο κόμβο: (α) προςκζτουμε τα SDC του κόμβου που εξετάηεται, (β) αφαιροφμε τισ μεταβλθτζσ/κόμβουσ-άμεςουσ προγόνουσ μζςω τθσ ομοφωνίασ από το SDC set 11 Υπολογιςμόσ SDC ςε Δίκτυο Αλγόριθμοσ SATISFIABILITY(Gn(V, E)) SATISFIABILITY(Gn(V, E), CDCin) { C = V i ; // PI input nodes // CDC cut = CDC in ; foreach verte v in V in topological order { C = C U v ; // add v to cut // CDC cut = CDC cut + f (+) ; // add local SDC set // D = {v in C: all successors of v are in C}; foreach verte v y in D { CDC cut = C y (CDC cut ); // remove nodes v y by taking consensus // } C = C D; // drop D from cut // } CDC out = CDC cut ; return CDC out ; } Ο αλγόρικμοσ ονομάηεται και CONTROLLABILITY (CDC) CDC in = SDC in Το δυςκολότερο βιμα υπολογιςτικά είναι θ εκτζλεςθ τθσ πράξθσ CONSENSUS! 12 6
Υπολογιςμόσ SDC ςε Δίκτυο κύκλωμα γράφος τομές - cuts Ζςτω CDC in = 1 4 Πϊσ υπολογίηει ο αλγόρικμοσ το SDC out ; 13 Υπολογιςμόσ SDC ςε Δίκτυο Ζςτω CDC in = 1 4 Ο πρϊτοσ κόμβοσ που επιλζγεται είναι ο a Συνδρομι του ςτο CDC cut : CDC a = a (+) (2 (+) 3) Δθλαδι CDC cut = 1 4 + a (+) (2 (+) 3) Οι μεταβλθτζσ 2, 3 μπαίνουν ςτο ςφνολο D για απαλοιφι: D = {2, 3} CDC cut = CONS (2,3) (CDC cut )= 1 4 Επιλζγεται ο b: CDC b = b (+) (1 + a), D = {1} CDCcut = CONS (1) (CDC cut )= b 4 + b a Επιλζγεται ο c: CDC cut(bc) = b c Τελικά υπολογίηεται ότι CDCout = e = z2 Δηλαδή η ζξοδοσ z2 ΔΕΝ θα ζχει ποτζ την τιμή μηδζν! 14 7
Υπολογιςμόσ ODC ςε Δίκτυο Για το κφκλωμα ςτα αριςτερά: ODC b = (dfe/db) = (b + c) b = 1 (+) (b + c) b = 0 = c Ομοίωσ ODC c = b Ζτςι, ODC 1 = (dfb/d1) + ODC b = a1 + c = a1 + a2 + 4 Αναλόγωσ ODC a1 = c + 1 = 1 + a2 + 4, ODC a2 = b + 4 = 1 + a1 + 4, ODC 4 = b + a2 = 1 + a1 + a2 15 Υπολογιςμόσ ODC ςε Δίκτυο Κφκλωμα ςτα δεξιά Στθν περίπτωςθ επαναςφγκλιςησ διακλάδωςησ (reconvergent fanout), ζχουμε διαφορετικι διάδοςθ ODC από τα διαφορετικά μονοπάτια Πωσ υπολογίηουμε τθν ςυνολικι ςυμβολι του a; 16 8
Υπολογιςμόσ ODC ςε Δίκτυο αν αντιγράψουμε τον κοινό κόμβο ςε 1, 2 Μποροφμε να υπολογίςουμε τα ανεξάρτθτα ODC (, y), ODC (, z) Αποδεικνφεται ότι: ODC = ODC (, y) 2 = (+) ODC (, y) 1 = = ODC (, y) 2 = (+) ODC (, y) 1 = 17 Θεώρημα ODC για 2 ακμέσ Ορίηουμε f 1, 2 (δ1,δ2) τθν μεταβολι τθσ f αλλάηοντασ τισ τιμζσ των μεταβλθτϊν ςτιριξθσ, 1, 2. 1 ςχετίηεται με (v, vy), 2 με (v, vz), ζτςι: ODC, y = f 1, 2 (1,δ2) (+) f 1, 2 (0,δ2) ODC, z = f 1, 2 (δ1,1) (+) f 1, 2 (δ1,0), και ODC = f 1, 2 (1,1) (+) f 1, 2 (0,0) = [βάςθ τθσ πράξθσ α = α (+) 1 = α (+) (b (+) b)] f 1, 2 (1,1) (+) f 1, 2 (0,0) (+) [f 1, 2 (0,1) (+) f 1, 2 (0,1)] = f 1, 2 (1,1) (+) f 1, 2 (0,1) (+) f 1, 2 (0,1) (+) f 1, 2 (0,0) = ODC, y δ2=1 (+) ODC, z δ1=0 = ODC, y 2= (+) ODC, z 1= και ανάλογα λόγω ςυμμετρίασ ODC, y 2= (+) ODC, z 1= 18 9
Υπολογιςμόσ ODC ςε Δίκτυο Για το κφκλωμα ςτα δεξιά: ODC a,b = (dfb/da) + ODC b = 1 + c = 1 + a + 4 ODC a,c = (dfc/da) + ODC c = 4 + b = 1 + a + 4 ODC a = ODC a, b a=a (+) ODC a. c a=a = 1 + 4 19 Γενίκευςη Θεωρήματοσ ODC για n ακμέσ Θεϊρημα: Για v εςωτερικό κόμβο θ είςοδο, και διακριτζσ μεταβλθτζσ { i, i = 1, 2,, p} ςυςχετιςμζνεσ με ακμζσ (, y i ), και ODC (, yi) τα αντίςτοιχα ςφνολα DC. Το ςυνολικό ODC για τον κόμβο v υπολογίηεται ωσ: ODC p i, y... ' Δθλαδι το XNOR (ιςότθτα) των ODC, με όλουσ τουσ ςυνδυαςμοφσ των επιμζρουσ ςθμάτων μεταβλθτζσ μετά το (i+1), για κάκε i, είναι αντεςτραμμζνεσ. 1 ODC i i 1 p 20 10
Υπολογιςμόσ ODC ςε Δίκτυο Αλγόριθμοσ OBSERVABILITY(Gn(V, E)) OBSERVABILITY(Gn(V, E), ODC out ) { foreach verte v in V in reverse topological order { for (i = 1 to p) // ODC successors of v // ODC, yi = (dfyi/d) + ODC yi ; // compute edge (, yi) ODC // for (i = 1 to p) ODC = (+) ODC, yi i+1 = = p = ; } return ODC ; } ODC out είναι τα ODC ςτισ εξόδουσ Το αποτζλεςμα του αλγορίκμου αποτελεί το κακολικό (global) DC για ζναν κόμβο Πολυπλοκότθτα γραμμικι ωσ προσ τον γράφο 21 11