LINUX.ORG.RU
ФорумTalks

Творческий кризис, не могу улучшить алгоритм

 ,


0

1

Я уже писал про соревнование внутри моего факультета, пакман и его призраки пытаются съесть вражеских пакманов и его призраков.

Я реализовал довольно таки простой алгоритм который заставляет пакмана бегать за PowerUp и когда он на колесах за молотом(убить всех вражеских призраков и получить за это гешефтъ) или просто за призраками.

Алгоритм пока уверенно держится в списке выживших, Проблема в том что я никак не могу его улучшить. Что бы я не делал, он только становится хуже.

Мне интересно, это значит что мне пора его переписывать потому-что этот алгоритм зашел в тупик или просто я на пике моих знаний и это я в тупике, не могу улучшить.

Ранее: Как писать AI



Последнее исправление: Trieforce (всего исправлений: 1)

Прикрути генетику.

Sadler ★★★
()

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

dada ★★★★★
()

Я уже писал

Ссылка где?

Manhunt ★★★★★
()
Ответ на: комментарий от dada

Я так понимаю это элемент бэктракинг с элементом рандома?

Trieforce
() автор топика
Ответ на: комментарий от Harald

Я боюсь деанонимизации. Ну да ладно UPC.edu. У нас Столман делал конференцию недавно, когда у него был инфаркт.

Trieforce
() автор топика
Ответ на: комментарий от Sadler

Проблема в том что за «показать» могут выкинуть из соревнования. Поэтому мне пришлось отказать товарищу Столману.

И давайте уже по делу.

Trieforce
() автор топика
Ответ на: комментарий от Trieforce

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

http://aichallenge.org/

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

Harald ★★★★★
()

а попробуй свой алгоритм набросать в дракон схему (за одно и для любопытных Ъ картинку выложи)

uin ★★★
()
Ответ на: комментарий от Trieforce

Надо собрать все изменяемые параметры в один вектор и провести по нему глобальную оптимизацию. Целевая функция должна непрерывно зависеть от вектора.

Deleted
()
Ответ на: комментарий от Trieforce

И давайте уже по делу.

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

Sadler ★★★
()
Ответ на: комментарий от Trieforce

Ты нам расскажи что ты от нас хочешь? Чего-то конкретного или эмоции излить?Если конкретики, то дай нам более четкую задачу: какие есть сущности, какая информация тебе доступна, какая цель игры и т. п.

Вот поток сознания: перебор возможных маршрутов, также есть глубина просчета или колличество шагов вперед(может быть динамической). Для каждого шага расчитывается: сколько бонусов принесло. Бонусы расчитываются исходя из того, сколько точек ты съел, съели ли тебя, колличество степеней свободы (сколько перекрестков сможешь пройти если ве враги кинутся тебе на перехват). Всему этому проставляется вес, вес по сути означает насколько твой бот боится протвиников и насколько он любит всякие ништяки, де-факто - это стратегия. Далее смотрим теорию поиска потимального пути в графе - методы проработанные. И, кстати, проконтроллируй чтобы у твоего бота была такая фича, как идти лоб-в-лоб к противнику, кушать точки, перед самым его номсм повернуть на 180 градусов.

Kroz ★★★★★
()
Ответ на: комментарий от Sadler

Они тоже могут менять ботов и их там до 78. + карты меняются и очередь в каждом раунде рандомна я ну уверен что генетика подойдет.

Trieforce
() автор топика
Ответ на: комментарий от Trieforce

Не такая уж и шутка. Белка плохого не посоветует!

Dark_SavanT ★★★★★
()
Ответ на: комментарий от Kroz

Я использую BFS. Стоит мне использовать, что нибудь другого для просчета если враг меня будет атаковать?

Потом походу мне надо использовать Dajkstra для моего пакмана если я хочу просчитать «вес»?

Trieforce
() автор топика
Ответ на: комментарий от pacify

Но посоны говорят что пакман круче тян!

Trieforce
() автор топика

У меня два вопроса.

