Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Минимизация булевых функций с использованием диаграмм Вейча




Теоретические предпосылки табличных методов минимизации

Тверь 1996

ТАБЛИЧНЫМИ МЕТОДАМИ

МИНИМИЗАЦИЯ БУЛЕВЫХ ФУНКЦИЙ

 

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

для студентов специальности 22.01 (Вычислительные машины,

системы, комплексы и сети)

 

Автор Асеева Т.В.

 

 

 

булевых функций в классе дизъюнктивных нормальных форм

 

Теоретической основой минимизации булевых функций в классе дизъюнктивных нормальных форм (ДНФ) является использование правил склеивания, обобщенного склеивания и поглощения, представляемых формулами:

- Kx Ú K`x = K,

- K1x ÚK2`x = K1x Ú K2`x Ú K1K2,

- K1K2 Ú K2 = K2,

где К1, К2, К3 - элементарные конъюнкции произвольного ранга.

Наиболее известные методы “ручной” минимизации связаны с использованием таблиц различных видов. Для n-местной булевой функции такая таблица должна содержать 2n клеток, в каждую из которых записывается значение функции на том наборе значений переменных, номер которого совпадает с номером клетки. Нумерация клеток производится таким образом, чтобы сделать возможным склеивание клеток, расположенных симметрично относительно некоторых осей симметрии таблицы. Например, склеиваются любые две соседние по вертикали или по горизонтали клетки, так как присвоенные им двоичные номера различаются ровно в одном символе. В склеивании могут участвовать 2k клеток, в которых k каких-либо переменных принимают все возможные наборы значений. Эти к переменных называются свободными переменными образованного в результате склеивания интервала, который содержит к свободных и n-k связанных переменных. Интервалу соответствует множество, содержащее 2n-k вершин единичного n-мерного куба Вn

Процесс минимизации в классе дизъюнктивных нормальных форм (ДНФ) сводится к отысканию максимальных интервалов функции, покрывающих наибольшее число вершин единичного n-мерного куба, разверткой которого на плоскости и является таблица.

 

 

X1
При небольшом числе переменных (n=2,3,4) для минимизации булевых функций используют диаграммы Вейча [i]. Принцип построения диаграммы и нумерации клеток ясны из рисунков, Рис. 1,3, 5.

 
 


       
       

или в двоичной записи:

 
 

 


Рис.1. Нумерация клеток диаграммы Вейча при n=2.

 

Из рис.1 видно, что, если код номера каждой клетки диаграммы обозначить парой (х12), то переменная х1 принимает значение 1 в клетках с номерами 2 и 3, а переменная х2 - в клетках с номерами 1 и 3, что и показано на отмеченой диаграмме Вейча линиями со стрелками. В приведенной диаграмме могут склеиваться клетки с номерами 0 и 1, а также клетки с номерами 2 и 3 по переменной х2, а клетки с номерами 1 и 3, а также 0 и 2 по переменной х1. Например, для функции двух переменных, заданной таблицей 1, диаграмма Вейча с указанием клеток, в которых связанная переменная принимает значение 1, и с обозначением склеиваемых клеток и соответствующих им интервалов приведена на рис.2.

 

 

x1 x2 f(x1,x2)
     
     
     
     
Таблица 1
 
1      

 

x2

 

 

 

x1

       
   
 
 

 


 

Рис. 2. Пример минимизации булевой функции, заданной Табл.1.

f(x1,x2)=`x1 Ú`x2.

 

 

 

 

Интервалу (0-) соответствует элементарная конъюнкция `х1, являющаяся простым импликантом данной функции, а интервалу (-0) - также простой импликант данной функции `х2.Таким образом минимальная дизъюнктивная нормальная форма данной функции имеет вид: f(x)=`x1 Ú`x2, так как связанная переменная интервала входит в соответствующий ему импликант с отрицанием, если ее значение в интервале равно 0, и без отрицания в противном случае.

X1
Для функции трех переменных диаграмма Вейча содержит 23 =8 клеток. Нумерация клеток приведена на рис.3a,b с указанием групп по 2n-1 клеток, в которых каждая из переменных принимает значение 1, n - число переменных функции, равное 3.

       
       
  Рис.3,а. Десятичная нумерация клеток диаграммы Вейча при n=3.

 
 


X2
110

     
       

X3

 

Рис. 3.b. Двоичная нумерация клеток

отмеченной диаграммы Вейча при n=3.

 

Определим максимальные интервалы и соответствующую МДНФ для функции трех переменных, заданной вектором af=(0111 1011).Изображение этой функции на диаграмме Вейча показано на рис.4 в предположении, что нумерация переменных в последовательности, задающей номер клетки, производится слева направо.

Из рис.4 видно, что множество единиц данной функции покрывается тремя максимальными интервалами, которым соответсвует МДНФ = x2 Ú x1`x3 Ú`x1x3.

 
 

 

 


х2
1

     
1      

Х3

 

 

Рис.4. Пример минимизации трехместной булевой функции. Результат минимизации:

f (x1,x2,x3)=x1`x2 Ú x2 Ú`x1x3.

 

Для четырехместной булевой функции таблица содержит 24=16 строк. Соответственно, диаграмма Вейча такой функции содержит 16 клеток, расположение которых показано на Рис.5.

 

 

       
       
       
       
Х2
Õ1
1100

     
Õ3
1110

     
       
       

Õ4

 

Рис.5. Нумерация клеток диаграммы Вейча и отмеченная диаграмма при n=4.

 

Примеры минимизации 4-х местных булевых функций приведены на рис. 6,7,8.

f (x4)=`x4 f (x4)=`x3`x4 Ú x3x4

