Здравствуйте!
Вопрос есть относительно генетических алгоритмов...
Появилась идея написания некоторого мира в котором живут некоторые организмы, обладающие какими-то характеристиками. Например, они могут ползать по какой-то поверхности, чем-то питаться, умирать и т.п.
На основе генетического алгоритма они скрещиваются...
Вобщем все это задумки... можно продумать основательно мне кажется. Вот только наверняка такое уже есть. Может подскажите где?
30.04.08 13:55: Перенесено модератором из 'О жизни' — Хитрик Денис
Здравствуйте, machine3000, Вы писали:
M>Здравствуйте, Ellin, Вы писали:
M>...
M>Напиши лучше насекомое, которое умеет в темноте ползать по графику РТС Если получится, будешь вместе с Баффетом и Гейтсом в покер играть.
Можно подробнее? Я что-то не врубился.
Здравствуйте, Ellin, Вы писали:
E>Здравствуйте! E>Вопрос есть относительно генетических алгоритмов... E>Появилась идея написания некоторого мира в котором живут некоторые организмы, обладающие какими-то характеристиками. Например, они могут ползать по какой-то поверхности, чем-то питаться, умирать и т.п. E>На основе генетического алгоритма они скрещиваются... E>Вобщем все это задумки... можно продумать основательно мне кажется. Вот только наверняка такое уже есть. Может подскажите где?
Я делал такое. Ну ползают, ну скрещиваются, ну передают свои гены детям, ну едят. И дальше чё? ИИ не появился
Здравствуйте, Ellin, Вы писали:
E>Здравствуйте! E>Вопрос есть относительно генетических алгоритмов... E>Появилась идея написания некоторого мира в котором живут некоторые организмы, обладающие какими-то характеристиками. Например, они могут ползать по какой-то поверхности, чем-то питаться, умирать и т.п. E>На основе генетического алгоритма они скрещиваются... E>Вобщем все это задумки... можно продумать основательно мне кажется. Вот только наверняка такое уже есть. Может подскажите где?
Нечто подобное было -- Terrarium .Net. Клиент-сервеная игра, в которой можно создавать свои кдассы живых существ. Или вы что-то другое придумали?
Здравствуйте, 0K, Вы писали:
0K>Здравствуйте, Ellin, Вы писали:
E>>Здравствуйте! E>>Вопрос есть относительно генетических алгоритмов... E>>Появилась идея написания некоторого мира в котором живут некоторые организмы, обладающие какими-то характеристиками. Например, они могут ползать по какой-то поверхности, чем-то питаться, умирать и т.п. E>>На основе генетического алгоритма они скрещиваются... E>>Вобщем все это задумки... можно продумать основательно мне кажется. Вот только наверняка такое уже есть. Может подскажите где?
0K>Нечто подобное было -- Terrarium .Net. Клиент-сервеная игра, в которой можно создавать свои кдассы живых существ. Или вы что-то другое придумали?
Да... я про это краем уха слышал. Можно где-нить подробнее. ПОчему был?
Здравствуйте, Anpek, Вы писали:
A>Я делал такое. Ну ползают, ну скрещиваются, ну передают свои гены детям, ну едят. И дальше чё? ИИ не появился
Ну... Это типа аквариум. Посмотрю — потом дальше можно развивать.
Как у вас поведение определялось. Они убегали от кого-то? Кто-то догонял? Догоняли и убегали по одному алгоритму?
А что если этот алгоритм будет мутировать? И что если на основе ген. алгоритма будут "строится" алгоритмы?
Здравствуйте, Ellin, Вы писали:
M>>Напиши лучше насекомое, которое умеет в темноте ползать по графику РТС Если получится, будешь вместе с Баффетом и Гейтсом в покер играть. E>Можно подробнее? Я что-то не врубился.
Вот график за последнее время Надо узнать, сколько будет завтра. Ну или через час, или через месяц. Можешь "насекомых" озадачить этим делом. Кто сильнее ошибся, тот и умер.
Здравствуйте, Ellin, Вы писали:
E>Здравствуйте! E>Вопрос есть относительно генетических алгоритмов... E>Появилась идея написания некоторого мира в котором живут некоторые организмы, обладающие какими-то характеристиками. Например, они могут ползать по какой-то поверхности, чем-то питаться, умирать и т.п. E>На основе генетического алгоритма они скрещиваются... E>Вобщем все это задумки... можно продумать основательно мне кажется. Вот только наверняка такое уже есть. Может подскажите где?
Нет тут никаких ГА. Это игра "жизнь". Давно тема раскрыта, обсосана и проработана. Нечего ерундой заниматься. ГА не для этого.
Здравствуйте, machine3000, Вы писали:
M>Здравствуйте, Ellin, Вы писали:
M>>>Напиши лучше насекомое, которое умеет в темноте ползать по графику РТС Если получится, будешь вместе с Баффетом и Гейтсом в покер играть. E>>Можно подробнее? Я что-то не врубился.
M>Вот график за последнее время Надо узнать, сколько будет завтра. Ну или через час, или через месяц. Можешь "насекомых" озадачить этим делом. Кто сильнее ошибся, тот и умер.
Тьфу млин, а я то подумал было! В форекс, батенька, в форекс...
Здравствуйте, Перец, Вы писали:
П>Здравствуйте, Ellin, Вы писали:
E>>Здравствуйте! E>>Вопрос есть относительно генетических алгоритмов... E>>Появилась идея написания некоторого мира в котором живут некоторые организмы, обладающие какими-то характеристиками. Например, они могут ползать по какой-то поверхности, чем-то питаться, умирать и т.п. E>>На основе генетического алгоритма они скрещиваются... E>>Вобщем все это задумки... можно продумать основательно мне кажется. Вот только наверняка такое уже есть. Может подскажите где?
П>Нет тут никаких ГА. Это игра "жизнь". Давно тема раскрыта, обсосана и проработана. Нечего ерундой заниматься. ГА не для этого.
О! Я ж поэтому в форум о жизни и пишу
Ну... ГА для оптимизаци... Почему же не для этого?
Здравствуйте, Ellin, Вы писали:
E>Как у вас поведение определялось. Они убегали от кого-то? Кто-то догонял? Догоняли и убегали по одному алгоритму? E>А что если этот алгоритм будет мутировать? И что если на основе ген. алгоритма будут "строится" алгоритмы?
Ну, я много чё наделал. Во первых, у меня поведение задавалось некоторым скриптом, я определили понятия мутации скрипта, скрещивание двух скриптов.
Во-втрых, у меня было много всяких особей, были хищники и травоядные. У каждой особи был некоторый радиус обзора, некоторые внешние признаки (которые тоже в скрипте шли).
Поведенические фишки тоже задавал много сам. Например, я ввел такую штуку у одного вида — если особь нашла труп своего вида, то она могла определить причину смерти (от голода, от старости, или от нападения), если сметрь была от нападения другой особи, то производилось запоминие какой вид опасен.
Короче навренуть можно мног всего, тока в результате это будут все равно двигающиеся по экрану разноцветные кружки и квадратики.
Хотя, в качестве практикума по программингу — очень не плохое задание
Здравствуйте, Anpek, Вы писали:
A>Ну, я много чё наделал. Во первых, у меня поведение задавалось некоторым скриптом, я определили понятия мутации скрипта, скрещивание двух скриптов. A>Во-втрых, у меня было много всяких особей, были хищники и травоядные. У каждой особи был некоторый радиус обзора, некоторые внешние признаки (которые тоже в скрипте шли). A>Поведенические фишки тоже задавал много сам. Например, я ввел такую штуку у одного вида — если особь нашла труп своего вида, то она могла определить причину смерти (от голода, от старости, или от нападения), если сметрь была от нападения другой особи, то производилось запоминие какой вид опасен. A>Короче навренуть можно мног всего, тока в результате это будут все равно двигающиеся по экрану разноцветные кружки и квадратики. A>Хотя, в качестве практикума по программингу — очень не плохое задание
Вобщем здорово!
Вам нужно статью написать . Было бы интересно почетать... правда может только мне
А на самом деле было бы здорово если бы они как-то сами на основе мутаций определяли из-за чего помер их сородичь(и даже сородичь или просто труп.)... И просмотр как-то тоже сам задовался в результате эволюции... Вот только как это сделать...
А чтоб не скушно было — можно и цвета их менять и размеры. И в зависимости от цвета ведь тоже могут быть для хищников более привлекательные...
Здравствуйте, Ellin, Вы писали:
E>Вобщем здорово! E>Вам нужно статью написать . Было бы интересно почетать... правда может только мне E>А на самом деле было бы здорово если бы они как-то сами на основе мутаций определяли из-за чего помер их сородичь(и даже сородичь или просто труп.)... И просмотр как-то тоже сам задовался в результате эволюции... Вот только как это сделать... E>А чтоб не скушно было — можно и цвета их менять и размеры. И в зависимости от цвета ведь тоже могут быть для хищников более привлекательные...
Я помнится как-то ввел мораль у одного вида — детей врагов не убивать.
Гы-гы
E>Вобщем все это задумки... можно продумать основательно мне кажется.
Ну, делал я когда-то такое на 1-м курсе. Сначала хотел научить эти организмы играть в шахматы. Идея следующая: * каждый организм имеет 4-килобайтную длину, заполненную кодами команд (условные переходы, циклы) и данными. Первоначально заполнение случайное (в пределах правильности команд). * создаются 10 организмов, они играют друг с другом. 8 худших уничтожаются, 2 лучших клонируются по 4 раза с небольшими изменениями алгоритма. Итого получается опять 10 организмов. * первая проблема проявилась в том, что в большинстве случаев партия заканчивалась на 1-2 ходу (организм делал запрещённый ход, например e2e8, и автоматически проигрывал). 4-часовая "эволюция" ни к чему не привела. * поэтому пришлось модифицировать организм, чтобы ходы были хотя бы правильными. Пришлось ввести в организм "ячейки памяти", чтобы запоминать историю ходов (например, было ли движение королём, а значит возможна рокировка или нет?) * теперь партии стали бесконечными т.к. организмы совершали бессмысленные (хотя и удовлетворяющие правилам) ходы и никак не хотели ставить противнику мат. * пришлось написать простейший шахматный анализатор, игравший примерно в силу 3-го разряда (перебор на 3-5 полуходов и немного эвристики на основе анализа слабых полей, сдвоенных пешек и т.п.). Теперь играло 5 организмов и 5 копий анализаторов — подразумевалось, что когда-нибудь организмы достигнут уровня "движков". * но этого не произошло (эволюция длилась ~50 часов), по-видимому потому, что "полезные" эволюционные изменения размывались по всему телу организма и разрушались случайной мутацией. Возможно, также сказывалось органичение на размер организма (4 Кб), но если это ограничение убрать, организм разрастётся и понять его структуру (код) будет не реально. * позднее была поставлена более простая задача — научить организм играть хотя бы в крестики-нолики. Было математически доказано, что такое обучение возможно и 4 Кб кода хватит для правильной работы такого организма. Однако "эволюция" этих организмов к успеху не привела.
Здравствуйте, uuu2, Вы писали:
E>>Вобщем все это задумки... можно продумать основательно мне кажется.
U>Ну, делал я когда-то такое на 1-м курсе. Сначала хотел научить эти организмы играть в шахматы. Идея следующая: U>* каждый организм имеет 4-килобайтную длину, заполненную кодами команд (условные переходы, циклы) и данными. Первоначально заполнение случайное (в пределах правильности команд).
А что за команды? Свои какие-то? Или типа.... машина Тьюринга. Ну я не знаю... как было то?
U>* создаются 10 организмов, они играют друг с другом. 8 худших уничтожаются, 2 лучших клонируются по 4 раза с небольшими изменениями алгоритма. Итого получается опять 10 организмов.
Эх... я б сразу бабахнул 100 организмов. И обязательно подумал бы над скрещиванием.
U>* первая проблема проявилась в том, что в большинстве случаев партия заканчивалась на 1-2 ходу (организм делал запрещённый ход, например e2e8, и автоматически проигрывал). 4-часовая "эволюция" ни к чему не привела.
На пару деньков бы поставил или даже на месяцок (благо сервер есть).
U>* поэтому пришлось модифицировать организм, чтобы ходы были хотя бы правильными. Пришлось ввести в организм "ячейки памяти", чтобы запоминать историю ходов (например, было ли движение королём, а значит возможна рокировка или нет?) U>* теперь партии стали бесконечными т.к. организмы совершали бессмысленные (хотя и удовлетворяющие правилам) ходы и никак не хотели ставить противнику мат. U>* пришлось написать простейший шахматный анализатор, игравший примерно в силу 3-го разряда (перебор на 3-5 полуходов и немного эвристики на основе анализа слабых полей, сдвоенных пешек и т.п.). Теперь играло 5 организмов и 5 копий анализаторов — подразумевалось, что когда-нибудь организмы достигнут уровня "движков". U>* но этого не произошло (эволюция длилась ~50 часов), по-видимому потому, что "полезные" эволюционные изменения размывались по всему телу организма и разрушались случайной мутацией. Возможно, также сказывалось органичение на размер организма (4 Кб), но если это ограничение убрать, организм разрастётся и понять его структуру (код) будет не реально.
А зачем понимать? Главное результат. Играет — хороший организм. Не играет — смерть
E>А что за команды? Свои какие-то? Или типа.... машина Тьюринга. Ну я не знаю... как было то?
Свои — имитация машинного кода. Команда состояла из 17 байт (1 байт команды и четыре 4-байтных числовых параметра).
Команд было немного — типа "IF-THEN-ELSE", "GOTO", "MOV" и т.п. Были "ячейки памяти" для текущей позиции, а также 2 байта для выходного "ответа" (т.е. организм заносил в ходе своей работы какие-то значения в эти 2 байта, и это интерпретировалось как ход).