У меня есть проблема оптимизации, которую я пытаюсь решить, используя генетический алгоритм. По сути, существует список из 10 связанных переменных с действительными значениями (-1 <= x <= 1), и мне нужно максимизировать некоторую функцию из этого списка. Подвох в том, что в списке может быть только до 4 переменных! = 0 (условие подмножества). </p>
Математически говоря:
Для некоторой функции f: [-1, 1] ^ 10 -> R
мин ф (х)
S.T.
| {var в X с var! = 0} | <= 4 </p>
Некоторые сведения о f: эта функция НЕ похожа ни на какую целевую функцию ранца, такую как сумма x * weight или что-то в этом роде.
Что я пробовал до сих пор:
Просто базовый генетический алгоритм над геномом [-1, 1] ^ 10 с пересечением в 1 точку и некоторой гауссовой мутацией по переменным. Я попытался закодировать условие подмножества в функции пригодности, используя только первые 4 ненулевых значения (ноль, как в , достаточно близких к 0 ). Этот подход работает не очень хорошо, и алгоритм привязан к 4 первым переменным и никогда не использует значения, превышающие это. Я видел некоторый GA для задачи 01-ранца, где этот подход работал хорошо, но, очевидно, это работает только с двоичными переменными.
Что бы вы посоветовали мне попробовать дальше?