Tải bản đầy đủ (.docx) (11 trang)

Tiểu luận môn TOÁN HỌC CHO MÁY TÍNH THUẬT TOÁN RÚT GỌN GIẢI HỆ PHƯƠNG TRÌNH LOGIC MỞ RỘNG

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 (271.55 KB, 11 trang )

Đại Học Quốc Gia TP.HCM
Trường Đại Học Công Nghệ Thông Tin
TIỂU LUẬN MÔN HỌC
TOÁN CHO KHOA HỌC MÁY TÍNH
THUẬT TOÁN RÚT GỌN GIẢI HỆ PHƯƠNG TRÌNH
LOGIC MỞ RỘNG
DỰA TRÊN TÀI LIỆU:
Reduction algorithms for solving large
systems of logical equations
A. Zakrevskij
GVHD: PGS. TS. NGUYỄN PHI KHỨ
HVTH: NGUYỄN MINH PHÁT
MSHV: CH1301047
TP. HỒ CHÍ MINH
Tháng 12/2013
Tiểu luận: Toán cho khoa học máy tính
MỤC LỤC
Thuật toán rút gọn giải hệ phương trình
logic mở rộng
Tóm tắt
Hệ phương trình logic mở rộng được xem xét trong bài báo này phụ thuộc vào số lượng
hạn chế các biến. Một phương pháp rút gọn được đề xuất để giảm số nghiệm trong
phương trình riêng biệt, tiết kiệm thời gian tìm nghiệm cho hệ thống. Có ba kĩ thuật rút
gọn được đề xuất, mỗi biện pháp tìm nghiệm ngăn chặn sự kết hợp các biến trong các
phương trình riêng (các kết hợp không thỏa mãn phương trình). Thủ tục tìm kiếm cho
hằng số đầu tiên (ngăn chặn giá trị của một vài biến hay 1-bans). Thủ tục tìm kiếm thứ hai
2
Tiểu luận: Toán cho khoa học máy tính
cũng ngăn chặn sự kết hợp của mỗi cặp biến (2-bans) và tìm tất cả hệ quả đóng hợp lý của
chúng với tập phát hiện 2-bans. Thứ ba là phân tích các phương trình bằng các cặp biến,
tìm các biến chung r và kiểm tra từng bước một tất cả các sự kết hợp các giá trị khác nhau


với sự giới hạn các biến (r-bans). Việc tìm ra bans được dùng để xóa một vài nghiệm
trong các phương trình khác. Sau khi bans mới này có thể được tìm thấy, các thủ tục rút
gọn có chuỗi tự nhiên. Nó là cách dễ nhất để giải quyết hệ phương trình logic lớn. Đôi khi
nó chỉ đủ để tìm một vài nghiệm của hệ hay chứng minh tính không nhất quán của nó.
1. Giới thiệu
Nhiều bài toán có liên quan đến phân tích, thiết kế logic (cả trong y học và công
nghệ), nhận dạng mẫu, bảo mật thông tin và nhiều lĩnh vực khác đã được biến đổi công
thức và giải hệ phương trình logic lớn. Việc này khó khăn hơn bởi vì một hệ thống có thể
có nhiều phương trình và biến, vì vậy không thể giải chúng bằng các phương pháp trực
tiếp mà chỉ dựa trên việc tìm trong không gian Bool của các biến và kiểm tra từng phần tử
một.
Tuy nhiên, quy tắc của các biến trong các phương trình riêng thì cực kì hạn chế, ví
dụ như nó không thể vượt quá 10. Điều này cho phép biểu diễn mỗi phương trình bởi một
vec-tơ Bool của các nghiệm của phương trình, cung cấp một mô tả ngắn gọn đối với hệ
thống và hiệu quả ứng dụng của các phép toán vectơ logic.
Điều đáng quan tâm nhất từ quan điểm thực tế là trường hợp hệ có một vài nghiệm
hoặc không có nghiệm nào. Trường hợp này là điển hình cho việc kiểm tra một hệ có khả
năng thỏa mãn hay không (một tác vụ phổ biến!) và giải một vài bài toán phân tích, nhận
diện. Kĩ thuật cây tìm kiếm có thể được sử dụng trong trường hợp này, đặc biệt có ý nghĩa
mới khi kết hợp với việc giảm không gian tìm kiếm một cách mạnh mẽ.
Có ba thuật toán tương tranh thuộc loại này được đề xuất trong bài báo này.
2. Hình thành công thức cho bài toán
Mỗi phương trình logic với biến Bool có dạng rút gọn sau:
F = (ϕ
1
(u
1
) = 1, ϕ
2
(u

2
) = 1, , ϕ
m
(u
m
) = 1),
Trong đó ϕ
i
(u
i
) là hàm Bool với đối số được chọn từ tập x = (x
1
,x
2
, ,x
n
) : u
i
⊆ x,
i = 1,2, ,m. Để giải hệ F nghĩa là tìm các nghiệm của nó bằng cách kết hợp các giá trị của
các biến x
1
,x
2
, ,x
n
, mà trả về 1 đối với mỗi hàm ϕ
i
. Nó là cần thiết trong một vài trường
hợp để thu được tất cả các nghiệm, đôi khi chỉ có thể tìm một vài nghiệm hay thậm chí

