18
 Logic in Computer Science Lecturre 3 BÀI 3 LOGIC IN COMPUTER SCIENCE  3.1. CNG BOOL Xét thiết bđin có n input và mt output. Gisrng mi input ly 2 gía trhoc 1 hoc 0. Mi binput sxác định mt output duy nht cũng hoc 1 hoc 0. Hành vi ca thiết bđược mô tbi hàm Bool: F(X 1 ,…,X n ) = tín hiu ra xác định bi các tín hiu vào X 1 ,…,X n . Chúng ta gi các thiết bnày là các cng Bool. Các cng Bool phdng nht là AND, OR, và NOT có dng như hình 3.1-2 : 3.2. MCH BOOL Các input và output ca cng Bool có thđược ni vi nhau để to ra mch Bool thp phc tp hơn. Ví dhình 3.2. Le Huy Thap (Translator) 32 F(X 1 ,…,X n ) X 1 X n Hình 3.1-1. Thiết bđin AND OR NOT Hình 3.1-2. Các cng Bool

Logic-Bai3

Embed Size (px)

Citation preview

5/10/2018 Logic-Bai3 - slidepdf.com

http://slidepdf.com/reader/full/logic-bai3 1/18

Logic in Computer Science Lecturre 3

BÀI 3

LOGIC IN COMPUTER SCIENCE

 

3.1. CỔNG BOOL

Xét thiết bị điện có n input và một output. Giả sử rằng mỗi input lấy 2 gía trịhoặc 1 hoặc 0. Mỗi bộ input sẽ xác định một output duy nhất cũng hoặc 1 hoặc 0.

Hành vi của thiết bị được mô tả bởi hàm Bool: F(X1,…,Xn) = tín hiệu ra xácđịnh bởi các tín hiệu vào X1,…,Xn. Chúng ta gọi các thiết bị này là các cổng Bool.Các cổng Bool phổ dụng nhất là AND, OR, và NOT có dạng như hình 3.1-2 :

3.2.

MẠCH BOOL

Các input và output của cổng Bool có thể được nối với nhau để tạo ra mạchBool tổ hợp phức tạp hơn. Ví dụ hình 3.2.

Le Huy Thap (Translator) 32

F(X1,…,X

n)X

1

…X

n

Hình 3.1-1. Thiết bị điện

AND OR NOT

Hình 3.1-2. Các cổng Bool

5/10/2018 Logic-Bai3 - slidepdf.com

http://slidepdf.com/reader/full/logic-bai3 2/18

Logic in Computer Science Lecturre 3

Một tổ hợpcổng Bool

