Усовершенствованный генетический алгоритм для многозадачной задачи

Вам просто нужно изменить вход функции split в массив строк, а затем delare StringSplitOptions.

Попробуйте эту строку кода:

Occurrences = input.Split({phrase}, StringSplitOptions.None).Length

Я не проверял это, но я думаю, вам также придется учитывать тот факт, что вхождения будут слишком высокими из-за того, что вы раскалываете свою строку, а не подсчитываете, сколько раз она находится в строка, поэтому я думаю, Occurrences = Occurrences - 1

Надеюсь, что это поможет

1
задан Joel Hoff 26 June 2010 в 12:14
поделиться

3 ответа

Вы можете сравнивать свое решение только с проблемами с точно такой же функцией кодирования и соответствия (то есть это эквивалентные проблемы).Если проблема в другом, любое сравнение быстро теряет актуальность по мере изменения проблемы, поскольку функция пригодности почти всегда является специальной для того, что вы пытаетесь решить. Фактически, фитнес-функция - это единственное, что вам нужно закодировать, если вы используете набор инструментов генетических алгоритмов, так как все остальное обычно поставляется из коробки.

С другой стороны, если функция приспособленности такая же, то имеет смысл сравнить результаты с разными параметрами, такими как разная частота мутаций, разные реализации кроссовера или даже совершенно разные эволюционные парадигмы, такие как коэволюция, ген выражение, по сравнению со стандартными ГА и т. д.

1
ответ дан 3 September 2019 в 00:09
поделиться

Должно быть любое количество достойных методов GA, с которыми вы можете сравнивать. Тем не менее, вы должны сначала попытаться четко установить, какой именно «традиционный» метод GA вы уже тестировали.

Один хороший метод, который я могу порекомендовать, - это алгоритм NSGA-II , который был разработан для многоцелевой оптимизации.

Для получения других идей взгляните на следующее:

1
ответ дан 3 September 2019 в 00:09
поделиться

Пытаетесь ли вы улучшить современное состояние решателей с несколькими рюкзачками с помощью генетических алгоритмов? Или вы пытаетесь усовершенствовать технику генетического алгоритма, используя в качестве тестовой платформы мультикомпакет? (Вы можете уточнить?)

В зависимости от того, какая цель является вашей целью, ответ на ваш вопрос будет совершенно другим. Поскольку другие ответили на второй вопрос, я предполагаю первый.

В базовом генетическом алгоритме произошел небольшой скачок и прорыв. Наилучшим улучшением в решении проблемы многоканального пакета с использованием генетических алгоритмов было бы улучшение кодирования операторов мутации и кроссовера, которые могут на порядки разницы в результирующей производительности и исключить любые изменения в фундаментальном генетическом алгоритме. . Вы можете многое сделать для того, чтобы ваши операторы мутации и кроссовера были адаптированы для мультикапсового пакета.

Сначала я хотел бы изучить литературу по мульти-рюкзаку, чтобы увидеть, какие типы пространств поиска и методы решения используются в мульти-рюкзачке. Какие типы поисковых операторов они используют в своих оптимальных или субоптимальных методах (независимо от генетических алгоритмов)? Что они кодируют как переменные и что кодируют как значения? Какие функции эвристической оценки используются? Какие ограничения они проверяют? Затем вы адаптируете их кодировки к вашим операторам мутации и кроссовера и посмотрите, насколько хорошо они работают в ваших генетических алгоритмах.

Весьма вероятно, что эффективное кодирование пространства поиска или точная функция эвристической оценки проблемы с множеством рюкзаков могут быть преобразованы в высокоэффективные операторы мутации и кроссовера. Поскольку многоканальный рюкзак - это очень хорошо изученная проблема с большим объемом исследовательской литературы, она должна стать для вас золотой жилой.

0
ответ дан 3 September 2019 в 00:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: