Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Все ДМ_2.pdf
Скачиваний:
217
Добавлен:
16.03.2016
Размер:
1.4 Mб
Скачать

(1, f1)

(2, f1)

(3, f1)

(4, f1)

(6, f1)

(7, f1)

(4, f2 )

(5, f2 )

(6, f2 )

(8, f2 )

(9, f2 )

(10, f2 )

1

1

0

0

0

0

0

0

0

0

0

0

 

0

1

0

0

1

0

0

0

0

0

 

0

0

 

0

0

1

1

0

1

0

1

0

0

 

0

0

0

0

0

0

0

0

0

1

0

1

0

0

0

0

0

0

0

0

0

0

0

0

1

1

 

1

1

1

1

0

0

0

0

0

0

 

0

0

 

0

0

0

0

0

1

0

1

1

0

 

0

1

Кратчайшее строчное покрытие приведенной матрицы соответствует кратчайшей системе ДНФ, представляемой следующими матрицами:

x1 x2

x3

x4

 

f1

f2

 

0

0

0

 

 

1

0

 

 

 

 

 

 

 

 

 

X = 1

1

0

,

Y = 1 0 .

1

1

0

 

 

1

1

 

0

1

1

 

 

 

 

 

 

 

0

1

 

 

1

1

 

 

 

 

1

 

 

0

1

Этот результат совпадает с тем, что был получен ранее для данной системы булевых функций.

Решение задачи минимизации системы ДНФ ведет к получению оптимальной структуры программируемой логической матрицы.

20.2. Минимизация системы слабо определенных булевых функций

Булева функция является слабо определенной, если |М1| + |М0| << |М|. Пусть F = {f1, f2, … , fm} – система слабо определенных булевых функций, где любая fi задана с помощью множеств M1i – область единичных значений и M0i – область нулевых значений функции fi. Очевидно, кратчайшая система ДНФ для системы F сводится к нахождению такого минимального множества интервалов булева пространства М, чтобы каждое из мн ожеств M1i покрывалось теми из них, которые не пересекаются с множеством M0i.

Рассматриваемый метод минимизации привлекает понятие интервально поглощаемого множества. В данном случае это множество элементов вида (mj, fk), где mj – элемент булева пространства М, а fk – функция, которая имеет

значение 1 на этом интервале, т. е. mj M1k. Множество элементов такого вида является интервально поглощаемым, если существует такой интервал пространства М, который для каждой пары (mj, fk) из этого множества содержит mj и не пересекается с множеством M0k. Интервально поглощаемое множество

125

называется максимальным, если оно не является подмножеством никакого другого интервально поглощаемого множества.

Задача состоит в том, чтобы для заданной системы булевых функций F найти минимальную совокупность интервально поглощаемых множеств, покрывающую все пары вида (mj, fk). При этом достаточно рассматривать только максимальные интервально поглощаемые множества. Для каждого множества из полученного покрытия надо взять соответствующий ему интервал и максимально расширить его так, чтобы он не пересекался ни с одним из множеств M0k тех функций fk, которые принадлежат парам (mj, fk), входящим в данное множество.

В качестве примера рассмотрим систему слабо определенных булевых функций, заданную следующей парой матриц:

 

x1

x2

x3

x4

x5

 

 

f1 f2 f3 f4

f5

f6

 

0 1

0

1

0

1

 

1 1 0 1

1

0

 

 

 

1

1

 

2

 

 

0

 

X =

1 0

1

Y =

0 1 1 1

1

0 1

1

0

1

3,

0 1 1 0

0

0 .

 

 

 

1

1

 

4

 

 

1

 

 

0 0

0

 

1 0 0 1

0

 

0 1

0

0

1

5

 

0 1 0 0

1

0

 

 

 

1

0

 

6

 

 

0

 

 

1 1

0

 

0 0 1 1

1

Эти матрицы можно интерпретировать как задание поведения некоторого устройства. На каждый набор двоичных входных сигналов, представленный матрицей Х, устройство реагирует набором выходных сигналов, представленный соответствующей строкой матрицы Y. Поведение устройства не определено на всех наборах входных сигналов, которые не представлены матрицей Х. Очевидно, столбец fi матрицы Y представляет множества M1i и M0i функции fi.

Всякое интервально поглощаемое множество является декартовым произведением Мр × Fp, где Мр – множество некоторых элементов булева пространства, а Fp – множество функций, принимающих значение 1 на этих элементах. Поэтому для компактности интервально поглощаемые множества будем представлять парами сомножителей. Используя лексико-графический перебор, получим следующие максимальные интервально поглощаемые множества и соответствующие им интервалы:

{1},

{f1, f2, f4, f5};

(0 1 0 1 0);

{1, 2, 4},

{f4};

(– – – 1 –);

{1, 3, 5},

{f2};

(0 1 – – –);

{1, 4},

{f1, f4, f5};

(0 – – 1 0);

{1, 4, 6},

{f4};

(– – – – 0);

{1, 5},

{f2, f5};

(0 1 0 – –);

126

{2},

{f2, f3, f4, f6};

(1 0 1 1 1);

{2, 3},

{f2, f3};

(– – 1 – 1);

{2, 3, 5},

{f2};

(– – – – 1);

{2, 6},

{f3, f4, f6};

(1 – 1 – –);

{3, 6},

{f3};

(– 1 1 0 –).

Построим матрицу покрытия, строкам которой соответствуют полученные максимальные интервально поглощаемые множества, а столбцам пары (1, f1), (4, f1), (1, f2), (2, f2), (3, f2), (5, f2), (2, f3), (3, f3), (6, f3), (1, f4), (2, f4), (4, f4), (6, f4), (1, f5), (4, f5), (5, f5), (2, f6), (6, f6), определяемые по единицам матрицы Y:

1

0

1

0

0

0

0

0

0

1

0

0

0

1

0

0

0

0

 

0

0

0

0

0

0

0

0

1

1

1

0

0

0

0

0

 

0

0

 

0

1

0

1

1

0

0

0

0

0

0

0

0

0

0

0

 

0

0

1

1

0

0

0

0

0

0

0

1

0

1

0

1

1

0

0

0

0

0

0

0

0

0

0

0

0

1

0

1

1

0

0

0

0

0

 

 

1

0

0

1

0

0

0

0

0

0

0

1

0

1

0

 

0 0

0 .

0

0

0

1

0

0

1

0

0

0

1

0

0

0

0

0

1

0

 

0

0

1

1

0

1

1

0

0

0

0

0

0

0

0

0

 

0

0

0

0

0

1

1

1

0

0

0

0

0

0

0

0

0

0

0

0

 

0

0

0

0

0

1

0

1

0

1

0

1

0

0

0

1

 

0

1

 

0

0

0

0

0

0

1

1

0

0

0

0

0

0

0

0

 

0

0

Строчное покрытие этой матрицы составляют четвертая, шестая, восьмая и десятая строки. После расширения соответствующих интервалов получим следующую систему ДНФ:

x1

x2

x3

x4 x5

f1

f2 f3 f4

f5

f6

0

1

1 0 0

1

1

0

X = 0

1

− − ,

Y = 0 1

0

0

1

0 .

− −

1

1

0

1

1

0

0

0

 

1

 

 

 

0

1

1

0

 

1

− −

0

1

127