tương ứngvới một đồthị vòngcó hướng(các lá làcác input,mỗi nút làtên của một cổng Bool. Một hoặc một số nút có thể được chỉ định làm các output.

Có sự tương ứng tự nhiên giữa mạch Bool và công thức logic mệnh đề. Công

thức tương ứng với mạch 3.2 là (D∧(A∧B))∨((A∧B)∧¬C) (3.2-1)Một phép gán thỏa mãn cho công thức này sẽ cho các giá trị, các giá trị đó phảiđược ứng dụng cho các input của mạch nhằm đạt được output là true

Có thể làm cho một output là true hay không?

Giải: Câu tả lời là có thể

Vì mạch Bool 3.2. tương ứng với biểu thức (3.2-1)

 Nên chỉ cần tìm một phép gán input để biểu thức này cho ra trị True. Để làm

điều này, chúng ta lập bảng chân trị cho (3.2-1), sau đó chỉ ra các bộ đáp ứng câutrả lời.

3.3. CHIA THÀNH CÁC BỂU THỨC CON

Công thức (3.2-1) chưa làm rõ việc biểu diễn logic khi so sánh với biểu diễn mạch.

Do chỉ quan tâm tới tính thỏa mãn của biểu thức, chúng ta có thể khắc phụcđiều thiếu hiệu quả này bằng cách bổ sung thêm các ký hiệu mệnh đề mới. Chẳnghạn:

Le Huy Thap (Translator) 33

A

B

C

D

Hình 3.2. Mạch Bool

5/10/2018 Logic-Bai3 - slidepdf.com

http://slidepdf.com/reader/full/logic-bai3 3/18

Logic in Computer Science Lecturre 3

((D ∧E ) ∨ (E ∧¬C)) ∧(E↔ (A∧B)) (3.3-1)

Chú ý rằng (3.3-1) không tương đương lặp thừa với công thức gốc (3.2-1). Nhưngnó có thể tương đương kả thỏa (có nghĩa là công thức gốc 3.2-1 khả thỏa khi và chỉkhi 3.3-1 khả thỏa)

3.4. CHUYỂN ĐỔI THÀNH CNF (Conjunctive Normal Form - Dạng ChuẩnHội)

Ý tưởng trên chính là nguyên nhân sinh ra một thuật toán đơn giản để chuyểnmột công thức mệnh đề (hoặc là mạch tương ứng) thành biểu thức CNF(Conjunctive Normal Form – Dạng Chuẩn Hội) khả thỏa dạng tuyến tính. Chúngta sẽ xem biểu thức hay mạch như một đồ thị vòng có hướng. Và thực hiện các

 bước sau:

1. Gán nhãn mệnh đề ra cho mỗi nút không phải lá của đồ thị.

2. Tạo ra hội các các câu mệnh tuyển liên kết các input của nút đó với outputcủa nó (ký hiệu mệnh đề mới)

3. Hội tất cả các câu mệnh đề này lại với nhau với câu đơn giản bao gồm kýhiệu cho nút gốc là khả thỏa nếu và chỉ nếu công thức gốc là khả thỏa

Ví dụ 

Cho mạch ở hình 3.4.

Bổ sung mệnh đề E

(A∧B) ↔E((A∧B)) →E) ∧(E→(A∧B))(¬(A∧B)) ∨E) ∧(¬E∨(A∧B))(¬A∨¬B∨E) ∧(¬E∨A)∧(¬E∨B)(¬A∨¬B∨E) ∧(¬E∨A)∧(¬E∨B) ∧ 

Le Huy Thap (Translator) 34

A

B

C

D

Hình 3.4-1 Bổ sung các ký hiệu mới E

E

5/10/2018 Logic-Bai3 - slidepdf.com

http://slidepdf.com/reader/full/logic-bai3 4/18

Logic in Computer Science Lecturre 3

Từ hình 3.4-1 Chúng ta bổ sung mệnh đề F, được hình 3.4-2. Và khi đó

(A∧B) ↔E((A∧B)) →E) ∧(E→(A∧B))(¬(A∧B)) ∨E) ∧(¬E∨(A∧B))(¬A∨¬B∨E) ∧(¬E∨A)∧(¬E∨B) ∧ (C∨F)∧(¬F∨¬C)∧

Từ hình 3.4-2. Chúng ta bổ sung mệnh đề G, được hình 3.4-3. Và khi đó(A∧B) ↔E((A∧B)) →E) ∧(E→(A∧B))(¬(A∧B)) ∨E) ∧(¬E∨(A∧B))(¬A∨¬B∨E) ∧(¬E∨A)∧(¬E∨B) ∧ (C∨F)∧(¬F∨¬C)∧(¬D∨¬E∨G)∧(¬G∨D)∧(¬G∨E)∧

Le Huy Thap (Translator) 35

A

B

C

D

Hình 3.4-2. Bổ sung các ký hiệu mới E , F

F

E

5/10/2018 Logic-Bai3 - slidepdf.com

http://slidepdf.com/reader/full/logic-bai3 5/18

Logic in Computer Science Lecturre 3

Từ hình 3.4-3 Chúng ta bổ sung mệnh đề H được hình 3.4-4. Và khi đó

(A∧B) ↔E((A∧B)) →E) ∧(E→(A∧B))(¬(A∧B)) ∨E) ∧(¬E∨(A∧B))(¬A∨¬B∨E) ∧(¬E∨A)∧(¬E∨B) ∧ (C∨F)∧(¬F∨¬C)∧(¬D∨¬E∨G)∧(¬G∨D)∧(¬G∨E)∧

E∨¬

F∨

H)∧

H∨

E)∧

G∨

F))∧

Từ hình 3.4-3 Chúng ta bổ sung mệnh đề H được hình 3.4-4. Và khi đó

Le Huy Thap (Translator) 36

A

B

C

D

