BK TP.HCM Chương 3: Tổng hợp mạh 2 mứ Tối giản đại số Bool mạh 2 mứ Phương pháp Quine-MCluskey Luật suydiễn 2 mứ (Two-Level Tautology) Bù (omplementation) Phương pháp tối giản hính á (Eat Minization) Phương pháp tối giản tối ưu (Heuristi Minimization) Tối giản đại số Bool mạh 2 mứ Two-level Boolean minimization đượ sử dụng để tìm dạng tổng á tíh (sum-ofproduts) ho hàm số Bool đó làtối ưu theo một hàm hi phí ho trướ. 2 bướ trong quá trình tối giản là: Sinhtập prime impliant Chọn tập một tập prime impliant tối thiểu 2 Phương pháp Quine-MCluskey Sinh Prime Impliant Cábướ thự hiện Sinh Prime Impliant Thành lập bảng Prime Impliant Tìm Essential Prime Impliant Tìm Dominated Column Tìm Dominating Row Tối ưu á Dominated Comlumn và á dominating Row. Tómtắt quy trình Liệt kêtập áminterm ủa hàm (biểu diễn ở dạng á số nhị phân). Trộn áặp minterm. Cá ặp minterm hỉ khá nhau bit để tạo thành ube. Tiếp tụ trộn áặp ube thành một ube mới hođên khi không thể trộn tiếp. Đánh đấu á ube đã đượ trộn Tập áube không đượ đánh dấu là tập prime impliant ủa hàm. Trong trường hợp hàm không đầy đủ thì á minterm sẽ bao gồm trong ả tập ON-set và DC-set ủa hàm đó. 0 5 7 8 9 4 5 0000 00 8, 9,,,, 4, 5 0, 8 5, 7 7, 5 8, 9 8, 9,,, 4, 5 4, 5 000 0_ _0 _ _ _ _ _ B A E D C 3 4
Bảng Prime Impliant Essential Prime Impliant Cá hàng ủa bảng là á minterm (ở dạng nhị phân) Cáột là á prime impliant Đánh dấu ở những nơi giao nhau giữa hàngvàột nếu á prime impliant hứa á minterm 0000 00 A B C D E A B C D X A B C X E A B X X E A X C D X A X C D E X X C D E X X C D E X B C D E X B X D E Cột màóhànghỉ hứa dấu làessential prime impliant. Ví dụ: E là essential prime impliant Essential prime impliant phải ómặt trong biểu thứ tối giản Cá prime đượ họn: A, B, D, E 0000 00 A B C D E A B C D X A B C X E A B X X E A X C D X A X C D E X X C D E X X C D E X B C D E X B X D E 5 6 Dominated Columns Dominated Columns Nếu Không ó Essential Prime impliant. Chọn một ột: giả sử là A Rút gọn A và á hàng đượ hứa bởi A (hàng 0 và ) 0000 00 00 A B C D E F G H X B C D E F G X X X C D E F G H A X X D E F G H A B X X E F G H A B C D E F X X A B C D E X X H A B C D X X G H A B C X X F G H Một ột U đượ gọi là dominate ột V nếu ột U hứa tất ả á hàng ó trong V. Ví dụ: Cột B dominated (C) Cột H dominated (G) Chúng ta ó thể bỏ đi á ột dominated mà không ảnh hưởng đến kết quả rút gọn B C D E F G H X X D E F G H 00 B X X E F G H B C D E F X X B C D E X X H B C D X X G H B C X X F G H C D E F G 00 X D E F G X X E F G C D E F X C D E X X C D X X G C X X F G 7 8
Dominated Columns Dominating Rows Chọn C và G, do đây là ặp Relatively Essential Prime Impliant Chọn E Kết quả f = {A, C, E, G} Vì việ họn ngẩu nhiên A ban đầu nên kết quả không đán tin ậy. Cần phải thự hiện việ baktrak và bỏ A khỏi bảng, tiếp tụ thự hiện Một kết quả khá f = {B, D, F, H} 00 C D E F G X D E F G X X E F G C D E F X C D E X X C D X X G C X X F G Hàng i ủa bảng prime impliant đượ gọi làdominate một hàng khá nếu i ó tại tất ả những ột mà trong đó đượ đánh dấu Ta ó thể lượt bỏ những ột dominating Ví dụ: Hàng dominate hàng Hàng dominate hàng 00 00 00 C D E F G X D E F G X X E F G C D E F X C D E X X C D X X G C X X F G C D E F G X D E F G C D E F X C D X X G C X X F G 9 Tóm tắt Luật suydiễn 2 mứ - Tautology Cá bướ thự hiện Xây dựng bảng prime impliant Xóa những ột dominated và những hàng dominating Tìm hết những essential prime. Đưa húng vào tập lựa họn Nếu tập lựa họn á prime này lớn hơn hoặ bằng lời giải tốt nhất thì dừng lại. Chọn một prime một áhtối ưu Thêm prime vào tập lựa họn vàquay trở lại với bảng đã đượ tối giản từ việ họn prime. Loại prime đó rakhỏi tập lựa họn vàquay trở lại với bảng đã đượ tối giản này để thự hiện lại quy trình. Hàm f là tautology nếu vàhỉ nếu tập ON-set ủa f là tập vũ trụ. Ký hiệu f f() =, B n f Hàm f đượ gọi làmonotone inreasing (dereasing) theo biến i nếu việ huyển i từ 0 lên làm ho f huyển từ 0 lên hoặ giữ nguyên giá trị ( uống 0 hoặ giữ nguyên) 2
Hàm Unate Hàm f là unate theo nếu nómonotone inreasing hoặ monotone dereasing theo Ví dụ: f = monotone inreasing theo và 3 và 2 + 2 3 monotone dereasing theo 2 f unate f = +, f là nonunate (binate) theo và 2 2 2 Hàm Unate Cho một over ủa một hàm f nếu một biến là _ hoặ (_ hoặ 0) trong tất ả á ube ủa over đó thìf unate theo Ví dụ: f = 2 + 2 3, f unate với tất ả á, 2, 3 do over C = {_, _} f = 2 3 + 2, ó over C = {, _0_} ó 2 là và 0, vì vậy mà f không unate theo 2 Kiểm tra tính unate ủa một hàm thông qua tập over là một áhkiểm trakhádễdàng. Một unate over nếu f unate trên tất ả á biến. 3 4 Hàm Unate Hàm Unate Định lý: Một unate over là một tautology nếu vàhỉ nếu over đó hứa một hàng toàn (hay _) Định lý: Cho một over C ủa hàm f. Giả sử á hàng và ột ủa f đượ sắp ếp như sau: A T C = T D Với T làmột khối tất ả (hay _). Giả sử A không tautology thì f tautology khi và hỉ khi D là tautology 5 Hệ quả: Lấy U làtập áột unate trong một over C. Sắp ếp C áột U trướ vàá ột B sau: C = (U B) Nếu U không ó hàng nào hứa toàn (hay _) thì f không tautology 6
Tautology Tautology Quy trình á định tính tautology ủa hàmf: Tautology(F){ T = SPECIAL_CASE(F); if(t -) (T, F) = UNATE_REDUCTION(F); if(t -) (T, F) = COMP_REDUCTION(F); if(t -) return(t); = BINATE_INPUT_SELECT(F); if(tautology(f ) 0) return(t=0); if(tautology(f ) 0) return(t=0); Return (T = ); } Định lý: f ó ma trận như hình sau: A D... D D A2... D M f =............ D D... AP Với D làmột khối toàn. M f là một tautology khi và hỉ khi ó k, với k P, mà A k 7 8 Bù Bù Bù ủa hàm f đượ kýhiệu là: f = f + Nếu F làmonotone inreasing theo thì: f = f + f Nếu F làmonotone dereasing theo thì: f = f + f f f Quy trình tính bù: COMPLEMENT(F){ if (row of all 2 s) return(φ); if (F is a unate over in all variables) return(unate_complement(f)); = first ube in F; for(i=; i N; i=i+){ if([i] not equal to d[i] for any ube d F) [i]=2; } R = UNATE_COMPLEMENT(); F = F ; = BINATE_INPUT_SELECT(F); R = R (. COMPLEMENT(F )); R = R (. COMPLEMENT(F )); Return(R); } 9 20
Ví dụ Ví dụ Cho hàm f với tập over X 2 hứa toàn vì vậy mà R = _0 _ F 2 đượ thugọn từ F F F X2 X X 2 X 3 X 4 X 5 0 _ 0 0 _ X X 3 X 4 X 5 _ Chọn biến binate 3. Ta ó F X2.X3 và F X2.X 3 từ F X2 Chọn biến binate 5. Ta ó F X2.X3X5 và F X2.X3X 5 từ F X2X3 SuyraF X2X3 F X2X3 X X 4 X 5 0 F X2X3X5 X X 4 _ F X2X3 F X2X 3 X X 4 X 5 F X2X3X 5 X X 4 0 X X 4 X 5 _ 0 0 _ 0 0 0 2 22 Ví dụ F X2X 3 (Sử dụng ông thứ unate omplement) SuyraF X2 Suy ra F bằng áh trộn F X2 và X 2 F F X2 X2X 3 X X 4 X 5 X X 3 X 4 X 5 _ 0 0 _ 0 _ 0 0 _ 0 0 0 F X X 2 X 3 X 4 X 5 _ 0 _ 0 0 0 0 0 0 Reursive Complement Operation Theorem: Proof: f = f + f g = f + f f = f + f f g = 0 g = f f + g = 23
COMPLEMENT Operation Reursive Complement termination rules Algorithm COMPLEMENT(List_of_Cubes C) { if(c ontains single ube ) { C res = omplement_ube() // generate one ube per return C res // literal l in with ^l } else { i = SELECT_VARIABLE(C) C 0 = COMPLEMENT(COFACTOR(C,^ i )) Ù ^ i C = COMPLEMENT(COFACTOR(C, i )) Ù i return OR(C 0,C ) } } Reursive Complement eample (split) Reursive Complement eample (merge)
Phương pháp tối giản hính á Sinh Prime Impliant Cáhạn hế ủa phương pháp Quine- MCluskey: Việ sinh á prime bắt nguồn từ một tập tường tận á minterm trong tập ON-set và DC-set ủa hàm Cá minterm đượ kiểm tratheotừng ặp, hầu hết là không thể thự hiện đượ Phương pháp overing không sử dụng bất kỳ một bounding strategy nào. ESPRESSO-EXACT sinh ra tất ả á prime impliant ủa hàm (ở dạng sum-of-produt). 29 Mở rộng (Epanding) một ube nghĩa là Đưa á literals 0 hoặ ở phần ngõ nhập ủa một ube lên _, hoặ Đừa literal 0 trong phần ngõ uất ủa một ube lên. C 0 là một biến Bool mà biến ủa ube đượ đưa từ 0 lên _ C là một biến Bool mà biến ủa ube C đượ đưa từ lên _ 30 Sinh Prime Impliant Sinh Prime Impliant Cặp biến (r i ) 0 và (r i ) Cógiátrị là 0 và nếu biến trong ube r i là 0 Cógiátrị là và 0 nếu biến trong ube r i là Cógiátrị là và nếu biến trong ube r i là _ Với một biến, ube r i và mở rộng ủa đượ là disoint theo Khi: G G i i 0 0 i = ( r ) + ( r ) = 0 i 0 0 i ( r ) + )( ( r ) + ) = i = Ri và là disoint nếu nódisoint ở một nào đó: = U N H i G i = = Mởrộng ủa là disoint từ R hỉ khi nó disoint với tất ả á ube ri R: Suyra: I = R N IU i= = I = I R H i i= = i 0 0 ( ) i r + ( r ) + = 3 32
Ví dụ Rút gọn bảng Prime Impliant 0 5 7 8 9 4 5 Cho hàm f gồm á impliant Tập OFF-Set R ủa f là R={0_, 00_, _0, _} 0000 00 + 0 2 + 3 0 0 + 2 + 3 4 0 + 2 + 4 + 0 0 2 + 0 2 + 4 + 3 + 0 0 4 + 3 + 2 34 {,,,, 000} + 3 0 2 + + 2 3 4 + 0 2 4 0 0 0 2 3 4 So sánh kết quả với phương pháp trướ (slide 4) Biểu diễn hàm f dưới dạng á tập: ON-set: F DC-set: D OFF-set: R Gọi Q: tập á prime impliant ho hàm f ần phải tối thiểu hoá. Chia Q thành 2 tập: Relatively essential: E r Relatively redundant: R r 33 34 Rút gọn bảng Prime Impliant Rút gọn bảng Prime Impliant Với làmột ube thuộ F E r nếu Q D khônghứa. R r nếu Q D hứa. Ersẽnằm trongmọi over ủa hàm f Rrsẽđượ hia thành 2 tập R t : tập dư thừa toàn phần (totally) R p : tập dư thừa bán phần (partially) Với làmột ube thuộ Rr R t nếu E r D hứa. R p nếu E r D không hứa. R t :ó thể loại bỏ hoàn toàn R p : một phần sẽ thuộ over tối thiểu ủa f XétH = E r R p, với R p 35 36
Rút gọn bảng Prime Impliant Vídụ Q = {0,,,, _, _} E r = {, } R p = {0,, _, _} Rút gọn bảng Prime Impliant 2 là một biến binate và á H tương ứng với 2 và 2 ube _ ứng với E r bỏ qua Thêm hàng vào bảng á prime impliant ứng với. 2 (0_) Hàng này bị hứa bởi và Gán = 0 R p H = E r R p = {,,, _, _} Ta tính H bằng áh tính H 3 H = {, _, } H = H 3 = {_, 0_ } (là một tautology trên 2 và 4 ) Cá ube tương ứng là E r và R p 0_ 0 _ 37 38 Rút gọn bảng Prime Impliant Rút gọn bảng Prime Impliant Thêm ube 0 vào Er, ta ó E r = {,, 0 } R p = {, _, _} Gán = H = {0_, _ } (trên và 4 ) Cá ube tương ứng 0 và Er bị bỏ qua Thêm ube vào E r, ta ó E r = {,, 0, } R p = { _, _} Gán = _ H = {0, } (trên ) Cá ube tương ứng E r bị bỏ qua _ R p Thêm hàng vào bảng á prime impliant ứng với. () 0 _ 0_ 39 40
Phương pháp tối giản tối ưu Tối ưu dựa trên Eat Minimization Hai loại hính: Cá phương pháp tối ưumàtheohiếnlượ eat minimizer nhưng không ần thiết sinhtoàn bộ tập á prime impliant và giải quyết vấn đề overing một áhtối ưu Cá phương pháp tối ưu dựa trênmở rộng lặp, giảm (redution), và reshaping á impliant trong một over Một tập á prime impliant mà hứa một partiular ube ó thể đượsinhrasử dụng một sự thay đổi đơn giản màđã đượ trình bày ở phần trướ (sinh prime impliant). 4 42 Tối ưu dựa trên Eat Minimization Tối ưu dựa trên Iterative Improvement Ví dụ: Nếu một ube ó tại vị trí thì ta thiết lập biến C 0 là 0 trong biểu thứ I (em slide 27). Nếu một ube ó _ tại vị trí thì ta thiết lập ả 0 và là 0 trong biểu thứ I Cá prime impliant ủa I sẽ tương ứng với á prime impliant ủa hàm f Cá prime impliant ó thể đượsinhmàhứa một tập hợp á ube đượ họn một áhtối ưu trong over ủa hàm f Giải thuật overing tối ưu (mà không quay lui) ó thể đượsử dụng trong bảng prime impliant sinh ra từ tập on này ủa á prime. Babướ hiệu hỉnh ơ bản: Mỗi impliant đượ rútgọn với kíhthướ nhỏ nhất óthể Cá impliant đượ kiểm tra từng ặp để em liệu nó ó thể đượ reshape bằng áh rút gọn một ái và làm lớn áiònlại. Với á impliant đượ làmlớn (đến mứ lớn nhất ủa nó) thì phải bỏđinhững impliant khá mà bị nó hứa. 43 44
Tối ưu dựa trên Iterative Improvement Tối ưu dựa trên Iterative Improvement Cho hàm f và f _0 0 0 0 _0 REDUCE EXPAND _0 0 0 0 _0 F _0 0 _0 _0 00 RESHAPE 00 _ 0 0 00 F 0000 00_0 _000 0 45 Epand lần 2 00 _ 0 0 00 EXPAND 0 0 0 _ 0 0 46 Lặp tối giản ESPRESSO Espresso Inputs and Outputs MINIMIZE(F, D); { R = COMPLEMENT(F D)l Do { φ = F ; F = REDUCE(F, D); F = EXPAND(F, R); F = IRREDUNDANT(F, D); } while( F < φ ); F = MAKE_SPARSE(F, D, R); Return(F); } f(a,b,c,d) = m(4,5,6,8,9,,3) + d(0,7,5) Espresso Input.i 4.o.ilb a b d.ob f.p 00 00 0000 - - -.e -- # inputs -- # outputs -- input names -- output name -- number of produt terms -- A'BC'D' -- A'BC'D -- A'BCD' -- AB'C'D' -- AB'C'D -- AB'CD' -- ABC'D -- A'B'C'D' don't are -- A'BCD don't are -- ABCD don't are -- end of list Espresso Output.i 4.o.ilb a b d.ob f.p 3 - -0 --.e f= A C' D + A B' D' + A' B 47
Espresso: Why Iterate on Redue, Irredundant Cover, Epand? AB A CD 00 00 0 0 AB A CD 00 00 0 0 Espresso Iteration (Continued) AB A CD 00 00 0 0 AB A CD 00 00 0 0 C 0 0 D C 0 0 D C 0 0 D C 0 0 D B B B B Initial Set of Primes found by Steps and 2 of the Espresso Method Result of REDUCE: Shrink primes while still overing the ON-set Seond EXPAND generates a different set of prime impliants IRREDUNDANT COVER found by final step of espresso Only three prime impliants! 4 primes, irredundant over, but not a minimal over! Choie of order in whih to perform shrink is important ESPRESSO Illustrated Loal Loal minimum minimum REDUCE IRREDUNDANT EXPAND Epand Epand the ubes that are unlikely to be overed by other ubes Seletion: Compute vetor of olumn sums Weight: inner produt of ube and vetor Sort impliants in asending order of weight Rationale: Low weight orrelates to having few s in densely populated olumns
Epand Weighting Cubes Eample f = a b + ab + a b + a b DC-set = ab Ordering: Vetor: [3 3 3 ] T Weights: (9, 7, 7, 7) Selet seond impliant. Eample (2) α β γ δ b a Eample (3) OFF-set: Epand : valid. valid. invalid. Update over to:
Eample (4) Redue Epand : invalid. invalid. valid. Epand over: Sort impliants Heuristis: sort by desending weight Opposite to the heursti sorting for epand Maimal redution an be determine eatly Theorem: Let α be in F and Q = F U D { α } Then, the maimally redued ube is: α = α superube (Q α ) Eample Epand over: α β Selet first impliant: Q = Superube= Cannot be redued. Selet seond impliant: Q = β = β superube (Q β ) = Redued over: Q = F U D { α } α = α superube (Q α) Irredundant over α β γ δ ε b a
Irredundant over Relatively essential set E r Impliants overing some minterms of the funtion not overed by other impliants Important remark: we do not know all the primes! Totally redundant set R t Impliants overed by the relatively essentials Partially redundant set R p Remaining impliants Eample E r = {α, ε} R t = R p = {β, γ, δ} α β γ δ ε Eample (2) Covering relations: β is overed by {α, γ}. γ is overed by {β, δ}. δ is overed by {γ, ε}. Minimum over: γ U E r