thức trực giao và trực giao không lặp.
a) Phương pháp cắt giảm
Phƣơng pháp 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. Phƣơng pháp cắt giảm 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 đó.
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) Phương pháp trực giao hoá theo công thức của Poresky
Phƣơng pháp trực giao hoá theo công thức của Poresky [9] viết dƣới dạng giả mã gồm các bƣớc sau:
1. i_line_AB = 1 AND Leng_AB[0] = LengK1[i_line-1] 2. if t1 = 0 AND t1 < Leng_AB[0] AND t1 ++
AB[0][t1] = K1[i_line-1][t1] 3. If t1 = (i_line - 2) AND t1 > -1 AND t1 --
a[t2] = K1[t1][t2] 4. Leng_a = LengK1[t1]
5. Nhân dòng a với chiều dài leng_a của ma trận AB và kết quả lƣu trong ma trận AB
6. Kết thúc.
Ta thấy rằng việc sử dụng phƣơng pháp này đƣ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.
c) Phương pháp cắt giảm hàm đại số logic bằng cách đưa về dạng chuẩn tắc tuyển