Вход
Регистрация

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

Выбор способа кодирования решения, как мне кажется, серьезная проблема в большинстве практических задач оптимизации. Проблема, которой мало внимания уделяется в пособиях и материалах. А ведь выбор способа кодирования - вопрос не менее важный, чем выбор генетических операторов. В чем я вижу проблему? В том, что кодирование реальных задач не сводится просто к представлению пары числовых величин в двоичном виде. Могут быть большое количество параметров, переменное их число, запрещенные комбинации генов. Например, задача коммивояжера на неполно связном графе (не все города соеденины между собой). Логично кодировать маршрут последовательностью обхода городов. Но ведь тогда в результате скрещивания или мутации может получиться недопустимое решение (контур, которого нет на графе). Что в таких случаях делают? Корректируют хромосому? Но как? Применяют специальные операторы, которые не дают запрещенных решений? Какие? Или, может быть, есть вариант кодирования данной задачи, не дающий недопустимых комбинаций генов?
Как уважаемые читатели этого форума программируют свои задачи?