Pull to refresh
28
0
Алексей Дичковский @DragoonXen

Пользователь

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

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

Просто аккуратно и чисто реализованный подход
Мне вот, кстати, интересно, чем бы помогли сторонние сборки/утилиты?) Ну и никто не запрещает опенсорс к себе в код тянуть
Не путайте mini ai cup и russian ai cup. Тут такого ещё не было, да и там это признали неудачным опытом.

Не могу отвечать за организаторов, но на 99% уверен, что не будет
Предположу, что +- такое же, с поправкой на то, что некоторые языковые пакеты добавляют сами участники во время конкурса

2017.russianaicup.ru/p/packs
Мини аи кап #2 это не предыдущий раик, и даже не последний мини аи кап. Но это всё же отдельная тема.

Я писал Мини аи кап #2 на С++ и потратил точно не меньше 2 дней на перенос локал раннера к себе в код (и даже больше). Даже того кода, который помогал править я. В том виде, в котором существует код в локал раннере, он обычно не юзабелен.

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

Всё ещё не вижу огромного преимущества.

На сим «спор» можно закончить, на чём бы ни были исходники — фаворитом в ближайшем будущем будет С++, где-то рядом Java и C#. У последних тем больше шансов, чем сложнее логика, которую нужно реализовать. И тем меньше, чем более требовательна эта логика к скорости вычислений.
В Russian AI Cup почти всегда исходники были на java. И java при этом побеждает не чаще популярного C++ (хотя прошлый контест, пожалуй, исключение. Всё топ 3 — java. ИМХО из-за сложности управления в игре. На Java куда проще написать много кода без сегфолтов).

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

Вариант открыть игры финала
aicups.ru/round/8/?rp=1#ranked-games

или прям рейтинговые игры из профилей топ участников
Так на питоне шансов просимулировать не было, а без движка она есть, но всё равно питон почему-то побеждает только если ифами)

И никаких секретов из рук в руки. Не думаю, что таковыми можно считать сообщения в офчате, что «можно использовать аллокаторы» (от участников, конечно же). А по факту это у меня заняло ~ 30 строк кода и целый вечер, учитывая, что я первый раз писал аллокатор (да и С++ не тот язык, где мне комфортно)

А вот копирование исходников локал раннера из питона в С++ у меня заняло больше, чем половину недели. И тут бы все языки были бы более-менее равны (а питон даже ровнее, исходники ЛР то на нём)
Нереально, в си в любом случае пришлось бы чуть влезть.

Впрочем кинули небольшой хелпер для СИ не совсем организаторы, его сделали участники. Причём сразу два хелпера.
1. У него нет никакой перемотки вперёд/назад
2. Нет толковой возможности рисовать что-то своё (ПП, след от симуляции) ввиду отсутствия какой-либо интеграции со стратегией
И всё же никогда не видел, чтобы под соревнование с достаточно ограниченным количеством времени и более-менее ясными правилами (которые, правда, меняются, но не сильно) писали бота, где основное в принятии решений ложилось на ML. Если речь идёт про топовые места, конечно.

Буду даже рад (и не только я), если поделитесь ссылкой на такое событие.
Думаю, что когда ИИ будет ПОНИМАТЬ, что он делает (что, по сути, может дать ему возможность создания более узкоспециализированных моделей), а не просто быть инструментом решения какой-то узкой задачи — вот тогда уже можно будет думать про прорыв. Пока такого не видел, но это вовсе не значит, что подобных решений нет.

И как-то неуютно представлять, что уже почти каждую задачу можно решить с помощью слабых моделей или фиксированных алгоритмов, обладая определённым количеством маны…
Да и при моём подходе деревья меня долго побеждали. Но в целом мой вариант, мне кажется, требовал меньшего количества костылей. Например, проблема с локальными минимумами, на которую многие жаловались, у меня вообще не всплывала.
100% такие варианты были, и много. Но увороты рассчитывать потенциалами плохой подход, на мой взгляд. А вообще топ 1 решение было вроде на потенциалах. Хотя я не вижу серьёзной разницы между топ 1 и топ 3, по сути первые 3 места распределил рандом.
Думаю можно так попытаться сделать, но опять же — для меня это ненужное усложнение. Я такими вещами никогда ещё не занимался и не особо имею представление, как и что можно с этим сделать, чтобы работало достаточно быстро. Но если иметь опыт — всё возможно. Песочница ещё открыта, как и код, можно пробовать :-)
А про расшарить — у меня Java отказалась даже на NotImplementedException из пакета sun.reflect.generics.reflectiveobjects.notimplementedexception посмотреть, java.security.AccessControlException выдало. Мол, не секьюрно и вообще. Так что маловероятно. Запуск процессов никак нами не контролируется, да и вообще гарантии нет, что все процессы запускаются на одной машине.
И радиусы непостоянные (например, когда у врага КД или он смотрит в другую сторону, можно подойти к нему чуть ближе), и центр врага явно находится не ровно в одной из точек матрицы, отчего будет погрешность +- точка. Да и радиус некоторых полей аж 600, если строить все нужные дистанции, то памяти потребовалось бы на такие текстуры больше, чем есть. Хотя для подсчёта пути в целом была бы годная оптимизация, но погрешность надо было бы учитывать. Те же самые башни — подошёл на 0.001 ближе, чем стоило — получи разряд.
Да, будет работать, и неплохо. Вроде у Антона (Antmsu) так и было сделано. Этот способ проигрывает в позиционировании (для одиночного мага), но гораздо более экономичен по процессору и памяти, что оставляет больше простора для просчёта стрельбы и уворотов. Оба варианта возможны, Правильно замечено, что тут больше был вопрос в количествах if-else :)
1

Information

Rating
Does not participate
Location
Гродно, Гродненская обл., Беларусь
Registered
Activity