một nghiệm tùy ý trong số chúng, đôi khi nó là cần thiết để biết nếu có tồn tại một vài
nghiệm, ví dụ giải bài toán một cách rõ ràng với điều kiện thỏa mãn.
Ta có thể biểu diễn bất kì hàm Bool ϕ
i
với k đối số (k = |u
i
|) từ hệ F bởi một cặp
vectơ Bool: 2
k
vectơ thành phần v
i
của các giá trị hàm (sử dụng thứ tự quy ước) và n vectơ
thành phần a
i
của các đối số hàm. Ví dụ, nếu x = (a,b,c,d,e,f,g,h), thì cặp vectơ v
3
=
3
Tiểu luận: Toán cho khoa học máy tính
01101010 và a
3
= 00101001 biểu diễn hàm ϕ
3
(c,e,h) mà nó nhận giá trị 1 trên bốn tập con
001, 010, 100 và 110 của các giá trị đối số và nhận giá trị 0 ở các trường hợp khác.
Khi n nhỏ (bằng 10), sự biểu diễn tất cả các hàm ϕ
i
có thể được thống nhất thông
qua mỗi hàm chức năng với biến x (như là một sự minh họa) và tương ứng với vec tơ mở
rộng v

i
. Sau khi hoàn thành giải pháp của hệ thống một cách dễ dàng nhờ vào các liên kết
giữa các thành phần thông minh của các vectơ mở rộng này: tất cả các nghiệm sẽ được liệt
kê trong vectơ kết quả v. Nhưng phép toán này không thể thực hiện được trong thực tế
nếu n lớn, khi độ dài của vectơ v sẽ vượt quá 1018 khi n = 60.
Một phương pháp mới có thế được sử dụng trong trường hợp này, dựa trên một thủ tục rút
gọn được mô tả bên dưới.
3. Phương pháp phân bố hằng
Quy tắc chuyển đổi tương đương của hệ F được giới thiệu bên dưới, trong đó ϕ
j

một hàm tùy ý lấy từ F và một vài biến x
i
lấy từ X. Các quy tắc này để đơn giản F với tập
nghiệm lưu giữ.
Khẳng định 1 Nếu x
i
ϕ
j
= 0, bất đẳng thức với x
i
≠ 1 có thể được thêm vào F, nếu x’
i
ϕ
j
= 0,
thì x
i
≠ 0 có thể được thêm.
Khẳng định 2 Nếu F chứa bất đẳng thức x

i
≠ 1, thì biến x
i
trong ϕ
j
có thể được thay đổi
giá trị 0 ( 1 trong trường hợp x
i
≠ 0).
Khẳng định 3 Nếu hệ F chứa cả hai bất đẳng thức x
i
≠ 1 and x
i
≠ 0, thì không nhất quán
(không có nghiệm).
Khẳng định đầu tiên có thể được dùng để tìm hằng số của hệ. Nếu hệ hiển nhiên
nhất quán, x
i
= 0 khi x
i
≠ 1 và x
i
= 1 khi xi ≠ 0. Xác suất để tìm một vài hằng số trong hệ
tăng lên với sự giảm số lượng biến và nghiệm trong việc phân tích phương trình.
Khẳng định thứ hai có thể được sử dụng cho việc phân bố các hằng. Thay thế một
vài biến bằng hằng số thông dụng để giảm số lượng nghiệm đối với phương trình mà nó
trả về, giúp ích cho việc khám phá ra các hằng số mới. Vì vậy, quá trình phân bố hằng là
một chuỗi tự nhiên. Kết quả là kích thước của phương trình giảm xuống, đôi khi giảm đến
không khi tất cả các biến của phương trình nhận giá trị xác định. Nếu hàm ϕ
j

