Russian AI Cup

Расширенный поиск  
Страницы: 1 [2]

Автор Тема: А как вы тестируете свои стратегии?  (Прочитано 10354 раз)

Megabyte

  • Jr. Member
  • **
  • Сообщений: 27
Re: А как вы тестируете свои стратегии?
« Ответ #50 : Декабря 11, 2013, 12:52:08 pm »

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

Но это уже слишком. : )
Записан

JustAMan

  • Full Member
  • ***
  • Сообщений: 105
Re: А как вы тестируете свои стратегии?
« Ответ #51 : Декабря 11, 2013, 04:20:20 pm »

С коллегой ещё к CodeTanks написали простой визуализатор, который принимал через сокет некоторые пакеты и умел их рисовать.
В этом году всю рисовку поля сделал со стороны кода своей стратегии через примитивы "линия", "прямоугольник", "круг", "текст" (как-то пакеты "нарисовать танк" и "нарисовать снаряд" не особо пригодились :D)

Добавил параллельный поток, который слушал с клавиатуры и умел визуализировать те или иные "мысли" юнитов.
Кое-какие баги отловить помогло :)

Выглядит так:


Что удобно - работает и при воспроизведении боя через repeater.
Записан

access_denied

  • Sr. Member
  • ****
  • Сообщений: 282
Re: А как вы тестируете свои стратегии?
« Ответ #52 : Декабря 11, 2013, 06:43:49 pm »

Спасибо, по... смотрел на вашу картинку в полном размере, а также на четыре снизу :-)
Записан

CyberWo1f

  • Full Member
  • ***
  • Сообщений: 105
Re: А как вы тестируете свои стратегии?
« Ответ #53 : Декабря 11, 2013, 06:51:27 pm »

ПОпробовал тут написать такой визуализатор на PyQt4. Ну что, смог только нарисовать на форме карту =) Как связать её со своей стратегией знаний категорически не хватает... Хоть бы пример кто выложил =) Надеюсь к следующему соревнованию подготовлюсь основательней =)
Записан

amurushkin

  • Sr. Member
  • ****
  • Сообщений: 189
Re: А как вы тестируете свои стратегии?
« Ответ #54 : Декабря 11, 2013, 07:00:36 pm »

ПОпробовал тут написать такой визуализатор на PyQt4. Ну что, смог только нарисовать на форме карту =) Как связать её со своей стратегией знаний категорически не хватает... Хоть бы пример кто выложил =) Надеюсь к следующему соревнованию подготовлюсь основательней =)
Я так понимаю что отрисовку нужно засунуть в сам метод move.
Записан

pivizz

  • Newbie
  • *
  • Сообщений: 4
Re: А как вы тестируете свои стратегии?
« Ответ #55 : Декабря 11, 2013, 11:09:19 pm »

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

Я лично использовал только 3 вида самого простого тестирования:
1) запустить в раннере против SmartGuy/старой версии и посмотреть вручную, что ходы более менее разумны;
2) запустить пару тысяч боев против предыдущей версии и посмотреть результаты по картам/размеру команд;
3) repeater и дебаггер для отладки примеров идиотского поведения уже залитой на сервер версии.
Записан

santa324

  • Full Member
  • ***
  • Сообщений: 142
Re: А как вы тестируете свои стратегии?
« Ответ #56 : Декабря 12, 2013, 10:32:23 am »

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

access_denied

  • Sr. Member
  • ****
  • Сообщений: 282
Re: А как вы тестируете свои стратегии?
« Ответ #57 : Декабря 12, 2013, 06:08:31 pm »

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

Hohol

  • Full Member
  • ***
  • Сообщений: 101
Re: А как вы тестируете свои стратегии?
« Ответ #58 : Декабря 13, 2013, 12:39:32 am »

Думал как бы визуализировать расчеты своей альфабетты
Таки как тут можно применить альфа-бета отсечения? Казалось бы, они помогают, когда имеется приличная глубина просчета - на несколько ходов вперед. Как здесь просчитывать на несколько ходов вперед? (Я просчитываю примерно на полтора полухода вперед) (Возможно, на вопрос отвечать сейчас не нужно по причине продолжения работы песочницы)
Записан

noop

  • Full Member
  • ***
  • Сообщений: 73
Re: А как вы тестируете свои стратегии?
« Ответ #59 : Декабря 13, 2013, 01:06:12 am »

Таки как тут можно применить альфа-бета отсечения? Казалось бы, они помогают, когда имеется приличная глубина просчета - на несколько ходов вперед. Как здесь просчитывать на несколько ходов вперед? (Я просчитываю примерно на полтора полухода вперед) (Возможно, на вопрос отвечать сейчас не нужно по причине продолжения работы песочницы)
Я тоже был очень озадачен применением альфабеты в игре с неполной информацией и счета на 1-2 полухода у большинства участников. Дойти до счета где-нибудь 4 полуходов можно только с очень жесткими ограничениями перебора, а где гарантия, что враг именно так свой перебор ограничил?
Как вообще применима альфабета, если следующего по очереди юнита не видно, и неизвестно, жив ли он вообще?
Записан

santa324

  • Full Member
  • ***
  • Сообщений: 142
Re: А как вы тестируете свои стратегии?
« Ответ #60 : Декабря 13, 2013, 01:59:38 am »

