Генетический алгоритм для задачи opti, похожей на рюкзак

У меня есть проблема оптимизации, которую я пытаюсь решить с помощью генетический алгоритм. По сути, есть список из 10 связанных переменных с действительными значениями (-1 <= x <= 1), и мне нужно максимизировать некоторую функцию этого списка. Загвоздка в том, что только до 4 переменных в списке могут иметь значение! = 0 (условие подмножества).

С математической точки зрения: Для некоторой функции f: [-1, 1] ^ 10 -> R min f (X) st | { var в X с var! = 0} | <= 4

Немного предыстории о f: эта функция НЕ похожа ни на одну из целевых функций ранца, например Sum x * weight или что-то подобное.

То, что я пробовал до сих пор:

Просто базовый генетический алгоритм над геномом [-1, 1] ^ 10 с 1-точечным кроссовером и некоторой гауссовой мутацией переменных. Я попытался закодировать условие подмножества в функции приспособленности, используя только первые 4 ненулевых (ноль, как в , достаточно близких к 0 ) значений. Этот подход не работает так хорошо, и алгоритм застревает на 4 первых переменных и никогда не использует значения сверх этого. Я видел какой-то GA для задачи 01-рюкзака, где этот подход работал хорошо, но, видимо, он работает только с двоичными переменными.

Что вы порекомендуете мне попробовать дальше?

5
задан dassmann 9 November 2011 в 08:31
поделиться