Trƣớc đây khi kỹ thuật điện tử chƣa phát triển thì việc tối thiểu hoá các toán tử logic (hàm boole) là một vấn đề cơ bản trong lý thuyết tổng hợp mạch logic. Tuy nhiên ngày nay với công nghệ ngày càng tinh vi, hiện đại đã cho ra đời các mạch tích hợp cỡ lớn vì vậy mà việc tối thiểu hoá hàm boole không còn giữ vai trò quan trọng nữa. Tuy nhiên ta cũng không nên lạm dụng điều này mà cũng nên tối thiểu hoá hàm boole khi ta thiết kế những mạch đơn giản mà ta có thể tối thiểu đƣợc. Việc tối thiểu hoá hàm boole tức là tìm dạng biểu thức boole đơn giản nhất của hàm boole đó.
Trong mục này tôi sẽ giới thiệu 03 phương pháp để tối thiểu hoá hàm boole:
- Phƣơng pháp biến đổi đại số; - Phƣơng pháp bảng Karnaugh; - Phƣơng pháp Quine – Mc.Cluskey. a. Phƣơng pháp biến đổi đại số
Phƣơng pháp này dựa trên các luật, các hằng đẳng thức của đại số boole để tối thiểu hoá các các biến và các phép toán trên biểu thức boole.
VD: Tối ƣu hoá hàm boole: f(x,y) = Ta có:
f(x,y) = = = =
Ở đây ta đã sử dụng luật tồn tại của phần tử bù để tối thiểu hàm f(x,y). b. Phƣơng pháp bảng Karnaugh
Phƣơng pháp này dựa trên việc tổ hợp các hội sơ cấp có thể tổ hợp đƣợc để loại bỏ các hội sơ cấp của hàm boole không cần thiết. Phƣơng pháp bảng Karnaugh [5] mà ta sẽ nói ở đây đã đƣợc Maurice Karnaugh đƣa ra vào năm 1953. Phƣơng pháp này dựa trên một công trình trƣớc đó của E.W. Veitch và nó cho ta một phƣơng pháp trực quan để rút gọn các khai triển tổng và tích.
Chú ý:
- Phƣơng pháp tối thiểu hoá hàm boole sử dụng bảng Karnaugh chỉ tổ hợp đƣợc khi số các hội sơ cấp sẽ tổ hợp là 2k
và đối xứng với nhau qua các trục của bảng. Mục tiêu là cần nhận dạng các khối 2k
ô biểu diễn các hội sơ cấp có thể tổ hợp lại đƣợc mà trƣớc hết là nhận dạng khối lớn nhất.
- Nếu hàm cần tối thiểu hoá có n bit và số các hội sơ cấp có thể tổ hợp lại đƣợc là 2k thì sau khi tổ hợp sẽ có n-k biến thuộc tổ hợp.
c. Phƣơng pháp Quine – Mc.Cluskey
Ta đã thấy rằng các bảng Karnaugh có thể đƣợc dùng để tạo biểu thức cực tiểu của các hàm Boole nhƣ tổng của các tích Boole. Tuy nhiên, các bảng Karnaugh sẽ rất khó dùng khi số biến lớn hơn bảy. Hơn nữa, việc dùng các bản đồ Karnaugh lại dựa trên việc rà soát trực quan để nhận dạng các số hạng cần đƣợc nhóm lại. Vì những nguyên nhân đó, cần phải có một thủ tục rút gọn những khai triển tổng các tích có thể cơ khí hoá đƣợc. Phƣơng pháp Quine-McCluskey [5] là một thủ tục nhƣ vậy. Nó có thể đƣợc dùng cho các hàm Boole có số biến bất kỳ. Phƣơng pháp này đƣợc W.V. Quine và E.J. McCluskey phát triển vào những năm 1950.
Về cơ bản, phƣơng pháp Quine-McCluskey có hai phần.
- Phần đầu là tìm các số hạng là ứng viên để đƣa vào khai triển cực tiểu nhƣ một tổng các tích Boole mà ta gọi là các nguyên nhân nguyên tố.
- Phần thứ hai là xác định xem trong số các ứng viên đó, các số hạng nào là thực sự dùng đƣợc.