Ứng dụng thức tế của công thức đa thức tối tiểu

11Phần VIĐại Số Bool và hàm BoolBiên soạn:Nguyễn Viết Đơng2George Boole(1815-1864)3Tài liệu tham khảo [1] GS.TS. Nguyễn Hữu Anh, Tốn rời rạc, Nhà xuất bản giáo dục. [2] TS.Trần Ngọc Hội, Tốn rời rạc4Đại Số BoolMột đại số Bool (A,,) là một tập hợp A   với hai phép toán , , tức là hai ánh xạ:: AA  A (x,y) xy và : AA  A(x,y)xythỏa 5 tính chất sau:25Đại Số Bool Tính giao hoán: x,yAxy = yx;xy = yx; Tính kết hợp: x,y,zA(xy) z = x(y z);(xy) z = x (y z). Tính phân bố: x,y,zAx(y z) = (xy) (xz);x (y z) = (xy)  (xz).6Đại Số Bool Có các phần tử trung hòa 1 và 0: x Ax1 =1x = x;x0 =0x = x. Mọi phần tử đều có phần tử bù: x A, A,x  =  x = 0;x  =  x = 1.xxxxx7Đại Số BoolVí dụ:Xét F là tập hợp tất cả các dạng mệnh đề theo nbiến p1, p2,…,pnvới hai phép toán nối liền ,phép toán nối rời , trong đó ta đồng nhất cácdạng mệnh đề tương đương. Khi đó F là một đạisố Bool với phần tử 1 là hằng đúng 1, phần tử 0là hằng sai 0, phần tử bù của dạng mệnh đề E làdạng mệnh đề bùE8Đại Số BoolXét tập hợp B = {0, 1}. Trên B ta đònh nghóa haiphép toán , như sau:Khi đó, B trở thành một đại số Bool39Đại Số BoolCho đại số Bool (A,,). Khi đó với mọi x,yA, ta có:1) xx = x; xx = x.2) x0 = 0x =0; x1 =1x = 1.3) Phần tử bù của x là duy nhất và = x;4) Công thức De Morgan:5) Tính hấp thụ:x(xy) = x; x (xy) = x.x y x y;x y x y.    x1 0; 0 1.10Định nghĩa hàm BoolHàm Bool n biến là ánh xạ f : Bn B , trong đó B = {0, 1}. Như vậy hàm Bool n biến là một hàm số có dạng :f = f(x1,x2,…,xn), trong đó mỗi biến trong x1, x2,…, xnvà fchỉ nhận giá trò trong B = {0, 1}.Ký hiệu Fnđể chỉ tập các hàm Bool n biến. Ví dụ: Dạng mệnh đề E = E(p1,p2,…,pn) theo n biến p1, p2,…, pnlà một hàm Bool n biến.11Xét hàm Bool n biến f(x1,x2,…,xn)Vì mỗi biến xichỉ nhận hai giá trò 0, 1 nên chỉ có2ntrường hợp của bộ biến (x1,x2,…,xn).Do đó, để mô tả f, ta có thể lập bảng gồm 2nhàngghi tất cả các giá trò của f tùy theo 2ntrường hợp củabiến. Ta gọi đây là bảng chân trò của fBảng chân trị12Ví dụXét kết quả f trong việc thông qua một quyết đònh dựa vào 3 phiếu bầu x, y, z 1. Mỗi phiếu chỉ lấy một trong hai giá trò: 1 (tán thành) hoặc 0 (bác bỏ). 2. Kết qủa f là 1 (thông qua quyết đònh) nếuđược đa số phiếu tán thành, là 0 (không thôngqua quyết đònh) nếu đa số phiếu bác bỏ.413Hàm BoolKhi đó f là hàm Bool theo 3 biến x, y, z có bảng chân trò như sau:14Các phép tốn trên hàm BoolCác phép tốn trên Fnđược định nghĩa như sau:1. Phép cộng Bool :Với f, g  Fnta đònh nghóa tổng Bool của f và g:f  g = f + g – fg x = (x1,x2,…,xn) Bn, (f  g)(x) = f(x) + g(x) – f(x)g(x) 15Các phép tốn trên hàm Bool2. Phép nhân Bool :Với f, g Fnta đònh nghóa tích Bool của f và g f  g = fg x=(x1,x2,…,xn)Bn,(f  g)(x) = f(x)g(x) Ta thường viết fg thay cho f  g 16Các phép tốn trên hàm Bool3) Phép lấy hàm bù:Với f  Fnta đònh nghóa hàm bù của f như sau:1ff4) Thứ tự trên FnVới f, g  Fnthì f g   x = (x1, x2, …, xn) Bn, f(x)  g(x) 517Dạng nối rời chính tắc của Hàm BoolXét tập hợp các hàm Bool của n biến Fntheo n biến x1,x2,…,xn Mỗi hàm bool xihay được gọi là từ đơn. Đơn thức là tích khác không của một số hữu hạn từ đơn. Từ tối tiểu là tích khác không của đúng n từ đơn. Công thức đa thức là công thức biểu diễn hàm Bool thành tổng của các đơn thức. Dạng nối rời chính tắc là công thức biểu diễn hàm Bool thành tổng của các từ tối tiểu.ixDạng nối liền chính tắc của hàm Bool Từ tối đại là phần bù của các từ tối tiểu. Mỗi từ tối đại là tổng Boole của n từ đơn. Công thức biểu diễn hàm Boole f thành tích của các từ tối đại gọi là dạng nối liền chính tắc của hàm Boole f1819Công thức đa thức tối tiểu Đơn giản hơnCho hai công thức đa thức của một hàm Bool :f = m1 m2 ….  mk(F)f = M1  M2 …  Ml(G)Ta nói rằng công thức F đơn giản hơn công thức G nếutồn tại đơn ánh : {1,2, ,k} → { 1,2,…, l} sao cho với mọii {1,2, ,k} thì số từ đơn của mikhông nhiều hơn số từđơn của M(i)20Công thức đa thức tối tiểu Đơn giản như nhauNếu F đơn giản hơn G và G đơn giản hơn Fthì ta nói F và G đơn giản như nhau** Công thức đa thức tối tiểu:Công thức F của hàm Bool f được gọi là tốitiểu nếu với bất kỳ công thức G của f mà đơngiản hơn F thì F và G đơn giản như nhau6Phương pháp biểu đồ Karnaugh.Xét f là hàm Bool theo n biến x1,x2,…,xnvới n = 3 hoặc 4.f là hàm Bool theo 3 biến x, y, z. Khi đó bảng chân trị của fgồm 8 hàng. Thay cho bảng chân trị của f ta vẽ một bảng chữnhật gồm 8 ơ, tương ứng với 8 hàng của bảng chân trị, đượcđánh dấu như sau:Trường hợp n = 3:1.Khi một ô nằm trong dãy được đánh dấubởi x thì tại đó x =1, bởi thì tại đó x =0,tương tự cho y, z.Với qui ước:2.Các ô tại đó f bằng 1 sẽ được đánh dấu (tôđậm hoặc gạch chéo). Tập các ô được đánhdấu được gọi là biểu đồ Karnaugh của f, kýhiệu là kar(f).xf là hàm Bool theo 4 biến x, y, z, t. Khi đóbảng chân trò của f gồm 16 hàng. Thay chobảng chân trò của f ta vẽ một bảng chữ nhậtgồm 16 ô, tương ứng với 16 hàng của bảngchân trò, được đánh dấu như sau:Trường hợp n = 4:1. Khi một ô nằm trong dãy được đánh dấu bởi x thìtại đó x =1, bởi thì tại đó x =0, tương tự choy, z, t.Với qui ước:2. Các ô tại đó f bằng 1 sẽ được đánh dấu (tô đậmhoặc gạch chéo). Tập các ô được đánh dấu đượcgọi là biểu đồ karnaugh của f, ký hiệu là kar(f).x7Đònh lýCho f, g là các hàm Bool theo n biến x1,x2,…,xn. Khi đó:a) kar(fg) = kar(f)kar(g).b) kar(fg) = kar(f)kar(g).c) kar(f) gồm đúng một ô khi và chỉ khi f là một từ tối tiểud) kar(f)  kar(g)  f gHai ô được gọi là kề nhau (theo nghóa rộng), nếuchúng là hai ô liền nhau hoặc chúng là ô đầu, ôcuối của cùng một hàng (cột) nào đó. Nhận xétrằng, do cách đánh dấu như trên, hai ô kề nhau chỉlệch nhau ở một biến duy nhất.Tế bào là hình chữ nhật (theo nghĩa rộng) gồm2kơ (k = 0,1,…,n – 1)Tế bào Nếu T là một tế bào thì T là biểu đồ karnaugh của mộtđơn thức duy nhất m, cách xác đònh m như sau: lần lượtchiếu T lên các cạnh, nếu toàn bộ hình chiếu nằm trọntrong một từ đơn nào thì từ đơn đó mới xuất hiện trongm.Ví du 1ï:Xét các hàm Bool theo 4 biến x, y, z, t.Ví dụ 2:Xét các hàm Bool theo 4 biến x, y, z, t.8Ví dụ 3:Xét các hàm Bool theo 4 biến x, y, z, t.Ví dụ 4:Xét các hàm Bool theo 4 biến x, y, z, t.Ví dụ 5:Xét các hàm Bool theo 4 biến x, y, z, t.Tế bào sau: Là biểu đồ Karnaugh của đơn thức nào?Cho hàm Bool f. Ta nói T là một tế bàolớn của kar(f) nếu T thoả hai tính chấtsau:Tế bào lớn.a) T là một tế bào và T  kar(f).b) Không tồn tại tế bào T’ nào thỏa T’  T và T  T’  kar(f).9Ví dụ: Xét hàm Bool f theo 4 biến x, y, z, t có biểu đồ karnaugh như sau:Kar(f) có 6 tế bào lớn như sau:10Thuật toán.Bước 1: Vẽ biểu đồ karnaugh của f.Bước 2: Xác đònh tất cả các tế bào lớn của kar(f).Bước 3: Xác đònh các tế bào lớn mà nhất thiết phải chọn.Ta nhất thiết phải chọn tế bào lớn T khi tồntại một ô của kar(f) mà ô này chỉ nằm trongtế bào lớn T và không nằm trong bất kỳ tếbào lớn nào khác.Bước 4: Xác đònh các phủ tối tiểu gồm các tếbào lớn.Nếu các tế bào lớn chọn được ở bước 3 đã phủđược kar(f) thì ta có duy nhất một phủ tối tiểugồm các tế bào lớn của kar(f).Nếu các tế bào lớn chọn được ở bước 3 chưaphủ được kar(f) thì xét một ô chưa bò phủ, sẽ có ítnhất hai tế bào lớn chứa ô này, ta chọn mộttrong các tế bào lớn này. Cứ tiếp tục như thế tasẽ tìm được tất cả các phủ gồm các tế bào lớn củakar(f). Loại bỏ các phủ không tối tiểu, ta tìmđược tất cả các phủ tối tiểu gồm các tế bào lớncủa kar(f).Thuật toán.Bước 5: Xác đònh các công thức đa thức tối tiểu của f. Từ các phủ tối tiểu gồm các tế bàolớn của kar(f) tìm được ở bước 4 ta xácđònh được các công thức đa thức tươngứng của f. So sánh các công thức trên .Loại bỏ các công thức đa thức mà cómột công thức đa thức nào đó thực sựđơn giản hơn chúng. Các công thức đathức còn lại chính là các công thức đathức tối tiểu của f.Thuật toán.Một số ví dụVí dụ 1:Tìm tất cả các công thức đa thức tối tiểu của hàm Bool:     f(x, y,z,t) xyzt xy xz yz xy(z t)11GiảiTa có     f xy zt xy xz yz xyz xytBước 1: Vẽ kar(f)Bước 3: Xác đònh các tế bào lớn nhất thiết phải chọn.- Ô 1 nằm trong một tế bào lớn duy nhất x. Ta chọn x.- Ô 3 nằm trong một tế bào lớn duy nhất yz. Ta chọn yz.Bước 4: Xác đònh các phủ tối tiểu gồm các tế bào lớn. Các ô được các tế bào lớn đã chọn ở bước 3 phủ như sau:Ta được duy nhất mộtphủ tối tiểu gồm cáctế bào lớn của kar(f):x; yz.Bước 5: Xác đònh các công thức đa thức tối tiểu của f.Ứng với phủ tối tiểu gồm các tế bào lớntìm được ở bước 4 ta tìm được duy nhấtmột công thức đa thức tối tiểu của f:f x yz12Ví dụ 2: Tìm tất cả các công thức đa thức tối tiểu của hàm Bool:f(x,y,z,t) y(zt zt) y(zt xzt) xzt    GiảiTa cóf yzt yzt yzt xyzt xzt    Bước 1: Vẽ kar(f):Bước 2: Kar(f) có các tế bào lớn như sau:Bước 3: Xác đònh các tế bào lớn nhất thiết phải chọn1. Ô 1 nằm trong một tế bào lớn duy nhất Ta chọn xtxt2. Ô 4 nằm trong một tế bào lớn duy nhất xztTa chọn xzt3. Ô 6 nằm trong một tế bào lớn duy nhất Ta chọnztztBước 4: Xác đònh các phủ tối tiểu gồm các tế bào lớnCác ô được các tế bào lớn đã chọn ở bước 3 phủ như sau:13Bước 5: Xác đònh các công thức đa thức tối tiểu của f.Ứng với hai phủ tối tiểu gồm các tế bào lớn tìm được ở bước 4 ta tìm được hai công thức đa thức của f:Ta thấy hai công thức trên đơn giản như nhau. Do đó, chúng đều là hai công thức đa thức tối tiểu của f.Vídụ 3(BÀI 7Đề2007)• Hãy xác đònh các công thức đa thức tối tiểu của hàm Bool: )()( yxytztzxtyzxf • Biểu đồ Karnaugh: (0,25đ)14• Các tế bào lớn: (0,5đ)• Các tế bào lớn bắt buộc phải chọn là• Còn lại ô (1,4) có thể nằm trong 2 tế bào lớntyxtzxztzyxz ,,,,tzxztxz ,,tyxzy ,• Do đó có 2 công thức đa thức tương ứng vớiphủ tối tiểu: (0, 5đ)• Trong đó chỉ có công thức thứ hai là tối tiểu(0,25đ)zytzxztxzftyxtzxztxzfMạng logic (Mạng các cổng)Đònh nghóaMột mạng logic hay một mạng các cổng là một hệ thống có dạng:trong đó: - Input: x1, x2, , xnlà các biến Bool.- Output f(x1, x2, , xn) là hàm Bool.Ta nói mạng logic trên tổng hợp hay biểu diễn hàm Bool f.Một mạng logic bất kỳ luôn luôn được cấu tạo từ một số mạng sơ cấp mà ta gọi là các cổng.Cổng NOTCổng ANDCổng ORCổng NAND Cổng NOR15xxinverterxyx + yOR gateAND gatexyx yx1x1+x2+…+xnOR gate with n inputsx2xnx1x2xnx1x2…xnAND gate with n inputsBasic GatesxxxyORyx yWe combine gates by allowing output of one gate to become input of other gatesyxyxxy xxyx yyxyxxy xxxyyx + y + zExample. Construct the circuit that provides the outputzyxzyxzyx )( zyzzzyxzyx )( Example of CircuitsExample. Design a circuit to simulate the voting of a committee of three persons based on the majoritySolution. The voting of three persons are represented by three Boolean variables x, y, z : 1 for YES and 0 for NOyxyzx yxzx zy zx y + x z + y z16Example of CircuitsExample. Design a circuit for a light controlled by two switchesSolution. The switches are represented by two Boolean variables x, y : 1 for CLOSED and 0 for OPENLet F(x, y) =1 when the light is ON and 0 when it is OFFAssume that F(1, 1) =1 when both switches are closedx y F(x, y)1 1 11 0 00 1 00 0 1Then the Boolean function F(x, y) is determined by the truth tableThe corresponding circuitxxxyyx yyxyyxxy Example. Design a circuit for a light controlled by three switchesSolution. The switches are represented by three Boolean variables x, y, z : 1 for CLOSED and 0 for OPENThen the Boolean function F(x, y, z) is determined by the truth tableAssume that F(1, 1, 1) =1 when three switches are closedx y z F(x, y)1 1 1 11 1 0 01 0 1 01 0 0 10 1 1 00 1 0 10 0 1 10 0 0 0Let F(x,y,z) =1 when the light is ON and 0 when it is OFFxzxyzx y zzyxyzyxzyxzyxzyxzyxyzyxzzxzyxzyxxyThe corresponding circuit17zyxf xzyzyxf  This formula contains only three literals. It allows us to design a circuit to represent f with only one OR gate with three inputszxyxyyzxzzxwxxyThe corresponding circuityzzywzxwyzxyxzyfĐề thi2009.Xét hàm Boola) Hãy tìm các từ tối tiểu m sao cho m b) Suy ra cách biểu diễn f như là tích của các từ tối đại , trong đómỗi từ tối đại là tổng Bool của 4 từ đơnf( )( ) ( )f x y xy z t z xt y t y z t     