Tải bản đầy đủ (.ppt) (36 trang)

Silde bài giảng cấu trúc rời rạc phần đại số boole

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 (155.83 KB, 36 trang )

Chương 6:

Đại số Boole

07-09-2007

Bài giảng Môn học

1


Mở đầu
• Đại số Boole đưa ra các phép toán làm việc với tập
{0, 1}
• Các phép toán thường dùng trong đại số Boole:
– Phép lấy phần bù được định nghĩa bởi : 0 = 1 và
1=0
– Phép lấy tổng Boole, ký hiệu ‘+’:
1 + 1 = 1, 1 + 0 = 1, 0 + 1 = 1, 0 + 0 = 0
– Phép lấy tích Boole, ký hiệu ‘.’:
1.1 = 1, 1.0 = 0, 0.1 = 0, 0.0 = 0
07-09-2007

Bài giảng Môn học

2


Mở đầu (tt)
• Phép lấy phần bù, tổng và tích Boole tương ứng với các
toán tử logic ¬, ∨, ∧, trong đó 0 tương ứng với F (false,


sai) và 1 tương ứng với T (true, đúng). Các kết quả của
đại số Boole có thể được dịch trực tiếp thành mệnh đề
và ngược lại.

07-09-2007

Bài giảng Môn học

3


Hàm Boole


Định nghĩa: Cho B = {0,1}.
– Biến x được gọi là biến Boole nếu nó chỉ nhận giá
trị từ B
– Một hàm đi từ Bn B được gọi là hàm Boole bậc n
• Hàm Boole thường được biểu diễn bằng cách dùng
các biểu thức được tạo bởi các biến và phép toán
Boole
n
Ví22dụ:
F(x, y, z) = xy + z
• Có
hàm Boole bậc n khác nhau ?
07-09-2007

Bài giảng Môn học


4


Các hằng đẳng thức của đại số Boole
Hằng đẳng thức

Tên gọi

x=x

Luật phủ định kép

x+x=x
x.x = x

Luật lũy đẳng

x+0=x
x.1 =x

Luật đồng nhất

x+1=1
x.0 = 0

Luật nuốt

x+y=y+x
x.y = y.x


Luật giao hoán

07-09-2007

Bài giảng Môn học

5


Các hằng đẳng thức
của đại số Boole (tt)
Hằng đẳng thức

Tên gọi

(x + y) + z = x + (y + z)
(x.y).z = x.(y.z)

Luật kết hợp

x + yz = (x + y)(x + z)
x(y +z) = xy +xz

Luật phân phối

(xy) = x + y
x+y=x.y

Luật De Morgan


07-09-2007

Bài giảng Môn học

6


Chứng minh các hằng đẳng thức
• Ví dụ 1: Chứng minh sự đúng đắn của luật phân phối
x(y +z) = xy +xz
x

y

z

1 1 1
1 1 0
1 0 1
1 0 0
0 1 1
0 0 0
0 1 1
0 0 0
07-09-2007

y+z

x(y + z) xy


xz

Bài giảng Môn học

xy + xz

7


Chứng minh các hằng đẳng thức(tt)
• Dùng các hằng đẳng thức đã có để chứng minh các
hằng đẳng thức khác
• Ví dụ: Chứng minh luật hấp thu x(x + y) = x bằng cách
dùng các hằng đẳng thức của đại số Boole.
Giải:
x(x +y) = (x+0)(x +y) – luật ?
= x + 0.y – luật ?
= x + 0 – luật ?
= 0 – luật?
07-09-2007

Bài giảng Môn học

8


Tính đối ngẫu
• Đối ngẫu của biểu thức Boole nhận được bằng cách các
tổng và tích Boole đổi chỗ cho nhau, các số 0 và 1 đổi
chỗ cho nhau

Ví dụ: Đối ngẫu của biểu thức x. 1 + (y +z) là ?
• Một hằng đẳng thức giữa các hàm biểu diễn bởi bởi các
biểu thức Boole vẫn còn đúng nếu ta lấy đối ngẫu hai vế
của nó.

07-09-2007

Bài giảng Môn học

9


Định nghĩa trừu tượng
của đại số Boole
• Định nghĩa: Đại số Boole là một tập B có hai phần tử 0
và 1 với hai phép toán hai ngôi ∨ và ∧, và một phép
toán một ngôi sao cho các tính chất sau đây đúng với
mọi x, y, z thuộc B.
x ∨ 0 = x
Luật đồng nhất

 x ∧1 = x

x ∨ x =1


x ∧ x = 0
( x ∨ y ) ∨ z = x ∨ ( y ∨ z)

( x ∧ y ) ∧ z = x ∧ ( y ∧ z)


07-09-2007

Luật nuốt
Luật kết hợp

Bài giảng Môn học

10


Định nghĩa trừu tượng
của đại số Boole (tt)
x ∨ y = y ∨ x

x ∧ y = y ∧ x
 x ∨ ( y ∧ z) = ( x ∨ y ) ∧ ( x ∨ z)

 x ∧ ( y ∨ z) = ( x ∧ y ) ∨ ( x ∧ z)

07-09-2007

Luật giao hoán
Luật phân phối

Bài giảng Môn học

11



