Re[7]: Генетические алгоритмы
От: ora Россия  
Дата: 24.04.08 17:30
Оценка: 1 (1) +2 :))) :))
Здравствуйте, Amon-RA, Вы писали:

AR>Здравствуйте, Amon-RA, Вы писали:


AR>>Быстро этот вид исчез


AR>Я тоже баловался таким же


Твое насекомое, пишущее в рсдн, глючит, оно само с собой разговаривает.
Re[7]: Генетические алгоритмы
От: pvirk Россия  
Дата: 21.04.08 11:07
Оценка: 12 (1) :))) :)
Здравствуйте, Amon-RA, Вы писали:

AR>Здравствуйте, Amon-RA, Вы писали:


AR>>Быстро этот вид исчез


AR>Я тоже баловался таким же


Самому себе отвечать — это зашибись!
Re[5]: Генетические алгоритмы
От: Amon-RA  
Дата: 21.04.08 09:30
Оценка: :)))
Здравствуйте, Ellin, Вы писали:

E>Вобщем здорово!

E>Вам нужно статью написать . Было бы интересно почетать... правда может только мне
E>А на самом деле было бы здорово если бы они как-то сами на основе мутаций определяли из-за чего помер их сородичь(и даже сородичь или просто труп.)... И просмотр как-то тоже сам задовался в результате эволюции... Вот только как это сделать...
E>А чтоб не скушно было — можно и цвета их менять и размеры. И в зависимости от цвета ведь тоже могут быть для хищников более привлекательные...

Я помнится как-то ввел мораль у одного вида — детей врагов не убивать.
Гы-гы

Быстро этот вид исчез
Re: Генетические алгоритмы
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 21.04.08 12:06
Оценка: 4 (2)
Здравствуйте, Ellin, Вы писали:

E>Появилась идея написания некоторого мира в котором живут некоторые организмы, обладающие какими-то характеристиками. Например, они могут ползать по какой-то поверхности, чем-то питаться, умирать и т.п.

E>На основе генетического алгоритма они скрещиваются...
E>Вобщем все это задумки... можно продумать основательно мне кажется. Вот только наверняка такое уже есть. Может подскажите где?

Уже сделано и с приятной графикой:
http://necrobones.com/bugfest/
Наблюдать довольно интересно.
Re: Генетические алгоритмы
От: uuu2  
Дата: 21.04.08 10:02
Оценка: 2 (2)
E>Вобщем все это задумки... можно продумать основательно мне кажется.

Ну, делал я когда-то такое на 1-м курсе. Сначала хотел научить эти организмы играть в шахматы. Идея следующая:
* каждый организм имеет 4-килобайтную длину, заполненную кодами команд (условные переходы, циклы) и данными. Первоначально заполнение случайное (в пределах правильности команд).
* создаются 10 организмов, они играют друг с другом. 8 худших уничтожаются, 2 лучших клонируются по 4 раза с небольшими изменениями алгоритма. Итого получается опять 10 организмов.
* первая проблема проявилась в том, что в большинстве случаев партия заканчивалась на 1-2 ходу (организм делал запрещённый ход, например e2e8, и автоматически проигрывал). 4-часовая "эволюция" ни к чему не привела.
* поэтому пришлось модифицировать организм, чтобы ходы были хотя бы правильными. Пришлось ввести в организм "ячейки памяти", чтобы запоминать историю ходов (например, было ли движение королём, а значит возможна рокировка или нет?)
* теперь партии стали бесконечными т.к. организмы совершали бессмысленные (хотя и удовлетворяющие правилам) ходы и никак не хотели ставить противнику мат.
* пришлось написать простейший шахматный анализатор, игравший примерно в силу 3-го разряда (перебор на 3-5 полуходов и немного эвристики на основе анализа слабых полей, сдвоенных пешек и т.п.). Теперь играло 5 организмов и 5 копий анализаторов — подразумевалось, что когда-нибудь организмы достигнут уровня "движков".
* но этого не произошло (эволюция длилась ~50 часов), по-видимому потому, что "полезные" эволюционные изменения размывались по всему телу организма и разрушались случайной мутацией. Возможно, также сказывалось органичение на размер организма (4 Кб), но если это ограничение убрать, организм разрастётся и понять его структуру (код) будет не реально.
* позднее была поставлена более простая задача — научить организм играть хотя бы в крестики-нолики. Было математически доказано, что такое обучение возможно и 4 Кб кода хватит для правильной работы такого организма. Однако "эволюция" этих организмов к успеху не привела.
Re[6]: Генетические алгоритмы
От: Amon-RA  
Дата: 21.04.08 09:31
Оценка: :))
Здравствуйте, Amon-RA, Вы писали:

AR>Быстро этот вид исчез


Я тоже баловался таким же
Re: Генетические алгоритмы
От: ridli  
Дата: 15.05.08 12:24
Оценка: -1 :)
E>Вот только наверняка такое уже есть. Может подскажите где?

нагуглите tierra
... << RSDN@Home 1.2.0 alpha 4 rev. 1088>>
Re: Генетические алгоритмы
От: Cyberax Марс  
Дата: 21.04.08 20:03
Оценка: 2 (1)
Здравствуйте, Ellin, Вы писали:

E>Вобщем все это задумки... можно продумать основательно мне кажется. Вот только наверняка такое уже есть. Может подскажите где?

