Kiến thức chuyên ngành luôn yêu cầu bạn phải cập nhật và trau dồi từng ngày.Để có nền tảng kiến thức vững chắc trước các kì thi…bạn không thể thiếu các tài liệu tham khảo hay được chia sẻ trên mạng Internet.Share to be share more
lazycatnct@gmail.com www.free4vn.org CHƯƠNG VIII ĐẠI SỐ BOOLE Các mạch điện máy tính dụng cụ điện tử khác có đầu vào, đầu vào số số 1, tạo đầu số Các mạch điện xây dựng cách dùng phần tử có hai trạng thái khác Chúng bao gồm chuyển mạch hai vị trí mở đóng dụng cụ quang học sáng tối Năm 1938 Claude Shannon chứng tỏ dùng quy tắc lôgic George Boole đưa vào năm 1854 “Các quy luật tư duy” ông để thiết kế mạch điện Các quy tắc tạo nên sở đại số Boole Sự hoạt động mạch điện xác định hàm Boole rõ giá trị đầu tập đầu vào Bước việc xây dựng mạch điện biểu diễn hàm Boole biểu thức lập cách dùng phép toán đại số Boole Biểu thức mà ta nhận chứa nhiều phép toán mức cần thiết để biểu diễn hàm Ở cuối chương này, ta có phương pháp tìm biểu thức với số tối thiểu phép tổng tích dùng để biểu diễn hàm Boole Các thủ tục mô tả đồ Karnaugh phương pháp Quine-McCluskey, chúng đóng vai trò quan trọng việc thiết kế mạch điện có hiệu cao 8.1 KHÁI NIỆM ĐẠI SỐ BOOLE 8.1.1 Định nghĩa: Tập hợp khác rỗng S với phép toán ký hiệu nhân ( ), cộng (+), lấy bù (’) gọi đại số Boole tiên đề sau thoả mãn với a, b, c ∈ S Tính giao hoán: a) a.b = b.a, b) a+b = b+a Tính kết hợp: a) (a.b).c = a.(b.c), b) (a+b)+c = a+(b+c) Tính phân phối: a) a.(b+c) = (a.b)+(a.c), b) a+(b.c) = (a+b).(a+c) Tồn phần tử trung hoà: Tồn hai phần tử khác S, ký hiệu cho: a) a.1 = 1.a = a, b) a+0 = 0+a = a gọi phần tử trung hoà phép gọi phần tử trung hoà phép + Tồn phần tử bù: Với a ∈ S, tồn phần tử a’∈ S cho: a) a.a’ = a’.a = 0, b) a+a’ = a’+a = upsoft.blogspot.com Trang 114 lazycatnct@gmail.com www.free4vn.org a’ gọi phần tử bù a Thí dụ 1: 1) Đại số lôgic đại số Boole, S tập hợp mệnh đề, phép toán ∧ (hội), ∨ (tuyển), − (phủ định) tương ứng với , +, ’, đ (đúng), s (sai) tương ứng với phần tử trung hoà 1, 2) Đại số tập hợp đại số Boole, S tập hợp P(X) gồm tập tập khác rỗng X, phép toán ∩ (giao), ∪ (hợp), − (bù) tương ứng với , +, ’, tập X, Ø tương ứng với phần tử trung hoà 1, 3) Cho B = {0,1}, phép toán , +, ’ B định nghĩa sau: 1.1 = 1, 1+1 = 1, 1’ = 0, 1.0 = 0, 1+0 = 1, 0’ = (1) 0.1 = 0, 0+1 = 1, 0.0 = 0, 0+0 = 0, Khi B đại số Boole Đây đại số lôgic, 1, tương ứng với đ (đúng), s (sai) Mỗi phần tử 0,1 B gọi bit Ta thường viết x thay cho x’ Tổng quát, gọi Bn tập hợp xâu n bit (xâu nhị phân độ dài n) Ta định nghĩa tích, tổng hai chuỗi bù chuỗi theo bit Bảng 1, mà thường gọi phép toán AND-bit, OR-bit, NOT-bit B n với phép toán tạo thành đại số Boole 4) Cho M tập hợp số thực có cận p, cận q tâm đối xứng O Các phép toán , +, ’ M định nghĩa sau: a.b = min(a, b), a+b = max(a, b), a’ điểm đối xứng a qua O Khi M đại số Boole, q, p tương ứng với phần tử trung hoà 1, 8.1.2 Chú ý: Trước hết cần lưu ý điều quan trọng sau đây: tiên đề đại số Boole xếp theo cặp a) b) Từ tiên đề a), ta thay +, thay + , thay thay ta tiên đề b) tương ứng Ta gọi cặp tiên đề a), b) đối ngẫu Do ta chứng minh định lý đại số Boole ta có định lý khác, đối ngẫu nó, cách thay tương ứng + (và ngược lại) Ta có: Quy tắc đối ngẫu: Đối ngẫu định lý định lý 8.1.3 Định lý: (Tính nuốt) a) a.0 = 0, b) a+1 = (Tính luỹ đẳng) a) a.a = a, upsoft.blogspot.com Trang 115 lazycatnct@gmail.com www.free4vn.org b) a+a = a (Hệ thức De Morgan) a) (a.b)’ = a’+b’, b) (a+b)’ = a’.b’ (Hệ thức bù kép) (a’)’ = a 10 a) 1’ = 0, b) 0’ = 11 (Tính hút) a) a.(a+b) = a, b) a+(a.b) = a Chứng minh: = a.a (tiên đề 5a)) = a.(a’+0) (tiên đề 4b)) = (a.a’)+(a.0) (tiên đề 3a)) = 0+(a.0) (tiên đề 5a)) = a.0 (tiên đề 4b)) a = a.1 (tiên đề 4a)) = a.(a+a’) (tiên đề 5b)) = (a.a)+(a.a’) (tiên đề 3a)) = (a.a)+0 (tiên đề 5a)) = a.a (tiên đề 4b)) Ta chứng minh a’+b’ bù a.b cách chứng minh rằng: (a.b).(a’+b’) = (theo 5a)) (a.b)+(a’+b’) = (theo 5b)) Thật vậy, (a.b).(a’+b’) = (a.b.a’)+(a.b.b’) = (a.a’.b)+(a.b.b’) = (0.b)+(a.0) = 0+0 = 0, (a.b)+(a’+b’) = (a’+b’)+(a.b) = (a’+b’+a).(a’+b’+b) = (1+b’).(a’+1) = 1.1 = Vì a.b có phần tử bù nên (a.b)’ = a’+b’ Có từ tiên đề 10 Có từ hệ thức 1.0 = 1+0 = 11 a.(a+b) = (a+0).(a+b) = a+(0.b) = a+0 = a 8.1.4 Chú ý: Hệ tiên đề đại số Boole nêu hệ tối thiểu Chẳng hạn, tiên đề tính kết hợp suy từ tiên đề khác Thật vậy, với A=(a.b).c B=a.(b.c), ta có: a+A = a+((a.b).c) = (a+(a.b)).(a+c) = a.(a+c) = a, a+B = a+(a.(b.c)) = (a+a).(a+(b.c)) = a.(a+(b.c)) = a, a’+A = a’+((a.b).c) = (a’+(a.b)).(a’+c) = ((a’+a).(a’+b)).(a’+c) = (1.(a’+b)).(a’+c) = (a’+b).(a’+c) = a’+(b.c), a’+B = a’+(a.(b.c)) = (a’+a).(a’+(b.c)) = 1.(a’+(b.c)) = a’+(b.c) Do a+A = a+B a’+A = a’+B Từ suy rằng: upsoft.blogspot.com Trang 116 lazycatnct@gmail.com www.free4vn.org A = A+0 = A+(a.a’) = (A+a).(A+a’) = (a+A).(a’+A) = (a+B).(a’+B)=(a.a’)+B=0+B= B hay ta có 2a) đối ngẫu ta có 2b) Ngoài ra, tính phần tử bù suy từ tiên đề khác Tương tự đại số lôgic, đại số Boole ta xét công thức, thành lập từ biến a, b, c, … nhờ phép toán , +, ’ Trong công thức, ta quy ước thực phép toán theo thứ tự: ’, , +; a.b viết ab, gọi tích a b a+b gọi tổng a b Ta biến đổi công thức, rút gọn công thức tương tự đại số lôgic Ta xét tích sơ cấp tổng sơ cấp tương tự “hội sơ cấp” “tuyển sơ cấp” Mọi công thức đưa dạng tích chuẩn tắc hoàn toàn dạng tổng chuẩn tắc hoàn toàn tương tự dạng “hội tuyển chuẩn tắc hoàn toàn” Mỗi công thức đại số Boole gọi biểu diễn hàm Boole 8.2 HÀM BOOLE 8.2.1 Định nghĩa: Ký hiệu B = {0, 1} Bn = {(x1, x2, …, xn) | xi∈ B, 1≤ i ≤ n}, B Bn đại số Boole (xem 2) 3) Thí dụ 1) Biến x gọi biến Boole nhận giá trị từ B Một hàm từ B n vào B gọi hàm Boole (hay hàm đại số lôgic) bậc n Các hàm Boole biểu diễn cách dùng biểu thức tạo biến phép toán Boole (xem Bảng Thí dụ 1) Các biểu thức Boole với biến x1, x2, …, xn định nghĩa đệ quy sau: - 0, 1, x1, x2, …, xn biểu thức Boole - Nếu P Q biểu thức Boole P , PQ P+Q biểu thức Boole Mỗi biểu thức Boole biểu diễn hàm Boole Các giá trị hàm nhận cách thay cho biến biểu thức Hai hàm n biến F G gọi F(a 1, a2, …, an)=G(a1, a2, …,an) với a1, a2, …, an∈ B Hai biểu thức Boole khác biểu diễn hàm Boole gọi tương đương Phần bù hàm Boole F hàm F với F (x1, x2, …, xn) = F ( x1 , x2 , , xn ) Giả sử F G hàm Boole bậc n Tổng Boole F+G tích Boole FG định nghĩa bởi: (F+G)(x1, x2, …, xn) = F(x1, x2, …, xn)+G(x1, x2, …, xn), (FG)(x1, x2, …, xn) = F(x1, x2, …, xn)G(x1, x2, …, xn) Thí dụ 2: Bậc Số hàm Boole Theo quy tắc nhân phép đếm ta suy n 16 có n phần tử khác gồm 256 số Vì hàm Boole việc gán 65.536 cho số 2n n phần 4.294.967.296 tử đó, nên lại theo quy tắc nhân có 18.446.744.073.709.551.616 n hàm Boole khác upsoft.blogspot.com Trang 117 lazycatnct@gmail.com www.free4vn.org Bảng sau cho giá trị 16 hàm Boole bậc phân biệt: x y F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 0 0 1 1 0 1 1 1 0 0 0 1 0 1 0 1 1 1 1 1 1 0 1 0 có số hàm thông dụng sau: - Hàm F1 hàm 0, - Hàm F2 hàm 1, - Hàm F3 hàm hội, F3(x,y) viết xy (hay x ∧ y), - Hàm F4 hàm tuyển, F4(x,y) viết x+y (hay x ∨ y), - Hàm F5 hàm tuyển loại, F5(x,y) viết x ⊕ y, - Hàm F6 hàm kéo theo, F6(x,y) viết x ⇒ y, - Hàm F7 hàm tương đương, F7(x,y) viết x ⇔ y, - Hàm F8 hàm Vebb, F8(x,y) viết x ↓ y, - Hàm F9 hàm Sheffer, F9(x,y) viết x ↑ y Thí dụ 3: Các giá trị hàm Boole bậc F(x, y, z) = xy+ z cho bảng sau: x 0 0 1 1 y 0 1 0 1 z 1 1 xy 0 0 0 1 F16 0 F(x, y, z) = xy+ z 1 1 z 1 1 8.2.2 Định nghĩa: Cho x biến Boole σ ∈ B Ký hiệu: σ x σ = 1, = x σ = Dễ thấy xσ = ⇔ x = σ Với hàm Boole F bậc n, ký hiệu: TF = {(x1, x2, …, xn)∈ Bn | F(x1, x2, …, xn)=1} Và gọi tập đặc trưng hàm F Khi ta có: TF = TF , TF+G = TF ∪ TG, TFG = TF ∩ TG x Cho n biến Boole x1, x2, …, xn Một biểu thức dạng: σ σ2 xi xi upsoft.blogspot.com σk xi k Trang 118 lazycatnct@gmail.com www.free4vn.org σ , σ , , σ k ∈ B, ≤ i1 < i2 < < ik ≤ n gọi hội sơ cấp n biến x1, x2, …, xn Số biến xuất hội sơ cấp đựoc gọi hạng của hội sơ cấp Cho F hàm Boole bậc n Nếu F biểu diễn dạng tổng (tuyển) số hội sơ cấp khác n biến biểu diễn gọi dạng tổng (tuyển) chuẩn tắc F Dạng tổng (tuyển) chuẩn tắc hoàn toàn dạng chuẩn tắc F mà hội sơ cấp có hạng n Thí dụ 4: x y + x y dạng tổng chuẩn tắc hàm x ⊕ y x + y x y + x y + x y dạng tổng chuẩn tắc hàm Sheffer x ↑ y 8.2.3 Mệnh đề: Mọi hàm Boole F bậc n biểu diễn dạng: F ( x1 , x2 , , xn ) = σ xi i F (σ , , σ i , xi +1 , , xn ) ∑ x1σ i (σ , ,σ n )∈B (1), i số tự nhiên bất kỳ, ≤ i ≤ n Chứng minh: Gọi G hàm Boole vế phải (1) Cho (x1, x2, …, xn)∈ TF Khi số hạng ứng với giá trị σ 1= x1, …, σ i= xi tổng vế phải (1) 1, (x1, x2, …, xn)∈ TG Đảo lại, (x1, x2, …, xn)∈ TG tức vế phải phải xảy số hạng đó, chẳng hạn số hạng ứng với giá trị ( σ 1, …, σ i), x1= σ 1, …, xi= σ i f( σ 1,…, σ i, xi+1,…, xn)=1 hay (x1, x2, …, xn)∈ TF Vậy TF=TG hay F=G Cho i=1 mệnh đề nhận xét vai trò biến x i nhau, ta hệ sau 8.2.4 Hệ quả: Mọi hàm Boole F bậc n khai triển theo biến xi: F ( x1 , , xn ) = xi F ( x1 , , xi −1 ,0, xi +1 , , xn ) + xi F ( x1 , , xi −1 ,1, xi +1 , , xn ) Cho i=n mệnh đề bỏ nhân tử tích, số hạng tổng, ta hệ sau 8.2.5 Hệ quả: Mọi hàm Boole F bậc n khai triển dạng: F ( x1 , , xn ) = ∑ x1σ xσn n (σ , ,σ n )∈TF 8.2.6 Chú ý: Từ Hệ 8.2.5, ta suy hàm Boole biểu diễn dạng tổng (tuyển) chuẩn tắc hoàn toàn Như hàm Boole biểu diễn biểu thức Boole chứa ba phép tích (hội), tổng (tuyển), bù (phủ định) Ta nói hệ {tích, tổng, bù} đầy đủ Bằng đối ngẫu, ta chứng minh kết tương tự việc thay tích tổng ngược lại, từ dẫn tới việc biểu diễn F qua tích tổng Biểu diễn gọi dạng tích (hội) chuẩn tắc hoàn toàn F: upsoft.blogspot.com Trang 119 lazycatnct@gmail.com www.free4vn.org F ( x1 , , xn ) = ∏ ( x1σ + + xσn n ) (σ ,,σ n )∈TF Thí dụ 5: Dạng tổng chuẩn tắc hoàn toàn hàm F cho Thí dụ là: F ( x, y, z ) = x y z + x y z + x y z + xy z + xyz , dạng tích chuẩn tắc hoàn toàn là: F ( x, y, z ) = ( x + y + z )( x + y + z )( x + y + z ) 8.3 MẠCH LÔGIC 8.3.1 Cổng lôgic: x1 x2 xn-1 xn F(x1, x2, …, xn) Xét thiết bị hình trên, có số đường vào (dẫn tín hiệu vào) có đường (phát tín hiệu ra) Giả sử tín hiệu vào x 1, x2, …, xn (ta gọi đầu vào hay input) tín hiệu F (đầu hay output) có hai trạng thái khác nhau, tức mang bit thông tin, mà ta ký hiệu Ta gọi thiết bị với đầu vào đầu mang giá trị 0, mạch lôgic Đầu mạch lôgic hàm Boole F đầu vào x 1, x2, …, xn Ta nói mạch lôgic hình thực hàm F Các mạch lôgic tạo thành từ số mạch sở, gọi cổng lôgic Các cổng lôgic sau thực hàm phủ định, hội tuyển Cổng NOT: Cổng NOT thực hàm phủ định Cổng có đầu vào Đầu F(x) phủ định đầu vào x F(x)= 0 = 1, F ( x) = x = x 1 x = Chẳng hạn, xâu bit 100101011 qua cổng NOT cho xâu bit 011010100 Cổng AND: Cổng AND thực hàm hội Đầu F(x,y) hội (tích) đầu vào 1 x = y = 1, F ( x, y ) = xy = 0 trường hợp khác x y F(x,y)=xy x y z F(x,y,z)=xyz Chẳng hạn, hai xâu bit 101001101 111010110 qua cổng AND cho 101000100 upsoft.blogspot.com Trang 120 lazycatnct@gmail.com www.free4vn.org Cổng OR: Cổng OR thực hàm tuyển (tổng) Đầu F(x,y) tuyển (tổng) đầu vào 1 x = hay y = 1, F ( x, y ) = x + y = 0 x = y = x x y z t F(x,y)=x+y y F=x+y+z+t Chẳng hạn, hai xâu bit 101001101 111010100 qua cổng OR cho 111011101 8.3.2 Mạch lôgic: Tổ hợp cổng: Các cổng lôgic lắp ghép để mạch lôgic thực hàm Boole phức tạp Như ta biết hàm Boole biểu diễn biểu thức chứa phép −, , + Từ suy lắp ghép thích hợp cổng NOT, AND, OR để mạch lôgic thực hàm Boole Thí dụ 6: Xây dựng mạch lôgic thực hàm Boole cho bảng sau x 0 0 1 1 y 0 1 0 1 z 1 1 F(x,y,z) 0 0 1 Theo bảng này, hàm F có dạng tổng (tuyển) chuẩn tắc hoàn toàn là: F ( x, y, z ) = xyz + xy z + x yz Hình vẽ mạch lôgic thực hàm F cho x y z F = xyz + xy z + x yz upsoft.blogspot.com Trang 121 lazycatnct@gmail.com www.free4vn.org Biểu thức F(x, y, z) rút gọn: xyz + xy z + x yz = xy ( z + z ) + x yz = xy + x yz Hình cho ta mạch lôgic thực hàm xy + x yz x y • • F = xy + x yz z Hai mạch lôgic hai hình thực hàm Boole, ta nói hai mạch lôgic tương đương, mạch lôgic thứ hai đơn giản Vấn đề tìm mạch lôgic đơn giản thực hàm Boole F cho trước gắn liền với vấn đề tìm biểu thức đơn giản biểu diễn hàm Đây vấn đề khó lý thú, ý nghĩa thực tiễn không chục năm trước Ta vừa xét việc thực hàm Boole mạch lôgic gồm cổng NOT, AND, OR Dựa vào đẳng thức x + y = x y xy = x + y , cho ta biết hệ {., −} hệ {+, −} hệ đầy đủ Do thực hàm Boole mạch lôgic gồm có cổng NOT, AND NOT, OR 0 x = y = 1, Xét hàm Sheffer F ( x, y ) = x ↑ y = Mạch lôgic thực 1 x = hay y = hàm ↑ gọi cổng NAND, vẽ hình x y O x↑ y Dựa vào đẳng thức x = x ↑ x, xy = ( x ↑ y ) ↑ ( x ↑ y ), x + y = ( x ↑ x) ↑ ( y ↑ y ) , cho ta biết hệ { ↑ } đầy đủ, nên hàm Boole thực mạch lôgic gồm có cổng NAND 0 x = hay y = 1, Xét hàm Vebb F ( x, y ) = x ↓ y = Mạch lôgic thực hàm 1 x = y = ↓ gọi cổng NOR, vẽ hình x y O x↓ y Tương tự hệ { ↓ } đầy đủ nên hàm Boole thực mạch lôgic gồm có cổng NOR Một phép toán lôgic quan trọng khác phép tuyển loại: upsoft.blogspot.com Trang 122 lazycatnct@gmail.com www.free4vn.org 0 x = y , F ( x, y ) = x ⊕ y = 1 x ≠ y Mạch lôgic cổng lôgic, gọi cổng XOR, vẽ hình x⊕ y x y Mạch cộng: Nhiều toán đòi hỏi phải xây dựng mạch lôgic có nhiều đường ra, cho đầu F1, F2, …, Fk hàm Boole đầu vào x1, x2, …, xn x1 x2 xn-1 xn F1(x1, x2, …, xn) F2(x1, x2, …, xn) Fk(x1, x2, …, xn) Chẳng hạn, ta xét phép cộng hai số tự nhiên từ khai triển nhị phân chúng Trước hết, ta xây dựng mạch duợc dùng để tìm x+y với x, y hai số 1-bit Đầu vào mạch x y Đầu số 2-bit cs , s bit tổng c bit nhớ x y c s 0+0 = 00 0 0 0+1 = 01 1 1+0 = 01 0 1+1 = 10 1 Từ bảng trên, ta thấy s = x ⊕ y, c = xy Ta vẽ mạch thực hai hàm s = x ⊕ y c = xy hình Mạch gọi mạch cộng hai số 1-bit hay mạch cộng bán phần, ký hiệu DA s = x⊕ y x • x y c = xy y DA s c • Xét phép cộng hai số 2-bit a a1 b2 b1 , a2 a1 b2 b1 Thực phép cộng theo cột, cột thứ (từ phải sang trái) ta tính a1 + b1 bit tổng s1 bit nhớ c1; cột thứ hai, ta tính a + b2 + c1 , tức phải cộng ba số 1-bit upsoft.blogspot.com Trang 123 lazycatnct@gmail.com www.free4vn.org Cho x, y, z ba số 1-bit Tổng x+y+z số 2-bit cs , s bit tổng x+y+z c bit nhớ x+y+z Các hàm Boole s c theo biến x, y, z xác định bảng sau: x 0 0 1 1 y 0 1 0 1 z 1 1 c 0 1 1 s 1 0 Từ bảng này, dễ dàng thấy rằng: s = x⊕ y⊕ z Hàm c viết dạng tổng chuẩn tắc hoàn toàn là: c = x yz + x yz + xy z + xyz Công thức c rút gọn: c = z ( x y + x y ) + xy ( z + z ) = z ( x ⊕ y ) + xy Ta vẽ mạch thực hai hàm Boole s = x ⊕ y ⊕ z c = z ( x ⊕ y ) + xy hình đây, mạch ghép nối hai mạch cộng bán phần (DA) cổng OR Đây mạch cộng ba số 1-bit hay mạch cộng toàn phần, ký hiệu AD z • x y • s • • c z x y DA DA s c upsoft.blogspot.com x y z AD s c Trang 124 lazycatnct@gmail.com www.free4vn.org Trở lại phép cộng hai số 2-bit a a1 b2 b1 Tổng a a1 + b2 b1 số 3-bit c2 s s1 , s1 bit tổng a1+b1: s1 = a1 ⊕ b1 , s2 bit tổng a2+b2+c1, với c1 bit nhớ a1+b1: s = a ⊕ b2 ⊕ c1 c2 bit nhớ a2+b2+c1 Ta có mạch thực ba hàm Boole s1, s2, c2 hình b2 a2 b1 a1 AD DA c1 c2 s2 s1 Dễ dàng suy mạch cộng hai số n-bit, với n số nguyên dương Hình sau cho mạch cộng hai số 4-bit c4 b4 a4 b3 a3 b2 a2 b1 a1 AD AD AD DA s4 c3 c2 s3 c1 s2 s1 8.4 CỰC TIỂU HOÁ CÁC MẠCH LÔGIC Hiệu mạch tổ hợp phụ thuộc vào số cổng bố trí cổng Quá trình thiết kế mạch tổ hợp bắt đầu bảng rõ giá trị đầu tổ hợp giá trị đầu vào Ta luôn sử dụng khai triển tổng tích mạch để tìm tập cổng lôgic thực mạch Tuy nhiên,khai triển tổng tích chứa số hạng nhiều mức cần thiết Các số hạng khai triển tổng tích khác biến, cho số hạng xuất biến số hạng xuất phần bù nó, tổ hợp lại Chẳng hạn, xét mạch có đầu x = y = z = x = z = y = Khai triển tổng tích mạch xyz + x yz Hai tích khai triển khác biến, biến y Ta tổ hợp lại sau: xyz + x yz = ( y + y ) xz = 1xz = xz upsoft.blogspot.com Trang 125 lazycatnct@gmail.com www.free4vn.org Do xz biểu thức với phép toán biểu diễn mạch cho Mạch thứ hai dùng cổng, mạch thứ phải dùng ba cổng đảo (cổng NOT) 8.4.1 Bản đồ Karnaugh: Để làm giảm số số hạng biểu thức Boole biểu diễn mạch, ta cần phải tìm số hạng để tổ hợp lại Có phương pháp đồ thị, gọi đồ Karnaugh, dùng để tìm số hạng tổ hợp hàm Boole có số biến tương đối nhỏ Phương pháp mà ta mô tả Maurice Karnaugh đưa vào năm 1953 Phương pháp dựa công trình trước E.W Veitch Các đồ Karnaugh cho ta phương pháp trực quan để rút gọn khai triển tổng tích, chúng không thích hợp với việc khí hoá trình Trước hết, ta minh hoạ cách dùng đồ Karnaugh để rút gọn biểu thức hàm Boole hai biến Có bốn hội sơ cấp khác khai triển tổng tích hàm Boole có hai biến x y Một đồ Karnaugh hàm y y Boole hai biến gồm bốn ô vuông, hình vuông xy x xy biểu diễn hội sơ cấp có mặt khai triển ghi số xy xy Các hình ô gọi kề hội sơ cấp mà chúng x biểu diễn khác biến Thí dụ 7: Tìm đồ Karnaugh cho biểu thức: a) xy + x y b) x y + x y c) x y + x y + x y rút gọn chúng Ta ghi số vào ô vuông hội sơ cấp biểu diễn ô có mặt khai triển tổng tích Ba đồ Karnaugh cho hình sau y x x 1 y y 1 x x Việc nhóm hội sơ cấp hình cách sử dụng đồ Karnaugh cho khai triển Khai triển cực tiểu tổng tích tương ứng là: a) y, b) x y + x y , c) x + y Bản đồ Karnaugh ba biến hình chữ nhật chia thành tám ô Các ô biểu diễn tám hội sơ cấp có Hai ô y z y z yz gọi kề hội sơ cấp mà chúng xyz x xy z xyz x yz biểu diễn khác biến Một cách để lập đồ Karnaugh ba biến x x yz x y z x y z x yz cho hình bên yz upsoft.blogspot.com Trang 126 lazycatnct@gmail.com www.free4vn.org Để rút gọn khai triển tổng tích ba biến, ta dùng đồ Karnaugh để nhận dạng hội sơ cấp tổ hợp lại Các khối gồm hai ô kề biểu diễn cặp hội sơ cấp tổ hợp lại thành tích hai biến; khối x x biểu diễn hội sơ cấp tổ hợp lại thành biến nhất; khối gồm tất tám ô biểu diễn tích biến nào, cụ thể biểu thức Thí dụ 8: Dùng đồ Karnaugh ba biến để rút gọn khai triển tổng tích sau: a) xy z + x y z + x yz + x y z , b) x yz + x y z + x yz + x yz + x y z , c) xyz + xy z + x yz + x y z + x yz + x yz + x y z Bản đồ Karnaugh cho khai triển tổng tích cho hình sau: yz yz 1 x x x x yz yz yz yz yz yz yz yz x 1 1 x 1 yz yz 1 1 Việc nhóm thành khối cho thấy khai triển cực tiểu thành tổng Boole tích Boole là: a) x z + y z + x yz , b) y + xz , c) x + y + z Bản đồ Karnaugh bốn biến hình vuông chia làm 16 ô Các ô biểu diễn 16 hội sơ cấp có Một cách lập đồ Karnaugh bốn biến cho hình wx wx wx wx yz yz yz yz wxyz wxy z wx y z wx yz w x yz wxy z wx y z wx yz w x yz wxy z wx y z w x yz wxyz wxy z wx y z wx yz Hai ô gọi kề hội sơ cấp mà chúng biểu diễn khác biến Do đó, ô kề với bốn ô khác Sự rút gọn khai triển tổng tích bốn biến thực cách nhận dạng khối gồm 2, 4, 16 ô biểu diễn hội sơ cấp tổ hợp lại Mỗi ô biểu diễn hội sơ cấp dùng để lập tích có biến đưa vào khai triển Cũng trường upsoft.blogspot.com Trang 127 lazycatnct@gmail.com www.free4vn.org hợp đồ Karnaugh hai ba biến, mục tiêu cần phải nhận dạng khối lớn có chứa số cách dùng số khối, mà trước hết khối lớn 8.4.2 Phương pháp Quine-McCluskey: 8.4.2.1 Mở đầu: Ta thấy đồ Karnaugh dùng để tạo biểu thức cực tiểu hàm Boole tổng tích Boole Tuy nhiên, đồ Karnaugh khó dùng số biến lớn bốn Hơn nữa, việc dùng đồ Karnaugh lại dựa việc rà soát trực quan để nhận dạng số hạng cần nhóm lại Vì nguyên nhân đó, cần phải có thủ tục rút gọn khai triển tổng tích khí hoá Phương pháp Quine-McCluskey thủ tục Nó dùng cho hàm Boole có số biến Phương pháp W.V Quine E.J McCluskey phát triển vào năm 1950 Về bản, phương pháp Quine-McCluskey có hai phần Phần đầu tìm số hạng ứng viên để đưa vào khai triển cực tiểu tổng tích Boole mà ta gọi nguyên nhân nguyên tố Phần thứ hai xác định xem số ứng viên đó, số hạng thực dùng 8.4.2.2 Định nghĩa: Cho hai hàm Boole F G bậc n Ta nói G nguyên nhân F TG ⊂ TF, nghĩa G ⇒ F Dễ thấy hội sơ cấp dạng tổng chuẩn tắc F nguyên nhân F Hội sơ cấp A F gọi nguyên nhân nguyên tố F A xoá biến hội nhận đuợc không nguyên nhân F Nếu F1, …, Fk nguyên nhân F TFi ⊂ TF , ≤ i ≤ k Khi Tk ∑ Fi = TFi ⊂ TF Do i =1 i =1 F= k k ∑ Fi nguyên nhân F i =1 Cho S hệ nguyên nhân F Ta nói hệ S đầy đủ F G T = TG , nghĩa F ∑ G∈S G∈S 8.4.2.3 Mệnh đề: Hệ nguyên nhân nguyên tố hàm F hệ đầy đủ Chứng minh: Gọi S hệ nguyên nhân nguyên tố F Ta có TG ⊂ TF , ∀g ∈ S , T = TG ⊂ TF F= G' Nên ∑ G Giả sử dạng tổng chuẩn tắc hoàn toàn F T = nên F ∑ G '∈S ' G∈S G∈S TG ' G '∈S ' Xét G '∈ S ' , G’ nguyên nhân nguyên tố F cách xoá bớt số biến G’ ta thu nguyên nhân nguyên tố G F Khi TG ' ⊂ TG T ⊂ TG T = TG F= G TG ' ⊂ TG hay F Vì F hay G '∈S ' upsoft.blogspot.com G∈S G∈S G∈S ∑ G∈S Trang 128 lazycatnct@gmail.com Dạng tổng chuẩn tắc www.free4vn.org F= ∑ G gọi dạng tổng chuẩn tắc thu gọn F G∈S 8.4.2.4 Phương pháp Quine-McCluskey tìm dạng tổng chuẩn tắc thu gọn: Giả sử F hàm Boole n biến x1, x2, …, xn Mỗi hội sơ cấp n biến biểu diễn dãy n ký hiệu bảng {0, 1, −} theo quy ước: ký tự thứ i hay xi có mặt hội sơ cấp bình thường hay với dấu phủ định, xi mặt ký tự − Chẳng hạn, hội sơ cấp biến x1, …, x6 x1 x3 x4 x6 biểu diễn 0−11−0 Hai hội sơ cấp gọi kề biểu diễn nói chúng khác vị trí 0, Rõ ràng hội sơ cấp dán với phép dán Ax + A x = A chúng kề Thuật toán tiến hành sau: Lập bảng gồm nhiều cột để ghi kết dán Sau thực bước sau: Bước 1: Viết vào cột thứ biểu diễn nguyên nhân hạng n hàm Boole F Các biểu diễn chia thành nhóm, biểu diễn nhóm có số ký hiệu nhóm xếp theo thứ tự số ký hiệu tăng dần Bước 2: Lần lượt thực tất phép dán biểu diễn nhóm i với biểu diễn nhóm i+1 (i=1, 2, …) Biểu diễn tham gia phép dán ghi nhận dấu * bên cạnh Kết dán ghi vào cột Bước 3: Lặp lại Bước cho cột không thu thêm cột Khi tất biểu diễn dấu * cho ta tất nguyên nhân nguyên tố F Thí dụ 9: Tìm dạng tổng chuẩn tắc thu gọn hàm Boole: F1 = w x yz + wx yz + w x yz + w x yz + w x yz + wxyz + wxyz , F2 = w x y z + w x yz + w x yz + wx y z + wx yz + wxy z + wxyz 0001* 0101* 0011* 1001* 1011* 0111* 1111* 0−01* 00−1* −001* −011* 10−1* 01−1* 0−11* 1−11* −111* 0−−1 −0−1 −−11 0010* 0011* 1100* 1011* 1101* 1110* 1111* 001− −011 110−* 11−0* 1−11 11−1* 111−* 11−− Từ bảng ta có dạng tổng chuẩn tắc thu gọn F1 F2 là: F1 = wz + xz + yz , F2 = w x y + x yz + wyz + wx upsoft.blogspot.com Trang 129 lazycatnct@gmail.com www.free4vn.org 8.4.2.5 Phương pháp Quine-McCluskey tìm dạng tổng chuẩn tắc tối thiểu: Sau tìm dạng tổng chuẩn tắc thu gọn hàm Boole F, nghĩa tìm tất nguyên nhân nguyên tố nó, ta tiếp tục phương pháp QuineMcCluskey tìm dạng tổng chuẩn tắc tối thiểu (cực tiểu) F sau Lập bảng chữ nhật, cột ứng với cấu tạo đơn vị F (mỗi cấu tạo đơn vị hội sơ cấp hạng n dạng tổng chuẩn tắc hoàn toàn F) dòng ứng với nguyên nhân nguyên tố F Tại ô (i, j), ta đánh dấu cộng (+) nguyên nhân nguyên tố dòng i phần cấu tạo đơn vị cột j Ta nói nguyên nhân nguyên tố i phủ cấu tạo đơn vị j Một hệ S nguyên nhân nguyên tố F gọi phủ hàm F cấu tạo đơn vị F phủ thành viên hệ Dễ thấy hệ S phủ hàm F đầy đủ, nghĩa tổng thành viên S F Một nguyên nhân nguyên tố gọi cốt yếu thiếu hệ nguyên nhân nguyên tố phủ hàm F Các nguyên nhân nguyên tố cốt yếu tìm sau: cột có dấu +, xem dấu + thuộc dòng dòng ứng với nguyên nhân nguyên tố cốt yếu Việc lựa chọn nguyên nhân nguyên tố bảng đánh dấu, để dạng tổng chuẩn tắc tối thiểu, tiến hành theo bước sau Bước 1: Phát tất nguyên nhân nguyên tố cốt yếu Bước 2: Xoá tất cột phủ nguyên nhân nguyên tố cốt yếu Bước 3: Trong bảng lại, xoá nốt dòng không dấu + sau có hai cột giống xoá bớt cột Bước 4: Sau bước trên, tìm hệ S nguyên nhân nguyên tố với số biến phủ cột lại Tổng nguyên nhân nguyên tố cốt yếu nguyên nhân nguyên tố hệ S dạng tổng chuẩn tắc tối thiểu hàm F Các bước 1, 2, có tác dụng rút gọn bảng trước lựa chọn Độ phức tạp chủ yếu nằm Bước Tình tốt nguyên nhân nguyên tố cốt yếu Trường hợp lựa chọn hàm F có dạng tổng chuẩn tắc tối thiểu dạng tổng chuẩn tắc thu gọn Tình xấu nguyên nhân nguyên tố cốt yếu Trường hợp ta phải lựa chọn toàn bảng Thí dụ 10: Tìm dạng tổng chuẩn tắc tối thiểu hàm Boole cho Thí dụ wz xz yz w x yz + + upsoft.blogspot.com wx yz + w x yz + + + w x yz w x yz wxyz wxyz + + + + + Trang 130 lazycatnct@gmail.com www.free4vn.org Các nguyên nhân nguyên tố cốt yếu nên dạng tổng chuẩn tắc tối thiểu F1 là: F1 = wz + xz + yz wxy z w x yz w x yz wx wxy x yz wyz + + + + + wx y z + wx yz + wxy z + wxyz + + Các nguyên nhân nguyên tố cốt yếu nằm dòng Sau rút gọn, bảng dòng 3, cột Việc chọn S đơn giản: chọn hai nguyên nhân nguyên tố lại Vì ta hai dạng tổng chuẩn tắc tối thiểu là: F2 = wx + w x y + x yz , F2 = wx + w x y + wyz upsoft.blogspot.com Trang 131 lazycatnct@gmail.com www.free4vn.org BÀI TẬP CHƯƠNG VIII: Cho S tập hợp ước nguyên dương 70, với phép toán •, + ’ định nghĩa S sau: a • b = UCLN(a, b), a + b = BCNN(a, b), a’ = 70/a Chứng tỏ S với phép toán •, + ’ lập thành đại số Boole Chứng minh trực tiếp định lý 6b, 7b, 8b (không dùng đối ngẫu để suy từ 6a, 7a, 8a) Chứng minh rằng: a) (a+b).(a+b’) = a; b) (a.b)+(a’.c) = (a+c).(a’+b) Cho hàm Boole F1, F2, F3 xác định bảng sau: x 0 0 1 1 y 0 1 0 1 z 1 1 F1 1 1 0 F2 1 0 1 F3 1 1 1 Vẽ mạch thực hàm Boole Hãy dùng cổng NAND để xây dựng mạch với đầu sau: a) x b) xy c) x+y d) x ⊕ y Hãy dùng cổng NOR để xây dựng mạch với đầu cho Bài tập Hãy dùng cổng NAND để dựng mạch cộng bán phần Hãy dùng cổng NOR để dựng mạch cộng bán phần Dùng đồ Karnaugh, tìm dạng tổng chuẩn tắc tối thiểu (khai triển cực tiểu) hàm Boole ba biến sau: a) F = x yz + x yz b) F = xyz + xy z + + x yz + x y z c) F = xy z + + x yz + x y z + x yz + x yz d) F = xyz + x yz + x y z + x yz + x y z + x y z upsoft.blogspot.com Trang 132 lazycatnct@gmail.com www.free4vn.org 10 Dùng đồ Karnaugh, tìm dạng tổng chuẩn tắc tối thiểu hàm Boole bốn biến sau: a) F = wxyz + wx yz + wx y z + w x y z + w x yz b) F = wxy z + wx yz + w x yz + wx yz + w x y z + w x yz c) F = wxyz + wxy z + wx yz + w x yz + w x y z + wx yz + w x y z + w x yz d) F = wxyz + wxy z + wx yz + w x yz + w x y z + wxyz + w x yz + w x y z + w x yz 11 Dùng phương pháp Quine-McCluskey, tìm dạng tổng chuẩn tắc tối thiểu hàm Boole ba biến cho Bài tập vẽ mạch thực dạng tối thiểu tìm 12 Dùng phương pháp Quine-McCluskey, tìm dạng tổng chuẩn tắc tối thiểu hàm Boole bốn biến cho Bài tập vẽ mạch thực dạng tối thiểu tìm 13 Hãy giải thích làm dùng đồ Karnaugh để rút gọn dạng tích chuẩn tắc (tích tổng) hoàn toàn hàm Boole ba biến (Gợi ý: Đánh dấu số tất tuyển sơ cấp biểu diễn tổ hợp khối tuyển sơ cấp.) 14 Dùng phương pháp Bài tập 13, rút gọn dạng tích chuẩn tắc hoàn toàn: F = ( x + y + z )( x + y + z )( x + y + z )( x + y + z ) upsoft.blogspot.com Trang 133 lazycatnct@gmail.com www.free4vn.org TÀI LIỆU THAM KHẢO [1] Nguyễn Cam-Chu Đức Khánh, Lý thuyết đồ thị, NXB Thành phố Hồ Chí Minh, 1999 [2] Hoàng Chúng, Đại cương toán học hữu hạn, NXB Giáo dục, 1997 [3] Phan Đình Diệu, Lý thuyết Ô-tô-mat thuật toán, NXB Đại học THCN, 1977 [4] Đỗ Đức Giáo, Toán rời rạc, NXB Đại học Quốc Gia Hà Nội, 2000 [5] Nguyễn Xuân Quỳnh, Cơ sở toán rời rạc ứng dụng, NXB Giáo dục, 1995 [6] Đặng Huy Ruận, Lý thuyết đồ thị ứng dụng, NXB Khoa học Kỹ thuật, 2000 [7] Nguyễn Tô Thành-Nguyễn Đức Nghĩa, Toán rời rạc, NXB Giáo dục, 1997 [8] Claude Berge, Théorie des graphes et ses applications, Dunod, Paris 1963 [9] Richard Johnsonbaugh, Discrete Mathematics, Macmillan Publishing Company, New york 1992 upsoft.blogspot.com Trang 134 ... sở toán rời rạc ứng dụng, NXB Giáo dục, 1995 [6] Đặng Huy Ruận, Lý thuyết đồ thị ứng dụng, NXB Khoa học Kỹ thuật, 2000 [7] Nguyễn Tô Thành-Nguyễn Đức Nghĩa, Toán rời rạc, NXB Giáo dục, 1997 [8] ... [2] Hoàng Chúng, Đại cương toán học hữu hạn, NXB Giáo dục, 1997 [3] Phan Đình Diệu, Lý thuyết Ô-tô-mat thuật toán, NXB Đại học THCN, 1977 [4] Đỗ Đức Giáo, Toán rời rạc, NXB Đại học Quốc Gia Hà... www.free4vn.org BÀI TẬP CHƯƠNG VIII: Cho S tập hợp ước nguyên dương 70, với phép toán •, + ’ định nghĩa S sau: a • b = UCLN(a, b), a + b = BCNN(a, b), a’ = 70/a Chứng tỏ S với phép toán •, + ’ lập thành