А.С. Казимиров, Л.В. Рябец Параллельный генетический алгоритм приближенной минимизации булевых функций Полиномиальные нормальные формы Полиномиальная нормальная форма (ПНФ) — представление булевой функции в виде f = K1 … Ks, где Ki — элементарная конъюнкция. Для функции от n переменных существует 3n 2 n различных ПНФ. 2 Сложность функции L( f ) min L() f Программируемые логические матрицы f1 (01101001) f1 x1 x2 x3 x1 x2 x3 x1 x2 x3 x1 x2 x3 f1 x1 x3 x1 x3 x2 Минимизация булевых функций 6 переменных: возможна абсолютная минимизация с использованием библиотеки классов функций 5 переменных. isttu.irk.ru/mbf/ 7 переменных: нахождение точного минимума пока не представляется возможным. Для минимизации одной функции 7 переменных необходимо 26 минимизировать 2 18 1018 функций 6 переменных. Приближенная минимизация функций Спуск до n – 1 переменной: f ( x1 ,..., xn ) xn f1 ( x1 ,..., xn1 ) xn f 2 ( x1 ,..., xn1 ) f 3 ( x1 ,..., xn1 ) Одна из функций f1, f2, f3 выбирается произвольно, другие получаются из соотношений: f1 ( x1 ,..., xn 1 ) f 3 ( x1 ,..., xn 1 ) f ( x1 ,..., xn 1 ,1) f 2 ( x1 ,..., xn 1 ) f 3 ( x1 ,..., xn 1 ) f ( x1 ,..., xn 1 ,0) Последовательный генетический алгоритм Пусть минимизируется функция f от n переменных. Тогда особями являются различные вектора функции f1 – функции n – 1 переменной в разложении f ( x1 ,..., xn ) xn f1 ( x1 ,..., xn1 ) xn f 2 ( x1 ,..., xn1 ) f 3 ( x1 ,..., xn1 ) Кроссовер: Мутация: Сложность функций 6 и 7 переменных Функции вида pn(x1, …, xn) = (110110…) qn(x1, …, xn) = (011011…) rn(x1, …, xn) = (101101…) и эквивалентные им являются самыми сложными среди функций от n переменных при n ≤ 6. L(p6) = L(q6) = L(r6) = 15 Предположительно p7, q7, r7 являются самыми сложными среди функций 7 переменных. Для них существует теоретическая оценка сложности: L(p7) = L(q7) = L(r7) ≤ 27 Экспериментальные результаты (1) Генетический алгоритм минимизации функций 6 переменных может сравниться с алгоритмом абсолютной минимизации – находит точный минимум для почти всех функций за меньшее время, в десятки раз меньшее, при следующих параметрах: Размер популяции – 10 особей Число итераций – 10000 (каждая итерация состоит из одного кроссовера и одной мутации) Экспериментальные результаты (2) Генетический алгоритм для функций 7 переменных был реализован в следующем виде: при спуске до функций 6 переменных эти функции также минимизировались генетическим алгоритмом приближенной минимизации. Этот алгоритм с популяцией из 40 особей после 10000 итераций давал сложность 27 для предположительно самых сложных функций 7 переменных. Изменение параметров не дает сложности ниже 27. Параллельный генетический алгоритм Миграционная модель параллельного ГА: параллельное эволюционирование нескольких популяций. Взаимодействие между популяциями осуществляется с помощью механизма миграций. Через определенный интервал времени из популяций мигрируют несколько особей. Типы взаимодействия популяций 1. 2. 3. Организация параллельных вычислений Для связи параллельных процессов были использованы транспортные агенты (по одному на каждый компьютер), осуществляющие доставку сообщений. Работа транспортных агентов происходит в пакетном режиме. Помимо передачи информации транспортные агенты осуществляют запуск и выключение приложений. Результаты В ходе работы параллельного генетического алгоритма получена сложность 26 для функций, предположительно являющихся самыми сложными среди функций 7 переменных. Спасибо за внимание! Вычислительный сервер минимизации булевых функций isttu.irk.ru/mbf/