LeChat
Понедельник, 03 Ноября 2003, 12:45
У меня давно родилась идея сделать калькулятор, прогнозирующий результат сражения в MTW исходя из характеристик отрядов. Сделать просто шкалу полезности отряда бесполезно, т.к. могут быть несколько отрядов, один из которых сильнее другого но слабее третьего. В итоге сильнейшего нет и на шкале такую ситуацию отразить невозможно.
То есть силу войск имеет смысл оценивать в паре против кого то, а не саму по себе. Сила - понятие относительное.
У меня есть возможность реализовать такую вещь в виде нейронной сети и отгрузить ее в C или VB файл. Будет функция, у которой параметры - исходные параметры отрядо а выход - прогноз вероятности победы. Нужна статистика. Определенную статистику (для пехоты, скажающейся не в несколько рядов) я уже набрал и первую сеть построил. Результаты получились довольно приличными, например, при построении сети я не использовал параметры билмэнов и англо-саксонцев. Но несмотря на это сеть выдала точно 60% мы 40% вероятность победы. Естественно и все данные типа гази vs византийская пехота сеть априори отражает с той точностью, с какой эти данные снимали. А для неизвестных параметров она строит прогноз.
Такую сеть можно встроить в тюнер или редактор. Прогноз строится о вероятности победы и о предполагаемых потерях.
Статистики о разных копейщиках и о кавалерии у меня пока нет - нет времени делать. После того, как она появится, я могу сгенерить функцию на языке программирования примерно в течение 2 дней.
Вопрос - интересно ли это? Кто нибудь может помочь собрать статистику? (Посталкивать на равнине отряды лоб в лоб и записывать результаты)? Если да, то я тут опишу что надо делать и выложу шаблон куда заносить данные. Кому интересно, могу выложить уже сгенеренную формулу (там пока не учитываются бонусы многорядности и кавалерии). Но формула занимает 400 кб текста. Так что вызывать ее легко, а вот разбираться или переводить на другие языки программирования практически нереально...
Aleksander
Понедельник, 03 Ноября 2003, 13:43
2 LeChat:
Дело хорошее. Но тогда нам нужна большая выборка. Если тестить то каждый случай хотя бы раз по пять. И записывать результаты. В свое время немного увлекался подобным тестированием. Помочь поднабрать статистику могу. Вопрос действительно имеет ли эта затея практическую ценность? Ведь результат сражений больших армий зависит от кучи факторов и предсказать погоду, местность, тактику сторон и силу игрока имхо непросто.
LeChat
Понедельник, 03 Ноября 2003, 14:15
2 Aleksander:
Я сейчас набрал 12 разных испытаний по 6 опытов. Итого 72 стычки. Естественно оценить с учетом реальных параметров невозможно - отсутствует куча факторов. Поэтому и спрашивал - стоит ли этим заниматься?
Chernish
Понедельник, 03 Ноября 2003, 14:44
2 LeChat:
Для Европы Универсалис эмулятор битв делал Сергей Пименов - это была неоценимая штука для планирования в Мультике

