Я впервые пытаюсь реализовать метод совместной диффузии, и у меня возникла проблема. Я понимаю, как создавать препятствия, не распространяющие запахи, и как ослаблять запах других дружественных агентов, если один из них уже преследует его. Что я не могу понять, так это как я делаю ароматы, чтобы равномерно распределять их в матрице. Мне кажется, что каждый способ итерации в матрице определяет запах для более быстрого и лучшего распределения в плитках, которые я проверяю позже в итерации. Я имею в виду, что если я буду выполнять итерацию от i до maxRows и от j до maxCols, а затем я применю уравнение диффузии в каждом тайле, то с «северной» и «западной» стороны цели у меня будет только один тайл с правильным потенциалом, тогда как в с «восточной» и «южной» стороны у меня их будет больше, поскольку их соседи уже имеют назначенный потенциал. Как сделать так, чтобы значения распределялись равномерно? Двойная итерация как от конечностей матрицы, так и от их объединения результатов выглядит как пожиратель памяти, как и целенаправленный подход, поскольку, если я попытаюсь начать с целей и обойти их, мне придется выполнить вычисления для каждая цель и каждый тайл с назначенным потенциалом, что означает, что мне придется делать это в течение 4 ^ (ход с момента начала распространения) * nrOfGoals больше каждый ход, что кажется неэффективным в большой матрице с большим количеством целей.
Мой вопрос заключается в том, как эффективно распределить значения в матрице равномерно. Я использую муравьев AiChallenge, если это поможет!
Я благодарю вас в ожидании и извиняюсь за грамматические ошибки, которые я допустил в этом посте.