Tải bản đầy đủ (.pdf) (19 trang)

Hàm Bool trong ngôn ngữ CC++

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (193.68 KB, 19 trang )

Bài giảng Tóan rời rạc Course 4: Hàm Bool
Created by LeTrungSan
- 1 -


HÀM BOOL


1.

Biến bool & các phép toán 2

1.1. Biến bool 2

1.2. Các phép toán 2

1.3. Các tính chất quan trọng 3

1.4. Biểu thức Bool 3

2.

Hàm bool 4

2.1. Định nghĩa hàm bool 4

2.2. Các phép toán trên hàm bool 6

2.3. Dạng nối rời chính tắc 6

3.



Mạng các cổng logic 8


4.

Quan hệ đơn giản hơn & công thức đa thức tối tiểu 11


5.

Phương pháp bản đồ Karnaugh cực tiểu hóa hàm bool 12

5.1. Bản đồ Karnaugh 12

5.2. Tế bào 14

5.3. Thuật tóan 16



Bài Tập 19
Bài giảng Tóan rời rạc Course 4: Hàm Bool
Created by LeTrungSan
- 2 -

Các phép tóan trên hai con số 0 và 1 được nhà tóan học người Anh George Boole
đề xướng vào giữa thế kỷ XIX. Lý thuyết về hàm bool ngày nay phát triển rực rỡ về ứng
dụng của nó và được giảng dạy cho sinh viên các ngành Điện, Điện tử và Tin học.


1. Biến bool & các phép toán

1.1. Biến bool
Xét tập hợp B ={0, 1}. Các biến chỉ nhận giá trị trong tập B được gọi là biến Bool
(còn gọi là biến logic). Như vậy gọi x là biến Bool thì x chỉ có thể nhận giá trị là 0
hoặc 1.

1.2. Các phép toán
Trên tập B{0,1} ta trang bị (định nghiã ) ba phép toán gọi là tổng bool, tích bool và
phần bù của biến bool như sau:
• Tổng của hai biến bool a và b là một biến bool kí hiệu là a ⊕ b (còn kí hiệu
khác là: a

b, nếu không sợ nhầm lẫn ta cũng viết a + b).
• Tích của hai biến bool a và b là một biến bool kí hiệu là a ∗ b (còn kí hiệu
khác là: a

b, nếu không sợ nhầm lẫn ta cũng viết ab).
• Phần bù của biến bool a là một biến bool kí hiệu là
a
.
Giá trị của tổng bool, tích bool và phần bù được thể hiện trong bảng sau:
Tổng Tích Phần bù
a b a ⊕ b a b a ∗ b
0 0 0 0 0 0
a

a

0 1 1 0 1 0 0 1

1 0 1 1 0 0 1 0
1 1 1 1 1 1


Theo bảng trên ta có: 0 ⊕ 0 = 0; 0 ⊕ 1 = 1; 1 ⊕ 0=1; 1⊕1=1.
0∗0=0; 0∗1=0; 1∗0=0; 1∗1=1.
01 =
;
10 =
.
Từ nay trở đi ta sẽ viết a+b, ab thay cho a ⊕ b và a ∗ b. Như vậy ta sẽ được 1+1=1
và 1.1 = 1
Bài giảng Tóan rời rạc Course 4: Hàm Bool
Created by LeTrungSan
- 3 -
Nếu không sử dụng các dấu ngoặc thì thứ tự ưu tiên các phép toán sẽ là: trước hết,
thực hiện tất cả các phép lấy phần bù, sau đó lấy tích bool rồi mới đến tổng bool. Điều
này được thể hiện qua ví dụ sau:
Ví dụ 1: 0.1+
(
)
10 +
= (0.1) +
(
)
10 +
= 0+
1
= 0 + 0 = 0


1.3. Các tính chất quan trọng

Tính chất Biểu thức
[1]. Bù kép

aa =

a+b = b+a
[2]. Giao hoán
a.b = b.a
a + (b+c) = (a+b) + c
[3]. Kết hợp
a(bc) = (ab)c
a(b+c) = ab + ac
[4]. Phân phối
a + (bc) = (a+b)(a+c)