Естественно. Тысячи работ, не меньше.

Можно начать отсюда: http://www.talkorigins.org/faqs/genalg/genalg.html
Sapienti sat!
Re[3]: Генетические алгоритмы
От: machine3000  
Дата: 21.04.08 09:07
Оценка: :)
Здравствуйте, Ellin, Вы писали:

M>>Напиши лучше насекомое, которое умеет в темноте ползать по графику РТС Если получится, будешь вместе с Баффетом и Гейтсом в покер играть.

E>Можно подробнее? Я что-то не врубился.

Вот график за последнее время Надо узнать, сколько будет завтра. Ну или через час, или через месяц. Можешь "насекомых" озадачить этим делом. Кто сильнее ошибся, тот и умер.
Re[2]: Генетические алгоритмы
От: Кодёнок  
Дата: 21.04.08 11:26
Оценка: +1
Здравствуйте, Anpek, Вы писали:

A>Я делал такое. Ну ползают, ну скрещиваются, ну передают свои гены детям, ну едят. И дальше чё? ИИ не появился


Причем тут ИИ? ГА это метод оптимизации. Правильное применение генетического алгоритма приводит к подбору удачного сочетания параметров (генов), удовлетворяющих условиям отбора, только и всего. Превзойти условие отбора (да еще так, чтобы создателю понравилось ) генетика в принципе не может.

uuu2: Чтобы ГА сделал вам ИИ, надо сформулировать такую функцию y = f(X), которая как можно более монотонно себя ведет при изменении каждого из параметров. Если параметры это команды процессора, то изменение одной полностью ломает всю программу, функция получается практически рандомным шумом. Это наихудшие условия для любого метода оптимизации. Вряд ли существует метод оптимизации, который может справиться с функцией такого вида

         ***
  ***    * *
*** ****** ********


Любые попытки будут не более чем случайными выстрелами в надежде однажды попасть, ГА тут ничего не даёт. Перебор будет быстрее.
Re[3]: Генетические алгоритмы
От: prVovik Россия  
Дата: 21.04.08 11:31
Оценка: :)
Здравствуйте, Кодёнок, Вы писали:

Кё>Любые попытки будут не более чем случайными выстрелами в надежде однажды попасть, ГА тут ничего не даёт. Перебор будет быстрее.


Как это ничего не дает? А романтика?
лэт ми спик фром май харт
Re[4]: Генетические алгоритмы
От: Кодёнок  
Дата: 21.04.08 11:31
Оценка: +1
Здравствуйте, uuu2, Вы писали:

E>>А что за команды? Свои какие-то? Или типа.... машина Тьюринга. Ну я не знаю... как было то?


U>Свои — имитация машинного кода. Команда состояла из 17 байт (1 байт команды и четыре 4-байтных числовых параметра).

U>Команд было немного — типа "IF-THEN-ELSE", "GOTO", "MOV" и т.п. Были "ячейки памяти" для текущей позиции, а также 2 байта для выходного "ответа" (т.е. организм заносил в ходе своей работы какие-то значения в эти 2 байта, и это интерпретировалось как ход).

А каков был метод скрещивания?
Re[2]: Статистическое программирование? :)
От: prVovik Россия  
Дата: 22.04.08 08:12
Оценка: :)
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, Ellin, Вы писали:


E>>Вобщем все это задумки... можно продумать основательно мне кажется. Вот только наверняка такое уже есть. Может подскажите где?

E>В целом я впечатлён идеей, что тысяча обезьян таки сможет написать "каису"

Да мне много не надо. Достаточно обучить программу писать работающие программы по ТЗ
лэт ми спик фром май харт
Re[4]: Генетические алгоритмы
От: Vamp Россия  
Дата: 05.05.08 20:18
Оценка: :)
M>Вот график за последнее время Надо узнать, сколько будет завтра. Ну или через час, или через месяц. Можешь "насекомых" озадачить этим делом. Кто сильнее ошибся, тот и умер.

Все перемрут.
Да здравствует мыло душистое и веревка пушистая.
Генетические алгоритмы
От: Ellin Россия www.rsdn.ru
Дата: 21.04.08 08:34
Оценка:
Здравствуйте!
Вопрос есть относительно генетических алгоритмов...
Появилась идея написания некоторого мира в котором живут некоторые организмы, обладающие какими-то характеристиками. Например, они могут ползать по какой-то поверхности, чем-то питаться, умирать и т.п.
На основе генетического алгоритма они скрещиваются...
Вобщем все это задумки... можно продумать основательно мне кажется. Вот только наверняка такое уже есть. Может подскажите где?

30.04.08 13:55: Перенесено модератором из 'О жизни' — Хитрик Денис
Re: Генетические алгоритмы
От: machine3000  
Дата: 21.04.08 08:48
Оценка:
Здравствуйте, Ellin, Вы писали:

...

Напиши лучше насекомое, которое умеет в темноте ползать по графику РТС Если получится, будешь вместе с Баффетом и Гейтсом в покер играть.
Re[2]: Генетические алгоритмы
От: Ellin Россия www.rsdn.ru
Дата: 21.04.08 08:55
Оценка:
Здравствуйте, machine3000, Вы писали:

M>Здравствуйте, Ellin, Вы писали:


