Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Генетические алгоритмы в разработке игр. (комментарии) (3 стр)

Генетические алгоритмы в разработке игр. (комментарии) (3 стр)

Страницы: 1 2 3 4 5 Следующая »
tacПостоялецwww26 мар. 20180:18#30
emptiness_rain
> Не вижу причин тебе что то доказывать :)
мне это сто раз не надо, так делает любой уважающий себя иследователь, который хочет что то продемонстрировать, а не бла бла
emptiness_rainУчастникwww26 мар. 20180:30#31
tac
> мне это сто раз не надо
Так а чего же ты тогда хочешь?
Если за других переживаешь - напиши правильную статью про целевую функцию.
Если за мой авторитет исследователя, приятно канеш, но я все же какнить сам.
DelfigamerПостоялецwww26 мар. 20184:38#32
tac
Ты как-то очень странно посмотрел видео.
> как задается целевая функция в ролике не рассказывается
Целевая функция - продолжительность жизни в Чудесном Мире, нужно её максимизировать. Разумеется, правила игры в Чудесном Мире являются частью целевой функции.
> 64 действия с одной стороны
Не совсем, поиск ведётся в пространстве последовательностей размером 64 из команд, которых существует 64, итого - 6464 варианта решения.
> чтобы оценивать надо сравнивать с простым перебором 64 действий
К задаче в ролике не имеет никакого отношения, предмет оптимизации - сама программа бота.
> ГА лучше моего алгоритма полного перебора
ГА лучше, потому что приходит к удовлетворительному результату за приемлимое время. Если ты будешь перебирать варианты без каких-либо эвристик, то среди 6464 решений ты только и будешь делать, что перепроверять тонны плохих вариантов.
Сравнивать ГА имеет смысл с другими алгоритмами дискретной оптимизации, которых три с половиной штуки и с ними ещё нужно разбираться.

Правка: 26 мар. 2018 4:40

FantargПостоялецwww26 мар. 20188:58#33
tac
> заметь алгоритм элементарный и не связан с ГА
+1

Delfigamer
> перебирать варианты без каких-либо эвристик, то среди 6464 решений
Какой еще перебор, создается проверка на потребность (от ТТХ индивидуальных), и без всяких странно-сомнительных ГА (как на видео) создается вполне хорошая модель на основе примитивных алгоритмов:) 
Допустим у нас два проверочных параметра (голод: кушать только для восстановления энергии / кушать любой "объект" с проверкой хотим этого или нет, в данный момент, или случайно хавать).
Есть "локатор" (обоняние/зрение)... и т.д. и т.п.
Достигли эn-возраст, проверяем на вероятность почкования. Все накопленные ТТХ пересчитываются в следующего потомка (тут достаточно из ДНК - массив - высчитывать приоритет "обучаемости").
Юниты могут погибнут от пережорства. Могут погибнуть по растрате энергии (голодные юниты передвигаются с меньшей скоростью, а значит могут не дойти до источников пищи и умереть от голода).

Правка: 26 мар. 2018 9:00

FantargПостоялецwww26 мар. 20189:25#34
emptiness_rain
> Вот источник вдохновения для второй статьи
Посмотрел другое у него видео, где он про ИИ ГА "рисует", чет тоже удручает. У него мутация - это 1 заменяющийся атрибут, случайно.
Если так, то мои "скалоеды" - умнее и живее, хотя имеют примитивные алгоритмы:)
DelfigamerПостоялецwww26 мар. 201811:32#35
Fantarg
Ты говоришь про совершенно иную задачу. Ролик - это «вот так вот этим раздвижным ключом мы можем эффективно закручивать гайки», тогда как ты - «какой ещё разводной, моя мебель отлично держится на гвоздях и без всяких сомнительных ключей».
FantargПостоялецwww26 мар. 201813:14#36
Delfigamer
> Ролик - это «вот так вот этим раздвижным ключом мы можем эффективно закручивать гайки»,
Ролик говорит, что "у меня есть вилы и я черпаю воду ими, показывая как долго я буду это делать и выводить закономерности".
> тогда как ты - «какой ещё разводной, моя мебель отлично держится на гвоздях и без всяких сомнительных ключей».
Я отвечал на твое заблуждение тем, что можно без всяких вил и лопат черпать воду.
Например, детским ведерком, это будет эффективнее.

upd:

+ Показать

Правка: 28 мар. 2018 21:26

tacПостоялецwww29 мар. 20180:13#37
Delfigamer
> поиск ведётся в пространстве последовательностей размером 64 из команд, которых
> существует 64, итого - 6464 варианта
ну нет этого там, там нигде не говорится про последовательность команд, бот не обладает вообще памятью .. невозможно судить по ролику, где нет информации .. но максимум что там есть это случайный перебор 64 вариантов N раз, где N это длина цикла жизни бота, т.е. до отбора .. но в ролике даже это не говорится .. поэтому это пространство rnd(64)*N , т.е. случаный выбор из 64 n раз ... тогда как полный перебор даст лучшую оценку, т.е. best(64) *n , где best целевая функция .. дело лишь в том, что ГА за счет большего n будет равновероятно выбирать из 64 вариантов , случайно находить лучшую последовательность ... в то время как полный перебор потребует перебрать все 64 варианта, но уменьшит n , т.к. найдет быстрее лучшую последовательность, за счет того, что каждый шаг будет оптимальным по целевой функции