Для МТВ такое много сложнее - но если что то выйдет - будет интересно многим
LeChat
Понедельник, 03 Ноября 2003, 14:59
2 Chernish:
То, что есть сейчас, позволяет прогнозировать битвы некопейной пехоты на ровной местности без маневров и построений при лобовом чардже. Учитываются базовые чардж, защита, атака, мораль, броня, тип щита, дисциплинированность, степень использования щита, бронебойность. Плохо учитывается размер отряда - все отряды по 60 рыл - выборка нерепрезентативна. Планируется включить многорядность, защиту от кавалерии, атаку на кавалерию и тип войск (кавалерия/пехота).
При обучении использовал параметры виз. пехоты, гази, бердышменов, феодальных пеших рыцарей, алебардщиков, русских ратников, шведских рыцарей, княжеского ополчения.
Можно смоделировать все ситуации, но у нас не хватит статистики учесть все. Сейчас реально учитываются 3 десятка переменных. Нет проблем увеличить их до 3 сотен. Т.е. теоретически - возможно. Практически - нет.
Aleksander
Вторник, 04 Ноября 2003, 5:31
| QUOTE (LeChat @ там) |
| Я сейчас набрал 12 разных испытаний по 6 опытов. Итого 72 стычки. Естественно оценить с учетом реальных параметров невозможно - отсутствует куча факторов. Поэтому и спрашивал - стоит ли этим заниматься? |
В принципе мне это было бы интересно. Скажи какие параметры и юниты. На праздники могу немного потестировать.
LeChat
Вторник, 04 Ноября 2003, 8:34
Ну собственно вот. Параметры стороны a (она же первая, она де сторона игрока) прокомментированы. Параметры стороны d аналогичны. Берутся любые отряды - по желанию. Сталкиваются на поляне на карте айзенкура (вторая сверху). Условия - чтобы небыло дождя, снега, пустыни. Я предпочитаю тестировать на arid. Отряды без изменения строя и маневров сталкиваются лоб в лоб. Я подводил их пешком а в конце давал команду бежать. Чтобы был обоюдный чардж. Бой засекается до полной победы одной из стороны. Снимаются параметры cas a - потери вашей стороны. cas d - потери компа. wi : 1 - победа первой (вашей) стороны. 2 - победа компа.
Желательно проводить несколько боев - я проводил 6. И все заносятся в таблицу. Желательно сталкивать побольше близких по характеристикам войск, чтобы побеждали обе стороны. Кроме того полезно сталкивать совершенно разноплановые войска. И категорически желательно сталкивать войска, отличающиеся небольшим числом параметров, чтобы сеть определяла на что влияют эти самые параметры.
Категорически нежелательно маневрировать на поле боя, игнорировать какие то опыты (делать избирательную статистику).
МОжно проводить по нескольку опытов, но ручше уж по 6, как я начал.
Допустимо и даже полезно тестировать отряды с одинаковыми характеристиками кроме одной. Можно свои собственные отряды. Нельзя наращивать отрядам честь, оружие или защиту.
Сеть пока научена кое как на пехоту. Больших ляпов уже не делает и выдает прогнозы довольно уверенно. Но нет предела совершенству

