Я отправляю это в StackOverflow, cstheory.stackexchange.com и math.stackexchange.com, потому что я не совсем уверен, где он лучше всего подходит. Надеюсь, все в порядке.Определение оптимального скоринга на вероятностно представленной двумерной сетке в реальном времени
У меня есть 2D-сетка (размер зависит от каждой карты, от 10X10 до 20X20, обязательно квадрат), где каждая ячейка содержит, между прочим, вероятность (от 0 до 1), что каждая единица (от 10 до 50 в зависимости от карты) находится в этом месте.
Существует 2 основных типа единиц, есть большие единицы, поведение которых контролируется алгоритмом, которым вы, надеюсь, собираетесь помочь мне, и есть небольшие единицы, которые могут двигаться или иметь свое (булево) состояние изменено с помощью больших единиц. Все подразделения принадлежат командам, но любой большой блок может перемещать любую маленькую единицу. Матч определяется как положением, так и по статусу меньших единиц. Каждый блок знает свои собственные координаты.
Очки назначаются за то, что они имеют небольшую единицу в любом из указанных ячеек, причем бонусы присуждаются за количество соседних ячеек, занятых - примечание смежности не обязательно означает смежные координаты ячейки и будет определяться на карту.
У меня уже есть система отслеживания, так что это не проблема и не вычисляет затраты времени на перемещения, хотя это следует назвать минимально по соображениям производительности.
Мое намерение состоит в том, чтобы система планирования выводила последовательность желаемых состояний/действий. Например, будьте на (9,4) под углом 43 градуса, а затем на (12,4) на 12 градусов и включите малый блок.
Я пытаюсь определить оптимальные ходы для каждого из ~ 5 конкурирующих основных блоков, чтобы оптимизировать конечную позицию своей команды, когда закончится время. У единиц есть моделируемые датчики, которые заполняют вероятностные позиции, поэтому сбор информации является допустимым шагом.
В идеале алгоритм будет выглядеть несколько шагов вперед и рассматривать такие вещи, как то или иное конкретное движение, позволяющее вам выполнить следующее движение - эта «доброта» позиции будет просто инверсной стоимость транспортировки.
Производительность здесь довольно важна, и я вполне могу согласиться торговать качеством решения для значительного повышения производительности.
Вот мои мысли до сих пор:
Наиболее полное решение будет исчерпывающий поиск, но производительность исключает это.
Я должен рассчитать значение каждого разумно вероятного текущего состояния, чтобы я мог определить, какая информация важна для выяснения.
Продолжительность работы на единицу времени на среднем современном ПК должна быть < = 25 мс, если возможно - не установлена в камне - это C++, так что это довольно быстро.
Адаптация шахматного алгоритма может быть хорошим подходом.
Я плохо разбираюсь в этом, я должен спросить интернет.
Лучший подход почти наверняка будет оценкой.
Если есть вероятность 10%, что ход будет в 20 раз больше, чем любой другой, то это стоит того, чтобы риск - если другой ход в значительной степени не гарантирует хорошую финишную позицию и время почти отсутствует.
Мой вопрос просят несколько подробней.
Я чувствую, что до сих пор у меня было больше мыслей, но я не могу для жизни меня думать, что это такое.
Этот последний пункт рифмован.
Если вы все еще читаете это, я могу согласиться выйти за вас замуж.
Хотя было бы замечательно, если бы кто-нибудь предложить полное решение этой проблемы, я абсолютно готов принять любую помощь/советы я могу получить и принять ответ, который получает мне дальше всех, однако далеко или нет. Меня интересует алгоритм, а не код, с которым я могу справиться, потому что сейчас я большая девочка.
Вы решили более простые проблемы раньше, например [oware] (http://en.wikipedia.org/wiki/Oware)? Если вы этого не сделали, вы просто пытаетесь паркурить, прежде чем сможете ползать. – Beta
У меня нет опыта работы с проблемами планирования вообще, нет. Ваша оценка, что я прыгаю с ней в глубоком конце, абсолютно точная, хотя я как бы предаюсь этому, решив это прямо сейчас - не знаю, что я знаю. Спасибо, что нашли время, чтобы прочитать этот беспорядок! – Melissa
Сколько времени у вас есть, и насколько хороши вы в математике? – Beta