TRƯỜNG ĐẠI HỌC CÔNG NGHE IT012 – TỔ CHỨC VÀ CẤU TRÚC MÁY TÍNH II CHƯƠNG 3 ĐẠI SỐ BOOLEAN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA KỸ THUẬT MÁY TÍNH 1 Nội dung Đại số Boolean Biểu diễn hàm Boolean Tối ư[.]
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA KỸ THUẬT MÁY TÍNH IT012 – TỔ CHỨC VÀ CẤU TRÚC MÁY TÍNH II CHƯƠNG ĐẠI SỐ BOOLEAN Nội dung Đại số Boolean Biểu diễn hàm Boolean Tối ưu luận lý Phương pháp Karnaugh Câu hỏi Bài tập IT012 – Tổ chức Cấu trúc Máy tính II Đại số Boolean (1/5) – Định nghĩa • Đại số Boolean (luận lý nhị phân) cấu trúc đại số liên quan đến việc thao tác với biến luận lý nhị phân (biến lận lý) Biến luận lý mang giá trị: 1, cao thấp, sai, … Thao tác luận lý: AND (∙, &), OR (+, |), NOT (~, ¯) • Ví dụ: A B biến luận lý nhị phân: A ∙ B = A & B = AND(A, B) = AB A + B = A | B = OR(A, B) ~A = IT012 – Tổ chức Cấu trúc Máy tính II Đại số Boolean (2/5) – Định nghĩa • Một tập B khác rỗng với thao tác (phép toán) AND (∙), OR (+) NOT (¯) gọi đại số Boolean tiên đề sau thỏa mãn với x, y, z B Tiên đề 1: Cấu trúc đóng với phép tốn ∙ +.Nếu x, y B thì: (x + y) B x ∙ y B Tiên đề 2: Tồn phần tử trung hòa Tồn phần tử trung hòa khác thuộc B, ký hiệu cho: x ∙ = ∙ x = x x + = + x = x IT012 – Tổ chức Cấu trúc Máy tính II Đại số Boolean (3/5) – Định nghĩa • Tiên đề 3: Tính giao hốn x ∙ y = y ∙ x x + y = y + x Tiên đề 4: Tính phân phối x ∙ (y + z) = x ∙ y + x ∙ z x + y ∙ z = (x + y)(x + z) Tiên đề 5: Tồn phần tử bù Với x B, tồn B cho: x ∙ = ∙ x = x + = + x = gọi phần tử bù x Tiên đề 6: Tồn phần tử x, y B cho x ≠ y IT012 – Tổ chức Cấu trúc Máy tính II Đại số Boolean (4/5) – Hàm Boolean • Kết hợp biến, số, tốn tử, dấu ngoặc tạo thành Biểu thức Boolean Ví dụ: x + yz • Kết hợp theo thứ tự: tên hàm, dấu cuối biểu thức Boolean cho Hàm Boolean (Hàm Boolean Dạng chuẩn) Ví dụ: f(x, y, z) = x + yz IT012 – Tổ chức Cấu trúc Máy tính II Đại số Boolean (5/7) – Bảng chân trị • Bảng chân trị (hay cịn gọi bảng tổ hợp) thể mối quan hệ giá trị hàm Boolean biến hàm 2n hàng (n số biến) n+1 cột f(x, y, z) = x + yz x y z f 0 0 0 0 0 Giá trị hàm tương ứng với tổ hợp biến 1 1 0 Liệt kê tất tổ hợp 1 1 1 IT012 – Tổ chức Cấu 1 trúc 1Máy tính II Đại số Boolean (2/2) – Dạng tắc • Dạng tắc dạng biểu diễn hàm Boolean tổng minterm khiến hàm Boolean có giá trị (1-minterm) tích maxterm khiến hàm Boolean có giá trị (0-maxterm) Biến x y Minterm z Biểu thức Maxterm Ký hiệ u Biểu thức x y z f hiệ 0 0 u 0 1 Ký f(x, y, z) = + + + x y + x y z 0 m0 x+y+z M0 0 0 m1 x+y+ M1 1 1 m2 x+ +z M2 1 m3 x+ + M3 0 1 0 m4 +y+z M4 1 1 x z m5 +y+ M5 1 y, z) = (x + y + z) ( x + + z) ( + y + ) f(x, 1 xy m6 + +z M6 1 1 1 xyz m IT012 – Tổ chức Cấu trúc Máy tính II + + M Đại số Boolean (4/5) – Tính đối ngẫu • Biểu thức: x + yz • Hàm: f(x, y, z) = x + yz • Nếu biểu thức Boolean biểu thức đối ngẫu đúng: 0 ↔ AND ↔ OR • Ví dụ: x ∙ (y + z) = x ∙ y + x ∙ z đối ngẫu x + y ∙ z = (x + y)(x + z) x ∙ = ∙ x = đối ngẫu x + = + x = IT012 – Tổ chức Cấu trúc Máy tính II Đại số Boolean (5/5) – Định lý • Định lý 1: Tính lũy đẳng x + x = x x ∙ x = x • Định lý 4: Tính phủ định phủ định: =x • Định lý 2: Tính nuốt • Định lý 5: Tính kết hợp x + (y + z) = (x + y) + z x(y ∙ z) = (x ∙ y)z x + = x ∙ = • Định lý 3: Tính hấp thụ • Định lý 6: Định lý De-Morgan x + x ∙ y = x x(x + y) = x 10 IT012 – Tổ chức Cấu trúc Máy tính II Tối ưu luận lý (1/2) • Tiên đề 2: Tồn phần tử trung hòa x ∙ = ∙ x = x x + = + x = x • Tiên đề 5: Tồn phần tử bù x ∙ = ∙ x = x + = + x = • Định lý 1: Tính lũy đẳng x + x = x x ∙ x = x • Định lý 2: Tính nuốt x + = x ∙ = Tối ưu luận lý làm giảm số lượng • Định lý 3: Tính hấp thụ x + x ∙ y = x tổng/tích số lượng biến phần x(x + y) = x bù tổng/tích 11 IT012 – Tổ chức Cấu trúc Máy tính II Tối ưu luận lý (2/2) • • Có nhiều định lý tiên đề Nên sử dụng định lý nào? Tiên đề nào? • Biểu thức tối ưu hay chưa? Làm để phán đoán biểu thức chưa tối ưu? 12 IT012 – Tổ chức Cấu trúc Máy tính II Phương pháp Karnaugh (1/6) – Cơ sở • K-map phương pháp tối ưu luận lý hình học trực quan dựa tính chất đại số Boolean: xy + x = x(y + ) = x ‧ = x Tổng hai tích khác bit kết rút gọn bit khác • Tổng 1-minterm khác bit? (x + y)(x + ) = x + y = x + = x Tích hai tổng khác bit kết rút gọn bit khác • Tích 0-maxterm khác bit? 13 IT012 – Tổ chức Cấu trúc Máy tính II Phương pháp Karnaugh (2/6) – Cấu trúc • K-map mảng chiều ô f Số lượng ô = 2n (n số biến) Số lượng ô chiều = 2i (i số biến gán chiều) Mỗi ô gán tổ hợp theo mã Gray: chuỗi bit liên tiếp khác bit a f b f a a 1 14 f a b c f 0 1 1 IT012 – Tổ chức Cấu trúc Máy tính II a b c d 0 0 1 1 Phương pháp Karnaugh (3/6) – Cấu trúc 15 x y z 0 f f yz m0/M0 x 00 01 11 10 m1/M1 m0 m1 m3 m2 m2/M2 m4 m5 m7 m6 1 m3/M3 0 m4/M4 f yz 1 m5/M5 x 00 01 11 10 1 m6/M6 M0 M1 M3 M2 1 – Tổ m7chức /M7 và Cấu M M M IT012 trúc Máy tính II7 M6 Phương pháp Karnaugh (4/6) – Ngun tắc • Gom nhóm 2k liền kề với k ≥ k số biến tối ưu nhóm Gom 1-minterm -> Tổng tích có giá trị Gom 0-maxterm -> Tích tổng có giá trị • Số lần gom phải Số tích/tổng biểu thức cuối • Mỗi nhóm phải có khơng thuộc nhóm khác Tránh trường hợp dư thừa tích/tổng mà nhóm khác bao phủ 16 IT012 – Tổ chức Cấu trúc Máy tính II Phương pháp Karnaugh (5/6) F(x, y, z) = ∑ m(1, 3, 4, 7) F yz x 0 F(a, b, c) = ∏ M(1, 4, 5, 6) F a 1 0 1 0 F(a, b, c) 0= (b + )( + c) 17 c 1 1 1 F(x, y,1z) = z + yz + x b IT012 – Tổ chức Cấu trúc Máy tính II Phương pháp Karnaugh (6/6) f(x, y, z) = x + yz f yz f yz 0 1 1 1 0 1 1 1 0 x F(x, y, z) = x + yz 18 f(x, y, z) = (x + y+ ) x 0 0 F(x, y, z) = (y+ ) IT012 – Tổ chức Cấu trúc Máy tính II Quiz • F(A, B, C, D) = AC + BC + BCD + CD F AB 19 CD 0 1 1 0 0 1 IT012 – Tổ chức Cấu trúc Máy tính II Câu hỏi Bài tập (1/2) • Trình bày khác số học nhị phân luận lý nhị phân (đại số Boolean)? • Chứng minh định lý đại số Boolean? • Trình bày phương pháp biểu diễn hàm Boolean? Ưu nhược điểm phương pháp gì? • Tối ưu luận lý phương pháp đại số Boolean: F(A, B, C) = AB + AC + AB F(X, Y, Z) = (X + Y)(X + )(X + Y + Z) 20 IT012 – Tổ chức Cấu trúc Máy tính II ...Nội dung Đại số Boolean Biểu diễn hàm Boolean Tối ưu luận lý Phương pháp Karnaugh Câu hỏi Bài tập IT012 – Tổ chức Cấu trúc Máy tính II Đại số Boolean (1/5) – Định nghĩa • Đại số Boolean (luận... hỏi Bài tập (1/2) • Trình bày khác số học nhị phân luận lý nhị phân (đại số Boolean) ? • Chứng minh định lý đại số Boolean? • Trình bày phương pháp biểu diễn hàm Boolean? Ưu nhược điểm phương pháp... 6: Tồn phần tử x, y B cho x ≠ y IT012 – Tổ chức Cấu trúc Máy tính II Đại số Boolean (4/5) – Hàm Boolean • Kết hợp biến, số, toán tử, dấu ngoặc tạo thành Biểu thức Boolean Ví dụ: x + yz • Kết hợp