M>...


M>Напиши лучше насекомое, которое умеет в темноте ползать по графику РТС Если получится, будешь вместе с Баффетом и Гейтсом в покер играть.

Можно подробнее? Я что-то не врубился.
Re: Генетические алгоритмы
От: Anpek  
Дата: 21.04.08 09:01
Оценка:
Здравствуйте, Ellin, Вы писали:

E>Здравствуйте!

E>Вопрос есть относительно генетических алгоритмов...
E>Появилась идея написания некоторого мира в котором живут некоторые организмы, обладающие какими-то характеристиками. Например, они могут ползать по какой-то поверхности, чем-то питаться, умирать и т.п.
E>На основе генетического алгоритма они скрещиваются...
E>Вобщем все это задумки... можно продумать основательно мне кажется. Вот только наверняка такое уже есть. Может подскажите где?

Я делал такое. Ну ползают, ну скрещиваются, ну передают свои гены детям, ну едят. И дальше чё? ИИ не появился
Re: Генетические алгоритмы
От: 0K Ниоткуда  
Дата: 21.04.08 09:02
Оценка:
Здравствуйте, Ellin, Вы писали:

E>Здравствуйте!

E>Вопрос есть относительно генетических алгоритмов...
E>Появилась идея написания некоторого мира в котором живут некоторые организмы, обладающие какими-то характеристиками. Например, они могут ползать по какой-то поверхности, чем-то питаться, умирать и т.п.
E>На основе генетического алгоритма они скрещиваются...
E>Вобщем все это задумки... можно продумать основательно мне кажется. Вот только наверняка такое уже есть. Может подскажите где?

Нечто подобное было -- Terrarium .Net. Клиент-сервеная игра, в которой можно создавать свои кдассы живых существ. Или вы что-то другое придумали?
=сначала спроси у GPT=
Re[2]: Генетические алгоритмы
От: Ellin Россия www.rsdn.ru
Дата: 21.04.08 09:04
Оценка:
Здравствуйте, 0K, Вы писали:

0K>Здравствуйте, Ellin, Вы писали:


E>>Здравствуйте!

E>>Вопрос есть относительно генетических алгоритмов...
E>>Появилась идея написания некоторого мира в котором живут некоторые организмы, обладающие какими-то характеристиками. Например, они могут ползать по какой-то поверхности, чем-то питаться, умирать и т.п.
E>>На основе генетического алгоритма они скрещиваются...
E>>Вобщем все это задумки... можно продумать основательно мне кажется. Вот только наверняка такое уже есть. Может подскажите где?

0K>Нечто подобное было -- Terrarium .Net. Клиент-сервеная игра, в которой можно создавать свои кдассы живых существ. Или вы что-то другое придумали?


Да... я про это краем уха слышал. Можно где-нить подробнее. ПОчему был?
Re[2]: Генетические алгоритмы
От: Ellin Россия www.rsdn.ru
Дата: 21.04.08 09:06
Оценка:
Здравствуйте, Anpek, Вы писали:

A>Я делал такое. Ну ползают, ну скрещиваются, ну передают свои гены детям, ну едят. И дальше чё? ИИ не появился


Ну... Это типа аквариум. Посмотрю — потом дальше можно развивать.

Как у вас поведение определялось. Они убегали от кого-то? Кто-то догонял? Догоняли и убегали по одному алгоритму?
А что если этот алгоритм будет мутировать? И что если на основе ген. алгоритма будут "строится" алгоритмы?
Re: Генетические алгоритмы
От: Перец  
Дата: 21.04.08 09:07
Оценка:
Здравствуйте, Ellin, Вы писали:

E>Здравствуйте!

E>Вопрос есть относительно генетических алгоритмов...
E>Появилась идея написания некоторого мира в котором живут некоторые организмы, обладающие какими-то характеристиками. Например, они могут ползать по какой-то поверхности, чем-то питаться, умирать и т.п.
E>На основе генетического алгоритма они скрещиваются...
E>Вобщем все это задумки... можно продумать основательно мне кажется. Вот только наверняка такое уже есть. Может подскажите где?

Нет тут никаких ГА. Это игра "жизнь". Давно тема раскрыта, обсосана и проработана. Нечего ерундой заниматься. ГА не для этого.
Re[4]: Генетические алгоритмы
От: Ellin Россия www.rsdn.ru
Дата: 21.04.08 09:08
Оценка:
Здравствуйте, machine3000, Вы писали:

M>Здравствуйте, Ellin, Вы писали:


M>>>Напиши лучше насекомое, которое умеет в темноте ползать по графику РТС Если получится, будешь вместе с Баффетом и Гейтсом в покер играть.

E>>Можно подробнее? Я что-то не врубился.

M>Вот график за последнее время Надо узнать, сколько будет завтра. Ну или через час, или через месяц. Можешь "насекомых" озадачить этим делом. Кто сильнее ошибся, тот и умер.

Тьфу млин, а я то подумал было! В форекс, батенька, в форекс...
Re[2]: Генетические алгоритмы
От: Ellin Россия www.rsdn.ru
Дата: 21.04.08 09:09
Оценка:
Здравствуйте, Перец, Вы писали:

П>Здравствуйте, Ellin, Вы писали:


E>>Здравствуйте!

