Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ ЛОЭВМ РГР 17 ИТб_17УСб.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
619.89 Кб
Скачать

Минимизация логических функций методом Квайна – Мак-Класки

Мак-Класки предложил прием, который на этапе нахождения сокращенных ДНФ и КНФ упрощает процесс минимизации и, кроме того, позволяет описать этот процесс для выполнения на ЭВМ. Прием предусматривает следующую последовательность действий для получения сокращенной ДНФ:

  1. СДНФ функции представляют наборами значений аргументов, на которых функция равна лог.1 (табл. 5.3).

Таблица 5.3

Десятичный эквивалент набора аргументов

x1

0

0

0

0

0

0

0

0

1

1

1

1

1

1

1

1

x2

0

0

0

0

1

1

1

1

0

0

0

0

1

1

1

1

x3

0

0

1

1

0

0

1

1

0

0

1

1

0

0

1

1

x4

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

F(x1, x2, x3, x4)

0

1

0

0

0

1

0

0

0

1

1

1

0

1

0

0

Пусть функция задана таблицей истинности. СДНФ функции записываем в виде совокупности наборов (представленных их десятичными эквивалентами), на которых функция принимает значение лог.1.

F(x1, x2, x3, x4) =  (1, 5, 9, 10, 11, 13).

Эта запись читается так: "функция F принимает значение лог.1 на наборах, соответствующих десятичным эквивалентам или 1, или 5, или 9, или 10, или 11, или 13". Функцию можно записать и через наборы, представленные в двоичной форме: F = 0001V0101V1001V1010V1011V1101.

Таблица 5.4

Номер группы

Наборы

I этап

II этап

III этап

0

--

--

--

1

0001

0*01

**01

*001

2

0101

*101

10*1

1001

10*1

101*

1010

1*01

101*

3

1011

--

--

1101

2. Все члены в этой форме СДНФ разбивают на группы по числу единиц, содержащихся в наборах (представленных в двоичной форме). Эта разбивка наборов на группы для рассматриваемой функции представлена в графе I этапа (табл. 5.4).

3. Производят склеивание наборов. Склеиваться могут только наборы соседних групп, различающиеся лишь в одном разряде. Результат склеивания пары наборов содержит на месте разряда с различающимися значениями в наборах символ * и заносится в графу следующего этапа, а пара склеивающихся наборов вычеркивается (при этом вычеркнутые наборы должны использоваться в последующих поисках склеивающихся пар наборов). Так, склеивание пары наборов 0001 и 0101 графы 1 этапа приводит к набору 0*01, записываемому в графе II этапа.

Результаты склеивания наборов II этапа заносятся в графу III этапа. Сюда перенесены и невычеркнутые наборы из графы II этапа. Дальнейшее склеивание оказывается невозможным.

Наборы графы последнего этапа изображают простые импликанты функции, т.е. члены сокращенной ДНФ. В рассматриваемом примере сокращенная ДНФ функции F(x1, x2, x3, x4)=**01 v 10*1 v 101 *.

Эта запись соответствует логическому выражению, получаемому по правилу:

  1. каждый набор соответствует отдельной импликанте;

  2. каждому символу в наборе соответствует переменная функции с индексом, совпадающим с номером позиции символа в наборе;

  3. если символом является *, то соответствующая переменная в выражении импликанты отсутствует;

  4. если символом является 0, то соответствующая переменная в выражении импликанты присутствует с инверсией;

  5. при символе 1 переменная записывается без инверсий:

F(x1, x2, x3, x4)=

Переход от сокращенной ДНФ к минимальной ДНФ может производиться с помощью импликантной матрицы, как и в методе Квайна. Различие может состоять лишь в том, что в импликантной матрице члены СДНФ и сокращенной ДНФ удобней представлять соответствующими им двоичными комбинациями (табл. 5.5).

Таблица 5.5

простые импликанты

0001

0101

1001

1010

1011

1101

**01

x

x

x

x

10*1

x

x

101*

x

x

Из таблицы следует, что МДНФ функции:

F(x1, x2, x3, x4) = **01 v 101*=

Методом Мак-Класки может быть получена и МКНФ функции. По сравнению с описанной выше последовательностью действий различие в этом случае заключается в следующем: функция представляется наборами, на которых она принимает значение лог. 0, и в полученных в результате минимизации наборах символу 0 соответствует переменная без инверсии, а символу 1 – переменная с инверсией. Рассмотрим получение МКНФ функции, представленной в табл. 5.6.

Таблица 5.6

Десятичный эквивалент набора аргументов

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

x1

0

0

0

0

0

0

0

0

1

1

1

1

1

1

1

1

x2

0

0

0

0

1

1

1

1

0

0

0

0

1

1

1

1

x3

0

0

1

1

0

0

1

1

0

0

1

1

0

0

1

1

x4

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

F(x1, x2, x3, x4)

0

0

0

1

1

1

0

1

1

1

0

1

1

1

0

1

Запишем функцию как совокупность наборов, на которых функция имеет значение лог. 0:

F(x1, x2, x3, x4)=V0 (0, 1, 2,6, 10, 14).

Этапы минимизации показаны в табл. 5.7. В графе I этапа приведены наборы, соответствующие значениям функции, равным лог. 0. В после­дующих графах приведены результаты склеивания. Сокращенная КНФ записывается через инверсные комбинации наборов последнего этапа:

Таблица 5.7

Номер группы

Наборы

I этап

II этап

III этап

0

0000

000*

000*

00*0

00*0

1

0001

0*10

**10

0010

*010

2

0110

*110

1010

1*10

3

1110

F(x1, x2, x3, x4) = (111*)(11*1)(**01) =

Переход от сокращённой КНФ к минимальной КНФ не имеет особенностей.