nhận giá trị
1, tương ứng với phương trình bị xóa khỏi hệ thống; Nếu ϕ
j
nhận giá trị 0, thì hiển nhiên là
hệ thống không nhất quán.
Phương pháp này đơn giản nhưng hiệu quả, và được áp dụng cho một số bài toán
mã hóa. Một bài toán áp dụng kĩ thuật giải mã đặc biệt đối mật mã máy Hagelin M-209-B,
đã được áp dụng trong một vài dạng bởi Germans trong suốt thế chiến thứ hai, và trong
điều tra [3]. Điều đó chỉ ra rằng các hệ giải mã có thể được rút gọn để giải nhiều hệ
phương trình logic xác định (khoảng 500) với mỗi phương trình chứa sáu biến Bool, trong
4
Tiểu luận: Toán cho khoa học máy tính
khi đó số lượng biến tổng quát bằng 131 – tập các giá trị có liên quan đến việc tìm khóa.
Để giải hệ này một phương pháp được đề xuất trong [3] dựa trên việc sử dụng Biểu đồ
quyết định nhị phân có thứ tự rút gọn (Reduced Ordered Binary Decision Diagrams
(ROBDDs)) [4] cho việc biểu diễn các hàm. Nó được cài đặt trên hệ máy tính Pentium
Pro 200 cho thấy máy có thể phỏng đoán tìm ra khóa chỉ trong một vài phút.
Việc áp dụng phương pháp phân bố hằng số sử vectơ biểu diễn hàm Bool và áp
dụng vào việc giải thích đối với hệ phương trình logic được chỉ rõ thì hiệu quả hơn nhiều.
Nó tăng tốc quá trình tìm kiếm khóa hơn hàng ngàn lần: thời gian chạy để giải quyết một
bài toán khó thì không vượt quá 0.1 giây trong một chuỗi thực nghiệm sử dụng C++ và hệ
máy Pentium 100 [5].
4. Phương pháp tam đoạn luận
Phương trình ϕ(z
1
,z
2
, ,z
k
) = 1 với hàm ϕ nhận giá trị 1 dựa trên các đầu vào s được

chọn ngẫu nhiên. Khi s nhỏ, có thể tìm một vài hằng số – chặn trên giá trị một vài biến (a
ban of rank 1, hay 1-ban). Nhưng rất có thể để lộ ra chặn trên một số sự kết hợp các giá trị
của 2 biến (2-ban), mà xác định tương ứng với gợi ý thông thường, hoặc liên kết giữa
những biến này. Ví dụ, “Nếu a, thì không b” không cho phép sự kết hợp các giá trị a = 1,
b = 1. Điều này có thể cho thấy ϕ nếu abϕ = 0. Để thuận tiện, việc biểu diễn ban này bằng
tích ab (chú ý trường hợp ab = 0).
Tương tự, 2-bans ab’, a’b, a’b’ được định nghĩa. Chúng được hiểu như một phạm
trù phân loại khẳng định hay phủ định chung. Bên canh ba nhận định tam đoạn luận của
Aristotle (ab’– tất cả phần tử A thuộc B, a’b – tất cả phần tử B thuộc A, ab – không phần
tử nào của A thuộc B), quy tắc thứ tư được sử dụng: a’b’– không có đối tượng nào thuộc
A và cũng không thuộc B. Một nhận định không được xem xét bởi Aristotle, vì ông ấy
không quan tâm đến các lớp rỗng [6].
Có thể một vài biến thứ hạng r (chứa biến r) là đủ lớn nếu kì vọng toán học M của
số lượng bans thì không nhỏ hơn 1: M ≥ 1. Tính toán bởi công thức
[7], giảm đến k/2
s−1
cho 1-bans và giảm đến
2k(k − 1)(3/4)
s
cho 2-bans. Tương ứng với công thức điều kiện M ≥ 1 thỏa mãn với số
lượng hạn chế các biến (k) và đặc biệt các nghiệm (s) trong phương trình ϕ(z
1
,z
2
, ,z
k
) = 1,
và hạn chế này được xem xét khi so sánh 2-bans với 1-bans. (Giả định rằng các nghiệm
được sinh ra một cách ngẫu nhiên) Vì thực tế có k giá trị được quan tâm (từ 5 đến 10)
chúng được tính toán từ công thức đã cho và biểu diễn dưới bảng sau. Tồn tại giá trị lớn