E>>Вопрос есть относительно генетических алгоритмов...
E>>Появилась идея написания некоторого мира в котором живут некоторые организмы, обладающие какими-то характеристиками. Например, они могут ползать по какой-то поверхности, чем-то питаться, умирать и т.п.
E>>На основе генетического алгоритма они скрещиваются...
E>>Вобщем все это задумки... можно продумать основательно мне кажется. Вот только наверняка такое уже есть. Может подскажите где?

П>Нет тут никаких ГА. Это игра "жизнь". Давно тема раскрыта, обсосана и проработана. Нечего ерундой заниматься. ГА не для этого.

О! Я ж поэтому в форум о жизни и пишу
Ну... ГА для оптимизаци... Почему же не для этого?
Re[3]: Генетические алгоритмы
От: Anpek  
Дата: 21.04.08 09:17
Оценка:
Здравствуйте, Ellin, Вы писали:

E>Как у вас поведение определялось. Они убегали от кого-то? Кто-то догонял? Догоняли и убегали по одному алгоритму?

E>А что если этот алгоритм будет мутировать? И что если на основе ген. алгоритма будут "строится" алгоритмы?

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

Поведенические фишки тоже задавал много сам. Например, я ввел такую штуку у одного вида — если особь нашла труп своего вида, то она могла определить причину смерти (от голода, от старости, или от нападения), если сметрь была от нападения другой особи, то производилось запоминие какой вид опасен.

Короче навренуть можно мног всего, тока в результате это будут все равно двигающиеся по экрану разноцветные кружки и квадратики.

Хотя, в качестве практикума по программингу — очень не плохое задание
Re[4]: Генетические алгоритмы
От: Ellin Россия www.rsdn.ru
Дата: 21.04.08 09:26
Оценка:
Здравствуйте, Anpek, Вы писали:

A>Ну, я много чё наделал. Во первых, у меня поведение задавалось некоторым скриптом, я определили понятия мутации скрипта, скрещивание двух скриптов.

A>Во-втрых, у меня было много всяких особей, были хищники и травоядные. У каждой особи был некоторый радиус обзора, некоторые внешние признаки (которые тоже в скрипте шли).
A>Поведенические фишки тоже задавал много сам. Например, я ввел такую штуку у одного вида — если особь нашла труп своего вида, то она могла определить причину смерти (от голода, от старости, или от нападения), если сметрь была от нападения другой особи, то производилось запоминие какой вид опасен.
A>Короче навренуть можно мног всего, тока в результате это будут все равно двигающиеся по экрану разноцветные кружки и квадратики.
A>Хотя, в качестве практикума по программингу — очень не плохое задание

Вобщем здорово!
Вам нужно статью написать . Было бы интересно почетать... правда может только мне
А на самом деле было бы здорово если бы они как-то сами на основе мутаций определяли из-за чего помер их сородичь(и даже сородичь или просто труп.)... И просмотр как-то тоже сам задовался в результате эволюции... Вот только как это сделать...
А чтоб не скушно было — можно и цвета их менять и размеры. И в зависимости от цвета ведь тоже могут быть для хищников более привлекательные...
Re[2]: Генетические алгоритмы
От: Ellin Россия www.rsdn.ru
Дата: 21.04.08 10:39
Оценка:
Здравствуйте, 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 Кб), но если это ограничение убрать, организм разрастётся и понять его структуру (код) будет не реально.
А зачем понимать? Главное результат. Играет — хороший организм. Не играет — смерть
Re[3]: Генетические алгоритмы
От: uuu2  
Дата: 21.04.08 11:05
Оценка:
E>А что за команды? Свои какие-то? Или типа.... машина Тьюринга. Ну я не знаю... как было то?

Свои — имитация машинного кода. Команда состояла из 17 байт (1 байт команды и четыре 4-байтных числовых параметра).
Команд было немного — типа "IF-THEN-ELSE", "GOTO", "MOV" и т.п. Были "ячейки памяти" для текущей позиции, а также 2 байта для выходного "ответа" (т.е. организм заносил в ходе своей работы какие-то значения в эти 2 байта, и это интерпретировалось как ход).
Re[8]: Генетические алгоритмы
От: Ellin Россия www.rsdn.ru
Дата: 21.04.08 11:23
Оценка:
Здравствуйте, pvirk, Вы писали:

P> Самому себе отвечать — это зашибись!



Точно, глядика а я сразу и не понял. Человек ответил, потом смотрит кто-то новое сообщение добавил и ответил на него Так сам с собой и разговаривает.
Re[3]: Генетические алгоритмы
От: Ellin Россия www.rsdn.ru
Дата: 21.04.08 11:32
Оценка:
Здравствуйте, Кодёнок, Вы писали:

Кё>
Кё>         ***
Кё>  ***    * *
Кё>*** ****** ********
Кё>


Кё>Любые попытки будут не более чем случайными выстрелами в надежде однажды попасть, ГА тут ничего не даёт. Перебор будет быстрее.


Почему же? Вот если бы у uuu2 была реализована операция скрещивания, то эффективнее простого перебора.
Re[5]: Генетические алгоритмы
От: Ellin Россия www.rsdn.ru
Дата: 21.04.08 11:35
Оценка:
Здравствуйте, Кодёнок, Вы писали:

Кё>А каков был метод скрещивания?