Hình 3.4-3. Bổ sung các ký hiệu mới E , F ,G

F

G

E

5/10/2018 Logic-Bai3 - slidepdf.com

http://slidepdf.com/reader/full/logic-bai3 6/18

Logic in Computer Science Lecturre 3

(A∧B) ↔E

((A∧B)) →E) ∧(E→(A∧B))(¬(A∧B)) ∨E) ∧(¬E∨(A∧B))(¬A∨¬B∨E) ∧(¬E∨A)∧(¬E∨B) ∧ (C∨F)∧(¬F∨¬C)∧(¬D∨¬E∨G)∧(¬G∨D)∧(¬G∨E)∧(¬E∨¬F∨H) ∧ (¬H∨E) ∧ (¬H∨F)) ∧

Từ hình 3.4-4 Chúng ta bổ sung mệnh đề I được hình 3.4-5. Và khi đó

Le Huy Thap (Translator) 37

A

B

C

D

Hình 3.4-4. Bổ sung các ký hiệu mới E , F , G , H

F

G

H

IE

A

B

C

D

Hình 3.4-5. Bổ sung các ký hiệu mới E , F , G , H, I

F

G

H

IE

5/10/2018 Logic-Bai3 - slidepdf.com

http://slidepdf.com/reader/full/logic-bai3 7/18

Logic in Computer Science Lecturre 3

(A ∧B) ↔ E((A ∧B)) →E) ∧(E→(A ∧B))(¬(A ∧B)) ∨E) ∧(¬E ∨(A ∧B))(¬A ∨ ¬B ∨E) ∧(¬E ∨A) ∧(¬E ∨B) ∧ (C ∨F) ∧(¬F ∨ ¬C) ∧

(¬D ∨ ¬E ∨G) ∧(¬G ∨D) ∧(¬G ∨E)∧(¬E ∨ ¬F ∨H) ∧ (¬H ∨E) ∧ (¬H ∨F)) ∧(G ∨H ∨ ¬I) ∧ (I ∨ ¬G) ∧ (I ∨ ¬H)) ∧(I)

3.5. BIỂU DIỄN CNF

Từ

(¬A ∨ ¬B ∨E) ∧(¬E ∨A) ∧(¬E ∨B) ∧ (C ∨F) ∧(¬F ∨ ¬C) ∧(¬D ∨ ¬E ∨G) ∧(¬G ∨D) ∧(¬G ∨E)∧(¬E ∨ ¬F ∨H) ∧ (¬H ∨E) ∧ (¬H ∨F)) ∧(G ∨H ∨ ¬I) ∧ (I ∨ ¬G) ∧ (I ∨ ¬H)) ∧(I)

 Nhận được trên, chúng ta có thể viết lại như sau:

(A’ + B’ + E)( E’ + A) (E’ + B)

(C + F)(F’ + C’)(D’ + E’ + G)(G’ + D)(G’ + E)

(E’ + F’ + H)(H’ + E)(G’ + F))

( G + H + I’ (I + G’) (I + H’)

(I)

3.6. CÁCH BIỂU DIỄN CHUẨN

Mỗi ký hiệu được biểu diễn bởi một số nguyên dương. Số nguyên âm cho phéptoán phủ định của ký hiệu. Các câu là một dãy số nguyên cách nhau một khoảngtrống. Số 0 chỉ việc kểt thúc câu.

(A’ + B’ + E)( E’+ A) (E’ + B) (C + F)(F’ + C’) (D’ + E’ + G)(G’ + D)(G’ + E)(E’ + F’ + H)(H’ + E)(G’ + F))(G + H + I’) (I + G’) (I + H’)(I)

-1 -2 5 0 -5 1 0 -5 2 03 6 0 -6 -3 0-4 -5 7 0 -7 4 0 -7 5 0-5 -6 8 0 -8 5 0 -8 6 07 8 -9 0 9 -7 0 9 -8 09 0

Le Huy Thap (Translator) 38

5/10/2018 Logic-Bai3 - slidepdf.com

http://slidepdf.com/reader/full/logic-bai3 8/18

Logic in Computer Science Lecturre 3

3.7. CÁCH GIẢI CÁC BÀI TOÁN TÌM KIẾM TỔNG QUÁT VỚI BOOLSATISFIABLE (SAT)