nhất thỏa mãn điều kiện M ≥ 1 cho 1-bans (s
1
max
) và 2-bans (s
2
max
). Quan hệ tham số giá trị
s đã cho trước với 2-bans bởi xâu cuối:
s
2
max
% = 100s
2
max
/2
k
).
5
Tiểu luận: Toán cho khoa học máy tính
Theo bảng này khi k nhỏ vẫn có thể tìm được thậm chí trong trường hợp tỷ lệ có nghiệm
đối với các phương trình cao hơn.
4.1 Hệ P đóng
Giả sử, bằng phương trình kiểm tra chi tiết hệ F, chúng ta có thể tìm một tập P của
2-bans. Chúng ta sẽ xem xét các tác vụ đóng, ví dụ bổ sung thêm tất cả 2-bans khác một
cách logic suy từ hệ P (được gọi là phép rút gọn của P). Tác vụ này tương đương với bài
toán tam đoạn luận phức. Kí hiệu kết quả tập đóng của 2-bans là Cl(P). Một phương pháp
tìm nó được đề xuất bên dưới. Nó khác với giải pháp rõ ràng ở [8] và lối giải thích bằng
đồ thị [9] bằng cách áp dụng các toán tử vectơ ma trận để tăng tốc suy luận logic.
Cho X
1

t
and X
0
t
là tập tất cả tịnh tiến vào 2-bans trong F lẫn nhau tịnh tiến với x
t

hay x’
t
, một cách tương ứng. Tác giả giới thiệu toán tử Cl
t
của tập đóng riêng P với biến
x
t
, mở rộng tập này bằng cách thống nhất nó với tích trực tiếp X
1
t
× X
0
t
chứa kết quả của
tất cả các giải pháp có thể bằng biến này.
Khẳng định 4 Cl
t
(P) = P ∪ X
1
t
× X
0
t

⊆ Cl(P).
Khẳng định 5 Cl(P) = Cl
1
Cl
2
Cl
n
(P).
Tập P có thể được khép kín với các biến riêng biệt từng biến một.
Tập P có thể được biểu diễn bởi một ma trận Bool bình phương P với kích thước
2n x 2n, với các hàng p
t1
,p
t0
và các cột p
t1
,p
t0
tương ứng với các tịnh tiến x
t
,x’
t
,t = 1,2, ,n.
Các phần tử của ma trận P tương ứng với các cặp ngữ nghĩa, và các phần tử không chéo
nhau có giá trị 1 biểu diễn rõ 2-bans. Vì vậy tổng của 1s trong hàng p
t1
(cũng như trong cột
p
t1
) biểu thị qua tập X