Насколько я понял его не было => это был своего рода алгоритм простого перебора.
Re[4]: Генетические алгоритмы
От: prVovik Россия  
Дата: 21.04.08 11:40
Оценка:
Здравствуйте, Ellin, Вы писали:

E>Вот если бы у uuu2 была реализована операция скрещивания...


Всего то ничего...
Напоминает сказку про кашу из топора. ГА — это топор, "операция скрещивания" — это всякие вспомогательные ингредиенты
лэт ми спик фром май харт
Re: Генетические алгоритмы
От: nen777w  
Дата: 21.04.08 12:07
Оценка:
Тему интересную вы подняли. Да еще и в таком свете.
Давно хотел с ГА разобраться.
Накидайте мни пожалуйста ссылок на тему "что такое ГА" с примерами было бы вообще великолепно.
Спасибо.
Re[2]: Генетические алгоритмы
От: Ellin Россия www.rsdn.ru
Дата: 21.04.08 12:11
Оценка:
Здравствуйте, nen777w, Вы писали:

N>Тему интересную вы подняли. Да еще и в таком свете.

N>Давно хотел с ГА разобраться.
N>Накидайте мни пожалуйста ссылок на тему "что такое ГА" с примерами было бы вообще великолепно.
N>Спасибо.
Просто с ген. алгоритмом плотно столкнулся и разобрался летом 2006... пришлось... там решалась одна задача на его основе. Все лето ушло... но там сильно много специфики... зато видимо хорошо разобрался...
А так я сейчас посмотрел... может в википедии вам подсказать? Даже и не знаю где хорошие источники найти, что ни найду — все какое-то ... в молоко...
Предлагаю в википедию сходить для начала.
Re[5]: Генетические алгоритмы
От: uuu2  
Дата: 21.04.08 12:14
Оценка:
Кё>А каков был метод скрещивания?

Скрещивания не было, было клонирование. Т.е. 2 "победителя" дублировали сами себя по 4 раза, а потом в "клоны" добавлялась небольшая (порядка 20 байт) случайная мутация. 8 "проигравших" (самых плохих игроков) уничтожались.
Re[3]: Генетические алгоритмы
От: uuu2  
Дата: 21.04.08 13:10
Оценка:
Кё>uuu2: Чтобы ГА сделал вам ИИ, надо сформулировать такую функцию y = f(X), которая как можно более монотонно себя ведет при изменении каждого из параметров. Если параметры это команды процессора, то изменение одной полностью ломает всю программу, функция получается практически рандомным шумом.

Монотонной функции тут явно не будет — алгоритм слишком сложный. И вообще, любой код состоит из команд процессора, как же ещё будет работать шахматная программа, без команд-то?

А для того, чтобы было меньше "шума", я и хотел "улучшать" организмы постепенно. Т.е. сначала они играют с простеньким "детским" движком, специально совершающим ошибки. Потом, он играет с противником на уровне 3-го разряда, и улучшает свой уровень. И так, постепенно, учится принимать правильные решения.
Re[4]: Генетические алгоритмы
От: machine3000  
Дата: 21.04.08 13:33
Оценка:
Здравствуйте, uuu2, Вы писали:


Кё>>uuu2: Чтобы ГА сделал вам ИИ, надо сформулировать такую функцию y = f(X), которая как можно более монотонно себя ведет при изменении каждого из параметров. Если параметры это команды процессора, то изменение одной полностью ломает всю программу, функция получается практически рандомным шумом.


U>Монотонной функции тут явно не будет — алгоритм слишком сложный. И вообще, любой код состоит из команд процессора, как же ещё будет работать шахматная программа, без команд-то?


В простейшем случае программа просто выбирает из всех ход, приводящий к наилучшей позиции. Оценка позиции производится путём домножения на веса и суммирования различных показателей. Собственно, эту функцию и имеет смысл подбирать генетическим алгоритмом.
Более продвинутая версия должна выбирать ход, приводящий к наилучшей позиции через серию ходов. Для оценки того, как долго просчитывать каждую ветвь используется другая функция, определяющая насколько позиция устойчива. Её тоже можно подбирать ГА. Ну а всё остальное надо просто тупо захардкодить.
Re[5]: Генетические алгоритмы
От: uuu2  
Дата: 21.04.08 13:44
Оценка:
M>В простейшем случае программа просто выбирает из всех ход, приводящий к наилучшей позиции.

Что значит "к наилучшей позиции"? Если я сдам своего ферзя — это хорошая позиция или нет? А если в результате сдачи фигуры я поставлю мат через 5 ходов?

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


Тогда мне придётся самому придумывать показатели, а генетический алгоритм (ГА) только манипулирует весами. Это уже не ИИ! Я хочу чтобы ГА сам сформировал показатели и веса, чтобы он мог в ходе эволюции добавлять новые показатели, избавляться от ненужных и т.п.
Re[6]: Генетические алгоритмы
От: prVovik Россия  
Дата: 21.04.08 13:55
Оценка:
Здравствуйте, uuu2, Вы писали:


U>Тогда мне придётся самому придумывать показатели, а генетический алгоритм (ГА) только манипулирует весами. Это уже не ИИ! Я хочу чтобы ГА сам сформировал показатели и веса, чтобы он мог в ходе эволюции добавлять новые показатели, избавляться от ненужных и т.п.