а кто будет лучше ГА или полный перебор надо показывать на конкретной задаче, т.к. это очевидно зависит от данных .. но очевидно, что ГА пригоден, если решение равновероятно находится в множестве 64 *n действий, это означает, что если решение достижимо любым равновероятным выбором, то ГА его найдет .. если же это будет нечто сугубо логичное, например игра в шахматы, или даже крестики-нолики, где один выбор/ход предопределяет следующий, ГА будет не эффективен, т.к. равновероятный случайный выбор, будет хуже полного перебора .. проще говоря, ГА будет ошибаться большие число раз, чем если сделать полный перебор ..

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

буду рад если снял мистическое дрожание в коленках перед методами ИИ :) а оно очевидно тут вырисовывается .. а нежелание ТС следовать путем исследователя, показывает лишь то что он становится на путь шарлатана, сам то сам - пожалуйсто, но игнорирование советов о сравнении, ведем просто к пустым умозаключения .. да есть такой алгоритм ГА .. но и что? вы знаете когда его стоит применять? такого рода статьи этого не показывают, т.к. далеки от научного подхода

P.S. кстати в ролике есть, косвенно N , оно меняется, чем боты дольше живут, тем больше их продолжительность жизни :) ну т.е. когда умерли 56 ботов, это и будет длительность жизни одного цикла .. очевидно, что длительность цикла растет, но это не дает новых решений ... странное решение , явно над ним не думали, все по наитию

Правка: 29 мар. 2018 1:01

exchgПостоялецwww29 мар. 20181:05#38
tac
> а кто будет лучше ГА или полный перебор надо показывать на конкретной задаче
В любой задаче полный перебор будет лучше. Проблема в том, что что пока будут
перебраны все варианты задача станет неактуальна.
tacПостоялецwww29 мар. 20182:45#39
exchg
> пока будут
> перебраны все варианты задача станет неактуальна
смотря что и как перебирать :) ГА осуществляет по сути тот же перебор, можно осуществить перебор с отбором по целевой функции , и совсем не очевидно какой будет успешнее .. поэтому тезис о неактуальности, слишком общий и на практике имеет мало общего с реальностью
DelfigamerПостоялецwww29 мар. 20184:21#40
Fantarg
tac
Вы жопой слушаете, или только притворяетесь?
https://youtu.be/SfEZSyvbj2w?t=58s
Мне хотелось, чтобы в качестве генов выступал программный код. Я создал маленьких синих ботов, которые должны выжить, а их способность к выживанию определяет программа, записанная в их мозг. Именно программа - и есть их геном, который будет изменяться в процессе эволюции. <...> ДНК бота - это 64 ячейки, замкнутые по кругу. <...> Ячейки заполняются числами от 0 до 63, каждое число - это команда.
exchgПостоялецwww29 мар. 201810:08#41
tac
> ГА осуществляет по сути тот же перебор
Тот же это в смысле полный перебор всех вариантов? И при этом гарантированно возвращает
самый оптимальный результат?

> поэтому тезис о неактуальности, слишком общий и на практике имеет мало общего с
> реальностью
Применительно к поиску в полях решений с размерами в которых актуально применять ГА, полный
перебор неактуален в силу времени.

Поэтому очевидно, что в любой задаче результат полного перебора будет лучше, но не всегда применим.

Правка: 29 мар. 2018 10:13

FantargПостоялецwww29 мар. 201810:57#42
Delfigamer
> Вы жопой слушаете, или только притворяетесь?
+ Показать

> <...> ДНК бота - это 64 ячейки, замкнутые по кругу. <...> Ячейки заполняются
> числами от 0 до 63, каждое число - это команда.
И? Поэтому проще и лучше создать примитивный алгоритм нормальный в виде ведерка, чем изображать какие-то гены и днк, но брать при этом вилы для черпания воды. Эти 64 ячейки - они блокированы(!) условными переходами так же, как если бы создать схемы да/нет, но при этом эти 64 команды не несут в себе какой-то функциональности ГА, в котором важна "разблокированная" система. Здесь же система даже слабее (в принципах замкнутых), чем программировать поведение робота в игре "Carnage Heart":
+ Показать

Правка: 29 мар. 2018 11:04

kiparПостоялецwww29 мар. 201811:05#43
exchg
просто для любой задачи по хорошему надо привести сравнение с другими методами - точно ли полный перебор (с отсечением, т.е. метод ветвей и границ) не найдет решения в разумный срок, точно ли монте-карло или какая-нибудь очевидная эвристика или какой-нибудь градиентный спуск не найдет приемлемый результат быстрее. Иначе выглядит как "мы применим здесь ГА(\нейронку\диплернинг\подставить слово) потому что можем, и вот они за 100500 поколений находят не совсем провальное решение, мы молодцы".

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

exchgПостоялецwww29 мар. 201811:41#44
kipar
> просто для любой задачи по хорошему надо привести сравнение с другими методами
> - точно ли полный перебор (с отсечением, т.е. метод ветвей и границ) не найдет
> решения в разумный срок
Ну вообще да.
Страницы: 1 2 3 4 5 Следующая »

/ Форум / Программирование игр / Общее

2001—2018 © GameDev.ru — Разработка игр