1. Карта статическая. На ней есть стены(непроходимо), двери(только призраки) я использую две map<Pos, <vegtor<Pos> >, один для пакмана другой для призраков, что бы не просчитывать каждый раз. При этом карта считывается так что бы соседнии клетки c бонусам рассматривались первыми.

Это сделано что бы во время BFS мне не приходилось просчитывать соседние клетки.

2. Я делаю маску(одну для пакмана и одну для призраков) в которой для каждой позиции отмечено может ли робот пройти там. Например для на каждой маске отмечаются мои игроки и вражеские не агрессивные. Агрессивные отмечаются крестом(клетка на которой он стоит плюс все на которые он может пройди).

Это то что у меня сейчас есть. Ваше мнение. Обоснованные оскорбления принимаются.

Trieforce
() автор топика
Ответ на: комментарий от Trieforce

я ну уверен что генетика подойдет

Попробовать стоит. Хотя бы в дополнение к оригинальному алгоритму. Тем более, если бинари ботов доступны - можно свободно учить своего бота неограниченное количество времени.

Sadler ★★★
()

3. Есть такая вещь как молот. Когда ты ее берешь все вражеские призраки умирают, а ты получаешь за них балы. Дело в том что они исчезают и потом опять появляются, если кто то съел гриб(регенерирует всё съедобное кроме грибов). По этому нужно быть рядом, но при этом иметь поверуп и по возможности жрать все что плохо лежит.

Я пытался сделать специальную функцию который при отсутствие молотов и наличии грибов скажет мне где этот молот лежит. Проблема в том что я не знаю как «сторожить объект которого нет». Просматривать ли мне всех пакманов и смотреть если они у грибов или просто вертеться возле места где появится хамер?

Trieforce
() автор топика

Я реализовал довольно таки простой алгоритм который заставляет пакмана бегать за PowerUp и когда он на колесах за молотом(убить всех вражеских призраков и получить за это гешефтъ) или просто за призраками

Пожалейте чужие парсеры.

buddhist ★★★★★
()
Ответ на: комментарий от Sadler

Ничего не доступно. Можно проконсультировать имя опонента, но оно часто меняется(с каждой новой версией).

Trieforce
() автор топика
Ответ на: комментарий от buddhist

Вообще если пакман съел таблетку то он охотится за призраками и за молотом.

Trieforce
() автор топика

уедь куда-нибудь, продолжи там.

Mynah
()

Это же вы интересовались A* алгоритмом. Он вам не подошел? Заметил, что люди с высоким рейтингом на aichallenge любят его.

delete83 ★★
()
Ответ на: комментарий от delete83

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

К тому же он навряд ли даст отличия в поведении.

Trieforce
() автор топика
Ответ на: комментарий от pi11

Ну на протяжении этой неделе он держится на ровне с лучшими. Так что я очень надеюсь.

Просто за каждый пройденный раунд мне дается 0.01. Если я дойду до 16 призовых мне гарантирован 1 бал.

Trieforce
() автор топика
Ответ на: комментарий от Trieforce

На поведение ai алгоритмы поиска не влияют (для пошаговых игр и если поиск полный). Это очевидно. Это был отвлеченный вопрос по теме.

На поведение влияет стратегия, а ее никакими готовыми алгоритмами не опишешь. Это как в шахматах (тоже, между прочим, пошаговая игра и полным поиском пути :)). Нужно стараться думать на пару шагов вперед. А вот как...

delete83 ★★
()
Ответ на: комментарий от Trieforce

Спасибо, а то я от слова Барселона потерялся. :)

delete83 ★★
()
Ответ на: комментарий от Trieforce

Понимаю ,что уже достал, но еще один вопрос: я так понял из исходников и гуглоперевода правил, что тумана войны тут нет? То есть эта игра с полной информацией? Я вижу всех пакманов и всех привидений и обладаю полной информацией о расположении всех таблеток, еды, грибов, бонусов и молотов?

delete83 ★★
()
Ответ на: комментарий от delete83

[delete83], напомню что до 27 код выкладывать нельзя.

Trieforce
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.