Таки как тут можно применить альфа-бета отсечения? Казалось бы, они помогают, когда имеется приличная глубина просчета - на несколько ходов вперед. Как здесь просчитывать на несколько ходов вперед? (Я просчитываю примерно на полтора полухода вперед) (Возможно, на вопрос отвечать сейчас не нужно по причине продолжения работы песочницы)
Я тоже был очень озадачен применением альфабеты в игре с неполной информацией и счета на 1-2 полухода у большинства участников. Дойти до счета где-нибудь 4 полуходов можно только с очень жесткими ограничениями перебора, а где гарантия, что враг именно так свой перебор ограничил?
Как вообще применима альфабета, если следующего по очереди юнита не видно, и неизвестно, жив ли он вообще?

Если честно я только догадываюсь почему это работает :).
Глубина погружения для каждого хода вычисляется динамически, алгоритм решает на каждой итерации стоит ли погружаться дальше или лучше разложить другой ход. 
Ни о каких 4х ходах в общем случае речи не идет но отдельные ходы уходят на десяток ходов в глубину. Видимо все волшебство в оценочных функциях...

Вот только что еще одну серьезную ошибку нашел, но что-то ее исправление все ломает :)).
Вспомнился старый анекдот про программиста:  "Ты проверил, это работает? Ничего не трогай! ..."
« Последнее редактирование: Декабря 13, 2013, 02:06:03 am от santa324 »
Записан

DVS

  • Hero Member
  • *****
  • Сообщений: 688
Re: А как вы тестируете свои стратегии?
« Ответ #61 : Декабря 15, 2013, 07:47:15 pm »

Думал как бы визуализировать расчеты своей альфабетты
Таки как тут можно применить альфа-бета отсечения? Казалось бы, они помогают, когда имеется приличная глубина просчета - на несколько ходов вперед. Как здесь просчитывать на несколько ходов вперед? (Я просчитываю примерно на полтора полухода вперед) (Возможно, на вопрос отвечать сейчас не нужно по причине продолжения работы песочницы)
очень многое зависит от реализации, держатель первого места, slash, явно использует альфа бету да и нега скаутом наверняка ее приправил..
но также есть и куча других альфабет которые сливают средним стратегиям.
Записан

santa324

  • Full Member
  • ***
  • Сообщений: 142
Re: А как вы тестируете свои стратегии?
« Ответ #62 : Декабря 15, 2013, 11:00:21 pm »

Думал как бы визуализировать расчеты своей альфабетты
Таки как тут можно применить альфа-бета отсечения? Казалось бы, они помогают, когда имеется приличная глубина просчета - на несколько ходов вперед. Как здесь просчитывать на несколько ходов вперед? (Я просчитываю примерно на полтора полухода вперед) (Возможно, на вопрос отвечать сейчас не нужно по причине продолжения работы песочницы)

Я делал просчеты на 2- 2.5 полных хода вперед в среднем, бывают ситуации когда не успевает 2 хода просчитать, но не часто. Отсекал я ходы с одинаковыми конечными состояниями, правда при этом не рассматриваются различные траектории(следовательно разные разведанные клетки) - но этим пришлось пожертвовать ради глубины.
А вообще глубина просчета плавающая, ходы с большей оценкой имеют приоритет для дальнейшего разложения. В среднем 200-500 разложений за тик, иногда (лабиринт, остался один боец - времени полно) более 2000. Глубина разложения от 1 до 10 ходов в глубину примерно для разных ходов.

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

santa324

  • Full Member
  • ***
  • Сообщений: 142
Re: А как вы тестируете свои стратегии?
« Ответ #63 : Декабря 15, 2013, 11:01:35 pm »

Думал как бы визуализировать расчеты своей альфабетты
Таки как тут можно применить альфа-бета отсечения? Казалось бы, они помогают, когда имеется приличная глубина просчета - на несколько ходов вперед. Как здесь просчитывать на несколько ходов вперед? (Я просчитываю примерно на полтора полухода вперед) (Возможно, на вопрос отвечать сейчас не нужно по причине продолжения работы песочницы)
очень многое зависит от реализации, держатель первого места, slash, явно использует альфа бету да и нега скаутом наверняка ее приправил..
но также есть и куча других альфабет которые сливают средним стратегиям.

Да я тоже обратил внимание что его стратегия как и моя отъедает время на максимуме допустимого, вероятно альфабета :)
Было бы очень интересно узнать как он ее сумел довести до ума.
Записан

DVS

  • Hero Member
  • *****
  • Сообщений: 688
Re: А как вы тестируете свои стратегии?
« Ответ #64 : Декабря 15, 2013, 11:06:32 pm »

вдруг он не доводил а просто свел ее с ума, и добился от нее желаемого?
Записан

Hohol

  • Full Member
  • ***
  • Сообщений: 101
Re: А как вы тестируете свои стратегии?
« Ответ #65 : Декабря 15, 2013, 11:07:10 pm »

А вот мне что-то подсказывает, что никакой альфа-беты у слеша нет)
Записан

DVS

  • Hero Member
  • *****
  • Сообщений: 688
Re: А как вы тестируете свои стратегии?
« Ответ #66 : Декабря 15, 2013, 11:55:37 pm »

А вот мне что-то подсказывает, что никакой альфа-беты у слеша нет)

на самом деле неважно, что там на самом деле.. важно  другое..
Записан

access_denied

  • Sr. Member
  • ****
  • Сообщений: 282
Re: А как вы тестируете свои стратегии?
« Ответ #67 : Декабря 16, 2013, 07:56:18 am »

А вот мне что-то подсказывает, что никакой альфа-беты у слеша нет)

на самом деле неважно, что там на самом деле.. важно  другое..
Заинтриговал :-)
Записан
Страницы: 1 [2]