О том что такое конница и бокусы работы с ней сеть не знает абсолютно.
Думаю в праздники сделаю первую версию и выложу в понедельник. Но и после этого любая статистика будет полезна - сеть доучивается легко, хоть и довольно долго.
Aleksander
Вторник, 04 Ноября 2003, 8:55
2 LeChat:
Лады попробую в праздники погонять тяжелую кавалерию на указанных условиях.
LeChat
Вторник, 04 Ноября 2003, 8:58
2 Aleksander:
Да можно и легкую. Тем более друг против друга и против легкой пехоты. Вот только просьба - если будешь гонять стрелковую кавалерию - не давай ей стрелять. А против себя стрелков не ставь. Для чистоты экскремента
Engineer
Вторник, 04 Ноября 2003, 11:32
2 LeChat:
| QUOTE (LeChat @ там) |
| Вопрос - интересно ли это? |
Интересно, разумеется! Но мне кажется, что практическая применимость твоей проги будет ограничена очень простыми вещами:
1. - Опытом конкретного игрока. Тут немало монстров, но зелёный игрок в состоянии продуть и выигрышную битву.
2. - Нежеланием большинства пользователей учить твою сеть. Т.е. работать она будет по тем данным, которые Вы нароете с Алекандером.
Вот если бы такая сеть могла обрабатывать статистику отрядов по реальным логфайлам конкретного игрока! Тогда, сам посуди, во-первых есть сотни уже готовых комбинаций отрядов, учитывающие предпочтения в составе войск именно этого игрока. Во-вторых приличная статистика по разным типам отрядов, влиянию звёзд генералов, опыта и тому подобные вещи. Думаю, что если на сделанную Вами модель взаимодействия, удастся накладывать некоторую функцию - профиль пользователя, то точность предсказания может существенно возрасти.
А то знаю я Вас, манчкинов,
- если дать Вам чуть больше чем пару отрядов драных пизантов, то результат битвы ясен и без нейронной сети.
А сделав такой тюнинг, можно будет приаттачить прогу к логфайлам конкретного игрока, встроив её, например, в лог-вьювер. Представляешь какой кайф - разместить на сервере twow каждому свой текущий обьективный рейтинг, по результатам двух сотен последних битв, например! Это уже и интересно и увлекательно. А главное, не потребует от пользователя никаких усилий. А то я вот, даже прочитав в своё время пяток статей и прослушав курс лекций по нейронному программированию совсем не уверен, что пойму что-либо в твоей формуле.
Если найдешь способ на основе выработаных тобою "чистых" критериев оценивать конкретного игрока, можно будет рейтинги завести, - не хуже шахматных. Хотя компьютер и тупой, но вот в сетевой игре.... эээээ, - что-то я замечтался.
LeChat
Вторник, 04 Ноября 2003, 11:44
2 Engineer:
А в формуле ничего подставлять не надо. Проектируешь новый тип войск. И сравниваешь с существующими. Кто сильнее - сержанты милиции или негры с топорами? Нубийцы или пикинеры? Могут ли бердышники порвать рыцарей? формула по параметрам даст вероятность
Aleksander
Вторник, 04 Ноября 2003, 13:19
2 LeChat:
Хочу уточнить два момента.
1. Уровень сложности теста
2. Тест 6 раз за каждую сторону или 3 раза скажем за гассо и три за ментов сержантов(исключительно для чистоты экспиремента, маневры своим отрядом ессно исключены).
LeChat
Вторник, 04 Ноября 2003, 13:25
2 Aleksander:
1) Уровень сложности - нормал. А то помехи будут внесены. Дополнительную мораль потом всегда можно учесть, прибавив 4 к базовой морали.
2) В идеале неважно. Так что я ставил себя защищающейся стороной, противник шел в атаку и я шел в атаку. Так что можно за одну сторону 6 раз. Если не лень, то можно и больше шести.
Я в выходные постараюсь сделать форму с удобоваримым интерфейсом. Потом если понравится - с набором статистики буду перестраивать сеть, оставив основную форму.
Aleksander
Вторник, 04 Ноября 2003, 13:38
2 LeChat:
Отлично. Я при тестировании поступал примерно также. Сегодня дома хотя бы на интерфейс гляну.
LeChat
Вторник, 04 Ноября 2003, 13:47
2 Aleksander:
А сейчас интерфейса и нет. Просто колонки цифр с заголовком. Лучше еще подписывать кого именно тестировали. Но это необязательно - по крайней мере в сеть не пойдет

Интерфейс же будет для расчета по сети. Пока я обхожусь без него - у меня инструмент позволяет тестировать сеть, а уж потом отгружать ее в виде VB или C кода. Вот этот код и положу под интерфейс.
LeChat
Понедельник, 10 Ноября 2003, 11:11
Sorry за задержку. Первую версию калькулятора сделал, но забыл дома флэш-ридер, так что нечем флэшку прочитать
LeChat
Четверг, 20 Ноября 2003, 9:29
Камрады! Поможите, люди добрые!
Я сделал калькулятор дома - в английском офисе XP. Считает пехоту, причем довольно прилично. Прогнозы на вопросы типа абимминцы vs сержанты милиции или билмэны vs алебарды, например, выдает отлично. ИМХО это не каждый на глазок спрогнозирует. Экспортнул его в 95, и макросы улетели в мастдай. А на работе офис 2000 русский.
Не подскажете, как сделать макросы, чтобы они воспринимались разными экселями? Всего лишь надо кнопку с приязанным вызовом функции. Функция уже есть в отдельном модуле. Но чтобы это работало в русском и английском, в XP, 2000 и 95 офисах... Или если не кнопку - то что?
Kirill
Четверг, 20 Ноября 2003, 10:25
2 LeChat:
В 95 скорее всего не получится. В 97, 2000, XP напротив, должно работать как часы.
LeChat
Четверг, 20 Ноября 2003, 10:53
2 Kirill:
Ну попробую восстановить и отгрузиться в 97. Хотя вроде в 95 кнопочки Васиковские были.
А с русскими и английскими названиям методов, реагирующих на нажатие кнопок геморра не должно быть?
Kirill
Четверг, 20 Ноября 2003, 11:09
2 LeChat:
Советую от русских названий избавиться совсем, а то в английской версии ни хрена пахать не будет.
LeChat
Четверг, 20 Ноября 2003, 11:20
2 Kirill:
А на что же вешать выполнение команды? События автоматом по русски прописываются...
LeChat
Понедельник, 24 Ноября 2003, 11:09
Ну собственно вот. Пока только для пехоты. Сеть не очень большая - наберу еще статистики - повышу точность. Хотя точность уже достаточно приличная.
К сожалению пока только для русского экселя.
Найдете ляпсы в прогнозах - пишите. Буду доучивать. Я особых просчетов не нашел, и даже довольно сложные варианты типа сержанты милиции vs газийцы считаются корректно.
Folk
Понедельник, 24 Ноября 2003, 11:37
2 LeChat:
Нельзя ли еще инструкцию для тупых?

