Bài toán xác định trực giao hóa các toán tử logic

Một phần của tài liệu Nghiên cứu các phương pháp nâng cao độ tin cậy cho hệ thống tính toán qua cấu trúc hệ thống (Trang 33)

Bài toán trực giao hoáphần tử [20] là giai đoạn phức tạp nhất của quá trình tính toán độ tin cậy của hệ thống.Vị từ 1 ngôi (ký hiệu là f(x)) đƣợc gọi là trực

giao nhau khi và chỉ khi kết quả của chúng bằng 0. Tuy nhiên nếu vị từ mà ta xét không phải là vị từ 1 ngôi mà là vị từ n ngôi (ký hiệu là f(x1, x2, ..., xn)) thì chúng đƣợc gọi là trực giao khi và chỉ khi các phần tử của chúng là trực giao và cho kết quả bằng 0.Phƣơng pháp trực giao chính là phƣơng pháp biến đổi logic sao cho kết quả của các toán tử đều bằng 0.

1.4.4.1 Các phương pháp giảm thiểu các hàm đại số logic đối với các hình thức trực giao và trực giao không lặp.

a) Thuật toán cắt giảm

Thuật toán cắt giảm [20] dựa trên việc triển khai các hàm logic cho kết quả là các hàm logic đã trực giao, trực giao không lặp và trƣờng hợp đặc biệt đó là dạng chuẩn tắc tuyển trực giao. Thuật toán bao gồm các bƣớc nhƣ sau:

1. Xét hàm f(xn) và thống kê số lần xuất hiện của mỗi biến xi (i=1,2, … n) dƣới dạng sau:

M = {m1, m2, … , mn}

2. M đƣợc sắp xếp tăng dần khi đó mn là tần số xuất hiện nhiều nhất tƣơng ứng với biến xi nào đó.

3. Đối với mỗi biến xi ta thực hiện phép tách sau:

f(x1, …, xi , …,xn) = 𝑥𝑖f(x1, …, 0, …, xn) ˅ xi f(x1, …, 1, …, xn)= 𝑥𝑖fi(0)˅ xi fi(1). 4. Áp dụng các luật củađại số logic làm tối thiểu, đơn giản hoá các hàm fi(0)vàfi(1). Kết quả có thể nhận đƣợc sẽlà một trong các trƣờng hợp sau:

a. Kết quả là hằng số: 0 hoặc 1.

b. Một hàm đƣợc đƣa về dạng chuẩn tắc tuyển trực giao. c. Không có biến nào bị lặp lại trong hàm logic.

d. Nếu có biến bị lặp lại trong hàm logic thì đƣợc loại bỏ bớtđi chỉ viếtmột lần.

5. Nếu kết quả hàm đã có sự kết hợp của cả trƣờng hợpa vàb thì việc chuyển hàm logic thành trực giao này là hoàn tất. Nếu kết quả là trƣờng hợpc thì tiếp tục áp dụng các luật biến đổi logic để hoàn tất việc trực giao hàm logic. Nếu kết quả là trƣờng hợpd thì tiếp tục quay trở lại bƣớc 1, thực hiện các phép biến đổi tiếp tục fi(0) và fi(1)đểđƣa về dạng trực giao kết quả nhận đƣợc không phải trƣờng hợp d. Số lƣợng các thủ tụcchuyển đổi này sẽ dừng vì số lƣợng các biến là hữu hạn sẽ dừng vì số biến là hữu hạn và bằng n.

Kết luận: quá trình thực hiện thuật toán cắt giảm đối với các hình thức trực giao là thƣờng là tốnthời gian, số lƣợng cácký tự biểu thị và chức năng của số

lƣợng biến n nhanh chóng tăng lên. Tuy nhiên, so với thuật toán tìm kiếm đầy đủ thì phƣơng pháp này đòi hỏi ít thời gian hơn và kết quả thu đƣợc từ việc áp dụng các định luật biến đổi logic sau khi đơn giản hóa các công thức thì thƣờng không bị thay đổi nữa.

b) Thuật toán trực giao hoá theo công thức của Poretsky [21]:

Thuật toán trực giao hoá theo công thức của Poretsky gồm các bƣớc sau: 1. Hàm logic đƣợc viết dƣới dạng chuẩn tắc tuyển nhƣ sau:

f(xn) = K1 ˅ K2 ˅ …˅ Kj˅ ….˅KR

Trong đó: Kj là mệnh đề sơ cấp có số thứ tự là j.

2. Tất cả các biến trong hàm logic khi đƣợc viết dƣới dạng chuẩn tắc tuyển thì phải đƣợc sắp xếp theo thứ tự tăng dần, bắt đầu với bậc thấp nhất của biến. 3. Dạng chuẩn tắc tuyển đƣợc viết dƣới dạng công thức Poresky nhƣ sau:

f(xn) = K1 ˅ K2 ˅ …˅ Kj ˅ ….˅ KR = 𝐾1˅𝐾 𝐾1 2˅𝐾 𝐾1 𝐾2 3˅ … ˅𝐾 … 𝐾1 𝐾𝑅−1 𝑅

4. Khai triển công thức ta đƣợc dạng trực giao không lặp của hàm ban đầu. Ta thấy rằng việc sử dụng thuật toán đƣa hàm logic về dạng chuẩn tắc tuyển đã trực giao này khá phức tạp trong việc triển khai các toán tử. Số lƣợng các biến khi khai triển là khá dài. Tuy nhiên đây chính là một cách để phát triển chƣơng trình trực giao hoá của hàm logic trên máy tính.

Thuật toán trực giao hoá theo công thức Poretsky có thể đƣợc sử dụng dƣới hình thức sửa đổi một chút nhƣ sau:

1. Hàm logic đƣợc viết dƣới dạng chuẩn tắc tuyển nhƣ sau: f(xn) = K1 ˅ K2 ˅ …˅ Kj˅ ….˅KR

2. Từ dạng trực giao ta sử dụng công thức De Morgan để tiếp tục biến đổi về dạng:

f(xn) = (𝐾 𝐾1 … 𝐾2 )𝑅

3. Kết quả nhận đƣợc sau khi loại bỏ hết các biến lặp ta đƣợc dạng trực giao không lặp của hàm logic ban đầu. Dựa vào kết quả nhận đƣợcta có thể dễ dàng tính các hàm xác suất.

c) Thuật toán cắtgiảmhàm đại số logic bằng cách đưa về dạng chuẩn tắc tuyển

Các hàm dạng chuẩn tắc tuyển hoàn toàn coi nhƣ một dạng chuẩn tắc tuyển đã đƣợc trực giao hoá, vì vậy ta có thể sử dụng nó để cắt giảm các hàm logic. Thuật toán gồm các bƣớc sau đây:

1. Hàm dƣới dạng chuẩn tắc tuyển. (adsbygoogle = window.adsbygoogle || []).push({});

2. Tìm các phép hội sơ cấp xuất hiện trong dạng chuẩn tắc tuyển. 3. Tìm tất cả các tập hợp đƣợc bao phủ bởi mỗi phép hội sơ cấp

4. Khai triển tất cả các tập hợp, ta sẽ đƣợc hàm ban đầu trong dạng chuẩn tắc tuyển hoàn toàn.

Từ dạng chuẩn tắc tuyển hoàn toàn có thể dễ dàng tính đƣợccác hàm xác suất. Tuy nhiên, nếu một hàm đƣợc viếtở dạng chuẩn tắc tuyển thì sẽ dài hơn khi viếtở dạngđã đƣợc trực giao nhƣng các thuật toán mô tả việc triển khai một hàm logic về dạng chuẩn tắc tuyển hoàn toàn dễ dàng lập trình để giải quyết vấn đề bằng máy tính.

1.4.4.2 Các quy tắc chuyển đổi hàm logic sang dạng xác suất trong dạng chuẩn tắc tuyển

Bất kỳ một sự kiện phức tạp nào cũng có thể viết đƣợc dƣới dạng hàm logic với các phép toán logic [1]. Xác suất của hàm f(xi) luôn bằng 1, đƣợc ký hiệu là P[f(xi)]=1.Khi hàm logic đã đƣợc chuyển đổi về dạng chuẩn tắc tuyển trực giao thì ta có thể tính xác suất của hàm một cách đơn giản theo quy tắc sau:

1. Các ký hiệu phép cộng và nhân logic đƣợc thay thế bởi dấu các phép cộng và phép nhân đại số.

2. Các ký hiệu xi và𝑥𝑖 đƣợc thay thế bằng các xác suất Pi và Qi tƣơng ứng Quá trình chuyển đổi về hàm xác suất đƣợc thực hiện theo quy tắc sau:

1. Sử dụng công thức De Morgan đểđƣa về dạng chuẩn tắc hội, không chứa phép cộng logic nào.

2. Các ký hiệu phép cộng và nhân logic đƣợc thay thế bởi dấu các phép cộng và phép nhân đại số.

3. Các ký hiệu xi và𝑥𝑖 đƣợc thay thế bằng các xác suất Pi và Qi tƣơng ứng. 4. 𝑃 (𝑓=1) đƣợc thay thế bởi 1-𝑃 (𝑓=1)

Một phần của tài liệu Nghiên cứu các phương pháp nâng cao độ tin cậy cho hệ thống tính toán qua cấu trúc hệ thống (Trang 33)