1
t
, và tổng của 1s trong hàng p
t0
(cột p
t0
) biểu thị qua tập X
0
t
. Sử dụng
các phép toán vectơ, chúng ta có thể xây dựng ma trận P
+
, trình bày kết quả của phép toán
đóng: P
+
= Cl(P).
Ví dụ, nếu x = (a,b,c,d) và 2- bans ab’, ac, a’d’, bc’ được tìm với tập P, thì
6
Tiểu luận: Toán cho khoa học máy tính
– hệ quả bans được đánh dấu trong ma trận P
+
biến ký tự tương ứng với giải pháp được
thực thi.
Tập đóng Cl(P) có thể dựa trên việc tăng cường thuật toán khai triển P: mỗi lần khi
2-ban mới p được bổ sung bởi một toán hạng đặc biệt ins(p,P) tất cả đều rút gọn kể cả P.
Trong trường hợp đó sau mỗi bước tập P vẫn đóng: P = Cl(P).
Phép toán ins(p,P) được định nghĩa như sau.
Khẳng định 6 Nếu P = Cl(P), thì Cl(P ∪ {p}) = P ∪ D, điều kiện
D = ({x} ∪ X
0

) × ({y} ∪ Y
0
), nếu p = xy,
D = ({x} ∪ X
0
) × ({y’} ∪ Y
1
), nếu p = xy’,
D = ({x’} ∪ X
1
) × ({y} ∪ Y
0
), nếu p = x’y,
D = ({x’} ∪ X
1
) × ({y’} ∪ Y
1
), nếu p = x’y’.
4.2 Tìm tất cả số nguyên tố bans
Xem xét bài toán tìm tất cả số nguyên tố bans (không theo một cách khác) được suy diễn
từ hệ P. Không có tập 2-bans nào có thể sinh ra bất kỳ bans cấp cao hơn. Nhưng có thể
sinh ra một vài 1-bans, ngăn chặn các giá trị xác định của các biến riêng.
Khẳng định 7 Tất cả 1-bans được suy diễn từ tập P được biểu diễn bởi 1đường chéo
chính của ma trận P+.
Ví dụ 1-bans a và d’ được biểu diễn theo cùng một cách.
Khẳng định 8 Nếu cặp 1-bans x và x’ được tìm thấy trong một vài biến x, thì hệ F không
nhất quán.
Chú ý rằng sự không nhất quán của F theo sự không nhất quán của P, nhưng không ngược
lại.
4.3 Thuật toán rút gọn bằng tam đoạn luận

Phương pháp được đề xuất với tập phương trình logic F, rỗng ở giai đoạn đầu.
Kiểm tra phương trình theo một chu trình, rút gọn tập nghiệm của phương trình hiện tại fj
7
Tiểu luận: Toán cho khoa học máy tính
= 1 bằng cách xem xét liệt kê bans trong P (hạn chế các nghiệm bị xóa) và tìm kiếm cho
2-bans mới không tồn tại trong P. bans này được bổ sung vào P, tại cùng một thời điểm
toán tử của P đóng được thực hiện. Bằng cách này một vài biến có thể nhận giá trị duy
nhất - 1s xuất hiện trên đường chéo chính của ma trận P (1-bans được tìm thấy). Thủ tục
kết thúc khi có mâu thuẫn xảy ra (0-ban được phát hiện biểu diễn bởi một cặp 1s trên
đường chéo chính của P) hay khi xử lý m phương trình từng bước một mà không thành
công – trong trường hợp này tác giả thu được một hệ phương trình rút gọn tương đương
với ban đầu.
5. Phương pháp rút gọn cục bộ
Đề nghị đầu tiên cho phương pháp này [10] có tính cục bộ. Nghĩa là khả năng thu
gọn được xem xét khi kiểm tra những cặp hàm khác nhau ϕ
i
(u
i
) và ϕ
j
(u
j
) với tập giao điểm
của các đối số:
u
i,j
= u
i
∩ u
j

≠ ∅.
Xét tập kí tự M
i
của hàm ϕ
i
(u
i
) trong không gian các đối số từ tập u
i
, và a là một yếu tố
ngẫu nhiên bất kì: a ∈ M
i
. Kế đến là a k-phần véc-tơ Bool. Với k là số lượng đối số của
hàm ϕ
i
(u
i
): k = |u
i
|. v là tập con tùy ý từ u
i
(v ⊆ u
i
) và a/v – phép chiếu của phần tử a trên
v, ví dụ: vec-tơ kết hợp các thành phần của vec-tơ a tương ứng với các biến trong tập V.
Tập tất cả các phép chiếu khác nhau của các phần tử từ M
i
lên V được gọi là phép
chiếu của tập M
i

trên V và kí hiệu là M
i
/v. Gọi M
i,j
là giao của các tập M
i
/u
i,j
và M
j
/u
i,j
, và
M
i/j
– tập tất cả các phần tử từ M
i
ánh xạ trên u
i,j
thuộc về tập M
i,j
.
Ví dụ, Nếu u
i
= (a,b,c,d,e), u
j
= (c,d,e,f,g,h), M
i
= (01101,11010,10011) và
M