baba .)(
=+

[5]. De Morgan

=
ab ba
+

a + 0 = a
[6]. Trung hòa (đồng nhất)
a.1 = a
a + 1 = 1

[7]. Thống trị (nuốt)
a.0 = 0
a + a = a
[8]. Lũy đẳng
a.a = a

Ngoài ra ta còn có: [9].
;1
=+
aa

;0.
=
aa

[10].
;aaba
=
+

babaa +=+

[11].
baabbbaaa
+=+==
)(1.



1.4. Biểu thức Bool

Tương tự như trong đại số thông thường, ta gọi biểu thức xây dựng từ các con số
mà ta gọi là hằng số bool: 0, 1; các biến bool và các phép toán được gọi là biểu thức
bool.
Ví dụ 2: với a, b ∈B{0,1},
F(a,b) = a + (a
b
).
ab
+ ab + 1 là biểu thức bool của hai biến a và b.
Bài giảng Tóan rời rạc Course 4: Hàm Bool
Created by LeTrungSan
- 4 -
Ví dụ 3: với x, y, z ∈B{0,1},
F(x,y,z) =xy + xz +
xyz
là biểu thức bool của ba biến x,y và z.
Khi thay tất cả các biến trong biểu thức bằng giá trị nhận trong B{0,1} thì biểu thức có
giá trị duy nhất.
Ví dụ 4: Cho biểu thức bool: F(x,y) = x+y + xy. Khi đó
F(0,0) = 0 + 0 + 0.0 = 0
F(0,1) = 0 + 1 + 0.1 = 1
F(1,0) = 1 + 0 + 1.0 = 1
F(1,1) = 1 + 1 + 1.1 = 1

2. Hàm bool
Các biến bool chủ yếu dùng để biểu thị hai trạng thái logic khác nhau ( đối lập) như:
đúng và sai, thật và giả, cao và thấp, có và không, mở và đóng,…. Trong phần này
ta xem xét mối quan hệ về sự phụ thuộc của một biến bool vào các biến bool khác.
Ta gọi quan hệ như vậy là hàm bool theo dưới đây:


2.1. Định nghĩa hàm bool
• B = {0,1}; B
n
= {(x
1
, x
2
, …, x
n
)/ x
i
∈B với 1≤ i ≤ n}. Một hàm bool f (n biến) từ
B
n
vào B là quy tắc gán mỗi bộ (x
1
, x
2
, …, x
n
) trong B
n
một giá trị 0 hoặc 1
trong B. x
1
, x
2
, …, x
n
gọi là biến, f gọi là hàm. Đó là ánh xạ:

), ,,(), ,,(
:
2121 nn
n
xxxfxxx
BBf
a


• Do với n hữu hạn thì |B
n
| hữu hạn nên giá trị của hàm bool thường được cho
dạng bảng.
Ví dụ 1: bảng dưới đây là bảng giá trị của hàm bool f(x,y):

Với bảng bên ta được:
f(0,0) = 0; f(0,1) = 1; f(1,0) = 0 và f(1,1) = 1.


• Có
)2(
2
2
n
n
B
=
hàm bool khác nhau của n biến. Hai hàm bool gọi là bằng
nhau nếu nó có bảng giá trị như nhau.
x y f(x,y)

0 0 0
0 1 1
1 0 0
1 1 1
Bài giảng Tóan rời rạc Course 4: Hàm Bool
Created by LeTrungSan
- 5 -
Ví dụ 2: dưới đây cho thấy hai hàm bool f(x,y) và g(x,y) là bằng nhau. Ta viết
f(x,y) = g(x,y).
x y f(x,y) g(x,y)
0 0 0 0
0 1 1 1
1 0 0 0
1 1 1 1

• Hàm bool còn được cho bằng biểu thức của các biến. Bằng cách thay các
biến bởi giá trị và thực hiện các phép toán ta cũng tìm được bảng giá trị của
hàm bool tương ứng.

Ví dụ 3: Bảng sau cho biết giá trị của các hàm bool: f(x,y,z) = x + yz và
g(x,y,z) = xy + x y + yz
x y z f(x,y,z)=x+yz
g(x,y,z)=xy+x
y
+yz

0 0 0 0 0
0 0 1 0 0
0 1 0 0 0
0 1 1 1 1

1 0 0 1 1
1 0 1 1 1
1 1 0 1 1
1 1 1 1 1

Mặc dù có biểu thức khác nhau nhưng rõ ràng hai hàm f và g là bằng nhau.
Như vậy, ta có: f(x,y,z)= x + yz = g(x,y,z) = xy + x y + yz.

Ví dụ 4: (Hàm bỏ phiếu) Một ủy ban gồm 3 thành viên phải quyết định các
vấn đề của một tổ chức. Mỗi thành viên bỏ phiếu tán thành hay không tán
thành cho mỗi đề nghị được đưa ra. Một đề nghị được thông qua nếu nó
nhận được ít nhất hai phiếu tán thành. Thiết lập hàm mô tả sự phụ thuộc của
việc được thông qua một đề nghị vào các thành viên của ủy ban.
Giải:
Đặt biến x đại diện cho đại biểu thứ nhất. x = 1 nếu đại biểu thứ nhất tán
thành, x = 0 nếu đại biểu này không tán thành. y là biến đại diện cho đại biểu
thứ hai. y = 1 nếu đại biểu thứ hai tán thành và y = 0 nếu đại biểu này không
tán tnành. Tương tự z đại diện cho đại biểu thứ ba, z =1 nếu đại biểu thứ ba
Bài giảng Tóan rời rạc Course 4: Hàm Bool
Created by LeTrungSan
- 6 -
tán thành thông qua và z = 0 nếu đại biểu thứ ba không tán thành. f(x,y,z) là
biến đại diện cho biết đề nghị có được thông qua; f(x,y,z) = 1 nếu đề nghị
được thông qua và f(x,y,z) = 0 nếu đề nghị này không được thông qua. Theo
đề bài ta có bảng giá trị của f là:
x y z f(x,y,z)
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1

1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1

2.2. Các phép toán trên hàm bool
Cho f, g là các hàm bool của n biến; với a ∈B
n
ta định nghĩa các phép tóan trên
hàm bool:
Tổng: (f+g)(a) = f(a) + g(a)
Tích: (fg)(a) = f(a).g(a)
Phần bù:
)()(
afaf =

2.3. Dạng nối rời chính tắc
Xét hàm bool f của n biến x
1
, x
2
, …, x
n
. Ta định nghĩa:

nn
xxxxxx
,, ,,,,
2211
là các từ đơn. Có 2n từ đơn cho hàm bool n biến.

• Tích khác 0 của các từ đơn gọi là đơn thức.
• Đơn thức có đủ n từ đơn được gọi là từ tối tiểu.
• Tổng các đơn thức gọi là đa thức.
• Nếu biểu thức hàm bool f được viết dạng tổng của các từ tối tiểu đôi một
khác thì gọi là dạng nối rời chính tắc (tổng các tích). Chú ý rằng mỗi hàm
bool có một biểu diễn dạng nối rời chính tắc duy nhất.

Ví dụ 5: Xét hàm bool f của 3 biến x, y và z. Khi đó:
- zzyyxx
,,,,,
là các từ đơn.
-
x,
y
, xy, xz, xyz, …
là các đơn thức.
-
xyz,
yzx , zyx , zyx , … là các từ tối tiểu.
Bài giảng Tóan rời rạc Course 4: Hàm Bool
Created by LeTrungSan
- 7 -
-
F(x,y,z) =

xyz
+ yzx + zyx + zyx ,
E(x,y,z) = yz +
zyx
+

zyx
E, F là hai công thức đa thức của f nhưng chỉ F là công thức dạng nối chính tắc
của f.
Bây giờ ta đi xem xét cách tìm dạng nối rời chính tắc của một hàm bool. Ngay từ đầu khi
định nghĩa hàm bool ta đã nói có hai cách cho hàm. Vì vậy ta xem xét cách xác định
dạng nối rời chính tắc từ hai cách cho đó.
TH 1: Hàm cho bởi bảng chân trị
Xét hàm bỏ phiếu trong ví dụ 4. Bảng giá trị của hàm là:
x y z f(x,y,z)
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1


Tập các thể hiện làm cho giá trị của f(x,y,z) bằng 1 là: {011, 101, 110, 111}. Từ tập
các thể hiện này ta lập các từ tối tiểu tương ứng :
xyz,z xyz,y xyz,x
. Đến đây
ta có được dạng nối rời chính tắc của f là: f(x,y,z) =
xyz xyz xyz xyz
+ + +
.
TH 2: Hàm cho bởi biểu thức
Khi hàm cho bởi biểu thức ta có thể lập bảng giá trị rồi áp dụng TH1. Cách khác để
tìm biểu thức dạng nối rời chính tắc là sử dụng các tính chất của phép toán:

Chẳng hạn, cho f(x,y) = x +
y
. Tìm biểu thức dạng nối rời chính tắc của f:
Cách 1: lập bảng chân trị của f ta được:
x y
f(x,y) = x +
y

0 0 1
0 1 0
1 0 1
1 1 1
Các th

hi

n làm cho f bàng 1 là: 00, 10 và 11. L

p
đượ
c các t

t

i ti

u
t
ươ
ng


ng là:
xy,xy,xy
. Vậy dạng nối rời chính tắc của f là:
f(x,y) =
xy xy xy
+ +

Cách 2: bi
ế
n
đổ
i d

a vào các tính ch

t c

a phép tóan:
f(x,y) = x +
y
= x.1 + 1.
y
tính trung hòa: x = x.1
Bài giảng Tóan rời rạc Course 4: Hàm Bool
Created by LeTrungSan
- 8 -
= x ( y +
y
) + (x +

x
)
y
phần tử bù: 1 =
x +
x

= xy + x
y
+ x
y
+
x
y
phân phối x(y+z) = xy+xz
= xy + x
y
+
x
y
l
ũ
y
đẳ
ng x + x = x
Ta c
ũ
ng thu
đượ
c d


ng n

i r

i chính t

c c

a f.

3. Mạng các cổng logic
Theo truy

n th

ng,
để
bi
ế
t m

t
đề
ngh


đượ
c thông qua không ng
ườ

i ta ti
ế
n
hành l

y ý ki
ế
n c

a các

y viên b

ng
đề
ngh

gi
ơ
tay bi

u quy
ế
t. N
ế
u
đ
a s

(> 50%)

đồ
ng tình thì
đề
ngh


đượ
c thông qua. Cách làm này xem ra không khách quan và
nh
ư
v

y s

công b

ng không
đượ
c
đả
m b

o.
Để
kh

c ph

c ngày nay
đ

ã s

d

ng
nhi

u ph
ươ
ng pháp t


độ
ng hóa trong
đ
ó vi

c l

p m

t m

ch
đ
i

n t

g


i là m

ch b


phi
ế
u nh
ư

đ
ã nói trong ví d

4

trên. M

i

y viên
đượ
c trang b

m

t thi
ế
t b



để
th

c
thi vi

c b

phi
ế
u c

a mình (có th

là c

u dao, nút b

m, …); các thi
ế
t b

này
đượ
c
thi
ế
t k
ế

k
ế
t n

i vào m

ch d

n
đế
n m

t thi
ế
t b

phát tín hi

u cho bi
ế
t
đề
ngh


đượ
c
thông qua không (có th

là bóng

đ
èn, kèn, …). C

n có các thi
ế
t b

v

t lý
để
t

ng h

p
các tín hi

u
đầ
u vào t

các thi
ế
t b

g

n cho m


i

y viên c

a

y ban và cho tín hi

u
đầ
u ra t

i thi
ế
t b

phát nh
ư

đ
ã nói. Thi
ế
t b

v

t lý t

ng h


p này g

i là các c

ng logic
và m

ch k
ế
t n

i các thi
ế
t b

trên g

i là m

ch t

h

p.


đ
ây ta không quan tâm
đế
n

chi ti
ế
t các thi
ế
t b

v

t lý

y mà ch

xem xét nhi

m v

và cách th

c k
ế
t n

i chúng
để

có tín hi

u
đầ
u ra d


ng hình th

c là m

t hàm bool.
M

i hàm bool
đượ
c t

ng h

p t

các bi
ế
n bool b

ng các phép toán:
, ,
∨ ∧
. Do
đ
ó
tr
ướ
c h
ế

t ta c

n các thi
ế
t b

th

c hi

n các phép tóan trên, các thi
ế
t b

này g

i là các
c

ng logic c
ơ
b

n và
đượ
c bi

u di

n hình th


c nh
ư
sau:
cổ
ng AND c

ng OR c

ng NOT


C

ng NOT có m

t
đầ
u vào, các c

ng AND và OR

trên có 2
đầ
u vào và t

t c


đề

u
có 1
đầ
u ra duy nh

t. Trong th

c t
ế
, tùy theo m

c
đ
ích s

d

ng mà ng
ườ
i ta thi
ế
t k
ế

các c

ng AND và c

ng OR có nhi


u h
ơ
n 2
đầ
u vào. D
ướ
i
đ
ây là hình

nh các c

ng
có n
đầ
u vào:
c

ng AND c

ng OR


x
y

xy
x
y
x+y

x
x

x
1
x
2
x
n

x
1
x
2
…x
n
x
1
x
2
x
n

x
1
+ x
2
+…+x
n
Bài giảng Tóan rời rạc Course 4: Hàm Bool

Created by LeTrungSan
- 9 -

Ngoài các c

ng c
ơ
b

n trên,
để
thu

n ti

n ng
ườ
i ta còn thi
ế
t k
ế
các c

ng khác
ch

ng h

n m


c n

i ti
ế
p c

ng AND v

i c

ng NOT
đượ
c c

ng NAND, m

c n

i ti
ế
p
c

ng OR và c

ng NOT
đượ
c c

ng NOR:


c

ng NAND c

ng NOR



Ví d

1: M

ch
đ
i

u khi

n bóng
đ
èn hai công tác (
đ
èn c

u thang).
G

i x, y là tr


ng thái hai công tác, x =1 n
ế
u công tác th

nh

t
đ
óng còn x = 0 n
ế
u
công tác này m

; y = 1 n
ế
u công tác th

hai
đ
óng, y = 0 n
ế
u công tác này m

.
g

i F(x,y) là tr

ng thái bóng
đ

èn; F = 1 khi bóng
đ
èn sáng, F =0 khi bóng
đ
èn t

t.
Bóng
đ
èn s

sáng khi c

hai công tác cùng
đ
óng hay cùng m

và bóng
đ
èn t

t
khi m

t trong hai công tác
đ
óng trong khi công tác còn l

i là m


. B

ng giá tr

:
D

ng n

i r

i chính t

c c

a hàm là:
F(x,y) =
xy+xy

M

ch t

ng h

p:








Ví d

2: m

ch t

ng h

p hàm bool: f(x,y,z) = xy + xz + yz












x y F(x,y)
0 0 1
0 1 0
1 0 0
1 1 1
y


x

y

x

y

xy
x

x
y

XY
+
x
y


X
y
xy

X
y
x+y

z

y
x

xy
yz
xz
xy + xz + yz
Bài giảng Tóan rời rạc Course 4: Hàm Bool
Created by LeTrungSan
- 10 -
L
ư
u ý r

ng m

t k
ế
t qu


đ
ã
đượ
c t

ng h

p thì có th


s

d

ng nhi

u l

n mà không ph

i
t

ng h

p l

i. M

ch trong ví d

2
đ
ã dùng 3 c

ng AND và 1 c

ng OR. Trong tr
ườ
ng h


p
ch

dùng các c

ng có 2 chân vào ta
đượ
c s
ơ

đồ
m

ch nh
ư
sau:











Khi thi
ế

t k
ế
m

ch t

h

p nh

t thi
ế
t chúng ta ph

i tính toán
đế
n tính hi

u qu

c

a m

ch.
Có 2 y
ế
u t

quan tâm chính:

(i). S

l
ượ
ng các c

ng
đượ
c s

d

ng;
đ
i

u này
đả
m b

o hi

u qu

kinh t
ế
.
(ii). Th

i gian th


c thi. M

c dù th

i gian t

ng h

p qua m

i c

ng là r

t bé ( ph

n
nghìn giây), xong s

l
ượ
ng c

ng trong m

i m

ch th
ườ

ng r

t l

n nên th

i gian
t

ng c

ng s

l

n.
C

hai
đ
òi h

i trên s


đượ
c
đ
áp


ng khi mà s

c

ng s

d

ng là t

i
ư
u. Vì lí do c

ng
NOT d

s

n xu

t nên có giá thành không
đ
áng k

và th

i gian th

thi c

ũ
ng r

t nh

(so
v

i các c

ng khác) nên ta không quan tâm
đế
n c

ng NOT. Nh
ư
v

y ta s


đ
i xem xét v

n
đề
t

i
ư

u s

c

ng AND và c

ng OR.
Đ
ã bi
ế
t m

t hàm bool thì có nhi

u công th

c bi

u
di

n. Ta
đ
i tìm công th

c d

ng
đ
a th


c (t

ng các tích) giúp t

i
ư
u hai y
ế
u t


đượ
c nêu


trên.
Để

đạ
t
đượ
c yêu c

u t

i
ư
u ta c


n hai tiêu chí là: bi
ế
u th

c có ít phép c

ng và có ít
phép nhân; ngh
ĩ
a là trong bi

u th

c
đ
a th

c mà có ít
đơ
n th

c, h
ơ
n n

a trong m

i
đơ
n

th

c c

n có ít t


đơ
n. Tr
ướ
c nh

t hãy so sánh 3 m

ch:
a)

