русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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


Дата добавления: 2015-08-31; просмотров: 1806; Нарушение авторских прав


 

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

которым соответствуют комплексы:

приведен на рис.1. Клетки отмеченные на картах значениями 1, соответствуют 0-кубам (конституентам единицы) булевых функций.

x1x2
   
  х2х3
  х1  
   
   

а) f1 б) f2

 

 

  x3x4
  x1x2  
     
     
   
     

в) f3

 

 

Рис.1. Карты Карно функций двух (а), трех (б) и четырех (в) переменных.

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

С использованием карт Карно легко выделяется минимальное покрытие функции, по которому строится ее минимальная ДНФ или КНФ. Две соседние клетки образуют 1-куб. При этом имеется в виду, что клетки, лежащие на границах карты, также являются соседними по отношению друг к другу. Примеры образования 1-кубов приведены на рис. 2 а,б.



а) б)

Рис. 2. Образование 1- кубов.

 

Карты позволяют для функций f1 и f2 заданных комплексами

000 0000

001 0010

K0(f1) = 011 ; K0(f2) = 1101

100 1111

110 1110

с ценами Sа (f1) = 15 и Sa (f2) = 24, определить покрытия

X00 X000

С(f1) = 0X1 ; C (f2) = 00X0

1X0 11X1

111X

с ценами Sa(f1) = 6, Sa(f2) = 12, которым соответствуют аналитические выражения, являющиеся минимальными ДНФ функций:

Четыре вершины могут объединяться, образуя 2-куб, содержащий две независимые координаты. Примеры образования 2-кубов приведены на рис. 3.

а) б) в)

Рис. 3. Образование 2-кубов.

 

Карты построены для функций f1, f2 и f3, заданных комплексами K0(f1), K0(f2), K0(f3) с ценами Sa(f1) = 40, Sa(f2) = 24, Sa(f3) = 32.

 
 

На картах определены покрытия состоящие из 2-кубов и имеющие цены

Sa (f1) = 6, Sa (f2) = 4, Sa (f3) = 4.

Объединение восьми вершин приводит к образованию 3-куба. Примеры минимизации функций f1, f2, f3, заданных комплексами

0000 0001 0000

0001 0011 0001

0011 0101 0011

0010 0111 0010

0100 1101 1000

K0(f1) = 0101 ; K0(f2) = 1111 ; K0(f3) = 1001 ,

0111 1001 1011

0110 1011 1010

1100 0100 0111

1101 1100 0110

1111 0110 1111

1110 1110 1110

цена каждого из которых равна Sa = 48, приведены соответственно на картах рис. 4, а, б, в. Функциям f1, f2, f3 соответствуют минимальные покрытия с ценой Sа = 2

 
 

а) б) в)

 

Рис. 4. Образование 3-кубов.

 

С точки зрения аналитических представлений образование (r+1)-кубов из r - кубов происходит в соответствии с правилом поглощения .

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

Примеры минимизации функций приведены на рис.5. На рис. 5, а определяется минимальная форма для функции от трех переменных:

XX1 01X

имеющей цену Sа = 15. Минимальному покрытию С(f1) =

с ценой Sа = 3 соответствует минимальная ДНФ

а) б)
  Рис. 5.Минимизация булевых функций.  

На рис. 5,б приведен пример минимизации функции от четырех переменных:

0X00 X100 X111 01XX

с ценой Sа = 32. Минимальному покрытию функции С(f2) =

с ценой Sа = 15 соответствует минимальная ДНФ:

 

 



<== предыдущая лекция | следующая лекция ==>
Нулевое покрытие булевой функции и получение минимальной КНФ | Минимизация частично определенных булевых функций


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

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