Задача «Генетика изображений»
Задание
Используя библиотеку GAlib, в частности, готовый класс GA2DBinaryStringGenome
, реализовать задачу подбора чёрно-белых изображений под целевую функцию.
Необходимо реализовать следующие целевые функции:
- «Половина изображения». Целевая функция «любит», когда все пикселы находятся только в одной половине (реализовать возможность выбора: верхняя, нижняя, левая, правая), а другая половина пуста.
- «Полосы». Целевая функция «любит» полосатые изображения — пустые и полные полосы должны чередоваться (с заданной шириной полосы).
- «Связность». Целевая функция «любит» связные изображения (когда в окрестности каждого пиксела есть другой пиксел), но не «любит» слишком заполненные изображения (задавать границу насыщения: скажем, в 1 должно быть установлено не более 20% пикселов).
Программа должна позволить выбрать желаемую целевую функцию, запустить GAlib и показать результаты. Изображение можно выводить в текстовом виде (.
и *
), а размер взять небольшой — 50x50, чтобы оно умещалось на экране.
Полезные материалы
Как собрать GAlib.
Краткое введение в генетические алгоритмы.