Рис.6. Определение МДНФ Рис.7. Определение МДНФ для функции

для функции, заданной вектором заданной вектором a(f)=(1001 1001 1001 1001).

a(f)=(1010 1010 1010 1010).

 

Для четырехместной функции диаграмма Вейча имеет 24=16 клеток. Нумерация клеток и отмеченная диаграмма приведены на рис.5.

 

Рис.8. Определение МДНФ для функции, заданной вектором a(f)=(1101 110111001101).

 

При дальнейшем увеличении местности булевых функций их минимизация с использованием диаграмм Вейча становится затруднительной из-за громоздкости таблицы и уменьшения наглядности ее отметки. Поэтому при n>4 целесообразно использование метода симметричных таблиц.

 

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

Симметричные таблицы обеспечивают наглядность процедуры минимизации булевых функций с числом переменных 2£n£18. Громоздкость таблицы, неизбежная при увеличении местности функций, компенсируется регулярностью и наглядностью таблиц. Изложение этого метода можно найти в [ii][2]. Симметричные таблицы позволяют:

-быстро и легко заполнять таблицу значениями минимизируемой функции благодаря восьмеричной нумерации клеток;

-легко находить максимальные интервалы функции, благодаря свойству симметрии в структуре таблицы;

-автоматизировать процесс минимизации, используя большую степень формализации алгоритма склеивания клеток.

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

Базовой структурой при использовании этого метода является таблица для минимизации функций, имеющих местность 2£n£6. Таблица, соответствующая максимальному числу переменных, содержит 26=64 клеток. Каждая клетка нумеруется двумя восьмеричными цифрами, двоичный код этой последовательности при нумерации переменных справа налево(!) определяет набор значений двоичных переменных функции шести переменных имеет вид (x6x5x4x3x2x1). Для получения восьмеричного кода эта последовательность разбивается на тройки справа налево и каждая тройка замещается соответствующей восьмеричной цифрой. Восьмеричный код клетки обозначим (y2y1). В отмеченной симметричной таблице указываются группы по 2n-1 клетке, в которых указанная при отметке переменная принимает единичные значения. Определение зон прямого и инверсного значений переменных осуществляется следующим образом. Снизу всю горизонтальную строку клеток делят вертикальной линией пополам. Полученные половины также делят вертикальными линиями пополам. Далее полученные части снова делят пополам до тех пор, пока в каждой части слева и справа от вертикальной линии не останется по одной клетке. Тогда для переменной х1 первая клетка слева представляет инверсное значение х1, следующие две клетки (удвоенное число)-прямое значение х1, затем чередуются по две клетки прямое и инверсное значения х1 до конца, где будет одна клетка, которой приписывается инверсное значение х1. Для переменной х2 инверсное значение, как и для остальных переменных, начинается слева, но для двух клеток, следующее прямое значение - для четырех клеток (удвоенное число) и т.д. до конца. Затем для переменной х3 - области инверсного и прямого вхождений удвоенной длины по сравнению с предшествующей переменной. Для трех старших переменных используется та же процедура справа от таблицы в направлении сверху вниз.

Три младшие двоичные переменные указываются снизу таблицы с возрастанием индекса в направлении сверху вниз, а три старшие переменные - справа от таблицы в направлении слева направо в порядке возрастания индекса переменной. Пример симметричной таблицы для n=6 приведен на рис.9.Таким образом, каждая клетка таблицы имеет свой восьмеричный номер (адрес) и в нее записывается значение функции из строки таблицы с тем же номером.

 
 

 


x 4 x5 x6
y1

y2

               
0                
 
1

*       *     *
 
3

*   * * *     *
2     *     * *  
6           * *  
 
 
7

               
                 
                 

 
 
x 1   x2   x3
 
 

 

 


Рис.9. Отмеченная симметричная таблица для минимизации булевых функций при n=6. Стрелками указаны группы клеток с единичными значениями отмеченных переменных.

 