Так, стоп. ГА, несмотря на свое громкое название, — это всего лишь один из методов оптимизации, то есть это алгоритм поиска набора параметров некоторой функции, на которых эта функция достигает оптимума. Не более того. Соответственно, чтобы применить ГА надо свести задачу к функции f(X1, X2, ..., Xn)
лэт ми спик фром май харт
Re[6]: Генетические алгоритмы
От: machine3000  
Дата: 21.04.08 14:05
Оценка:
Здравствуйте, uuu2, Вы писали:

U>Тогда мне придётся самому придумывать показатели, а генетический алгоритм (ГА) только манипулирует весами. Это уже не ИИ! Я хочу чтобы ГА сам сформировал показатели и веса, чтобы он мог в ходе эволюции добавлять новые показатели, избавляться от ненужных и т.п.


Ну когда мощность компьютеров порядков на 40 выростет, может у тебя чего-нибудь и получится. Хотя нет, чтоб получилось, механизм мутаций также должен быть подвержен мутациям. А такие мутации, как ты описал, любой механизм сразу выводят из строя.
Re[7]: Генетические алгоритмы
От: uuu2  
Дата: 21.04.08 15:53
Оценка:
V>Так, стоп. ГА, несмотря на свое громкое название, — это всего лишь один из методов оптимизации

Это вопрос терминологии. Ну, назовём это не "генетическим", а "эволюционно-интеллектуальным" алгоритмом. Смысл в том, что создается "живой" организм, который выполняет некую задачу, идеальный алгоритм решения которой не известен, постепенно обучается и проходи "искусственный отбор" по критерию успешности решения задачи.
Re[8]: Генетические алгоритмы
От: prVovik Россия  
Дата: 21.04.08 17:15
Оценка:
Здравствуйте, uuu2, Вы писали:

U>Это вопрос терминологии. Ну, назовём это не "генетическим", а "эволюционно-интеллектуальным" алгоритмом. Смысл в том, что создается "живой" организм, который выполняет некую задачу, идеальный алгоритм решения которой не известен, постепенно обучается и проходи "искусственный отбор" по критерию успешности решения задачи.


Чем это отличается от простого полного перебора всех возможных комбинаций элементов живых организмов? Только скоростью. И то не факт. ГА (эволюционный) может работать быстрее только при выполнении ряда условий. Одним из таких условий является то, что "яблоко от яблони должно недалеко падать". Другими словами, функция эффективности должна быть гладкой. То есть f(x) — f(x + delta) должно стремиться к нулю, если delta стремиться к нулю. Потомок должен быть почти таким же, как его родители. Отсюда следует, что ГА не будет работать на мутациях компьютерной программы. Вообще, добиться выполнения этого условия очень трудно. И если это сделать, то пропадает вся "романтика" и "волшебство" эволюционных алгоритмов
лэт ми спик фром май харт
Re[9]: Генетические алгоритмы
От: uuu2  
Дата: 21.04.08 19:00
Оценка:
V>Чем это отличается от простого полного перебора всех возможных комбинаций элементов живых организмов? Только скоростью.

Угу. Скоростью. И ещё тем, что я смогу проследить всю эволюцию организмов и сделать выводы о законах эволюции, скорости эволюции, образовании тупиковых ветвей и т.п. Это позволит улучшить и ускорить эволюцию для других (более сложных) задач, например при создания ИИ для сложных стратегический игр, систем распознавания образов...

V>Потомок должен быть почти таким же, как его родители. Отсюда следует, что ГА не будет работать на мутациях компьютерной программы.


Именно такой вывод я и сделал. Правда, есть ещё одна мысль — смоделировать некую нейронную сеть. Т.е. в "мозге" расположены нейроны (точки с координатами x,y,z). Часть нейронов являются рецепторами (туда поступает информация о расположении фигур на доске, о времени на часах и т.п.). Часть — "двигательными" (выполняют движение фигуры после обдумывания). Между нейронами протянуты "нити", по которым проходят сигналы. При этом нейроны сгруппированы нитями в "группы" (участки мозга), хотя есть нити и между разными группами.

Сигналы могут проходить одновременно по многим нитям. Время прохода по нити зависит от её длины (т.е. расстояния между нейронами). Сигналы могут иметь разную силу, при одновременном попадании нескольких сигналов на нейрон, они могут накладываться друг на друга и усиливаться). Работа мозга происходит небольшими "тиками" (за тик сигнал проходит единичное расстояние).

В ходе эволюции, в основном, мозг сохраняет структуру. Немного (в пределах 0.1%) изменяются связи, добавляются/исчезают некоторые нейроны. Связи меняются, в основном, не сильно (на соседние нейроны).
Re[10]: Генетические алгоритмы
От: prVovik Россия  
Дата: 21.04.08 19:35
Оценка:
Здравствуйте, uuu2, Вы писали:

U>Сигналы могут проходить одновременно по многим нитям. Время прохода по нити зависит от её длины (т.е. расстояния между нейронами). Сигналы могут иметь разную силу, при одновременном попадании нескольких сигналов на нейрон, они могут накладываться друг на друга и усиливаться). Работа мозга происходит небольшими "тиками" (за тик сигнал проходит единичное расстояние).