z
y
x

xy
yz
xz xy + xz + yz
xy + xz
Bài giảng Tóan rời rạc Course 4: Hàm Bool
Created by LeTrungSan
- 11 -



b)



c)




M

ch a) dùng 4 c

ng AND, 1 c

ng OR và 2 c

ng NOT,
đầ
u ra: f(x,y,z) =
xyz+xyz+xz+xz
.

M

ch b) dùng 2 c

ng AND, 1 c

ng OR và 1 c


ng NOT,
đầ
u ra: g(x,y,z) =
xyz+xyz+z
.

M

ch c) dùng 1 c

ng AND, 1 c

ng OR và 1 c

ng NOT,
đầ
u ra: h(x,y,z) =
xy+z
.

Rõ ràng m

ch c) là ti
ế
t ki

m nh

t trong khi ta có:

f(x,y,z)
=
xyz+xyz+xz+xz
=
xyz + xyz + (x+x)z
=
xyz+xyz+z
=
g(x,y,z)

=
xy(z+z) + z
=
xy + z
=
h(x,y,z)
Và vì v

y công d

ng c

a c

3 m

ch là nh
ư
nhau. Ta c
ũ

ng nh

n xét r

ng
đ
a th

c
đầ
u ra

ng v

i m

ch c) có ít phép c

