Добавлен , опубликован

Начало

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

Что надо делать?

— Минимальный набор действий это: скачать карту, запустить на ~30+ минут. Ввести слово "save". Дождаться появления файла по пути ./save/GA_test_01/Cod.txt. Скинуть. Лучший найденный скидывается вам обратно. И так несколько раз =)

Кратко об ии

— Каждый объект представляет собой кольцевую цепочку команд. Каждая команда является точкой на отрезке. Проекция дерева решений на отрезок однозначно соотносит точку и конкретное решение.
Примерный список команд
  • Сравнить
    • Число
    • Юнит (случайный, ближайший, дохлый)
      • Жизнь
      • Дистанция
      • Количество
    • Зомби (...)
      • Жизнь
      • Дистанция
      • Количество
    • Я
      • Жизнь
      • Отклонение времени
      • Отклонение времени2
    • Кольцо
      • Положение
      • Дистанция
    • Центр
      • Дистанция
  • Сделать
    • Я
      • Остановится
      • Инвиз
    • Юнит (...)
      • Бежать
      • Атаковать
      • Проколоть
    • Зомби (...)
      • Бежать
      • Атаковать
      • Проколоть
    • Зона
      • К
      • От
      • Вправо
      • Влево
    • Пространство
      • Наверх
      • Вниз
      • Направо
      • Налево
Другие вопросы
Как сохранить ИИ?
Для сохранения лучшего экземпляра введите слово "save". Файл кода будет лежать в папке варкрафта ./save/GA_test_01/Cod.txt
Могу я сохранить понравившийся ии?
Да, для этого нажмите на юнита и введите слово "s save". Код сохранится, даже если юнит умрет до конца условного раунда.
Можно загрузить сохраненный ии?
Да, введите слово "download". В начале следующего раунда он будет загружен и подключен.

Ехало