U>В ходе эволюции, в основном, мозг сохраняет структуру. Немного (в пределах 0.1%) изменяются связи, добавляются/исчезают некоторые нейроны. Связи меняются, в основном, не сильно (на соседние нейроны).


Все украдено до нас

http://www.google.ru/search?aq=f&amp;complete=1&amp;hl=ru&amp;client=firefox-a&amp;rls=org.mozilla%3Aru%3Aofficial&amp;hs=jTM&amp;q=neural+network+learning+genetic+algorithms&amp;btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&amp;lr=
лэт ми спик фром май харт
Re[2]: Генетические алгоритмы
От: Cyberax Марс  
Дата: 21.04.08 20:05
Оценка:
Здравствуйте, uuu2, Вы писали:

U>* позднее была поставлена более простая задача — научить организм играть хотя бы в крестики-нолики. Было математически доказано, что такое обучение возможно и 4 Кб кода хватит для правильной работы такого организма. Однако "эволюция" этих организмов к успеху не привела.

Для такой задачи сложно проэволюционировать систему. 10 организмов не хватит точно, нужно десятки тысяч.

Проблема в том, что функция отбора изменяется неплавно с изменением генов. Эволюция с такими условиями работает плохо.

Вот что-нибудь аналоговое (типа алгоритма хождения по поверхности) — будет работать замечательно.
Sapienti sat!
Re[4]: Генетические алгоритмы
От: Кодёнок  
Дата: 22.04.08 06:20
Оценка:
Здравствуйте, uuu2, Вы писали:

U>Монотонной функции тут явно не будет — алгоритм слишком сложный. И вообще, любой код состоит из команд процессора, как же ещё будет работать шахматная программа, без команд-то?


U>А для того, чтобы было меньше "шума", я и хотел "улучшать" организмы постепенно. Т.е. сначала они играют с простеньким "детским" движком, специально совершающим ошибки. Потом, он играет с противником на уровне 3-го разряда, и улучшает свой уровень. И так, постепенно, учится принимать правильные решения.


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

Если строить программу путем дописывания одной-пары команд, то для крестиков-ноликов, при правильном выборе опкодов сработает, но она будет перебором всех ситуаций на доске. Выглядеть она будет так:

IF ситуация-1 MOVE ход в такую-то клетку
IF ситуация-2 MOVE ход в такую-то клетку
сюда добавляются еще случайные команды
кончились команды, но игра еще идет — выигрывает тот, у кого позже кончились (т.е. длинее очередь)

Такая функция по мере удлинения программы правильными командами плавно приближается к правильному ИИ. Но это очевидно будет просто усеченным перебором.

Смысл генетического алгоритма, чтобы можно было заменить один ген и поменять одно свойство, не ломая остальные. Что нужно подкрутить, чтобы f1, f2, ..., fN превратилось в for i = 1..N f(i)? Для шахмат это необходимо, там перебор ситуаций не катит, даже для 4Гб генов. Проблема в том, что это должно случиться за одно поколение, сразу, скачком. Если по частям, то это движение в светлому будущему попадает во временную яму и будет сочтено неверным направлением. Надо чтобы каждый ген независимо от остальных плавно, любым изменением за одно поколение, мог приближать организм к победе; опкоды на роль генов как-то не подходят.
Re[5]: Генетические алгоритмы
От: uuu2  
Дата: 22.04.08 07:01
Оценка:
Кё>IF ситуация-1 MOVE ход в такую-то клетку
Кё>IF ситуация-2 MOVE ход в такую-то клетку

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

И потом, как определить, что ход в данной позиции идеальный? Ну, допустим, я выиграл партию за N ходов. Но это не значит, что все мои ходы были правильными! Вероятно, 80% ходов были совсем не идеальными, и при более серьёзном обдумывании можно было найти ход лучше.
Re[6]: Генетические алгоритмы
От: Кодёнок  
Дата: 22.04.08 07:17
Оценка:
Здравствуйте, uuu2, Вы писали:

Кё>>IF ситуация-1 MOVE ход в такую-то клетку

Кё>>IF ситуация-2 MOVE ход в такую-то клетку

U>Тогда получится база данных позиций и соответствующих им идеальных ходов. Вы знаете, сколько в шахматах возможно позиций? Ну а теперь оцените объём необходимой базы. А также машинное время, необходимое для накопления этой базы.


Именно. Это вырожденная программа, зато работающий вариант. То, на что ты возлагал надежды, не могло сработать. Путем случайного мутирования строк нельзя написать даже простой вычислитель факториала из 1-го цикла, ибо цикл должен появиться сразу целиком, за одно поколение, а это не эволюция, это одномоментное угадывание; тогда как предназначение эволюции — постепенное приближение к идеалу от поколения к поколению.

Если ты сможешь придумать, как писать функции по шагам, так чтобы на каждом шаге они оставались работающими и выдавали все более точные результаты, только тогда твоя задумка с шахматами удастся.
Re: Статистическое программирование? :)
От: Erop Россия  
Дата: 22.04.08 08:09
Оценка:
Здравствуйте, Ellin, Вы писали:

E>Вобщем все это задумки... можно продумать основательно мне кажется. Вот только наверняка такое уже есть. Может подскажите где?

В целом я впечатлён идеей, что тысяча обезьян таки сможет написать "каису"