ng và ít phép nhân nh

t. Ta s

g

i nó là
đ
a th

c t


i ti

u
theo
đị
nh ngh
ĩ
a d
ướ
i
đ
ây:

4. Quan hệ đơn giản hơn & công thức đa thức tối tiểu
Xét hai
đ
a th

c bi

u di

n c

a cùng m

t hàm f và
đượ
c vi
ế

t d
ướ
i d

ng:
E = m
1
+ m
2
+ …+ m
p

F = M
1
+ M
2
+…+ M
q

Ta nói E đơn giản hơn F nếu tồn tại một đơn ánh
{
}
{
}
σ: 1,2, ,p 1,2, ,q
a
sao cho với
1 i p
≤ ≤
thì số thừa số là từ đơn của m

i
không nhiều hơn số thừa số là từ đơn của M
i
.
Chú ý:

[1]. Nếu E đơn giản hơn F thì
p q

.
[2]. Quan hệ

đơn giản hơn
” gi

a các
đ
a th

c c

a hàm f có tính ph

n x

và b

c c

u

nh
ư
ng không có tính ph

n x

ng, c
ũ
ng không có tính
đố
i x

ng.
Bài giảng Tóan rời rạc Course 4: Hàm Bool
Created by LeTrungSan
- 12 -
[3]. N
ế
u E
đơ
n gi