Mô hình hóa

1. Định nghĩa một tập hữu hạn cac khả năng được gọi là các trạng thái.

2. Mô hình hóa các trạng thái khi sử dụng (các véc tơ) các ký hiệu mệnh đề.

3. Sử dụng các công thức mệnh đề để mô tả các mối quan hệ giữa các thuộctính của các trạng thái.

Giải

1. Xây dựng một công thức mệnh mô tả trạng thái mong muốn.

2. Chuyển công thức thành công thức CNF khả thỏa tương đương .

3.  Nếu công thức khả thỏa, phép gán thỏa mãn sẽ cho trạng thái mong muốn

4.  Nếu công thức không khả thỏa, thì trạng thái mong muốn không tồn tại .

3.8. BOOL SATISFIABLE (SAT)

SAT is NP ?

SAT thuộc NP

Vì thế SAT là NP- khó

Và vì vậy SAT là hoàn toàn thuộc NP

3.9. CÁC CẬN TRÊN XẤU NHẤT ĐỐI VỚI SAT

Một chặn trên kiểu hàm mũ yếu có dạng p(n)cn trong đó c < 2 là một hằng, n là số biến, và p là đa thức. Phép giải k-SAT giải một số ví dụ SAT trong đó không cómệnh đề nào có độ dài lớn hơn k. Một số cận trên đã biết đang được quan tâm nhưsau :

1. SAT tổng quát p(n)2n

2. k – SAT tiền định: p(n)× n

k )

1

22(

+

−  

3. 3 – SAT tiền định:nn p 481.1)( ×  

4. k – SAT ngẫu nhiên: p(n)× n

k )

22( −  

5. 3 – SAT ngẫu nhiên: nn p 3303.1)( ×  

6. Công thức 3 – SAT với đúng một phép gán: nn p 308.1)( ×  

3.10. SAT TRONG THỰC TẾ

Nhiều công trình đã được đưa vào xây dựng các lời giải SAT và chúng đượcsử dụng hiệu quả trong thực tiễn

Le Huy Thap (Translator) 39

5/10/2018 Logic-Bai3 - slidepdf.com

http://slidepdf.com/reader/full/logic-bai3 9/18

Logic in Computer Science Lecturre 3

3.11. CÁC CÔNG TRÌNH NGHIÊN CỨU SAT

 Năm 2003

• 33 người

• 3 loại cơ bản

- Công nghiệp

- Thủ công

- Phát sinh ngẫu nhiên

Các lời giải tốt nhất

- Công nghiệp: Forklift

- Thủ công: satzoo1

- Phát sinh ngẫu nhiên: kcnfs and unitwalk 3.12. CÁC HÀM BOOL

 Nhắc lại các định nghĩa các hàm Bool

Hàm boolean k vị trí là hàm từ {0,1}k  vào {0,1}. k- nguyên dương nào đó

Với mối wff α xác định một hàm Bool Bα . Ngược lại, các hàm Bool có thểđược biểu diễn bởi các công thức mệnh đề, nhưng cách biểu diễn này là không

 phải luôn luôn hiệu quả.

Các sơ đồ quyết định nhị phân là một cấu trúc dữ liệu tốt cho việc biểu diễn vàthực hiện các phép toán trên các hàm Bool.

3.13. KÝ HIỆU HÀM BOOL

Giả sử tất cả các hàm đều là các hàm Bool n biến x1, x2,... , xn

Hàm đồng nhất : xi

Phủ định   f     

Hội f.gTuyển f + g

Các định nghĩa :

Cho f là hàm bool n biến

Thu hẹp hoặc phần bù đại số của f được tạo ra bằng cách thay một trong các đốicủa nó bằng một hằng. Ví dụ

f|xi = b(x1, ....., xn) = f(x1,....., xi-1, bi , xi+1, ..., xn )

Le Huy Thap (Translator) 40

5/10/2018 Logic-Bai3 - slidepdf.com

http://slidepdf.com/reader/full/logic-bai3 10/18

Logic in Computer Science Lecturre 3

Một mở rộng Shannon của hàm Bool lân cận biến xi cho bởi

f = xi . f |xi =1+ i x .f |xi = 0 

Khi một đối nào đó xi của f được thay bởi hàm g được gọi là hợp của f và g vàđược ký hiệu

f|xi=g(x1,....., xi-1, xi , xi+1, ..., xn ) = f(x1,....., xi-1, gi(x1,....., xn), xi+1 ,..., xn )Một số hàm có thể không phụ thuộc vào tất cả các đối. Tập phụ thuộc của hàm

f được ký hiệu If , tập này chứa các đối của nó mà tại đó hàm sẽ phụ thuộc :

If = {i mà f | xi=0≠ f | xi=1}

3.14. CÂY QUYẾT ĐỊNH NHỊ PHÂN

Một cây quyết định nhị phân có một gốc và được định hướng với hai kiểu đỉnh:Các đỉnh cuối và các đỉnh không phải là đỉnh cuối.

Mỗi đỉnh không phải là cuối v được gắn nhãn bởi biến var(v) và có hai nhánh kếtiếp

- low(v) tương ứng với trường hợp var(v) được gán 0 và

- high(v) tương ứng với trường hợp var(v) được gán 1.

Các đỉnh cuối cùng (lá) v được gán value(c) ∈ {0 , 1}.

Ví dụ cây 3.14-1

Một cây quyết định nhị phân T xác định một hàm Bool f v , với mỗi đỉnh vthuộc cây, được xác định như sau:

•  Nếu v là đỉnh cuối, thì

-  Nếu value(v) =1, thì f v = 1

-  Nếu value(v) =0, thì f v = 0

•  Nếu v không phải là đỉnh cuối và var(v) = xi, thì,

Le Huy Thap (Translator) 41

vvar(v)

low(v)

var(v)=0

high(v)

var(v)=1

var(v)∈{0,1}}var(v)∈{0,1}}

