Геометрический подход к упрощению логических схем
Об авторе: Денис Морозов, к.ф.-м.н., работает на должности доцента кафедры математики НаУКМА, также является консультантом компании GlobalLogic. Работает над докторской диссертацией, сфера научных интересов — конечные автоматы и группы автоморфизмов деревьев.
Комбинационные логические схемы — альтернатива нейронным сетям при реализации формализованных реакций системы на заданные входные состояния. Естественно, чем проще схема, тем легче она тестируется и тем прозрачнее работа с ней. Геометрическому подходу упрощения комбинационных логических схем и посвящена данная статья.
Методы работы с такими схемами будут полезны инженерам, занимающимся разработкой интеллектуальных систем принятия решений и управления, а также hardware-инженерам, непосредственно занимающимися цифровой схемотехникой.
Исследование искусственного интеллекта (ИИ) требует уверенного владения различными техниками, и не ограничивается только использованием нейронных сетей. Одной из важных техник является теория комбинационных логических схем. У данной техники есть своя определенная ниша.
Комбинационно-логические схемы vs нейронные сети
Не так давно нейронные сети пережили второе рождение и сейчас большой процент задач, например, задачи распознавания звука, изображений, проблематики естественного языка, перевода решаются именно при помощи аппарата нейронных сетей. И возникает естественный вопрос: а зачем еще что-то другое? Ведь нейронные сети неплохо решают задачи, которые перед ними ставятся. Но здесь надо понимать, что такое нейронная сеть, каковы ее преимущества и ограничения.
Часто при использовании нейронных сетей возникают следующие ситуации: вы получили почти то, что вы хотите, но не совсем точно. Это отголоски того факта, что нейронные сети — это достаточно сложные хаотические структуры, с ними трудно работать. Хаотические — это не в смысле фэнтези, а в чисто математическом смысле. Под хаотической мы понимаем систему, в которой небольшое изменение входных параметров может существенно изменить наблюдаемые. Это первая причина, по которой не стоит ограничиваться только нейронными сетями. Вторая же, не менее важная причина, состоит в том, что такие системы очень трудно тестировать.
В областях, где критически важна безопасность, например, в разработке систем космических аппаратов, авиационной и автомобильной промышленности, вопросы соответствия определенным safety-стандартам и прозрачности процедур тестирования чрезвычайно важны.
Возвращаясь к комбинационно-логическим схемам, их преимущество как раз и заключается в том, что если вам удалось среду, с которой вы работаете, разбить на маленькие модули, то уже не нужны нейронные сети. Можно строить логические схемы, а у них есть замечательное свойство — существует достаточное количество прозрачных эффективных методов тестирования таких схем. То есть мы можем фиксировать определенные стандарты безопасности для этих маленьких модулей. Реализовать не просто интеллектуальное поведение, которое является достаточно сложным, но реализовать сложное поведение, отвечающее определенным стандартам безопасности, и это очень важный момент.
Кроме того, комбинационные логические схемы самодокументируемы. Логические связки конъюнкция и дизъюнкция представляются с сохранением контекста в естественном языке союзами «и», «или». Простыми словами, по виду логической схемы вполне возможно понять, как она работает. Нейронные сети не обладают данным преимуществом, являясь в определенном смысле черными ящиками. Понять по матрице нейронной сети особенности ее работы — задача нетривиальная. По этой же причине функциональные требования, записанные на естественном языке, проще реализовывать именно в виде логических схем.
Как мы уже упоминали, чем проще логическая схема, тем легче она тестируется и тем прозрачнее работа с ней. Поэтому важно понимать суть механизмов упрощения подобных схем.
Кратко, геометрический метод упрощения состоит в представлении булевой функции в виде многомерного гиперкуба, часть вершин которого отмечена. После этого происходит поиск возможных покрытий данного множества вершин минимальной системой гиперплоскостей максимальной размерности, что осуществляется путем анализа соответствующего плоского графа, построенного на данных вершинах.
Далее рассмотрим пример применения данной техники. Пример придуман и написан мной для одной лекции на данную тему.
Генерация и минимизация структурных блоков над бинарным алфавитом
1. Основные определения
Пусть булевый вектор входных данных структурного блока , — выходных.
Определение 1. Будем обозначать блок как .
Данный блок можно получить, как декартово произведение блоков :
Следовательно, без ограничения общности, далее можно рассматривать блоки с одним булевым выходом.
Определение 2. Формализированным требованием к блоку будем называть подмножество представим следующей булевой функцией:
Доказательство. Согласно представлению булевой функции в совершенной дизъюнктивной нормальной форме.
Пример. Пусть имеется следующее требование к работе блока:
На вход подается значения двух датчиков и датчика проверки , в разном ли они состоянии. Схема должна сигнализировать о корректной работе датчика проверки.
Данное требование имеет следующий формализированный вид:
Согласно лемме 1 работа блока описывается функцией:
3. Оптимизация булевого блока с одним выходом
Пусть блок с одним выходом задается следующей таблицей истинности:
Что соответсвует булевой формуле:
Оставим значащие для ДДНФ строки:
Переставим строки в соответствии с кодом Грея:
Построим граф, соединив пары строк , для которых расстояние Хэмминга :
Выберем множество пар, что покрывают все вершины:
Выбранному множеству пар
(2,3)
(4,5)
(5,7)
(1,6)
соответствует следующая таблица:
Согласно полученной таблице, минимизированная формула примет вид:
Заметим, что естественное упрощение с использованием сокращений булевой алгебры может привести к неоптимальному результату. Например, применив правило сокращения булевой алгебры к таблице:
Что соответствует булевой формуле:
Данному упрощению соотвествует следующий граф, содержащий 5 отмеченных ребер, накрывающих все вершины:
Для полного же накрытия достаточно
4. Абстрактная схема алгоритмов упрощения
Определение 3. Будем считать, что блок A проще блока B, если:
Определение 4. Пусть формула А является дизъюнктивным объединением блоков , а формула B является дизъюнктивным объединением блоков . Будем говорить, что , если:
Определение 5. Для формулы определим как множество эквивалентных F формул над множеством переменных как множество формул:
множеством упрощений формулы F.
Определение 6. Для формулы определим как множество конъюнктивных блоков над множеством переменных , удовлетворяющих следующему условию:
Выводы
Итак, геометрическое представление упрощения комбинационных логических схем является удобным языком, позволяющим получить однородное описание для различных схем упрощения данных схем, таких как карты Карно, метод гиперкуба, метод Куайна и т.д. Подобное описание является ключом к прозрачному пониманию данных методов, что является основой для их корректного использования и возможной модификации.