2012-04-20 1 views
2

При взгляде на генетические документы программирования мне кажется, что количество тестовых случаев всегда фиксировано. Однако большинство мутаций должно (?) На каждом этапе исполнения быть очень вредным, т.е. е. сделать очевидным после одного теста, что мутированная программа выполняет намного хуже предыдущей. Что произойдет, если вы сначала попробуете очень мало (один?) Тестовый пример и посмотрите, имеет ли смысл мутация?Динамическое число тестовых примеров в генетическом программировании?

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

+0

Что вы подразумеваете под «испытательным чеком»? Вы имеете в виду «фитнес-функцию»? – Kiril

ответ

0

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

0

Я также не уверен, что вы имеете в виду с «тестовым кейсом», но для меня это похоже на то, что вы ищете что-то, что связано с многоцелевой оптимизацией (MOO). Это означает, что вы пытаетесь оптимизировать решение по различным аспектам проблемы - поэтому вам не нужно мутировать/оценивать популяцию для определенного тестового сценария, но найти многоцелевую функцию фитнеса. «Основная идея в MOO - это понятие доминирования Парето» (http://www.gp-field-guide.org.uk)

0

Я думаю, что это хорошая идея в теории, но сложная практика. Я не помню, как раньше использовался этот подход, но я не удивлюсь, если это произойдет.

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

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

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

0

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

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

Есть также различных, но несколько перекрывающихся схемы, например:

  • Dynamic Subset выбор (Chris Gathercole, Питер Росс) является методом выбора небольшого подмножества обучающих данных, установленных на которой фактически выполнить алгоритм ГП;
  • Генетическое программирование на основе сегментов (Nailah Al-Madi, Simone Ludwig) - это метод, который уменьшает время выполнения GP путем разбиения набора данных на сегменты и использования сегментов в процессе оценки пригодности.

PS Также в дочерних программах репродукции Brood Recombination (Tackett) обычно оценивается ограниченное количество тестовых случаев для ускорения кроссовера.