Задача «Генетика изображений»

Задание

Используя библиотеку GAlib, в частности, готовый класс GA2DBinaryStringGenome, реализовать задачу подбора чёрно-белых изображений под целевую функцию.

Необходимо реализовать следующие целевые функции:

  • «Половина изображения». Целевая функция «любит», когда все пикселы находятся только в одной половине (реализовать возможность выбора: верхняя, нижняя, левая, правая), а другая половина пуста.
  • «Полосы». Целевая функция «любит» полосатые изображения — пустые и полные полосы должны чередоваться (с заданной шириной полосы).
  • «Связность». Целевая функция «любит» связные изображения (когда в окрестности каждого пиксела есть другой пиксел), но не «любит» слишком заполненные изображения (задавать границу насыщения: скажем, в 1 должно быть установлено не более 20% пикселов).

Программа должна позволить выбрать желаемую целевую функцию, запустить GAlib и показать результаты. Изображение можно выводить в текстовом виде (. и *), а размер взять небольшой — 50x50, чтобы оно умещалось на экране.

Полезные материалы

Как собрать GAlib.

Краткое введение в генетические алгоритмы.