ВЕСТНИК ПЕРМСКОГО УНИВЕРСИТЕТА М а темат ик а. Ме ханик а. Ин формат ик а 2013 Вып. 1(13) УДК 681.3 Синтез в базисе ФПТ при помощи генетических алгоритмов А. Н. Шляков Пермский национальный исследовательский политехнический университет Россия, 614990, Пермь, Комсомольский проспект, 29 pstuMazoku@gmail.com; +79125821498 Для оптимального синтеза дискретных логических устройств приходится обращаться к алгоритмам переборного характера, что сопровождается большим объемом вычислительной работы или невозможно. Для большинства же практических задач используются эвристические алгоритмы, которые ищут приемлемое для данного случая решение. В данной работе рассматривается синтез схем с помощью генетических алгоритмов, в основе которых лежит принцип биологической эволюции и естественного отбора. Ключевые слова: генетический алгоритм; эвристический алгоритм; функциональнополный толерантный элемент (ФПТ); избыточный базис, синтез. Функционально полный толерантный (ФПТ) элемент – это комбинационный элемент с избыточным базисом. ФПТ элемент обеспечивает сохранение базиса с точки зрения теоремы Поста при однократных константных отказах в транзисторах, следовательно, реализация функций на его основе эффективней, чем на основе классических элементов. Базис ФПТ имеет вид Введение Для оптимального синтеза дискретных логических устройств приходится обращаться к алгоритмам переборного характера, что сопровождается большим объемом вычислительной работы или невозможно. Классические методы позволяют получать оптимальное решение "вручную" только для задач небольшой размерности. На практике синтез осуществляется при помощи эвристических алгоритмов, которые ищут неоптимальное, но удовлетворяющее поставленным требованиям решение [1]. Предлагается способ синтеза схем при помощи генетических алгоритмов. Синтез осуществлялся в избыточных базисах (в базисах так называемых функционально-полных толерантных элементов [2]). Генетический алгоритм – это эвристический алгоритм поиска, используемый для решения задач оптимизации и моделирования путём случайного подбора, комбинирования и вариации искомых параметров с использованием механизмов, напоминающих биологическую эволюцию и использованием методов естественной эволюции, таких как наследование, мутации, естественный отбор и кроссинговер. ( x1 x2 x3 x4 ). Описание алгоритма Разработан программный продукт, осуществляющий такой синтез схем функций не более 4 переменных. Полученная схема представляется в виде двоичной хромосомы длиной 48 бит. В данной реализации биты с 1 по 12 описывают первый ФПТ элемент, биты 13–24 – второй и так далее. Рассмотрим часть хромосомы, описывающую первый ФПТ элемент. Биты 1, 4, 7, 10 обозначают, что именно подается на каждый вход – переменная (1) или выход другого элемента (0). В оставшихся битах закодирована переменная или ФПТ элемент. Пусть первые 3 бита имеют значение 100, тогда на первый вход подается переменная A. © Шляков А. Н., 2013 65 А. Н. Шляков Недостаток такой хромосомы состоит в том, что большинство двоичных строк не соответствуют допустимой схеме. Следовательно, необходимо выполнять проверку хромосомы на корректность. Затем необходимо смоделировать "естественный отбор", т. е. разработать функцию приспособленности. Функция приспособленности рассчитывается как количество хромосом, которые можно получить из данной с помощью мутации 1 бита (замены его значения на противоположное). Следующий шаг – кроссинговер. При кроссинговере хромосомы из первой половины популяции группируются в пары с хромосомами из второй, и случайным образом выбирается точка кроссинговера. Операция кроссинговера состоит в обмене участками выбранных хромосом слева от точки кроссинговера. Далее осуществляется мутация, т. е. каждый бит может изменить свое значение на противоположное с вероятностью 5%. Затем осуществляется расчет таблиц истинности полученных корректных хромосом и сравнение их с заданной. В случае их совпадения полученная хромосома является вариантом реализации заданной функции в базисе ФПТ. В данной реализации условием завершения алгоритма является повторение его заданное количество раз. Была выполнена проверка программного продукта и рассчитана вероятность нахождения результата для функций от 1 до 4 переменных. Алгоритм завершался после прохождения 20 поколений. Использовались функции y x , y x1 x2 x1 x2 , y x1 x2 x3 , y x1 x2 x3 x4 . Для первой и второй функций результат получен в 19 случаях, третьей – в 18, четвертой – в 15. Результат показан на рис. 1. Синтез схем Рассмотрим синтез схемы с использованием созданного программного продукта на примере функции (ab ac bc), таблица истинности которой имеет вид (табл. 1): Таблица 1. Обобщенная таблица истинности заданной функции A 1 B 1 1 1 C 1 1 При помощи созданного программного продукта для функции (ab ac bc) получена хромосома (110110100101 101110100100 000110001111 000000110001), в которой закодирована следующая схема (рис. 2). Рис. 2. Синтезированная функции (ab ac bc) схема Выполним проверку данной схемы, используя таблицу истинности (табл. 2). Таблица 2. Таблица истинности получившейся схемы A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 ФПТ1 1 0 1 0 1 0 0 0 ФПТ2 1 1 1 0 0 0 0 0 F 0 0 0 1 0 1 1 1 Получившаяся таблица совпадает с заданной изначально, следовательно синтезированная схема является реализацией заданной функции в базисе ФПТ2. Сложность схемы – 3 (количество ФПТ элементов), задержка – 2 (количество элементов на самом длинном пути прохождения сигнала). Рис. 1. Зависимость вероятности синтеза от количества переменных заданной функции 66 Синтез в базисе ФПТ при помощи генетических алгоритмов Аналитически можно найти оптимальную схему (рис. 3): Рис. 3. Аналитически оптимальная схема (ab ac bc) нить системный синтез, объединив эти схемы (рис. 5). найденная функции Рис. 5. Объединенная схема функций (ab ac bc) и ( ac bc ) В полученной схеме верхний выход соответствует функции (ab ac bc), нижний – Сложность такой схемы – 3, задержка – 2. Таким образом, найденная схема обладает такой же сложностью и задержкой, как и оптимальная, найденная "вручную", следовательно, полученная схема является оптимальным результатом для данной функции при ее реализации в базисе ФПТ. Для решения практических задач необходимо использовать системный синтез для оптимизации получаемых схем [3]. Выполним системный синтез для функций (ab ac bc) и ( ac bc ). Результат для первой функции получен выше. С помощью программного продукта для второй функции получен результат (рис. 4). функции ( ac bc ). Сложность схемы – 3, задержка – 2. Следовательно, использование системного синтеза предпочтительнее "прямой" реализации схемы. Заключение Таким образом, созданный программный продукт выполняет синтез схем в базисе ФПТ, хотя и не всегда оптимальный. Следовательно, использование генетических алгоритмов для синтеза имеет практический смысл, и задача сводится к совершенствованию алгоритма для возможности синтеза схем функций большего числа переменных на большем количестве элементов. Список литературы 1. Чебурахин И.Ф. Математическое моделирование и синтез вычислительных и управляющих логических устройств: дис. …д.т.н: 05.13.17. МАТИ–РГТУ, 2004. 323с. 2. Тюрин С.Ф. Проблема сохранения функциональной полноты булевых функций при "отказах" аргументов //Автоматика и телемеханика. 1999. № 9. С. 176–186. 3. Тюрин С.Ф., Аляев Ю.А. Дискретная математика. Практическая дискретная математика и математическая логика. М.: Финансы и статистика, 2010. Рис. 4. Синтезированная схема функции ( ac bc ) Сложность такой схемы – 1, задержка – 1. Таким образом, совокупная сложность схемы при реализации данных двух функций равна 4, задержка – 2. Можно заметить, что в реализации данных двух функций используется одинаковый ФПТ-элемент, следовательно, можно выпол- 67 А. Н. Шляков Synthesis in the FPT-basis by genetic algorithms A. N. Shlyakov Perm National Research Polytechnic University, Russia, 614990, Perm, Komsomolsky Av., 29 pstuMazoku@gmail.com; +79125821498 For optimal synthesis of discrete logic devices we have to use the exhaustive search algorithms, accompanied by a large amount of computational work. In this paper, we consider the synthesis of circuits using genetic algorithms, which are based on the principle of biological evolution and natural selection. Key words: genetic algorithm; heuristic algorithm; functionally complete tolerance element (FPT); the excess basis; the synthesis. 68