n h
ơ
n F và F
đơ
n gi

n h
ơ

n E thì ta nói E và F là
đơ
n gi

n nh
ư
nhau.
Quan h


đơn giản như nhau
” là m

t quan h

t
ươ
ng
đươ
ng. H
ơ
n n

a hai công
th

c
đ
a th


c
đơ
n gi

n nh
ư
nhau thì m

ch t

h

p chúng s

d

ng cùng s

c

ng AND
và cùng s

c

ng OR.
Ví d

:
(i). Cho hàm 3 bi

ế
n f(x,y,z). E và F là hai công th

c
đ
a th

c c

a f, v

i
E = xy + yz + xz F = xy +yz + xz + xyz
E là
đơ
n gi

n h
ơ
n F.
(ii). Hai công th

c
đ
a th

c E = x + xy + yz + xyz và F = xyz +
xy
z
là không so

sánh
đượ
c v

i nhau.
(iii). Hai công th

c
đ
a th

c E = xy + zt + xyt và F = xz + yt + xyz là
đơ
n gi

n
nh
ư
nhau.
Đị
nh ngh
ĩ
a:
Công thức đa thức E của hàm bool f được gọi là công thức đa thức tối tiểu
nếu với mọi công thức F khác E của f và F đơn giản hơn E thì suy ra E và
F đơn giản như nhau
.


5. Phương pháp bản đồ Karnaugh cực tiểu hóa hàm bool


5.1. Bản đồ Karnaugh
Đố
i v

i m

i hàm bool,
đ
i

u chúng ta mong mu

n là tìm
đượ
c công th

c d

ng
bi

u th

c sao cho s

d

ng
để

l

p m

ch t

h

p s

cho m

ch kinh t
ế
nh

t. Ngh
ĩ
a là ta
c