У меня в Exel видны три листа - два чистых, на третьем табличка с параметрами отрядов, огромной кнопкой вычислить и числом сверху. Число, как я понимаю, характеризует вероятность победы одной из сторон. После заполнения таблицы и нажатия кнопки у меня открывается симпатичный листинг на VB.
И все. Офис русский, 2000.
LeChat
Понедельник, 24 Ноября 2003, 11:47
| QUOTE (Folk @ Nov 24 2003, 14:37 PM) |
2 LeChat: Нельзя ли еще инструкцию для тупых? У меня в Exel видны три листа - два чистых, на третьем табличка с параметрами отрядов, огромной кнопкой вычислить и числом сверху. Число, как я понимаю, характеризует вероятность победы одной из сторон. После заполнения таблицы и нажатия кнопки у меня открывается симпатичный листинг на VB.
И все. Офис русский, 2000. |
Атака, защита, мораль и пр. - просто их значения из таблицы. Число поддержки рядов, число убийств для повышения ранга - тоже понятно.
Данные из списков об организованности, морали, щите - номер позиции в списке Инженера. Например у него последовательно про щит: NONE, SMALL, LARGE, CAV, PAVISE. Кавалерийский и павиза не тестировался. Номера обозначают: 0-NONE, 1-SMALL, 2-LARGE, 3-CAV, 4-PAVISE. Про организацию и дицциплину то же самое. Но учесть, что в списке первый индекс - пусто. Т.е. ничего не указано - 0. и дальше 1, 2, 3.
Пирсинг 1 - если есть. 0 - если нет.
Бонус щита почти у всех 1. У алебард 0.5.
Щит в рукопашной не используют только тяжелые янычары.
Защиту и атаку на кавалерию не включал, т.к. пока кавалерию не учитывал. Сделаю пехоту, потом добавлю и кавалерийские параметры.
Убить для повышения ранга - почти у всех - 1. У газийцев вроде 2. Чем ниже, тем лучше. Тем быстрее юниты набирают честь.
Огромная кнопка именно для того, чтобы не возникало вопросов что нажимать. Потом доведу интерфейс до ума.
В табличке параметры (кажется гази и арабская пехота). Меняешь параметры в табличке, жмешь на кнопку, вываливается прогноз на победу (в мессаг боксе). Число для теста. Чем ближе оно к 1, тем больше вероятность победы 1 стороны. Чем ближе к двойке - второй.
Непонятно, почему вываливается листинг на VB. У меня дома и на работе работает нормально. Офис дома XP, на работе 2000. Оба русские. Больше проверить негде. Буду смотреть.
Вообще для вычисления достаточно просто дернуть функцию Calc. Посмотри - может у тебя отключено выполнение макросов? Или включен пошаговый режим? Вот и вываливается - пытается отладить....
Folk
Понедельник, 24 Ноября 2003, 12:12
2 LeChat:
Угу. Сорри. Оказывается, в 2000, макросы по умолчанию отключены.
Folk
Понедельник, 24 Ноября 2003, 13:47
| QUOTE (LeChat @ Nov 24 2003, 14:47 PM) |
|
А какие допустимые значения? Я выставил такие
Folk
Понедельник, 24 Ноября 2003, 13:49
И получил такой ответ
LeChat
Понедельник, 24 Ноября 2003, 14:06
Глюк потому, что броня = 0. Я не нашел юнитов с нулевой броней, и сеть не знает что это такое. Даже у газийцев броня 1. То же самое касается чарджа - он всегда больше 0.
Защита и атака могут быть больше, меньше и равны 0 - пример-копейщики. И это отработается корректно.
А вообще я не описал этого потому, что сам не знал. И изначально ограничений не накладывал - алгоритм сам отработал

