Согласен с перечисленными вами эффектами, но мне все-таки кажется вывод вы делаете не совсем корректный. Сначала вы пишите
Так как генетические алгоритмы построены на принципах, заметно отличающихся от современного понимания принципов и механизмов эволюции, то и рассказ о биологической эволюции получился не очень корректным.
Но потом вроде как получается, что основная разница в решаемой задаче. Но, согласитесь, это разные вещи. То что один компьютер используется для игры в косынку, в то время как другой — для моделирования свертывания белков, например, не означает ведь автоматически, что у них принципиально отличается архитектура. По-моему ваши замечания все-таки не раскрывают принципиального отличия биологической эволюции и генетических алгоритмов (если последние трактовать расширенно, т.е. не привязываясь к какому-то определенному способу кодирования). Тут лишь речь о том, что конкретные рассмотренные примеры являются лишь упрощенными частными случаями, но потенциально их можно приблизить к биологическому аналогу. Поправьте меня, если я что-то упустил.
. По современному представлению, эволюция работает примерно так. Есть популяция — набор особей, живущих в одном месте и скрещивающихся. Эта популяция является по сути пулом генетической информации, в котором есть множество вариантов одного и того же гена
Ну так в ГА как правило тоже самое. Особи популяции скрещиваются между собой, в результате гены как правило представлены большим числом копий. А если присутствует фактор случайности, то отдельная особь даже с идеальными генами может не оставить потомства. В ГА, как и в природе, популяций может быть несколько и они лишь изредка обмениваются генетическим материалами. Это называется «островная модель».
Например, мутация гена А — условно «смертельна», мутация другого гена Б — «смертельна», а комбинация А и Б — прекрасно жизнеспособна.
Ну в генетическом программировании, например, тоже вполне может быть, что два различных участка программы взаимодействуют нетривиальным образом их синхронное изменение дает совсем не такой эффект как по отдельности.
Изменение условий можно сравнить с изменением целевой (оценочной) функции — однако для реальных задач, решаемых генетическими алгоритмами, такое изменение вряд ли будет полезно :)
Ну тут опять же зависит от задачи. Например, читал что-то про эксперимент, где системе ГП подсовывали сначала какие-то простенькие задачи, а потом уже меняли на более сложные. И результат был лучше, чем если бы сразу давали сложные, т.к. особи в популяциях использовали свои «наработки» в решении более сложной задачи. Или же, допустим, есть задача найти алгоритм поведения в игре. Тогда можно заставить особей играть друг с другом (так, например, сделано у нас в амёбах). Получается что приспособленность зависит от поведения других особей, и они естественно будут меняться со временем.
эволюции ничего не надо, просто есть вектора изменчивости и вектора отбора, которые могут сами меняться и при этом они куда-то тащат сложную систему.
Ну генетическому алгоритму тоже вообще-то ничего не надо, просто есть процедура отбора, которая куда-то тащит систему. Это создателю алгоритма может быть что-то надо от алгоритма :) И то не факт, что он получит именно то, что хотел.
Однако отсутствие этих сложностей в генетических алгоритмах не позволяет назвать их хорошими моделями для биологической эволюции.
Тут опять же смотря что мы подразумеваем под «хорошей моделью». Если в смысле точности воспроизведения всех нюансов, то конечно. Ну а если речь идет о простоте и наглядности, то вполне себе вариант.
опущен самый важный акцент СТЭ — единицей эволюции является популяция, а не особь (возможно, потому что в генетических алгоритмах эволюционируют именно особи — что является еще одной иллюстрацией того, что генетические алгоритмы весьма далеки от механизмов реальной биологической эволюции)
Не могли бы вы, как биолог, подробнее развить данную мысль? А то не понятно, то ли тут действительно кроется что-то существенное, то ли это просто спор о терминологии. Вроде как эволюция популяции и эволюция особей это связанные вещи, почему их надо противопоставлять? Возможно вы имеете ввиду, что в ГА обычно не учитываются рецессивные гены, ну так это нюансы по-моему. Вообще существует тезис (не помню кто первый выдвинул), что для эволюции необходимы три вещи — наследственность, изменчивость, отбор. Если в системе это как-то реализовано, есть шанс наблюдать в ней эволюцию (успех зависит от того как именно реализовано, но это уже детали). Система не обязательно должна быть биологическая, например, Докинз популяризовал теорию об эволюции мемов. ГА просто использует те же принципы для виртуальных объектов.
Так как генетические алгоритмы построены на принципах, заметно отличающихся от современного понимания принципов и механизмов эволюции, то и рассказ о биологической эволюции получился не очень корректным.
Опять же можно подробнее указать, в чем на ваш взгляд основное отличие, и почему оно принципиально?
Многие, наверное слышали про эксперимент Милгрэма. (суть в том, что испытуемые под давлением авторитета руководителей продолжают пытать человека, хотя и понимают, что причиняют ему боль). Автор сначала предполагал, что это характерно для немцев, однако в процессе выяснилось, что это справедливо и для жителей США. Из чего был сделан вывод, что результат не зависит от национальности. Но интересно, ставились ли подобные эксперименты на «русских»
Надо чтобы была возможность создавать матчи только для «бегунков», чтобы все были в равных условиях. Думаю с развитием рынка появятся игры, специально приспособленные для таких устройств.
Думаю, аналогия с материальными предметами все же уместна, но только другого рода. Возьмем, например, мост. Если пренебречь его шириной и износом, можно считать, что тот факт, что Петя воспользуется мостом для пересечения реки никак не мешает Васи сделать тоже самое. Однако вполне естественно, что строитель моста хотел бы получить компенсацию за свои затраты. Но я это говорю не в защиту вечного копирайта, а наоборот к тому что вечная рента от материальных объектов тоже не справедлива.
Какие могут быть решения в примере с мостом? Например, стройка может финансироваться государством, а потом мост переходит в общее пользование. Или, бывает, за проезд взымается плата, но только в течении определенного времени, пока не окупятся затраты на постройку.
На самом деле почему-то все не учитывают еще такой важный фактор: доход от произведения получается не только (и, к сожалению, часто не столько!) благодаря качеству произведения, а благодаря его пиару. Именно поэтому авторы соглашаются работать с издателями, самостоятельно им пропиарить свое произведение бывает сложно. Однако если в краткосрочном периоде еще можно считать, что рост популярности обеспечен усилиями издателя, то в долгосрочной перспективе популярность произведений обеспечена скорее его «вращением в обществе», т.е. если его обсуждают, на него ссылаются и т.п. Если говорить в терминологии статьи, то это как будто вы сдаете дом, а потом хотите, чтобы другие дома, построенные вашими квартирантами тоже принадлежали вам.
Мне кажется, что максимального улучшения геймплея шахмат при минимальном изменении правил можно добиться, введя синхронные ходы вместо последовательных. Т.е. игроки сначала задумывают свои ходы, а затем их выполняют одновременно (как в игре «камень — ножницы — бумага»). Это сделает традиционные методы, вроде альфа-бета процедуры неприменимыми.
Очень полезная программа!
Но, к сожалению, у меня возникло 2 проблемы:
1. Программы противников работают неадекватно. Т.е. я, например, запускаю один и тот же файл как своего бота и как противника. При этом в качестве своего он работает нормально, а в качестве противника все время сваливается или вылетает по таймауту.
2. Не пишутся файлы, куда я сохраняю отладочную информацию.
Интересно все-таки, что конкретно полезного вам посоветовали, кроме как искать инвестиции в СНГ? Если бы вы приехали, например, в Москву, а вам советуют — «ищите инвесторов в Молдавии» — это бы вы сочли успехом? Ну то есть вы молодцы конечно, что развиваете проект, только не понимаю, что вам так далась эта долина, если вы ориентируетесь на рынок СНГ?
Но потом вроде как получается, что основная разница в решаемой задаче. Но, согласитесь, это разные вещи. То что один компьютер используется для игры в косынку, в то время как другой — для моделирования свертывания белков, например, не означает ведь автоматически, что у них принципиально отличается архитектура. По-моему ваши замечания все-таки не раскрывают принципиального отличия биологической эволюции и генетических алгоритмов (если последние трактовать расширенно, т.е. не привязываясь к какому-то определенному способу кодирования). Тут лишь речь о том, что конкретные рассмотренные примеры являются лишь упрощенными частными случаями, но потенциально их можно приблизить к биологическому аналогу. Поправьте меня, если я что-то упустил.
Ну так в ГА как правило тоже самое. Особи популяции скрещиваются между собой, в результате гены как правило представлены большим числом копий. А если присутствует фактор случайности, то отдельная особь даже с идеальными генами может не оставить потомства. В ГА, как и в природе, популяций может быть несколько и они лишь изредка обмениваются генетическим материалами. Это называется «островная модель».
Ну в генетическом программировании, например, тоже вполне может быть, что два различных участка программы взаимодействуют нетривиальным образом их синхронное изменение дает совсем не такой эффект как по отдельности.
Ну тут опять же зависит от задачи. Например, читал что-то про эксперимент, где системе ГП подсовывали сначала какие-то простенькие задачи, а потом уже меняли на более сложные. И результат был лучше, чем если бы сразу давали сложные, т.к. особи в популяциях использовали свои «наработки» в решении более сложной задачи. Или же, допустим, есть задача найти алгоритм поведения в игре. Тогда можно заставить особей играть друг с другом (так, например, сделано у нас в амёбах). Получается что приспособленность зависит от поведения других особей, и они естественно будут меняться со временем.
Ну генетическому алгоритму тоже вообще-то ничего не надо, просто есть процедура отбора, которая куда-то тащит систему. Это создателю алгоритма может быть что-то надо от алгоритма :) И то не факт, что он получит именно то, что хотел.
Тут опять же смотря что мы подразумеваем под «хорошей моделью». Если в смысле точности воспроизведения всех нюансов, то конечно. Ну а если речь идет о простоте и наглядности, то вполне себе вариант.
Не могли бы вы, как биолог, подробнее развить данную мысль? А то не понятно, то ли тут действительно кроется что-то существенное, то ли это просто спор о терминологии. Вроде как эволюция популяции и эволюция особей это связанные вещи, почему их надо противопоставлять? Возможно вы имеете ввиду, что в ГА обычно не учитываются рецессивные гены, ну так это нюансы по-моему. Вообще существует тезис (не помню кто первый выдвинул), что для эволюции необходимы три вещи — наследственность, изменчивость, отбор. Если в системе это как-то реализовано, есть шанс наблюдать в ней эволюцию (успех зависит от того как именно реализовано, но это уже детали). Система не обязательно должна быть биологическая, например, Докинз популяризовал теорию об эволюции мемов. ГА просто использует те же принципы для виртуальных объектов.
Опять же можно подробнее указать, в чем на ваш взгляд основное отличие, и почему оно принципиально?
Какие могут быть решения в примере с мостом? Например, стройка может финансироваться государством, а потом мост переходит в общее пользование. Или, бывает, за проезд взымается плата, но только в течении определенного времени, пока не окупятся затраты на постройку.
Но, к сожалению, у меня возникло 2 проблемы:
1. Программы противников работают неадекватно. Т.е. я, например, запускаю один и тот же файл как своего бота и как противника. При этом в качестве своего он работает нормально, а в качестве противника все время сваливается или вылетает по таймауту.
2. Не пишутся файлы, куда я сохраняю отладочную информацию.