n tìm công th

c
đ
a th

c t

i ti


u c

a hàm. Quá trình tìm công th

c
đ
a th

c t

i ti

u
ta g

i là c

c ti

u hóa hàm. Ph
ươ
ng pháp b

n
đồ
Karnaugh cho phép ta c

c ti


u hóa
các hàm 2, 3 và 4 bi
ế
n m

t cách d

dãng. Vì hàm 2 bi
ế
n quá
đơ
n gi

n và vì v

y ta
s

nói nhi

u cho hàm 3 và 4 bi
ế
n.
Cho
đế
n th

i
đ
i


m này ta
đ
ã bi
ế
t m

i hàm bool có th

bi

u di

n duy nh

t d
ướ
i
d

ng n

i r

i chính t

c là t

ng các t


t

i ti

u. M

t khác m

t hàm bool c

a n bi
ế
n s


có t

i
đ
a 2
n
t

t

i ti

u. V

y nên có m


t cách khác (so v

i các cách
đ
ã bi
ế
t) bi

u di

n
hàm bool
đ
ó là dùng m

t b

ng hình ch

nh

u g

m 2
n
ô, m

i ô s



đạ
i di

n cho m

t
ph

n t

c

a B
n


ng v

i nó có m

t t

t

i ti

u l

p

đượ
c. B

n
đồ
Karnaugh c

a m

t
hàm là t

p h

p các ô mà nó
đạ
i di

n cho t

t

i ti

u có trong bi

u th

c d


ng n

i r

i
chính t

c c

a hàm. Kí hi

u b

n
đồ
Karnaugh c

a hàm f là Kar(f) hay k(f).
Bài giảng Tóan rời rạc Course 4: Hàm Bool
Created by LeTrungSan
- 13 -
• Hàm 2 bi
ế
n
đượ
c bi

u di

n b


ng hình ch

nh

t 4 ô:


y
y

x xy
x
y

x

x
y

x
y

Ví d

1: L

p b

n

đồ
Karnaugh c

a các hàm bool:
a) f = xy +
x
y b) g = xy +
x
y
c) h =
x
y + x
y
+
x
y


a)
y
y

x

x



b)
y

y

x

x



c)
y
y

x

x


Ô tô
đ
en là ô
đượ
c ch

n. Cách vi
ế
t trên là c

a Veitch và Karnaugh



• Hàm 3 bi
ế
n
đượ
c bi

u di

n b

ng b

ng 8 ô:
y y
y

y

x
xy
z

xyz
x
y
z x
y
z

x


x
y
z

x
yz
x
y
z
x
y
z


z

z z
z


Ví d

2: B

n
đồ
Karnaugh c

a hàm f(x,y,z) =

xyz xyz xyz xyz
+ + +
.
y y
y

y

x

x



z

z z
z


• Hàm 4 bi
ế
n d

ng b

ng 16 ô:
y y
y


y


x
1100 1110 1010 1000
w

x
1101 1111 1011 1001
w
x

0101 0111 0011 0001
w
x

0100 0110 0010 0000
w


z

z z
z


Cách vi
ế
t c


a Vietch và Karnaugh (trình t

các bi
ế
n: xyzw)
Bài giảng Tóan rời rạc Course 4: Hàm Bool
Created by LeTrungSan
- 14 -
Ví d

3: B

n
đồ
Karnaugh c

a hàm f(x,y,z,w) =
xyzw+xyzw+xyzw+xyzw+xyzw+xyzw
là:
y y
y

y


x
1110
w

x

1101 1111 1011
w
x

0101 0111
w
x


w


z

z z
z



5.2. Tế bào
• Hai ô trong b

n
đồ
Karnaugh có chung biên gi

i g

i là k


nhau ( theo ngh
ĩ
a
h

p – thông th
ườ
ng). Ta
đị
nh ngh
ĩ
a hai ô
đạ
i di

n cho hai t

t

i ti

u ch

sai
khác nhau
đ
úng m

t t



đơ
n là hai ô k

nhau (theo ngh
ĩ
a r

ng).
• Hình ch

nh

t g

m 2
k
ô k

nhau ( theo ngh
ĩ
a r

ng) là t
ế
bào, v

i
1
k n

≤ ≤
.
Theo
đ
ó ta có các t
ế
bào 1,2,4,8,16,…ô.
• T
ế
bào không b

ch

a trong t
ế
bào khác
đượ
c g

i là
tế bào lớn
. Chú ý r

ng ta
không hi

u l

n là g


m nhi

u ô, tuy nhiên nhi

u ô có nhi

u c
ơ
h

i là l

n h
ơ
n.
Ví d

4: Xét hàm bool 3 bi
ế
n f có b

n
đồ
Kar(f) g

m các ô
đượ
c
đ
ánh s


sau
:

y
Y
y

y

x
1 2 3
x

4 5

z

Z
z
z

- Các t
ế
bào 1 ô: m

i ô là m

t t
ế

bào
- Các t
ế
bào 2 ô: 1_2, 2_3, 2_4.
- T
ế
bào l

n: 1_2, 2_3, 2_4, 5.

Ví d

5: xét hàm bool 4 bi
ế
n f(x,y,z,w) có
b

n
đồ
Kar(f) g

m các ô
đượ
c
đ
ánh
s

sau:
Các t

