Hàm Bool
Tài liệu tham khảo
• [1] Ts.Trần Ngọc Hội, Toán rời rạc. • [2] Gs.Ts Nguyễn Hữu Anh, Toán rời rạc,
Nhà xuất bản giáo dục.
B = { 0, 1}
• Trên tập hợp B ta định nghĩa các phép
toán cộng, nhân và phép lấy bù của các phần tử thuộc B như sau: – 0 + 0 = 0; 0 + 1 = 1 + 0 = 1 + 1 = 1 – 0 . 0 = 0 . 1 = 1 . 0 = 0; 1 . 1 = 1 =
=
0 1, 1
0
luật phủ định của phủ định, luật lũy đẳng, luật về phần tử trung hòa, luật về phần tử trung bù, luật giao hoán, luật kết hợp, luật phân bố, luật De Morgan, luật thống trị.
Định nghĩa hàm Bool
ạ ộ ộ ế M t hàm Bool n bi n là m t ánh x
f : Bn (cid:0) B , trong đó B = {0, 1}.
ế ạ ộ ộ ố M t hàm Bool n bi n là m t hàm s có d ng :
1, x2,…, xn ch ỉ
ế ỗ
ậ ậ ị ị f = f(x1,x2,…,xn), trong đó m i bi n trong x nh n hai giá tr 0, 1 và f nh n giá tr trong B = {0, 1}.
ể
ụ
1,p2,…,pn) theo n bi n pế
1, p2,…,
ế
ộ
ứ Ví d : bi u th c logic E = E(p pn là m t hàm Bool n bi n.
ể ỉ ậ ế Ký hi u ệ Fn đ ch t p các hàm Bool bi n.
Bảng chân trị
ế
Xét hàm Bool n bi n f(x
1,x2,…,xn)
ị
ỉ
ỉ
ậ ế ợ ủ ộ ế
ỗ Vì m i bi n x ờ 2n trư ng h p c a b bi n (x
i ch nh n hai giá tr 0, 1 nên ch có 1,x2,…,xn).
ả
ể ậ
f, ta có th l p b ng g m 2
ồ ờ
ả ể n hàng Do đó, đ mô t ợ ủ n trư ng h p c a ị ủ ấ ả t c các giá tr c a f tùy theo 2 ghi t ị ủ bi n. ế Ta g i ọ đây là b ng chân tr c a f ả
Ví dụ
ế
ộ
ế ủ ự
ế
ệ Xét k t q a f trong vi c thông qua m t Quy t ầ ị đ nh d a vào 3 phi u b u x, y, z
ỗ ỉ ấ ế ị
ị
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ông qua ỏ ế đa s phi u bác b . ị Quy t ế đ nh) n u
ế
ả
Khi đó f là hàm Bool theo 3 bi n x, y, z có b ng chân tr nhị ư sau:
ộ 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 ).
Hàm Bool
Các phép toán trên hàm Bool
=
1
f
(
x1 x2 ,
,
,
xn )
f x1 x2 , ,
(
,
xn )
(f+g) (x1, x2, …, xn) = f(x1, x2, …, xn) + g(x1, x2,
…, xn)
(f.g) (x1, x2, …, xn) = f(x1, x2, …, xn) . g(x1, x2,
…, xn)
(cid:0) - (cid:0)
Dạng nối rời chinh tắc của Hàm Bool
• Xét tập hợp các hàm Bool của n biến Fn theo n biến x1
,x2,…,xn.
ix • Mổi hàm bool xi hay đượ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.
=
+
xyz
yz +
f =
+
+
+
t
x
=
( +
t +
+
xyz t ( + xyzt
) xyzt
xyzt
x yz t ( ) + x yzt
) xyzt
x yzt
ả
ị
Xét hàm Bool f có b ng chân tr
ở : ị đ nh b i
f = xyz+xyz+xyz+xyz
ổ
ạ
ạ M ng logic (M ng các c ng)
Các cổng
f = xz + yz + xt + yt + xyz
f = xz + yz + xt + yt + xyz
Công thức đa thức tối tiểu
• Đơn giản hơn Cho 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ằngcông thức F đơn giản hơn công thức G nếu tốn tại đơn ánh h: {1,2,..,k} → { 1,2,…, l} sao cho với mọi i(cid:0) {1,2,..,k} thì số từ đơn của mi không nhiều hơn số từ đơn của Mh(i)
Công thức đa thức tối tiểu
• Đơn giản như nhau Nếu F đơn giản hơn G và G đơn giản
hơn F thì 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ối tiểu nếu
với bất kỳ công thức G của f mà đơn giản hơn F thì F và G đơn giản như nhau
Phương pháp biểu đồ Karnaugh
ượ
ấ
ở
ạ
c đánh d u b i x thì t
i đó
x
ươ
ạ
ự
ằ ộ Khi m t ô n m trong dãy đ x =1, b i ở thì t
i đó
ng t
cho y, z, t.
x =0, t
• Tập các ô tại đó f bằng 1 được gọi là
biểu đồ karnaugh của f, ký hiệu là kar(f)
x
x
t
z
z
t
y
y
t
y
ủ ơ
ể
ồ
ứ yzt
Bi u đ karnaugh c a đ n th c
x
x
t
z
t
y
y
z
y
• Hai ô được gọi là kề nhau (theo nghĩa
rộng), nếu chú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 đó
• Tế bào: hình chữ nhật gồm một lũy thừa
của 2 những ô kề nhau.
Tế bào
tế bào 2
16 16
Tế bào 4
4 16
Tế bào 4
4 1
Tế bào 8
4 4
Tế bào lớn
• Cho hàm Bool f. Ta nói T là một tế bào lớn
của kar(f) nếu T thoả hai tính chất sau: – T là một tế bào và T(cid:0) – Không tồn tại tế bào T’ nào thỏa T’ (cid:0)
kar(f)
T(cid:0)
kar(f)
ế ể ồ Xét hàm Bool f theo 4 bi n x, y, z, t có bi u đ karnaugh
ế ể ồ Xét hàm Bool f theo 4 bi n x, y, z, t có bi u đ karnaugh
ể ế ồ Xét hàm Bool f theo 4 bi n x, y, z, t có bi u đ karnaugh
ế ể ồ Xét hàm Bool f theo 4 bi n x, y, z, t có bi u đ karnaugh
ế ể ồ Xét hàm Bool f theo 4 bi n x, y, z, t có bi u đ karnaugh
ế ể ồ Xét hàm Bool f theo 4 bi n x, y, z, t có bi u đ karnaugh
Thuậ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 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ồn
tại một ô của kar(f) mà ô này chỉ nằm trong tế bào lớn T và không nằm trong bất kỳ tế bào lớn nào khác.
Thuật toán
• Bước 4: Xác định các phủ tối tiểu gồm các
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ểu gồ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ưa phủ được kar(f) thì:
xét một ô chưa bị phủ, sẽ có ít nhất hai tế bào
lớn chứa ô này, ta chọn một trong các tế bào lớn này.
Cứ tiếp tục như thế ta sẽ tìm được tất cả các
phủ gồm các tế bào lớn của kar(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ớn của kar(f).
tế bào lớ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ào lớ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.
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 đa thức còn lại chính là các
công thức đa thức tối tiểu của f.
Ví dụ 1
• Tìm tất cả các công thức đa thức tối tiểu của
=
+
+
+
+
+
xyzt
xy
xz
yz
t
f x y z t , )
( ,
,
xy z (
)
=
+
+
+
+
+
xyzt
xy
xz
yz
xyz
xyt
f x y z t , )
( ,
,
hàm Bool:
=
+
+
+
+
+
yzt x
xy
xz
z y
xyz
xyt
f x y z t , )
( ,
,
=
+
+
+
+
+
xyzt
y x
xz
yz
xy z
y x t
f x y z t , )
( ,
,
=
+
+
+
+
+
xyzt
xy
x z
yz
y x z
xyt
f x y z t , )
( ,
,
=
+
+
+
+
+
xyzt
y x
xz
yz
xyz
xyt
f x y z t , )
( ,
,
=
+
+
+
+
+
xyzt
xy
xz
yz
xyz
xyt
f x y z t , )
( ,
,
=
+
+
+
+
+
xyzt
xy
xz
yz
xyz
xyt
f x y z t , )
( ,
,
=
+
+
+
+
+
xyzt
xy
xz
yz
xyz
xyt
f x y z t , )
( ,
,
ướ
ẽ
B c 1:V kar(f):
=
+
+
+
+
+
xyzt
xy
xz
yz
xyz
xyt
f x y z t , )
( ,
,
ướ
ế
ư
ớ
B c 2: Kar(f) có các t
bào l n nh sau:
x
yz
=
+
+
+
+
+
xyzt
xy
xz
yz
xyz
xyt
f x y z t , )
( ,
,
ướ
ị
ế
ấ
ớ
ế
ả
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 Ô 3 n m trong m t t
ấ bào l n duy nh t x. Ta ch n x. ấ bào l n duy nh t yz. Ta ch n yz.
1
2
4
5
x
7
8
9
10
1 3 2
4 6 5
2
3
5
6
7 8
9 10
yz
=
+
+
+
+
+
xyzt
xy
xz
yz
xyz
xyt
f x y z t , )
( ,
,
ướ
ủ ố ể
ế
ớ
ị B c 4: Xác đ nh các ph t
bào l n
ồ i ti u g m các t 2 1
3
4 6 5
1 1 1 3 3 3 2 2 2
x 7 8
4 4 4 6 6 6 5 5 5
9 10
7 7 7 8 8 8
1 3 2 9 9 9 10 10 10
4 6 5
yz
7 8
ượ
ủ ố ể ồ
ộ
ế
ớ ủ
Ta đ
c duy nh t m t ph t
i ti u g m các t
bào l n c a kar(f):
ấ x + yz.
9 10
=
+
+
+
+
+
xyzt
xy
xz
yz
xyz
xyt
f x y z t , )
( ,
,
• Bước 5: Xác định các công thức đa thức tối tiểu
Ứng với phủ tối tiểu gồm các tế bào lớn tìm được ở bước 4 ta tìm được duy nhất một công thức đa thức tối tiểu của f:
x + yz
của f.
=yzt + yzt+yzt+xyzt+xzt
f
1 2
5 3 4
6 7 8 9
ẽ B1: V Kar(f)
=yzt + yzt+yzt+xyzt+xzt
f 1 2 5
3 4 1 2 5 3 4 1 2 5 3 4
6 7 8 9 6 7 8 9 6 7 8 9
1 2 5 3 4
1 2 5 3 4 1 2 5 3 4
6 7 8 9
6 7 8 9 6 7 8 9
ị
ế
ớ
B2: Xác đ nh t
bào l n
=yzt + yzt+yzt+xyzt+xzt
f 1 2 5
3 4 1 2 5 3 4 1 2 5 3 4
6 7 8 9 6 7 8 9 6 7 8 9
1 2 5 3 4
1 2 5 3 4 1 2 5 3 4
6 7 8 9
6 7 8 9 6 7 8 9
ế
ớ
ấ
ế
ọ
ả
ị B3: Xác đ nh các t
bào l n nh t thi
t ph i ch n
=yzt + yzt+yzt+xyzt+xzt
f
• Bước 3: Xác định các tế bào lớn nhất thiết
zt
phải chọn – Ô 6 nằm trong một tế bào lớn duy nhất . Ta
zt
chọn
xt
xt Ta chọn
– Ô 1 nằm trong một tế bào lớn duy nhất .
– Ô 4 nằm trong một tế bào lớn duy nhất xzt .
Ta chọn xzt
=yzt + yzt+yzt+xyzt+xzt
f 1 2 5
3 4 3 4
+
6 7 8 9 1 2 5 zt 6 7 8 9 1 2 3 4 5 + xzt xt 6 7 8 9
1 2 5 3 4
1 2 5 3 4 1 2 5 3 4
6 7 8 9
6 7 8 9 6 7 8 9
ủ ố ể ồ
ị
ế
ớ
B4: Xác đ nh các ph t
i ti u g m các t
bào l n
=yzt + yzt+yzt+xyzt+xzt
i ô 5 ch a b ph
ư ị ủ ế
ạ ằ
ớ
ọ
Còn l Ô 5 n m trong 2 t
bào l n: 2 cách ch n
f 1 2 5
3 4
+
+
zt
xt
xzt
6 7 8 9
1 2 5 3 4 1 2 5 3 4
6 7 8 9 6 7 8 9
ủ ố ể ồ
ị
ế
ớ
B4: Xác đ nh các ph t
i ti u g m các t
bào l n
=yzt + yzt+yzt+xyzt+xzt
i ô 5 ch a b ph
ư ị ủ ế
ạ ằ
ớ
ọ
Còn l Ô 5 n m trong 2 t
bào l n: 2 cách ch n
f 1 2 5
3 4
+
+
+
zt
xt
xzt
xyz
6 7 8 9 1 2 5 3 4
6 7 8 9
ủ ố ể ồ
ị
ế
ớ
B4: Xác đ nh các ph t
i ti u g m các t
bào l n
=yzt + yzt+yzt+xyzt+xzt
i ô 5 ch a b ph
ư ị ủ ế
ạ ằ
ọ
ớ
Còn l Ô 5 n m trong 2 t
bào l n: 2 cách ch n
f 1 2 5
3 4
+
+
+
6 7 8 9
zt
xt
xzt
yzt
1 2 5 3 4
6 7 8 9
ủ ố ể ồ
ị
ế
ớ
B4: Xác đ nh các ph t
i ti u g m các t
bào l n
=yzt + yzt+yzt+xyzt+xzt
f
• Bước 5: Xác định các công thức đa thức
tối tiểu của f
+
+
+
zt
xt
xzt
xyz
+
+
+
zt
xt
xzt
yzt
=
+
+
+
+
+
yzt x
xy
xz
z y
xyz
xyt
f x y z t , )
( ,
,
=
+
+
+
+
+
xyzt
y x
xz
yz
xy z
y x t
f x y z t , )
( ,
,
=
+
+
+
+
+
xyzt
xy
x z
yz
y x z
xyt
f x y z t , )
( ,
,
=
+
+
+
+
+
xyzt
x
y
xz
yz
xyz
xyt
f x y z t , )
( ,
,
=
+
+
+
+
+
xyzt
xy
xz
yz
xyz
xyt
f x y z t , )
( ,
,
=
+
+
+
+
+
xyzt
xy
xz
yz
xyz
xyt
f x y z t , )
( ,
,