где ai= 0 или 1, объединение берется по всем таким ai.
Процесс выделения L-экстремали является циклическим, на каждом цикле очередная простая импликанта вычитается из предыдущей разности. Процессы вычитания и пересечения для полученных выше простых импликант отражены в табл. 8.
Z11X1XX11 | Z2XX1X1X0 | Z300X0XX0 | Z40X00101 | Z5000010X | Z6X0X00X0 | Z7XX1111X | Z8X010XX0 | Z9101XX1X | Z101X1X11X | ||
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
Z1 | 1X1XX11 | - | 0ZZZZ0YXX1X1X0 | YZ0ZZ0Y00X0XX0 | YZYZZYZ0X00101 | YZYZZY0000010X | 0Z0ZZ0YX0X00X0 | 0ZZZZZZ0X1111X | 0ZZZZ0YX010XX0 | ZZZZZZ0101XX10 | ZZZZZZ01X1X110 |
Z2 | XX1X1X0 | ZZZZ0ZY1X1XX11 | - | ZZ0Z0ZZ0000XX000X00X0 | ZZYZZZY0X00101 | ZZYZZZ1000010X | ZZ0ZYZZX0X00X0 | ZZZZZZ10X11111 | ZZZZ0ZZX0100X0 | ZZZZ0ZZ101X010 | ZZZZZZZÆ |
Z3 | 00X0XX0 | Y1Z1ZZY1X1XX11 | 11Z1ZZZ1X1X1X0X11X1X0XX111X0 | - | Z1ZZZZY0X00101 | ZZZZZZ10000101 | 1ZZZZZZ10X00X0 | Z1ZYZZY0X11111 | 1ZZZZZZ10100X0 | YZZ1ZZZ101X010 | Æ |
Z4 | 0X00101 | YZY10YZ1X1XX11 | YZY1Z1Y1X1X1X01ZY1Z1YX11X1X01ZYYZ1YXX111X0 | ZZZZ01Y0000XX0ZZ1ZY1Y00X00X0 | - | ZZZZZZZÆ | YZ1ZY1Y10X00X0 | ZZYYZYZ0X11111 | YZYZY1Y10100X0 | YZY1YYY101X010 | Æ |
Z5 | 000010X | Y1Y10YZ1X1XX11 | Y1Y1Z1Z1X1X1X01YY1Z1ZX11X1X011YYZ1ZXX111X0 | ZZZZ01Z00000X00000X10ZZ1ZY1Z00X00X0 | Z1ZZZZZ0100101 | - | YZ1ZY1Z10X00X0 | Z1YYZYZ0X11111 | YZYZY0Z10100X0 | YZY1YYY101X010 | Æ |
Z6 | X0X00X0 | Z1Z11ZY1X1XX11 | Z1Z1YZZ1X1X1X0ZYZ1YZZX11X1X0Z1ZYYZZXX111X0 | ZZZZZZZÆZZZZ1ZZ0000110ZZZZZZZÆ | ZYZZYZY0100101 | Æ | - | Z1ZYYZY0X11111 | ZZZZZZZÆ | ZZZ1ZZZ1011010 | Æ |
Z7 | XX1111X | ZZZ00ZZ1X10X111X1X011 | ZZZ0Z0Z1X101X01X1X100ZZZ0Z0ZX1101X0X11X100 | ZZYYZZZ0000110 | ZZYYZYZ0100101 | Æ | ZZ0YY0Z10X00X0 | - | Æ | ZZZZYZZ1011010 | Æ |
Z7 | ZZZZZ0ZXX111001 | ||||||||||
Z8 | X010XX0 | Z1ZZZZY1X10X11Z1Z1ZZY1Z1Z011 | Z1ZZZZZ11 01X0Z1Z1ZZZ111X1001X11100ZYZZZZZX1101X0Z1ZYZZZXX11100 | ZZYZZZZ0000110 | ZYYZZZY0100101 | Æ | ZZ0ZZZZ10000X0 | Z1ZYZZY0X11111 | - | ZZZYZZZ1011010 | Æ |
Z9 | 101XX1X | Z1ZZZZZ1110X11Z1ZZZZZ111X011 | ZYZZZ0Z11101X0ZYZZZYZ111X100Z1ZZZYZ1X111000YZZZ0ZX1101X00YZZZYZX11X10001ZZZYZXX11100 | YZYZZZZ0000110 | YYYZZYZ0100101 | Æ | ZZYZZ0Z10000X0 | Y1ZZZZZ0X11111 | Æ | - | Æ |
Z10 | 1X1X11X | ZZZZ0ZZ1110011111X011 | ZZZZZ0Z1110100ZZZZZYZ111X100ZZZZZYZ1X111000ZZZZ0Z01101X0X1101000ZZZZY1X11X1000ZZZZYZXX11100 | 0000110 | 0100101 | Æ | 10000X0 | 0X11111 | Æ | ZZZZYZZ1011010 | - |
¹Æ | ¹Æ | ¹Æ | ¹Æ | Æ | ¹Æ | ¹Æ | Æ | ¹Æ | Æ |
Полученное минимальное покрытие:
1X1XX11
XX1X1X0
00X0XX0
0X00101
X0X00X0
XX1111X
101XX1X
Cтоимость полученного покрытия равна 36 ( стоимость исходного покрытия равна 53 ).
2. ПОСТРОЕНИЕ ФАКТОРИЗОВАННОГО ПОКРЫТИЯ
Покрытие, полученное на основе простых импликант и выделения из них L-экстремалей, принято называть минимальным. Однако практика показывает, что дополнительная минимизация возможна при помощи факторизации. Таким образом, минимальным следует считать факторизованное покрытие, а не множество L-экстремалей.
Факторизация покрытия основана на операции m-произведения, которая предназначена для выделения общей части двух кубов. Эта операция является поразрядной:
0 при ai= bi= 0, i = 1,n;aimbi= 1 при ai= bi= 1, i = 1,n;
m во всех остальных случаях.
Символ m указывает координату исходных кубов, которая различна в них, либо есть Х.
Куб, в котором хотя бы одна координата является m, называется m-кубом и обозначается через еm. Такой куб может участвовать в m-произведении, тогда при умножении на координату m должна получаться координата m.
Стоимость для m-куба определяется путем подсчета числа координат со значениями 0 и 1. Куб с наибольшей стоимостью считается максимальным. Если стоимость равна 0, то m-куб считается пустым, он равен Æ. Покрытие с учетом m-куба записывается в несколько измененном виде: под m-кубом фиксируются соответствующие ему кубы с сохранением тех координат, которые расположены под символами m.
Алгоритм факторизации покрытия является циклическим. Количество циклов равно числу уровней разложения покрытия ( числу m-кубов ). В разложенном по многим уровням покрытии выделяются на i-м цикле m-куб еmi, Mi ( множество кубов с прочерками, соответствующее еmi), Ci (множество кубов, которые будут рассматриваться на ( i+1)-м цикле).
Алгоритм факторизации можно сформулировать следующим образом:
1. Вычисляются m-произведения всех пар из Сi-1. В первом цикле С0 = Е. Во втором цикле дело надо иметь с С1, в третьем – с С2 и т.д.
2. Выбирается m-куб с наибольшей стоимостью еmi. Если несколько кубов имеют одинаковую стоимость, то выбирается первый.
3. Покрытие оформляется разложенным на две части: нижнюю часть Мi и верхнюю часть Сi. Ci содержит оставшиеся от Сi-1 кубы после удаления из него кубов Мi и добавленный куб еmi. Видимо,
Ci = ( Ci-1 – Mi ) È emi.
4. Если Сi состоит из одного куба или получаются пустые m-кубы, процесс факторизации следует закончить, в противном случае перейти к пункту 1.
Процесс факторизации по данному алгоритму удобно отражать в таблицах. Первый цикл представлен в табл. 9.
e11X1XX11 | e2XX1X1X0 | e300X0XX0 | e40X00101 | e5X0X00X0 | e6XX1111X | ||
e1 | 1X1XX11 | - | |||||
e2 | XX1X1X0 | mm1mmmm | - | ||||
e3 | 00X0XX0 | Æ | mmmmmm0 | - | |||
e4 | 0X00101 | mmmmmm1 | mmmm1mm | 0mm0mmm | - | ||
e5 | X0X00X0 | Æ | mmmmmm1 | m0m0mm0 | mmm0mmm | - | |
e6 | XX1111X | mm1mm1m | mm1m1mm | Æ | mmmm1mm | Æ | - |
e7 | 101XX1X | 1m1mm1m | mm1mmmm | m0mmmmm | Æ | m0mmmmm | mm1mm1m |
Из этой таблицы видно, что еm1 = 1m1mm1m.. Покрытие после первого цикла выглядит следующим образом:
Так как С1 содержит больше одного куба, осуществляется переход ко второму циклу ( табл. 10 ).
е2XX1X1X0 | е300X0XX0 | е40X00101 | е5X0X00X0 | е6XX1111X | ||
е2 | XX1X1X0 | - | ||||
е3 | 00X0XX0 | mmmmmm0 | - | |||
е4 | 0X00101 | mmmm1mm | 0mm0mmm | - | ||
е5 | X0X00X0 | mmmmmm0 | m0m0mm0 | mmm0mmm | - | |
е6 | XX1111X | mm1m1mm | Æ | mmmm1mm | Æ | - |
еm1 | 1m1mm1m | mm1mmmm | Æ | Æ | Æ | mm1mm1m |
Очевидно, что еm2 = m0m0mm0.
Покрытие после второго цикла факторизации выглядит следующим образом:
Так как С2 содержит больше одного куба, осуществляется переход к третьему циклу ( табл. 11 ).
e2XX1X1X0 | e40X00101 | e6XX1111X | ||
e2 | XX1X1X0 | - | ||
e4 | 0X00101 | mmmm1mm | - | |
e6 | XX1111X | mm1m1mm | mmmm1mm | - |
em2 | m0m0mm0 | mmmmmm0 | mmm0mmm | Æ |
Из таблицы 11 видно, что еm3 = mm1m1mm.
Покрытие после третьего цикла выглядит так:
Так как С3 содержит больше одного куба переходим к четвертому циклу (табл. 12).
Таблица 12
Четвертый цикл факторизации
e40X00101 | ||
е4 | 0X00101 | - |
еm3 | mm1m1mm | mmmm1mm |
Ясно, что еm4 = mmmm1mm.
Факторизованное покрытие выглядит следующим образом:
Чтобы определить стоимость факторизованного покрытия, нужен соответствующий алгоритм. Его сущность можно изложить следующим образом:
1. определить стоимость рассматриваемого куба покрытия;
2. если куб является маскирующим (m-куб), то добавить к стоимости 2;
3. если куб является обычным, то при Si > 1 добавить к стоимости 1, в противном случае ( Si = 1 ) добавлять 1 не нужно;
4. полученные стоимости кубов с добавлениями сложить.
В полученном выше факторизованном покрытии 11 кубов, его стоимость составляет 30. До факторизации стоимость покрытия составляла 36.
3. СОСТАВЛЕНИЕ ЛОГИЧЕСКОЙ СХЕМЫ НА ОСНОВЕ ДАННОГО БАЗИСА ЛОГИЧЕСКИХ ЭЛЕМЕНТОВ
По любому кубическому покрытию можно построить логическую схему. По факторизованному покрытию схема строится следующим образом. Обычные кубы отражаются на схеме как элементы & с числом входов, равным стоимости куба. Прочеркнутые координаты на вход этих элементов не подаются. Они учитываются в маскирующих кубах в качестве общих сомножителей. Выходные сигналы обычных кубов, расположенных под рассматриваемым m-кубом, суммируются, затем логическая сумма этих кубов подается на вход маскирующего куба, который отображается на схеме как элемент &. Логическая схема в булевом базисе, построенная по факторизованному покрытию, показана на рис.1.
Стоимость кубов М1 и М2,а также куба ХХ-Х1Х-, входящего в М3, равна 1. Поэтому соответствующие им переменные подаются непосредственно на входы элементов ИЛИ (12, 11 и 10 соответственно). Умножение на координаты куба еm1 производится в элементе 15, на координаты куба еm2 – в элементе 14, на координаты куба еm3 – в элементе 13. Кубы еm3 и еm4 имеют общую пятую координату. Поэтому выходной сигнал элемента 13, соответствующего еm3, логически суммируется с выходным сигналом элемента 8, а затем логическая сумма поступает на вход элемента 16, где происходит умножение на координаты куба еm4.