Склеивание единиц в таблице осуществляют следующим образом. Любая единица может склеиваться по горизонтали: в группе из двух клеток с другой единицей или незаданным набором, образуя интервал с одной свободной переменной; в группе из четырех клеток, образуя интервал с двумя свободными переменными; в группе из 2к клеток, образуя интервалы с к свободными переменными, где к£2£n. Аналогично можно склеивать и клетки по вертикали. Склеиванию помогает визуальная симметрия возможных для склеивания клеток.

На рис.9 звездочками и подсветкой отмечены клетки, которые можно склеивать. Номер клетки образуют две цифры-у2, соответствующая номеру строки таблицы, и у1, соответствующая номеру столбца. Клетки с номерами 23 и 33 - интервал (01-011) с одной свободной переменной х4. Клетки с номерами (25,27,65,67) - интервал (-101-1) с двумя свободными переменными х2 и х6. Клетки с номерами (10, 12, 14, 16, 30, 32,34,36) - интервал (0-1--0) с тремя свободными переменными х2, х3, х5. Интервалы, соответствующие группам склеиваемых клеток, отмечены сносками.

Основные оси симметрии таблицы выделены жирными линиями. Склеивание 2к клеток возможно только при условии их симметричного расположения относительно основных или дополнительных осей симметрии таблицы. Например, нельзя склеить четыре рядом расположенные клетки с номерами 62, 65, 66, 67.

Пусть, например, 6-местная частично определенная функция задана следующим образом:

N1=(-000-1)È(01--10), N0=(11---1) È(-00-00). Соответствующая симметричная таблица и процедура отыскания максимальных интервалов показаны на рис. 10.

 
 


x 4 x5 x6
y1

y2

               
0       * * * *  
 
1

* * * * * * * *
 
3

* * *     * * *
2 * * *     * * *
  *     * *     *
 
 
7

*     * *     *
5 * * * * * * * *
4       * * * *  

 
 
x 1   x2   x3
 
 

 

 

 


Рис.10. Пример минимизации частично определенной 6-местной булевой функции.

 

Исходные интервалы функции помечены заливкой: единичные - более светлой, нулевые -темнее. Для получения МДНФ склеивают клетки, в которых находятся 1 и *. Результаты склеивания отмечены контурами и выносками. Для данной функции МДНФ=`x5 x1 Ú`x1 x2.

При увеличении местности функций таблица строится из базовой таблицы из 64 клеток. При числе переменных 6<n£12 каждая часть из 26 клеток считается одной клеткой и нумеруется той же последовательностью чисел-0,1,3,2,6,7,5,4 по горизонтали и по вертикали, но каждая цифра в последовательности означает восьмеричную цифру третьего и четвертого разрядов соответственно восьмеричного кода клетки.

Для 12 <n£ 18 симметричная таблица строится аналогично предыдущей, но теперь базовой клеткой является таблица из 212 клеток, а их нумерация той же последовательностью восьмеричных цифр теперь соответствует пятому и шестому разрядам восьмеричного кода клетки.

Прямые и инверсные вхождения переменных в таблице записывают тройками: младшие три переменные записывают снизу, следующие три - справа, следующие три - снизу, следующие три -справа, и так далее. Для обеспечения склеиваемости соседних клеток "больших" таблиц нумерация в каждой следующей "большой " клетке должна быть зеркальной по отношению к предыдущей.

Составление карты для n=7 показано на рис. 11. Каждая клетка нумеруется тремя восьмеричными цифрами, обозначаемыми (y1y2y3). В таблице обозначены основные оси симметрии и два интервала, полученные в результате склеивания 1 и *. Им соответствует МДНФ= x2 x3 Ú x1`x3.

 

x4 x5 x6
y3

y2

 

y1

                               
0   * * * *   *   * * * * * * *  
 
1

  * * * *   * *   * * * * * * *
    *     *     * *     *       *
 
2

* *     *     * *     *     *  
6 *       * * *     *   *        
 
 
7

*   * * * * *     * * * * * * *
5   * * * * * * * * * * * * * *  
4   * * * * * * * * * * * * * *  

  x1 x2 x3 x7
 
 
 
 
 
 

 

 

 


Рис.11. Симметричная таблица для n=7 и пример склеивания единичных и неопределенных клеток для определения МДНФ.

 

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

 

ЛИТЕРАТУРА

 


[i] А.Я. Савельев. Прикладная теория цифровых автоматов. М.: “Высшая школа”, 1987.

 

[ii] С.П.Плеханов. Симметричные карты - мощное средство минимизации булевых функций при проектировании цифровых устройств больших размерностей. “Электронная техника”. Сер.10. Микроэлектронные устройства, вып. 4(88), 1991.

 




Поделиться с друзьями:


Дата добавления: 2015-07-02; Просмотров: 1436; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.08 сек.