ế
bào l

n: 1_3_7_8 4 ô
1_2 2 ô
y y
y

y


x 1 2 3
w

x 4
w
x

5 6
w
x

7 8
w


z

z z
z



Bài giảng Tóan rời rạc Course 4: Hàm Bool
Created by LeTrungSan
- 15 -
5_6 2 ô
5_7 2 ô
4. 1 ô
Rõ ràng ta th

y h

i các t
ế
bào l

n ta thu
đượ
c chính b

n
đồ
Kar. Nh

n xét thêm
r

ng công th

c

đ
a th

c c

a m

i t
ế
bào l

n có th

thu g

n thành
đơ
n th

c. Ch

ng
h

n xét ví d

:
Ví d

6: - Trong ví d


4, công th

c
đ
a th

c c

a t
ế
bào l

n 1_2 là:
xyz+xyz
.
Do hai
đơ
n th

c trong t

ng chung nhau tích xy, v

y nên dùng tính ch

t phân ph

i
và tính ch


t v

ph

n t

bù ta
đượ
c:
xyz+xyz
=
xyz + xyz = xy(z + z)= xy.1 = xy
.

-Trong ví d

5, công th

c
đ
a th

c c

a t
ế
bào l

n 4 ô: 1_3_7_8


xyzw xyzw xyzw xyzw
+ + +
. Gi

ng nh
ư
trên ta
đượ
c:
xyzw xyzw xyzw xyzw
+ + +
=
( )
xy xy xy xy zw
+ + +

=
(
)
(
)
x y y x y y zw
 
+ + +
 

=
(
)

x x zw zw
+ =
.

Đế
n
đ
ây ta th

y vi

c
đ
i tìm công th

c
đ
a th

c t

i ti

u c

a hàm bool f
đư
a v

vi


c gi

i
quy
ế
t hai v

n
đề
:
• Tìm t

t c

các t
ế
bào l

n n

m trong b

n
đồ
Kar(f), xác
đị
nh
đơ
n th


c t
ươ
ng

ng.
• Tìm m

t phép ph

t

i ti

u b

n
đồ
Kar(f) b

ng các t
ế
bào l

n, ngh
ĩ
a là m

t h



t
ế
bào l

n có h

i chính là Kar(f) mà khi rút trong h

này t
ế
bào l

n b

t k

thì
h

còn l

i không ph

kín Kar(f) n

a. Ta có m

t thu


t toán
để
tìm công th

c
đ
a th

c t

i ti

u.

Bài giảng Tóan rời rạc Course 4: Hàm Bool
Created by LeTrungSan
- 16 -
5.3. Thuật tóan
[1]. L

p b

n
đồ
Kar(f), ch

ra các t
ế
bào l


n và xác
đị
nh các
đơ
n th

c t
ươ
ng

ng.
[2]. Ph

b

n
đồ
Kar(f) b

ng các t
ế
bào l

n
[2.1]. a) Ch

n 1 ô ch

n


m trong m

t t
ế
bào l

n, ch

n t
ế
bào l

n ch

a ô này
để
ph

. (Ta
đư
a t
ế
bào l

n này vào danh sách L).
b) L

p l

i a) trong ph


n còn l

i c

a b

n
đồ
Kar(f)
đế
n khi không làm
đượ
c n

a.
Đế
n
đ
ây n
ế
u b

n
đồ
Kar(f)
đ
ã
đượ
c ph


kín thì chuy

n
sang b
ướ
c [3], ng
ượ
c l

i chuy

n qua b
ướ
c [2.2]
[2.2]. a) Ch

n 1 ô ch
ư
a
đượ
c ph

, ph

ô này b

ng t
ế
bào l


n ch

a nó ( có
nhi

u h
ơ
n m

t cách).
b) L

p l

i a) trong ph

n còn l

i c

a b

n
đồ
Kar(f) cho
đế
n khi Kar(f)
đượ
c ph


kín thì chuy

n sang b
ướ
c [3].
[3].

ng v

i m

i cách ph

kín b

n
đồ
Kar(f)

b
ướ
c [2], l

p công th

c
đ
a th


c là
t

ng các
đơ
n th

c c

a các t
ế
bào l

n t
ươ
ng

ng trong danh sách L. So sánh
và gi

l

i các công th

c
đơ
n gi

n.
Chú ý

:
(i). N
ế
u b
ướ
c [2.2] b

b

qua thì không có l

a ch

n tùy ý. Trong tr
ườ
ng h

p này
ta
đượ
c m

t phép ph

duy nh

t

ng v


i m

t công th

c
đ
a th

c t

i ti

u duy nh

t.
(ii).
Để
ti

n vi

c xem xét ta g

ch chéo m

i t
ế
bào l

n

đượ
c dùng
để
ph

b

n
đồ

Kar(f).
Đươ
ng nhiên hai cách ch

n khác nhau d

n
đế
n hai quá trình ph

khác
nhau và cho ta hai công th

c
đ
a th

c khác nhau.

Ví d


1: Xét hàm bool f có b

n
đồ
Kar(f) d
ướ
i
đ
ây (các ô ch

n
đượ
c
đ
ánh s

)
B
ướ
c [1]: Có 3 t
ế
bào l

n
T
ế
bào l

n

Đơ
n th

c
1_2 xy
2_3 yz
4
xyz