Если уж охота так эксперементировать, то я бы придумал другое представление программы. Какое-нибудь более оринетированное на предметную область. Хотя бы декларативное, что ли.
Скажем как цепочку слабейщих предусловий, или ещё как-нибудь декларативно.
Можно какой-то готовый декларативный язык взять или функциональный, например.

Но можно, в принципе, подумать, и родить какой-то свой интерпретатор. Грубо говоря, хорошо бы написать такую программу, чтобы любая последовательность байт интерпретирповалась ей, как корректный игрок в шахматы.
Тогда можно будет придумать адекватный способ скрещивания...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[2]: Статистическое программирование? :)
От: Ellin Россия www.rsdn.ru
Дата: 22.04.08 08:37
Оценка:
Здравствуйте, Erop, Вы писали:

E>Но можно, в принципе, подумать, и родить какой-то свой интерпретатор. Грубо говоря, хорошо бы написать такую программу, чтобы любая последовательность байт интерпретирповалась ей, как корректный игрок в шахматы.

E>Тогда можно будет придумать адекватный способ скрещивания...

У меня вообщето планы весьма скромные... может я не правильно выразился... или попросту еще не устоялась формулировка.
Пусть есть мир и два типа насекомых, как здесь
Автор: D. Mon
Дата: 21.04.08

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

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

И самое главное!
Нейронные сетки У каждого зверька есть мозг . Так вот поведение зверька определяется сеткой... ну это можно сделать мне кажется... типа поступил сигнал со зрения — движущийся предмет там-то...(координаты пространства для простоты передаются...), нейронная сетка должна определить в какую сторону бежать... некоторые будут бежать в сторону хищника и соотв. исчезнут, некоторые убегать...

И цель. Как то так подобрать, чтоб со временем нейронная сетка хотя бы росла... нет я не говорю что искуственный интеллект получим это конечно упрется в какие-нить "оптимальные" 400 нейронов, определяющие поведение травоядного как зигзагообразное убегание от "рывками прыгающего" хищника с 300 нейронами... А изначально у них было, допустим по 20 нейронов...

Мне такого хватит, например... Хотя, конечно не факт что увеличение нейронов — плюсь... может даже они уменьшатся начнут...

Вобщем поковырятся можно... Вот только хорошобы какой-нибудь базис в виде API... или может готовых прог...
Re[11]: Генетические алгоритмы
От: uuu2  
Дата: 24.04.08 16:54
Оценка:
V>http://www.google.ru/search?aq=f&amp;complete=1&amp;hl=ru&amp;client=firefox-a&amp;rls=org.mozilla%3Aru%3Aofficial&amp;hs=jTM&amp;q=neural+network+learning+genetic+algorithms&amp;btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&amp;lr=

Это готовое, практическое решение. А мне хотелось бы забацать подобную (путь и более простую) штуку самостоятельно, чтобы хотя бы примерно понять, как это всё программируется и что я делал неправильно.
Re: Генетические алгоритмы
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 30.04.08 10:15
Оценка:
Довольно скоро, кстати, выйдет игра Spore. Можно будет самому прокладывать путь эволюции.
Re[7]: Генетические алгоритмы
От: vadimcher  
Дата: 30.04.08 14:58
Оценка:
Здравствуйте, Amon-RA, Вы писали:

AR>Здравствуйте, Amon-RA, Вы писали:


AR>>Быстро этот вид исчез


AR>Я тоже баловался таким же


А в твоем случае программа случайно не Fight Club (Бойцовский Клуб) называлась?

А вот зайца кому, зайца-выбегайца?!
Re[4]: Генетические алгоритмы
От: Аноним  
Дата: 07.05.08 10:06
Оценка:
Здравствуйте, machine3000, Вы писали:

M>Вот график за последнее время Надо узнать, сколько будет завтра. Ну или через час, или через месяц. Можешь "насекомых" озадачить этим делом. Кто сильнее ошибся, тот и умер.


Брутально звучит

Я пробовал такие вещи делать. В лучшем случае удастся добиться 55-60% удачных сделок. Маловато однако. Так Баффетом не стать
Re[5]: Генетические алгоритмы
От: machine3000  
Дата: 08.05.08 10:42
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Я пробовал такие вещи делать. В лучшем случае удастся добиться 55-60% удачных сделок. Маловато однако. Так Баффетом не стать


Где-то читал что уже сейчас 30% сделок на бирже совершается роботами. А через 10 лет, типа, будет 100.
Хотелось бы самому тоже попробовать. Так, блин, чтоб тело бренное прокормить, на работе всякой туфтой приходится заниматься. А по выходным ничего серьёзного сделать не успеешь.
Re[2]: Генетические алгоритмы
От: Alex Reyst Россия  
Дата: 16.05.08 13:30
Оценка:
Здравствуйте, ridli, Вы писали:

R>нагуглите tierra


Как ты думаешь, сколько миллионов ссылок можно нагуглить на слово "Земля"?

Tierra by Tom Ray

- У вас закипает, — сказала флегматичная Петина мама.
— Да! У меня закипает чувство справедливого негодования по поводу нашего так называемого воспитания молодежи, которое приводит только к ...
— У вас закипело молоко, — сказала менее ленивая Сережина мама...

Все, что здесь сказано, может и будет использоваться против меня.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.