Первое видео
Задача - прожить как можно дольше
Приветствую вырезки интересного поведения, а также предложения по улучшению обучающей среды и внутренних механизмов.
Скачать:
v02 Динамичное кольцо:
03 KodG3_king of the mountain.w3x оцениваются убийства и количество выживших
Можете улучшить готовый вариант или собрать свой с нуля Cod.txt
v01 Статичное кольцо:
02 KodG3_kill_and_life.w3x оцениваются убийства и жизни
01 KodG3_only_kill.w3x оцениваются только убийства
Пишите, какую разницу в поведении юнитов обучаемых разным способом вы заметили.
`
ОЖИДАНИЕ РЕКЛАМЫ...
1
17
4 года назад
Отредактирован Vlod
1
Здравствуй, мы сохраняем его в файл, чтобы потом иметь возможность пользоваться сразу готовым или продолжить обучение
1
17
4 года назад
1
Спасибо! Если не очень понятно что это и зачем, можете посмотреть видео. Архитектура и принцип работы почти такой же
1
37
4 года назад
1
Это back propagation или генетический алгоритм? Больше бы конкретики
1
17
4 года назад
1
ГА, back propagation обучает классификаторы, а тут экземпляр ии это цепочка команд
1
37
4 года назад
1
Так ты сколько будешь обучать на такой скорости их? Там надо десятки тыщ итераций хотябы

Нужен speed multiplier
1
17
4 года назад
1
Да не сцы, в прошлый раз нейронка максимум за пару часов обучалась. Лучше скажи, почему ресурс твой лайк дропнул(
2
37
4 года назад
Отредактирован ScorpioT1000
2
Лучше скажи, почему ресурс твой лайк дропнул

В тему: интересный канал www.youtube.com/c/PrimerLearning/videos
Они тренируют именно генетические алгоритмы с крутой визуализацией
1
11
4 года назад
1

Не особо понял что к чему, но после часа работы вместо бессмысленного мордобоя все начали заниматься бессмысленным бегом по кругу( при чем одни по часовой стрелке, а другие против часовой).
Загруженные файлы
1
17
4 года назад
1
dondonchakka, межпопуляционный отбор имеет более широкий охват решений

IIIНекромантIII, все верно. Для сохранения жизни и в условиях бесконечного спавна зомби избегание боя является эффективной стратегией. Учитывая, что зомби достаточно мало и их скорость низка

ScorpioT1000, да, визуализация крутая конечно
1
32
4 года назад
Отредактирован Берги
1
Так я запустил, пока что ничего не понимаю, сижу читаю и сразу вопрос... помните, в нативном редакторе ИИ (который для Мили) можно было увеличивать скорость, если ли какие -то варианты изпользовать эту скорость для таких вот ИИ? и для тестов вообще?
Замахи выглядят ужасно, когда стоят друг на против друга и походу приказ атаки очень часто отдаётся

Что значит сохранить понравившийся ИИ?
на карте бегают безымянные крестьяне, только крестьяни игрока, при клике показано рандомное число, но врядли оно как то привязано к ИИ
Как я могу узнать что мне кто-то понравился, если они живут по 30 сек?
Да, для этого нажмите на юнита и введите слово "s save".
0.346 save
это от ошибка или номер ИИ?
2
15
4 года назад
2
На карте kill and life в начале они просто ходили кругом и использовали невидимость по кд, пытаясь выжить, потом вдруг это им надоело они начали использовать стан способность только по зомбакам, но потом начали её использовать и по рабочим вроде тоже по кд, а может когда у них меньше здоровья. Итог по золоту 250.
На карте kill они используют стан только по зомби, как я понял, а между собой только на кулаках. Невидимость почему-то перестали использовать, но это наверно ненадолго. Итог по золоту 500.
Всё же на карте kill and life они более развились под конец исследования. Обе карты запускал в одно время.
Загруженные файлы
2
32
4 года назад
2
KodG3_kill_and_life - полтора часа
Но поведении ИИ не менялось примерно уже с 10 минуты, они бегали по широкому кругу, дергались при атаке, давали импалу по кд
Загруженные файлы
0
11
4 года назад
Отредактирован IIIНекромантIII
0
все верно. Для сохранения жизни и в условиях бесконечного спавна зомби избегание боя является эффективной стратегией. Учитывая, что зомби достаточно мало и их скорость низка
Ну, если это всё на что этот ии способен, то у меня плохие новости для тебя... Vlod, они бессмысленны и бесполезны, хотя может ты просто хочешь сделать что-то более грандиозное, но на данном этапе наблюдать за ботами все равно что смотреть на инфузорий в микроскоп - большинству будет скучно.

Вот если б это была арена где ИИ-шки дрались за жизнь или какая-нибудь командная соревновательная игра, чтоб ИИ учился драться в команде не прибегая ни к какой коммуникации, тогда да, было бы в разы интересней. А так я смотрю за тем как болванчики учатся бегать по кругу. И каждый раз они будут приходить к этому решению, что просто лишает смысла весь этот ИИ, ведь результат будет одинаков, но вот если бы они каждый раз по новому адаптировались или стратегии странные придумывали, но нет они просто будут бегать по кругу...
А хотелось бы чего-то большего.
1
17
4 года назад
Отредактирован Vlod
1
IIIНекромантIII, для того чтобы тестировать ботов на арене ее нужно сначала написать)
По поводу оригинальности решения, ну кто ж знал, что беспрерывно бегать - наилучший вариант увернуться от всех атак стандартного ии, а бегать по кругу это всего 1 команда, куда проще. В таком случае предлагаю придумать усложнение задачи ботам

Bergi_Bear,
Да, бот выдает решение каждые 0.33 и вар сбивает приказ, даже если цель одна и та же. Увеличу скорость атаки, чтобы удар проходил
Сохранить понравившегося можно, если за эти 30 секунд написать s save)
Число при клике это JobEnd[] - оценка юнита за предыдущий раунд. Если его пересоздали, то она 0
0
11
4 года назад
0
Vlod, если честно, то вот к данному примеру никакого усложнения не придумывается, но есть другая мысль - поменять задачу.

Сейчас все боты пытаются выжить, но а если им поменять задачу? Хотя бы для начала, пускай их задача будет научиться мочить врагов или удерживать флаг....

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

Усё.На этом наше творческое,того этого, окончено.
0
17
4 года назад
Отредактирован Vlod
0
bifurcated, спасибо за развернутое описание. Они могут использовать или не использовать что то, и это зависит от начального рандома. Как повлиял тот или иной фактор иногда вычленить очень сложно. Как я заметил, если при определении родителя учитывать остаточное количество жизни (kill and life), то особи в популяции получаются в среднем менее агрессивными к своим сородичам
2
17
4 года назад
2

Обновление
  • Локация с сужающимся кольцом;
  • Полноценная система раундов;
  • Теперь приоритеты поощрения зависят от убийств и от числа выживших.
1
11
4 года назад
1
Загруженные файлы
1
15
4 года назад
1
Динамическое кольцо: Жёлтый работник придерживается тактики самоубийства (выходит за круг), остальные движутся в центр используя способности (этот интеллект не может понять, что атака из-под невидимости наносит больше урона и что можно использовать шипы примерно там, где работник исчез? Да и обычно под невидимостью они стоят на месте, иногда идут чуть ближе к дереву). Зомби не выживают. Итог по золоту 1100.
Загруженные файлы
0
32
4 года назад
0
Кстати по поводу атаки из невидимости, если мне не изменяет память ии не способен совершить атаку из инвиза
0
3
4 года назад
0
Образовалась одна интересная особь, чьё поведение заметно отличается и выглядит умнее остальных) Все сначала сразу бегут в центр, сбиваются в одну кучу с зомбаками, и начинают применять шипы, пока не перебьют всех зомби, задевая друг друга, после чего продолжают болтаться возле дерева, уходя в инвиз, но друг к другу агрессии не проявляют. А этот предпочитает остаться в стороне, а когда в центре перебьют всех зомби, подбегает и осторожно пытается добить выживших, ударил, отбежал, ударил, отбежал.
Загруженные файлы
0
17
4 года назад
0
IIIНекромантIII, спасибо! Про усложнение, удерживать флаг от кого, от зомби?) Просто бегать и стоять возле рандомных флагов легкая задача. Отмечу, что хоть мы и видим много юнитов, на самом деле мы обучаем одного. Если требуется два типа, то нужно создать две группы, одной сказать защищать, а другой нападать, тогда получатся кери и хиллеры, к примеру. С другой стороны мы обучаем группу, поэтому можно не разделять, кто то случайно станет хиллером, а кто то кери, а мы будем брать детей от двух случайных выживших, но в таком случае желательны более жесткие условия выживания и больший размер популяции.
2
13
4 года назад
Отредактирован Esea
2
Хм... у меня частые забеги за кольцо, при том бывает достаточно забавная ситуация когда один бежит за другим а тот бежит за кольцо.
0
17
4 года назад
Отредактирован Vlod
0
bifurcated, придерживается тактики самоубийства - звучит забавно) 1) Урон от инвиза я убрал см. РО 2) Все команды no target - указание в виде области или точки. По этому он физически не может никого ударить из инвиза, ему не дает вакрафт. Да таргет система в управлении стара как мы, по этому хотелось уйти от нее. Но спасибо за наводку, кажется я понял откуда дерганья у стандартной атаки. Сейчас ии как может узнать что он в инвизе? Нажать на инвиз и получить в ответ false. Не слишком удобный способ) Логично добавить ему флаг проверки на бафф, пока систему команд не трогал для совместимости Cod.txt между картами. Сам список команд добавил в описание. Спасибо!

Bergi_Bear, из инвиза да, только impale пустить.
Возможно, дерганья были из за отдачи кучи команд атаки в точку в один тик. Попробую сменить это на цель-объект и проверить.
function action_who_attack takes integer ind, unit tu returns boolean
  return IssuePointOrderById(Men[ind], 851983, GetUnitX(tu), GetUnitY(tu))
endfunction

Yagosha, спасибо! Согласен, поведение уже интереснее и подойдет для фарма стандартных мобов. А в плане логики мне как то встречалось, что ии сравнивает расстояние от центра зоны с жизнью случайного зомби. Мммм!

Esea, бывает и паровозик из трех) Помните, что каждый кон один из слабых заменяется на абсолютно рандомного. А те, что имеют ауру меткости - либо дети двух случайных лучших, либо тоже два рандома
3
13
4 года назад
3
Первый мой сейв (статическое кольцо убийства и жизни). Даже не знаю что сказать. Заметил 2 интересных персонажей: коричневый который то бегал на небольшое расстояние туда сюда рядом с деревом то вообще убегал за кольцо, и красный который один раз наматывал круги рядом с кольцом, но умер забежав за него (видимо его беговой круг расширялся). Ну и еще не могу смотреть на бесполезные инвизы и неравноценные размены ударами.
Загруженные файлы
Чтобы оставить комментарий, пожалуйста, войдите на сайт.