Biểu diễn các hàm Boole
• Khai triển tổng các tích (dạng tuyển chuẩn tắc)
Ví dụ: Tìm các biểu thức Boole biểu diễn các hàm F(x, y, z) và
G(x, y, z) có các giá trị được cho trong bảng sau:
x
y
z
G
F
1
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
07-09-2007

1
0
1

0
1
0
1
0

0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
Bài giảng Môn học

12


Biểu diễn các hàm Boole
• Khai triển tổng các tích (dạng tuyển chuẩn tắc)
Ví dụ 1: Tìm các biểu thức Boole biểu diễn các hàm F(x, y, z) và

G(x, y, z) có các giá trị được cho trong bảng sau:
 F(x, y, z) = xyz
x
y
z
G
F
G(x, y, z) = xyz + xyz
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
1
0
0
0
0
0
1

1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
07-09-2007
Bài giảng Môn học
13


Biểu diễn các hàm Boole(tt)
• Ví du 2: Tìm khai triển tổng các tích của hàm F(x, y, z) = (x + y) z
Giải:
Bảng giá trị của hàm F:
(x + y) z
x
y

z
x+y z
 F(x, y, z) = ?
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1

1
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
07-09-2007
Bài giảng Môn học
14


Biểu diễn các hàm Boole(tt)
• Khai triển tích các tổng (dạng hội chuẩn tắc): Lấy đối
ngẫu từ khai triển tổng các tích.
Ví dụ: Tìm dạng khai triển tích các tổng của hàm F(x, y,

z) và G(x, y, z) ở ví dụ 1.

07-09-2007

Bài giảng Môn học

15


Tính đầy đủ
• Tất cả các hàm Boole đều có thể bằng cách dùng các
phép toán Boole . , + , .
– Khi đó ta nói tập hợp {. , + , } là đầy đủ
Ta có:
– Tập {., } là đầy đủ ?
– Tập {+, } là đầy đủ ?
– Tập {., +} không phải là đầy đủ ?
– Tập {|} là đầy đủ, tập {↓} là đầy đủ ?
(phép | hay NAND và ↓ hay NOR được định nghĩa:
1|1 = ? , 1|0 = ? ,0|1 = ? ,0|0 = ? .
1↓1 = ? , 1↓0 = ? , 0↓1 =? ,0↓ 0 = ? .)
07-09-2007

Bài giảng Môn học

16


Tính đầy đủ (tt)






Tập {., } là đầy đủ vì: x + y = x y
Tập {+, } là đầy đủ vì: x.y = ?
Tập {|} là đầy đủ vì: x = x|y
xy = (x|y)|(y|x)
Tập {↓} là đầy đủ vì: ?

07-09-2007

Bài giảng Môn học

17


Các cổng logic
• Các loại cổng cơ bản:
– Cổng NOT hay bộ đảo:

x

– Cổng AND:

x
y

– Cổng OR


x
y

07-09-2007

Bài giảng Môn học

x
xy
x+y

18


Các cổng logic (tt)
• Các cổng có n đầu vào:
x1
x2
xn
x1
x2
xn

07-09-2007

x1 x2… xn

x1 + x2 +…+ xn

Bài giảng Môn học


19


Mạch tổ hợp
• Ví dụ 1: Dựng các mạch tạo các đầu ra sau:
a) (x + y)x ;
b) (x + y +z)( x y z )
Giải:
a) x
x+y
(x + y)x
y

z

b) ?

07-09-2007

x

Bài giảng Môn học

20


Mạch tổ hợp (tt)
• Ví dụ 2: Một ủy ban gồm ba 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 hoặc không cho mỗi một đề 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. Hãy thiết kế một mạch cho phép
xác định được một đề nghị có được thông qua hay
không.

(Lưu ý: Các mạch mà đầu ra chỉ phụ thuộc vào đầu vào
chứ không phụ thuộc vào trạng thái hiện thời của mạch,
được gọi là các mạch tổ hợp)
07-09-2007

Bài giảng Môn học

21


Mạch tổ hợp (tt)
Giải:
Biểu diễn của hàm Boole có giá trị đầu ra là:
xy + xz + yz
 Mạch bỏ phiếu theo đa số:
x
y

xy

x
z

xz


y
z

yz

07-09-2007

Bài giảng Môn học

xy + xz + yz

22


Bộ cộng
• Bộ nửa cộng: Cộng hai bit, không xét đến số nhớ từ
phép cộng trước.
x
y

Bộ nửa
cộng

s
c

• Bảng giá trị của bộ nữa cộng:
x


y

s

c

1
1
0
0

1
0
1
0

0
1
1
0

1
0
0
0

07-09-2007

Bài giảng Môn học


23


Bộ cộng (tt)
• Bộ công đầy đủ: Dùng để tính bit tổng và bit nhớ khi
hai bit được cộng cùng với số nhớ từ trước.
• Bảng giá trị cho bộ cộng đầy đủ
x

y

1
1
1
1
0
0
0
0
07-09-2007

1
1
0
0
1
1
0
0


cin

s

1
1
0
0
1
0
0
1
1
0
0
1
1
1
0
Bài giảng
Môn0học

cout
1
1
1
0
1
0
0

0 24


Bộ cộng (tt)
• Bộ cộng đầy đủ:
x
y
cin

07-09-2007

Bộ
cộng
đầy
đủ

s
cout

Bài giảng Môn học

25


×