- •Оглавление
- •Глава 3. Логика высказываний 78
- •Глава 4. Логика предикатов 90
- •Введение
- •I. Системы счисления
- •1.1. Непозиционные системы счисления. Римская система счисления
- •1.2. Позиционные системы счисления
- •1.3. Взаимосвязь систем счисления
- •I. Алгоритм перевода целого числа Aq из q-ичной системы счисления в число Bd d-ичной системы
- •II. Алгоритм перевода целого числа Ad из d-ичной системы счисления в число Bq q-ичной системы
- •III. Алгоритм перевода правильных дробей из q-ичной системы счисления в d-ичную с вычислениями в d-ариф-метике
- •IV. Алгоритм перевода правильных дробей из d-ичной системы счисления в q-ичную с вычислениями в d-арифметике
- •V. Алгоритм перевода чисел из d-ичной системы счисления в dn-ичную систему счисления
- •VI. Алгоритм перевода чисел из dn-ичной системы счисления в d-ичную систему счисления.
- •1.4. Двоичная система счисления
- •1.4.1. Двоичная арифметика
- •1.4.3. Вычитание с использованием двоичного дополнения. Умножение
- •Алгоритм вычитания целых десятичных чисел
- •Алгоритм отыскания двоичного дополнения числа
- •Теория множеств
- •Глава 1. Множества
- •1.1. Основные определения
- •1.2. Основные операции теории множеств
- •Старшинство операций (операции даны по убыванию приоритетов)
- •1.4. Диаграммы Венна
- •1.5. Основные законы теории множеств
- •1.6. Декартово произведение и отношения
- •Глава 2. Бинарные отношения
- •2.1. Основные определения
- •Глава 3.Функции и операции
- •Примеры функций
- •Операции над функциями
- •Свойства бинарных операций
- •Глава 4.Алгебраические структуры
- •III. Математическая логика
- •Глава 1. Переключательные функции
- •1.1. Основные определения
- •Переключательные функции двух аргументов
- •1.2. Основные теоремы (эквивалентные соотношения) переключательных функций
- •Глава 2.Булева алгебра
- •2.1. Основные определения
- •Эквивалентные соотношения в булевой алгебре
- •2.2. Минимизация булевых функций
- •2.3. Аналитические методы нахождения мднф Метод Квайна
- •Формулы метода
- •Алгоритм метода
- •Метод Блейка
- •Формулы метода
- •Алгоритм метода
- •Сравнение методов Квайна и Блейка
- •Построение мднф из Сокр.Днф с помощью таблицы Квайна
- •Алгоритм получения fМднФс помощью таблицы Квайна
- •2.4. Графическая минимизация логических функций
- •Метод карт Карнапа
- •Алгоритм минимизации по карте Карнапа
- •2.5. Полнота систем булевых функций
- •Классы Поста
- •Полиномы Жегалкина
- •Глава 3.Логика высказываний
- •3.1. Основные понятия
- •3.2. Алгебра логики высказываний
- •3.3. Применение к естественному языку
- •Список наиболее часто встречающихся выражений, соответствующих логическим связкам
- •3.4. Исчисление высказываний (ив)
- •Глава 4.Логика предикатов
- •Определения кванторных высказываний
- •4.1. Алгебра логики предикатов
- •4.2. Выполнимость и общезначимость
- •4.3. Равносильность формул
- •Приведенные формулы
- •4.4. Применение логики предикатов к естественному языку
- •4.4.1. Суждения
- •Виды категорических суждений
- •4.4.2. Исчисление одноместных предикатов как исчисление классов. Теория категорических суждений и силлогизмов Аристотеля
- •Законы формальной логики Аристотеля:
- •4.4.3. Умозаключения
- •Наиболее распространенные схемы правильных дедуктивных рассуждений
- •4.4.4. Основные законы формальной логики. Логические основы аргументации
- •4.5. Исчисление предикатов
- •Литература
- •Предметный указатель
2.4. Графическая минимизация логических функций
Будем считать, что область определения функции – вершиныn-мерного куба. Причем вершины, в которых функция равна 1, помечены *.
Рассмотрим идею графической минимизации на примере функции трёх переменных. Для того чтобы определить четыре вершины куба, принадлежащие плоскости x=1, имеется три способа:
1) илиилиили;
2а) или(– это прямая, перпендикулярная координатной плоскости Oxy, из этой прямой лишь две точкиивходят в область определения логической функции, причем именно те, которые нужны);
2б) или;
3) (– уравнение плоскости, перпендикулярной к осиOx).
Видно, что запись 3), определяющая одновременно все четыре точки (вершины), самая короткая. В общем случае, если необходимо задать m-грань (m-куб)n-мерного булевого куба, то необходимо ровно (n–m) равенств видаили, где. Если же записывать по отдельности все вершины этойm-грани, то понадобитсяnmтаких равенств. Именно это наблюдение лежит в основе графической минимизации.
Метод карт Карнапа
Картой Карнапа(Карнап (Carnap) Рудольф (1891-1970 гг.) – нем.-амер. философ и логик) для четырех переменных называется таблица, каждая клетка которой соответствует вершине четырехмерного куба, причем соответствие задается таким образом, что если склеить карту по вертикали и горизонтали в тор, то соседние клетки карты будут соответствовать соседним вершинам куба. Соответствие вершинам куба обычно задают явно, указывая координаты строк и столбцов таблицы. В клетках таблицы, соответствующих вершинам куба, в которых минимизируемая функция равна 1, проставляют. Трехмерный куб можно рассматривать как грань четырехмерного, поэтому в качестве карты Карнапа для функции трёх переменных берут часть карты для функции четырёх переменных.
Будем называть граньюмножество звездочек карты, соответствующее какой-либо грани куба (отметим, что грань на карте Карнапа – всегда множество соседних звездочек). Мощность грани (количество *) может быть равна 1, 2, 22, ..., 2n, гдеn – размерность функции.Максимальной граньюдля конкретной звездочки карты будем называть грань с максимальной мощностью. Подполезной мощностьюграни будем понимать количество ещё непокрытых звездочек, покрываемых данной гранью. Полезная мощность может быть равна 0, 1, 2, 3, ...,m, где m– мощность данной грани. Обратим особое внимание на то, что полезная мощность определена только для максимальной грани. Причем независимо от шага алгоритма мощность максимальной грани для каждой звездочки одинакова (она зависит только от самой функции), а полезная мощность максимальной грани изменяется во время работы алгоритма, а по его завершению для всех звездочек равна 0.
Пример 29 |
Пример 30 |
|
|
Алгоритм минимизации по карте Карнапа
Шаг 1. Находим непокрытую, немаркированную звездочку. Если все звездочки покрыты, то stop. Если все непокрытые звездочки маркированы, то переходим на шаг 5.
Шаг 2. Среди всех возможных вариантов граней для данной звездочки выбираем грани, максимальные по мощности. Если такая грань единственная, то обводим ее и переходим на шаг 5.
Шаг 3. Среди граней максимальной мощности выбираем грань с максимальной полезной мощностью. Если такая грань единственная, то обводим ее и переходим на шаг 5.
Шаг 4. Маркировать звёздочку и перейти на шаг 1.
Шаг 5. Для произвольной непокрытой маркированной звездочки обводим любую из граней с максимальной полезной мощностью (отличной от нуля, так как сама звездочка еще не покрыта).
Шаг 6. Снять все маркировки. Перейти на шаг 1.
Пример 31.Приведем для некоторых функций карты и минимальные покрытия:
Заметим, что приведенный алгоритм минимизации по карте Карнапа для некоторых функций может давать лишние импликанты, например:
У этой функции, если в соответствии с алгоритмом начать работу со звездочек, соответствующих грани yp, то получим, что минимальная форма содержит импликантуyp, а это не так. Поэтому после окончания алгоритма следует проверить, нет ли граней, полностью покрытых другими гранями, т.е. лишних импликант. |