Hình 3.14-1. Cây quyết định và các đỉnh của nó

5/10/2018 Logic-Bai3 - slidepdf.com

http://slidepdf.com/reader/full/logic-bai3 11/18

Logic in Computer Science Lecturre 3

f v (x1,....., xn ) = i x . f low(v) (x1,....., xn ) + xi . f high(v) (x1,....., xn )

Hàm Bool định nghĩa bởi cây T là f root(T), trong đó root(T) ký hiệu gốc của câyT.

Ví dụ

Cây quyết định nhị phân với bộ so sánh 2 bit được cho bởi công thức:f(x1, x2, x3 , x4) = (x1↔  x3) ∧ (x2↔ x4) được chỉ ra ở hình 3.14-2 dưới đây( nhánh trái là low, nhánh phải là high)

Để tìm giá trị của hàm tương ứng với cây đã gán chân trị, đi theo cây từ gốc đếnlátheo quy tắc:

- If var(v) được gán là 0, hãy đi theo low(v)- If var(v) được gán là 1, hãy đi theo high(v)Giá trị gán ở đỉnh cuối (lá) là giá trị của hàm. Chẳng hạn, f(1, 0, 1, 0) = 1

3.15. BIỂU DIỄN NGẮN GỌN HƠN (A MORE CONCISEREPRẾNTATION)

Le Huy Thap (Translator) 42

x1

x3

x2

x2

x4

x4

1 0 0 1

x4

x4

0

0→

0 0

x3

x2

x2

x4

x4

0 0 0 0

x4

x4

1 0 0 1

0 1

0 10 1

0 1 0 1

0 1 0 1 0 1 0 1 0 1

0 10 1

0 1 0 1 0 1

Hình 3.14-2. Cây quyết định hàm f(x1, x

2, x

3, x

4) = (x

1↔ x

3)

 ∧(x

2↔x

4)

5/10/2018 Logic-Bai3 - slidepdf.com

http://slidepdf.com/reader/full/logic-bai3 12/18

Logic in Computer Science Lecturre 3

Cây quyết định nhị phân không cung cấp cách biểu diễn ngắn gọn nhất cáchàm Bool.Có một số cách truyền thống được dùng để rút gọn các cây kiểu như vậy.

Ở ví dụ trên, có 8 cây con gốc x4, nhưng chỉ có 3 cây phân biệt mà thôi (hình3.15-1).