j
=(101110,001101,010010), thì u
i,j
=u
j,i
= (c,d,e), M
i,j
= M
j,i
= (101,010), M
i/j
=
(01101,11010) và M
j/i
= (101110,010010).
Để thuận tiện, đưa vào kí hiệu phép toán M
i
:= M
i/j
của biến đổi M
i
cho M
i/j
.
Khẳng định 9 Cho bất kỳ i,j = 1,2, ,m phép toán M
i
:= M
i/j
là một biến đổi tương đương
của hệ F, dành riêng cho tập gốc của nó.

Việc áp dụng phép toán như đã cho ở ví dụ trên rút gọn mỗi tập M
i
và M
j
bởi một phần
tử.
Phép gán M
i
:= M
i/j
được áp dụng đến từng cặp hàm thứ tự (ϕ
i

j
) nếu M
i
≠ M
i/j
. Xác
suất có thể ứng dụng của nó tăng lên với sự tăng dần các yếu tố |u
i,j
| trong tập u
i,j
và giảm
xuống khi |u
i,j
| giảm. Trong một vài trường hợp thì cao hơn khi |M
j
| < 2
s

, điều kiện s = |u
i,j
|.
Bây giờ xem xét thủ tục thực hiện dãy phép toán này trên các cặp mà nó có thể
được áp dụng. Việc này có thể kết thúc với sự thu gọn một vài tập M
i
giảm xuống thành
tập rỗng, có nghĩa là hệ F không nhất quán, hay một vài tập hợp của hàm thu gọn sẽ được
8
Tiểu luận: Toán cho khoa học máy tính
phát hiện với điều kiện phép toán đã cho không được áp dụng đến bất kì cặp nào. Thủ tục
này gọi là sự rút gọn cục bộ của hệ F.
5.1 Ví dụ
Một hệ F gồm có ba phương trình ϕ
1
(a,b,c,d) = 1, ϕ
2
(c,d,e,f) = 1 và ϕ
3
(e,f,g,h) = 1 được
biểu diễn bởi hai ma trận Bool: ma trận các đối số A xác định phân bố các đối số qua các
hàm, và ma trận của các hàm F với mỗi hàm được xác định tương ứng hàng giá trị tại các
đầu vào (tổ hợp các giá trị đối số). Chú ý các đầu vào được sắp thứ tự từ trái qua phải
bằng dãy nhị phân – ví dụ, đầu vào 1001 tương ứng với thành phần thứ chín của chuỗi
(đánh số bắt đầu từ 0). Các đầu vào này được biểu diễn bởi cột của ma trận hằng số C, các
thành phần của chúng được đánh số từ trái sang phải: c1c2c3c4. Mỗi hàng của C biểu
diễn hàm đơn giản nhất trùng khớp với một trong các đối số.
Ví dụ, hàm ϕ
1
nhận giá trị 1 tại các đầu vào 0010, 0101 và 1001 – kết hợp các giá trị của

các đối số a,b,c,d.
5.2 Thuật toán
Tác giả chứng minh thuật toán rút gọn cục bộ dựa vào các ví dụ đã cho ở trên của
hệ F. Đối với sự thành công cặp các hàm, bắt đầu với (ϕ
1

2
). Việc dùng phép toán liên kết
thành phần tốt tương ứng với các hàng của ma trận A, chúng ta tìm ra cặp đối số chung c
và d. Duyệt qua tất cả các giá trị của các biến này, chúng ta kiểm tra định nghĩa trong
không gian các đối số của hàm ϕ
1
(không gian này được biểu diễn bởi vec-tơ ϕ
1
) và tìm
khoảng cách trống giữa chúng và 1 của hàm này. Sau đó xóa tất cả 1s trong khoảng thời
gian tương ứng của vec-tơ ϕ
2
.
Vec-tơ biểu diễn xen kẽ các phép toán logic thành phần thông minh được sử dụng
trong suốt thủ tục này. Ví dụ, xét tổ hợp giá trị 00 của các biến c, d và thực hiện các phép
toán kết hợp nghịch đảo của các vec-tơ c
3
và c
4
, chúng ta xây dựng vec-tơ 1000 1000 1000
1000 xác định khoảng thời gian thích hợp trong không gian của các biến a, b, c, d. Kết
hợp với vector ϕ
1
không chứa các biến này, vì vậy phương trình ϕ

