Cácphƣơngpháp giảm thiểu các hàm đại số logic đối với các hình thức

Một phần của tài liệu Nghiên cứu bài toán tính độ tin cậy của hệ thống thông qua cấu trúc của hệ thống (Trang 40 - 42)

trực giao và trực giao không lặp.

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

Thuật toán này dựa trên việc triển khai các hàm logic cho ta 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 này cụ thể nhƣ sau:

1. Chúng ta đi 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ẽ thuộc 1 trong 4 trƣờng hợp sau:

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

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

- Nếu có biến bị lặp lại trong hàm logic thì đƣợc loại bỏ bớt đi chỉ viết 1 lần. 5. Nếu kết quả hàm đã có sự kết hợp của cả trƣờng hợp 1và 2 thì việc chuyển hàm logic thành trực giao coi nhƣ đã xong. Nếu kết quả là trƣờng hợp 3 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ợp 4 thì tiếp tục quay trở lại bƣớc 1, thực hiện các phép biến đổi để đƣa về dạng trực giao. Chắc chắn thủ tục này sẽ dừng vì số biến xn là hữu hạn. khi đó ta đƣợc hàm logic đã trực giao.

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 này tƣơng đối mất thời gian và số lƣợng các biến tăng lên nhiều làm ta rối mắt. Tuy nhiên thuật toán này lại có ƣu điểm đó là vẫn nhanh hơn phƣơng pháp tìm kiếm đầy đủ truyền thống, các hàm thu đƣợc bằng cách áp dụng các luật biến đổi logic sau khi áp dụng thuật toán hầu nhƣ sẽ không bị thay đổi gì nữa.

b) Thuật toán trực giao hoá theo công thức của Poresky

Thuật toán trực giao hoá theo công thức của Poresky [10] 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:

1 2 j R

f(x )n K K ... K .... K

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:

1 2 j R 1 1 2 1 2 3 1 R-1 R

f(x )n K K ... K .... K K K K K K K ... K ...K K

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 Poresky 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:

1 2 j R

f(x )n K K ... K .... K

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:

R

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 đƣợc ta có thể dễ dàng tính các hàm xác suất. (adsbygoogle = window.adsbygoogle || []).push({});

Một phần của tài liệu Nghiên cứu bài toán tính độ tin cậy của hệ thống thông qua cấu trúc của hệ thống (Trang 40 - 42)