Từ nhận xét trên, chúng ta có thể rút gọn bằng cách gộp các cây con đẳng cấulại.Kết quả, một đồ thị vòng có hướng (DAG) chuyển thành sơ đồ quyết định nhị

 phân BDD (Binary Decision Diagram) .Chú ý rằng, hàm được thể hiện là không bị thay đổi.

Ví dụ, sau khi gộp các cây con đẳng cấu, cây ở ví dụ trên có hình (3.15-2) 

Le Huy Thap (Translator) 43

x1

x3

x2

x2

x4

x4

1 0 0 1

x4

x4

0

0→

0 0

x3

x2

x2

x4

x4

0 0 0 0

x4

x4

1 0 0 1

0 1

0 10 1

0 1 0 1

0 1 0 1 0 1 0 1 0 1

0 10 1

0 1 0 1 0 1

Hình 3.15-1. Các cây con có thể gộp lại

5/10/2018 Logic-Bai3 - slidepdf.com

http://slidepdf.com/reader/full/logic-bai3 13/18

Logic in Computer Science Lecturre 3

3.16. SƠ ĐỒ QUYẾT ĐỊNH NHỊ PHÂN ĐƯỢC SẮP XẾP (Ordered BinaryDecision Diagrams)

Sơ đồ quyết định nhị phân có sắp xếp (OBDD) có tính chất bổ sung là, với mộtthứ tự nào đó < của các biến x1, x2,...,xn, var(v) < var(low(v)) và var(v) <var(high(v)) cho mỗi đỉnh v.

Bryant đặt tên là các hàm đồ thị.Ví dụ, (với sơ đồ đã nghiên cứu trên) thì x1 < x3 < x2 < x4. ta có hình 3.16

Le Huy Thap (Translator) 44

x1

x3

x2

x4

x4

1 0 0 1

x3

x2

x4

0

0

0 1

0 1 0 1

1

1

1

0

0

0 1

Hình 3.10. Cây đã rút gọn

5/10/2018 Logic-Bai3 - slidepdf.com

http://slidepdf.com/reader/full/logic-bai3 14/18

Logic in Computer Science Lecturre 3

 3.17. SƠ ĐỒ QUYẾT ĐỊNH NHỊ PHÂN ĐƯỢC SẮP XẾP VÀ RÚT GỌNROBDD’s (Reduced Ordered Binary Decision Diagrams)

Việc thể hiện sơ đồ quyết định nhị phân có thể được rút gọn hơn nữa bằng cách loại bỏ các đỉnh v tại đó low(v) = high(v). Một BDD không chứa các đỉnhnhư vậy được gọi là tối giản.

Một cây quyết định nhị phân được sắp xếp và rút gọn trở thành cấu trúc dữ liệuchọn dùng cho việc thể hiện các hàm Bool, và hiện nay là loại phổ thông nhất củaBDD.

Lợi thế chính của ROBDD’s là các biến tấu của nó.

Định lý

Với hàm Bool bất kỳ f - n biến, có duy nhất một ROBDD (cũng n biến) biểudiễn f và một cách OBDD khác bất kỳ biểu thị f đều chứa nhiều đỉnh hơn.

Chứng minh

  Bằng quy nạp theo độ lớn vủa I f.

Le Huy Thap (Translator) 45

x1

x3

x2

x4

x4

1 0 0 1

x3

x2

x4

0

0

0 1

0 1 0 1

1

1

1

0

0

0 1

Hình 3.16. Cây có sắp xếp

5/10/2018 Logic-Bai3 - slidepdf.com

http://slidepdf.com/reader/full/logic-bai3 15/18

Logic in Computer Science Lecturre 3

Cho trước OBDD bất kỳ một ROBDD tương đương có thể được tính với thờigian tuyến tính (độ phức tạp tuyến tính) khi ứng dụng thủ tục được gọi là Reduce(rút gọn).

Thực ra thì ROBDD’s là chuẩn cho việc tạo ra các phép toán hàm Bool quan trọng:

- Hai hàm Bool là tương đương nếu chúng có ROBDD’s đẳng cấu.- Tính khả thỏa có thể được xác định bằng phép kiểm tra đơn giản bàng cách

xem ROBDD có phần cuối cùng có dược gắn nhãn 1 hay không.

- Tính (Suy luận) lặp thừa được thể hiện bởi ROBDD với một đỉnh đơn đượcgắn nhãn 1

