Генетический алгоритм минимизации полиномов булевых функций

advertisement
Генетический алгоритм минимизации
полиномов булевых функций
Винокуров С.Ф., Казимиров А.С.
Полиномиальные представления
Pf (x1, . . . , xn) = K1 ⊕ . . . ⊕ Ks,
σi
σi
Ki = xi1 1 · . . . · xik k , σij ∈ {0, 1}, либо Ki = 1.
σ
x =
x, если σ = 0
x, если σ = 1.
Сложность булевых функций
Pf (x1, . . . , xn) = K1 ⊕ . . . ⊕ Ks
L(Pf ) = s — сложность полинома
L(f ) = min L(Pf ) — сложность функции
Pf
L(n) = max L(f ) — функция Шеннона для сложности
f
булевых функций
Алгоритмы минимизации
1. Перебор всех полиномов
2. Решение системы уравнений
f (x1, . . . , xn) =
3n
L
αiKi
i=1
3. Специальная операторная форма
4. Преобразования СПНФ
Алгоритмы минимизации
5. Спуск к n − 1 переменной — применение разложения
f (x1, . . . , xn) = x̄1f1 ⊕ f2 ⊕ x1f3
Одна из функций f1, f2, f3 выбирается произвольно,
остальные получаются из соотношений:
f1 ⊕ f (0, x2, . . . , xn) = f2
f3 ⊕ f (0, x2, . . . , xn) = f2
L(f ) = min{L(f1) + L(f2) + L(f3)}
f1
Использование библиотек
При спуске к меньшему числу переменных можно использовать библиотеки функций с заранее найденной
сложностью.
n = 4 — 216 функций — 32 Кб
n = 5 — 232 функций — 2 Гб
Использование эквивалентностей, сохраняющих сложность полиномов, позволяет уменьшить размер библиотеки.
Минимизация функций 7 переменных
Данный алгоритм точной минимизации имеет ограничение n = 6.
При n = 7 необходимо минимизировать 264 функций, а
при использовании эквивалентностей — 242 функций.
Применение генетической модели позволяет построить
алгоритм приближенной минимизации.
Генетический алгоритм
Особь — вектор функции-параметра.
Функция приспособленности — сложность полинома,
построенного по данной функции.
Мутация реализуется в виде изменения группы битов в
векторе функции.
Кроссовер — обмен частями векторов.
Генетический алгоритм
1. Генерация популяции: случайные особи, оценивание
и сортировка.
2. Шаг генетического алгоритма:
2.1. Применение мутации к случайной особи из популяции.
2.2. Применение кроссовера к случайным особи из популяции.
2.3. Оценивание новых особей и добавление их в популяцию.
Генетический алгоритм
Пространство поиска является гладким:
Утверждение. При изменении одного бита в функциипараметре число слагаемых в соответствующем полиноме
меняется не более, чем на 3.
Для выхода из локальных минимумов применяются дополнительные стратегии: добавление случайных функций
на каждой итерации и частичная очистка популяции.
Тестовые функции
pn = (011011...), qn = (101101...), rn = (110110...)
Эти функции дают максимум сложности в поляризованных полиномах, в кронекеровых и псевдокронекеровых формах.
В полиномиальных формах данные функции являются
самыми сложными при n ≤ 6.
L(pn) = L(qn) = L(rn)
p n ⊕ qn ⊕ r n = 0
Тестирование алгоритма
При тестировании производился подбор параметров генетического алгоритма.
Запуски при n = 6 после настройки дали точный минимум для практически всех функций за время, на порядок
меньшее времени работы алгоритма точной минимизации.
Для n = 7, 8 алгоритм дает полиномы, сложность которых близка к теоретическим оценкам.
Download