y y
y

y

x
1 2
x

3 4

z

Z
z
z

Bài giảng Tóan rời rạc Course 4: Hàm Bool
Created by LeTrungSan
- 17 -


B
ướ
c [2]: [2.1]. Ô 1 ch

n

m trong duy nh

t t
ế
bào l

n 1_2
Ô 3 ch

n

m trong duy nh

t t
ế
bào l

n 2_3
Ô 4 ch

n

m trong duy nh


t t
ế
bào l

n 4.
Ta có danh sách L = {1_2, 2_3, 4}.
Ba t
ế
bào trong L
đ
ã ph

kín b

n
đồ
Kar(f) nên ta chuy

n th

ng qua
b
ướ
c [3] mà b

qua b
ướ
c [2.2].
B

ướ
c [3]. Ta ch

có m

t phép ph

duy nh

t, và vì v

y có duy nh

t công th

c
đ
a
th

c t

i ti

u:
f = xy + yz +
xyz

Ví d


2: C

c ti

u hóa hàm bool f có b

n
đồ

Kar(f) d
ướ
i
đ
ây ( các ô ch

n
đượ
c
đ
ánh
s

):
B
ướ
c [1]: TBL
Đơ
n th

c

1_2
xyw

1_4
yzw

3_4
xzw

3_5
xyz

B
ướ
c [2]: [2.1]. ô 2 ch

trong TBL 1_2
ô 5 ch

trong TBL 3_5

Danh sách L = {1_2, 3_5}. L

n l
ượ
t ph

Kar(f) b

ng các TBL trong L

ta s

th

y còn ô 4 ch
ư
a
đượ
c ph

. Ô này n

m trong 2 t
ế
bào l

n
nên chuy

n qua b
ướ
c [2.2].
[2.2]. Có 2 cách ph

ô 4, ch

n TBL 1_4 ho

c ch


n TBL 3_4 thì
đế
n
đ
ây
b

n
đồ
Kar(f)
đề
u
đượ
c ph

kín. Có 2 danh sách

ng v

i 2 cách ph

kín
Kar(f): L
1
= {1_2, 3_5, 1_4}, L
2
= {1_2, 3_5, 3_4}. Chuy

n sang b
ướ

c [3].
B
ướ
c [3]: L

p công th

c
đ
a th

c
-

ng v

i L
1
: f
1
=
xyw
+
xyz
+
yzw

-

ng v


i L
2
: f
2
=
xyw
+
xyz
+
xzw

y y
y

y


x

w

x
1 2
w
x

3 4
w
x


5
w


z

z z
z


Bài giảng Tóan rời rạc Course 4: Hàm Bool
Created by LeTrungSan
- 18 -
So sánh th

y hai công th

c
đ
a th

c trên
đơ
n gi

n nh
ư
nhau nên tìm
đượ

c hai công th

c
đ
a th

c t

i ti

u.
Chú ý: S

d

ng các công th

c trên
để
t

h

p hàm f ta
đượ
c hai m

ng t

ng h


p s


d

ng cùng s

c

ng AND và cùng s

c

ng OR. C

th

là 3 c

ng AND và 1 c

ng
OR.


Bài giảng Tóan rời rạc Course 4: Hàm Bool
Created by LeTrungSan
- 19 -
Bài T


p

1. Tìm giá tr

c

a bi

u th

c:
a)
1.0
b)
1 1
+
c)
(
)
1 0
+
d)
0.0

2. Tìm các giá tr

(n
ế
u có) c


a bi
ế
n bool x tho

mãn các ph
ươ
ng trình:
a) x.1=0 b) x+x =0 c) x.1=x d)
. 1
x x
=

3. L

p b

ng giá tr

cho bi

u th

c bool:
a) F(x,y,z) = xy + yz + xz b) G(x,y,z) = x + y + z
4. Cho các hàm bool F(x,y,z), G(x,y,z) trong bài 3. Tính giá tr

:
F(1,0,1), F(0,1,0), F(0,0,1), F(1,1,1), G(0,1,0), G(1,0,1), G(1,1,1), G(0,0,0).
5. Tìm d


ng n

i r

i chính t

c c

a các hàm bool:
a) f(x,y) = x + y b) g(x,y,z) = xy + yz + xz c) h(x,y,z) = x
d)
( , , ) ( )
x y z x y x z
ϕ
= + +
e)
( ). . .
x y z x y z
+ +
6. V

m

ch t

h

p các hàm bool:
a)

xy xy
+ b)
( )
x y x
+ c)
(
)
x y z
+
d)
( ). . .
x y z x y z
+ +

7. V

b

n
đồ
Karnaugh c

a các hàm bool sau:
a) f(x,y,z) =
xyz xyz xyz xyz
+ + +

b) g(x,y,z) =
xyz xyz xyz xyz
+ + +


c) h(x,y,z,w) =
xyzw xyzw xyzw xyzw xyzw
+ + + +

8. C

c ti

u hoá các hàm bool có b

n
đồ
Karnaugh d
ướ
i
đ
ây:
a) b)



c) d)






9. C


c ti

u hoá các hàm bool

bài t

p 7.
10. C

c ti

u hoá các hàm bool
a)
xyzt xy xzt yzt
+ + +

b)
( )
xyzt xy xz yz xy z t
+ + + + +





×