Ví dụ ROBDD cho ví dụ đang nghiên cứu.

Bây giờ khi chúng ta nói đến BDD’s cũng có nghĩa là ROBDD’s.

Chú ý rằng độ lớn của BDD phụ thuộc rất nhiều vào cách sắp xếp biến.

  Bài toán sắp xếp biến, nhìn chung việc tìm cách sắp xếp biến tối ưu là bài toán NP đầy đủ.

3.18. SẮP XẾP BIẾN ĐỘNG

Một kỹ thuật được gọi là xếp lại động có thể hữu ích nếu không còn có cáchsắp xếp theo kiểu heuristic nào được sử dụng.

Khi kỹ thuật này được sử dụng, kiểm tra lần lượt BDD và giữ lại BDD tốt nhất.

Sử dụng nhiều kỹ thuật khác nhau để cố gắng tìm BDD có kích thước nhỏ nhấttoàn cục chứ không phải cục bộ.

3.19. CÁC PHÉP TOÁN LOGIC TRÊN BDD’s

Chúng ta bắt đầu với phép toán của đối xi thu hẹp nào đó của hàm Bool f thànhgía trị hằng b.

 Nhắc lại định nghĩa thu hẹp của f:

),..,,,,...,(),...,( 1111| niinb x x xb x x  f   x x  f  i +−=

=  

 Nếu f được biểu diễn bởi BDD, thì BDD với việc thu hẹp),..,,,,...,(),...,( 1111| niinb x x xb x x  f   x x  f  

i +−== được tính theo chiều sâu (dọc)

của BDD.

Tại một đỉnh bất kỳ v có con trỏ tới đỉnh w sao cho var(w) = xi chúng ta thaycon trỏ bởi low(w) nếu b bằng không và high(w) nếu b = 1.

Sau sự biến đổi này, thủ tục rút gọn được áp dụng để đảm bảo rằng kết quả thuđược là chuẩn.

Le Huy Thap (Translator) 46

5/10/2018 Logic-Bai3 - slidepdf.com

http://slidepdf.com/reader/full/logic-bai3 16/18

Logic in Computer Science Lecturre 3

Tất cả 16 phép nối mệnh đề nhị nguyên có thể được bổ sung một cách đầy đủtrên các hàm Bool đã được thể hiện bởi BDD’s.

 Nói chung tính phức tạp của các phép toán này là tuyến tính với số các biến(đối số) của BDDs.

Quan điểm chính của việc bổ sung này là mở rộng Shannon

01|.|.

==

+=ii

xi xif  x f  x f   

Bryant đưa ra thuật toán đồng dạng được gọi là Apply để tính toán co tất cả 16 phép toán nhị nguyên.

Cho ⊕ là phép toán nhị nguyên rùy ý và giả sử f và f’ là hai hàm Bool. Đrể tínhf ⊕f’:

1.  Nếu cả root(f) lẫn root(f’) là các đỉnh cuối, thì f ⊕f’ = value(root(f)) ⊕value(root(f’))

2. Nếu cả var(root(f)) = var(root(f’)), thì sử dụng mở rộng Shannon. Giả sử

x = var(root(f)) = var(root(f’)):

f ⊕f’ = x. (f|x=1 ⊕ f’| x=1) +  x . (f|x=0 ⊕ f’| x=0) 

Chú ý rằng điều này là để chia bài toán thành hai bài toán con và chúng sẽ đượcgiải đệ quy.

Gốc của BDD là đỉnh v được gán bởi x.Phần đầu của biểu thức tính high(v), còn phần thứ hai thì tính low(v).

Khi tính f ⊕f’, đặt x = var(root(f)) và x’ = var(root(f’))

3.  Nếu x < x’ thì f’|x=0 = f’| x=1 = f’ do f’ không phụ thuộc vào x. Trong trườnghợp này mở rộng Shannon đơn giản hóa thành:

f ⊕f’ = x. (f|x=1 ⊕ f’) +  x . (f|x=0 ⊕ f’)

BDD được tính theo phương pháp đệ quy giống như trường hợp 2.

4.  Nếu x > x’ thì f|x=0 = f| x=1 = f do f không phụ thuộc vào x’. Trong trường hợpnày mở rộng Shannon đơn giản hóa thành:

f ⊕f’ = x’. (f ⊕ f’|x=1) +,

 x . (f ⊕ f’|x’=0)

BDD được tính theo phương pháp đệ quy giống như trường hợp 2 hoặc 3.

Trong trường sử dụng quy hoạch động 

Khi sử dụng quy hoạch động, có thể tạo ta thuật toán đa thức

Le Huy Thap (Translator) 47

5/10/2018 Logic-Bai3 - slidepdf.com

http://slidepdf.com/reader/full/logic-bai3 17/18

Logic in Computer Science Lecturre 3

- Một bảng hash được sử dụng để ghi tất cả vấn đề con đã được tính toántrước.

- Trước khi gọi đệ quy nào đó, bảng được kiểm tra để xem xét đã có vấn đềcon nào đã được giải quyết chưa.

- Nếu có, kết quả nhận được là ở bảng, ngược lại , thì gọi đệ quy để tiếp tục- Kết quả phải được rút gọn để đảm bảo nó là dạng chính tắc (canonical form)

CÁC MỞ RỘNG BDD

Một DAG đơn giản có thể được sử dụng để biểu diễn một tập các hàm Bool:

- Việc sắp xếp biến giống ngau được sử dụng cho tất cả các hàm

- Tất cả các đồ thị con giống hệt nhau được gộp lại

- Hai hàm là đồng nhất iff chúng có cùng gốc

- Kiểm tra tính tương đương có thể được làm theo khoảng thời gian khôngđổi

Một mở rộng hiệu dụng khác là bổ sung các nhãn vào các cacnhj trên DAG để chỉ phủ định (to denote Bool negation). Diều đó làm cho nó không cần phải sử dụngcác đồ thị con khác nhay và phủ định của nó.

CÁC SƠ ĐỒ QUYẾT ĐỊNH NHỊ PHÂN VÀ NGƯỜI MÁY HỮU HẠN(BDD’s AND FINITE AUTOMATA)

BDD’s cũng có thể được xem xét như người may hữu hạn và tiền định

Một hàm bool n biến có thể đồng nhất với một tập các chuỗi trong {0,1}n nó đánhgiá 1

Đây là ngôn ngữ hữu hạn. Các ngôn ngữ hữu hạn là chính quy. Do đó có một DFAchấp nhận ngôn ngữ.

DFA cung cấp dạng chuẩn cho các hàm Bool gốc.

Các toán tử trên hàm Bool tương ứng với các cấu trúc chuẩn cú lý thuyết người

máy.BIỂU DIỄN CÁ QUAN HỆ HỮU HẠN

Các BDD’s rất hữu dụng khi muốn có các cách biểu diễn ngắn gọn các quan hệtrên các miền hữu hạn.

 Nếu R là một qh n ngôi trên {0 , 1} thì R có thể được biểu diễn bởi BDD vớihàm đặc trưng của nó là:

f R (x1 , x2 , … , xn) =1 iff R(x1 , x2 , … , xn)

Le Huy Thap (Translator) 48

5/10/2018 Logic-Bai3 - slidepdf.com

http://slidepdf.com/reader/full/logic-bai3 18/18

Logic in Computer Science Lecturre 3

BIỂU DIỄN CÁC QUAN HỆ

 Nếu R là một quan hệ n ngôi nào đó trên miền D, D có 2m phần tử với m > 1

Để biểu diễn R như một BDD, chúng ta mã hóa các phần tử của D khi sử dụng ánhxạ

φ : {0, 1} →D (nghĩa là ánh xạ véc tơ bool độ dài m thành một phần tử của D

Chúng ta xây dựng Quan hệ Bool mới R’ với m× n thứ nguyên như sau:))(),...,((),...,(' 11 nn x x R x x R ΦΦ=

Trong đó  x là véc tơ m biến bool được dùng để mã hóa biến xi lấy giá trị thuộcmiêng D.

R bây gời có thể được biểu diễn như BDD với hàm đặc trưng f R’ của R’

Ứng dụng chung của kỹ thuật này là sử dụng BDD để thẻ hiện tập các phần tử của

D (bởi vì các tập có thể được xem như các quan hệ một thứ nguyên)

Le Huy Thap (Translator) 49