1
= 1 không có nghiệm
trong khoảng này. Tương ứng với các khoảng trong không gian các đối số của hàm ϕ
2

được biểu diễn bởi vector 1111 0000 0000 0000, bởi vì các biến c và d có vị trí tại bên
9
Tiểu luận: Toán cho khoa học máy tính
trái Tất cả các biến chứa trong khoảng này sẽ bị xóa khỏi vector ϕ
2
, vì vậy nhận được giá
trị 0000 0000 1001 0110.
Tất cả các phép toán trước đây có thể được trình bày trong một hình thức nhỏ gọn
hơn, theo công thức
c’d’ϕ
1
= 0 → ϕ
2
:= 0000 0000 1001 0110.
Các phép toán tiếp theo được trình bày tương tự:
cdϕ
1
= 0 → ϕ
2
:= 0000 0000 1001 0000,
c’dϕ
2
= 0 → ϕ
1
:= 0010 0000 0000 0000,

e’fϕ
2
= 0 → ϕ
3
:= 0000 0000 1001 0010,
ef’ϕ
2
= 0 → ϕ
3
:= 0000 0000 0000 0010,
e’f’ϕ
3
= 0 → ϕ
2
:= 0000 0000 0001 0000.
Kết quả là, hệ thống ban đầu của hàm Bool được rút gọn thành một trong những dạng sau
đây:
Từ điều trên, nghiệm duy nhất của hệ dễ dàng chứa: 00101110.
6. Kết luận
Giải các hệ phương trình logic lớn là một bài toán tổ hợp khó nhưng có rất nhiều
ứng dụng hữu ích. Để tạo thuận lợi, có ba thuật toán để giảm số lượng các biến trong
phương trình riêng được đề xuất. Như thí nghiệm cho thấy, các thuật toán cho phép giải
các hệ phương trình lớn chứa lẫn nhau lên đến hàng trăm biến nhưng với số lượng hạn chế
của các đối số trong mỗi phương trình. Kết hợp các thuật toán được đề xuất với kỹ thuật
cây tìm kiếm thì có thể tốt hơn.
Tài liệu tham khảo
1 Bài giảng của Thầy PGS.TS. Nguyễn Phi Khứ.
2 Zakrevskij A.D. Logical equations. Minsk: Nauka i tekhnika, 1975 (in Russian).
3 Baumann M., Rohde R., Barthel R. Cryptanalysis of the Hagelin M-209 Machine 3rd
International Workshop on Boolean Prob-lems, Sept. 17-18, 1998, Freiberg (Sachsen), pp.

109-116.
10
Tiểu luận: Toán cho khoa học máy tính
4 Bryant R.E. Graph-based algorithms for Boolean functions manip-ulation. -IEEE
Transactions on Computers, v. C-35, No.8, August 1986, pp. 677-691.
5 Zakrevskij A.D., Vasilkova I.V. Cryptanalysis of the Hagelin ma-chine by the method of
spreading of constants. - Proceedings of the Third International Conference on Computer-
Aided Design of Dis-crete Devices (CAD DD’99), Minsk, November 10-12, 1999, v.1,
pp.140-147.
6 Lukasiewich J. Aristotle syllogistic from the point of view of mod-ern formal
logic Moscow, 1959 (in Russian).
7 Zakrevskij A.D. Logical inference in the space of multi-valued at-tributes
Computer Science Journal of Moldova, v.2, No 2, 1994, pp.169-184.
8 Chin-Liang Chang, Richard Char-Tung Lee. Symbolic Logic and Mechanical
Theorem Proving. - Academic Press, N Y., S Fr., L., 1973.
9 Zakrevskij A.D. To formalization of polysyllogistic. - Logical In-ference, Moscow:
Nauka, 1979, pp.300-309 (in Russian).
10 Zakrevskij A.D. Solving systems of logical equations by the method of local
reduction. - Doklady NAN B, 1999, v. 43, No.5, pp.5-8. (in Russian).
11 Zakrevskij A.D. Reduction algorithms for solving large systems of logical
equations
11

×