Вот только сейчас проверил и дошло. Просто во всех баталиях не было прецедентов, чтобы у когото была броня и натиск меньше 1. Видимо поэтому они отнормировались по другому алгоритму. Если такие юниты появятся, я переделаю нормирование этих переменных.
Sturm LS
Понедельник, 24 Ноября 2003, 15:25
2 LeChat:
Вообще-то, вы все сделали очень правильно - в самой игре броня это знаменатель дроби, при попытке сражаться юнитом с нулевой броней игра "летит" в винды с ошибкой "деление на ноль". В игре нет ни одного боевого юнита с нулевой броней.
А сеть-то оказалась слишком умная

ВНИМАНИЕ!!! Искуственный Интелект проявил себя ...
LeChat
Понедельник, 24 Ноября 2003, 15:32
2 Sturm LS:
Ну тогда все круто. Я даже не ожидал, что такая фишка получится. Специально этих параметров я не задавал и не правил

Но сеть я в любом случае еще буду перестраивать - сделаю побольше и потренирую подольше. Будет точнее.
А так она на первых же тестах начала предсказывать точнее чем я, даже для юнитов, на которых не училась

Еще коняшек сделаю и интерфейс нормальный. Еще подумываю смоделировать бой в лесу. В лесу не действует чардж, многорядность, кавалерия дерется хуже.
Ну и видимо добавлю модификаторы улучшения чести, защиты и атаки.
Повторюсь, что сейчас считает при лобовом чардже. Т.е. для юнитов с большим чарджем и слабой защитой - горцы, гази это достаточно важно.
Folk
Вторник, 25 Ноября 2003, 7:37
2 LeChat:
Да интерфейс то ладно. а вот если бы параметры не только руками можно было бы вбивать, а еще и выбирать стандартные юниты из списка, то ошибки пользователей типа нулевой брони были бы исключены автоматически.
LeChat
Вторник, 25 Ноября 2003, 9:09
2 Folk:
И где бы такой список взять?
Folk
Вторник, 25 Ноября 2003, 9:30
2 LeChat:
Так у уважаемых мододелов наверняка есть. Если я ничего не путаю, камрады XCB и Kirill обсуждали экспорт данных из тюнера то ли в Excel, то ли в Access. Или нет?
xcb
Вторник, 25 Ноября 2003, 10:36
2 LeChat:
Прислать?
LeChat
Вторник, 25 Ноября 2003, 10:49
2 xcb:
Конечно. Если можно, с разблядовкой по полям. А то писать анализатор строк совершенно нет времени.
xcb
Вторник, 25 Ноября 2003, 10:56
| QUOTE (LeChat @ там) |
| с разблядовкой по полям. |
Че, такое?
Черкни письмо, какие поля, какие юниты (у меня РЭ юнитов еще нету)?
А также в каком формате (Word2000? Excel2000? Access2000)?
Игорь
Вторник, 25 Ноября 2003, 12:27
2 LeChat:
А как забивать целую армию?Челов по 1000 с каждой стороны?Ведь,не будем же суммировать поотрядно - этот победил,а этот нет.Как в таком случае быть?
LeChat
Вторник, 25 Ноября 2003, 12:30
2 xcb:
По полям - значит каждое число в своем поле. А то там в каком то варианте все было через запятую одной строкой (чардж,атака,защита ... и т.д.). Не хочется вычищать глюки csv.
Формат - лучше access. Я его правда все равно в Excel закатаю, но хотя бы проблем с типизацией не возникнет. А то как начнут цифры представляться символами вместо чисел...
Прямо сюда и выкладывай.
Поля:
Чардж, атака, защита, базовая мораль, дисциплина, организованность, пирсинг, тип щита, использование щита, бонус щита, число шеренг поддержки, бонус атаки на кавалерию, бонус защиты от кавалерии, число рыл в отряде, число убийств для повышения чести, тип (пехота/кавалерия/верблюды), название юнита.
Вот вроде все основные поля, влияющие на бой.
LeChat
Вторник, 25 Ноября 2003, 12:33
2 Игорь:
А это уже не спрогнозируешь. Никакой статистики не хватит. А моделировать поотрядно - бессмысленно. Все зависит от тактики. Если у кого есть идеи - пишите. У меня идей по моделированию боев больших армий нет.
Игорь
Вторник, 25 Ноября 2003, 12:40
2 LeChat:
Но смотри,ведь комп как-то считает потери,когда битва автокомбатом идет.Причем,как известно,считает тупо - у кого народу больше(при прочих равных условиях - звезды,валор,мораль,броня и пр.),тот и победил.Даже,если у тебя одни пизанты.Выходит,калькулятор в игре забит.
LeChat
Вторник, 25 Ноября 2003, 13:07
2 Игорь:
Угу. И кому будет хорошо от такого калькулятора? Будет он принимать на входе количество человек у воюющих сторон и вываливать пропорции... Но человек то играет совсем по другому! Ему же небезразлично что у него в армии. А если так, то каким образом заложить в модель характеристики юнитов, с учетом того, что они в разных модах постоянно меняются?
Нынешний калькулятор от мода не зависит. Его можно использовать и в моде про грецию, и про наполеона! Просто характеристики разные. А в баталии это учесть ИМХО невозможно.
Aleksander
Вторник, 25 Ноября 2003, 13:32
Сорри за задержку. Пока разобрался с таблицей, пока лом ломыч мучал. В общем для первого раза чивалрики с различной тяжелой кавалерией. Проверь главное все ли правильно понято(неясно с типом армии и не совсем с дисциплиной и организованностью). Материалу натестил много буду потихоньку заполнять поля и сбрасывать.
LeChat
Вторник, 25 Ноября 2003, 13:50
2 Aleksander:
Угу. Спасибо. Значит скоро в калькуляторе появится кавалерия.
Я буду постепенно доращивать сеть. А потом перестрою, когда статистики станет достаточно много.
xcb
Среда, 26 Ноября 2003, 2:55
| QUOTE (LeChat @ там) |
| Угу. И кому будет хорошо от такого калькулятора? |
Расчет автобоя.
файл - Access 2000, если чего непонятно, спрашивай.
Игорь
Среда, 26 Ноября 2003, 11:45
2 xcb:
Ничего не понял.Куда-чего заполнять?
LeChat
Среда, 26 Ноября 2003, 11:53
2 Игорь:
А тебе ничего не нужно заполнять. Это я вставлю эти данные в калькулятор, чтобы руками стандартные юниты не забивать.
Игорь
Среда, 26 Ноября 2003, 12:05
2 LeChat:
А,понял.Большое дело делаешь.

С меня стакан розового
Aleksander
Понедельник, 15 Декабря 2003, 13:30
Вот вроде подкрепилось наконец-то. Чивалрики с основными противниками и еще кое-что.
LeChat
Понедельник, 15 Декабря 2003, 13:36
2 Aleksander:
Спасибо! Не могу скачать файл. Какие то глюки. У тебя нормально скачивается?
Aleksander
Понедельник, 15 Декабря 2003, 13:40
2 LeChat:
Только что отлично скачался. Да к слову рарил его в 3.20. В 2.80 или 2.90 может не открытся, будут проблемы сообщи.
Это архивная версия.
Здесь расположена полная версия этой страницы.