- •Имитационная модель развития конкурирующих этносов на реальном ландшафте
- •1. Исходные уравнения
- •2. Переход к компьютерному моделированию
- •2.1. Описание алгоритма миграции
- •2.2. Конкуренция
- •3. Проведение компьютерногоэксперимента
- •3.1 Начальные условия
- •3.2 Результаты эксперимента
- •3.3 Сравнение результатов
2.1. Описание алгоритма миграции
В предыдущих пунктах были детально рассмотрены все слагаемые правой части формулы , кроме , которое отвечает за миграцию особей. В качестве алгоритма, по которому будет подсчитываться , используем метод размытия изображения по Гауссу (gaussianblur— рис. 1) и некоторые его модификации. Алгоритм удовлетворяет основному требованию моделирования миграции особей: стремлению к экспансии.
Рис. 1. Метод размытия Гаусса
Основа алгоритма в среде программы состоит в следующем: каждый последующий шаг времени (далее итерация) значение клетки поля вычисляется, как средневзвешенное для окрестности в виде квадрата (для непрерывного случая это был бы круг определённого радиуса, но в дискретном приближении достаточно и квадрата со стороной , потеря в точности после 2-3 итераций не наблюдается).Получаем следующую формулу
(3)
где — коэффициент матрицы весов, являющийся соответствующим значением распределения Гаусса:
где — размерность пространства, для двумерного дискретного случая имеем:
При сумма (3) элементов матрицы равна единице, однако, т.к. рассматривается окрестность точки , отлична от бесконечности, необходима перенормировка матрицы. Формула (3) примет следующий вид:
(4)
Таким образом, на пустом поле (без препятствий) особи будут мигрировать согласно этой формуле.
Теперь рассмотрим случай, когда поле миграции связано с ландшафтом. Суть ландшафтной карты в данной модели такова — существуют труднопроходимые участки (например, горы или леса), на которые при прочих равных условиях попадёт меньше особей (другими словами, эти участки являются менее приоритетными) и непроходимые участки (например, океан). Соответственно, вместе с уменьшением числа попавших особей на клетку, замедлится скорость их распространения, что как раз и приводит к неравномерному «пятну», которое мы можем наблюдать на рис. 2.
Рис 2. Миграция с препятствиями
В результате обработки программой изображение переводится в матрицу , где элемент матрицы — соответствующий пиксель изображения. На рис. 3 визуализирована конвертация фрагмента карты в матрицу соответствующих значений.
Рис. 3.Конвертирование фрагмента карты
Произведём замену весов:
Формула (4) примет вид
В рассмотренном случае программе передавалась одна карта, их же может быть любое количество, меняться будет только весовой коэффициент по аналогии с формулой выше.
Рассмотренный метод Гаусса вычисляется за , где и — размеры матрицы. Такое двумерное преобразование может быть приведено к сумме двух одномерных со сложностью каждое. Преобразование допустимо за счёт линейной сепарабельности метода Гаусса (linearlyseparable). Смысл состоит в следующем: сначала одномерным преобразованием проходятся строки матрицы, затем столбцы. Оба методы реализованы в программе (blur2D и blur1D).
Основу логической части выполнения программы составляет следующая схема (рис. 4)
Рис. 4. Схема логической части
где под миграцией понимается logic.Field.migrate(), как вычисление коэффициентов формулы (4), а под конкуренцией —logic.Field.complete(), как вычисление коэффициентов группы «конкуренция» из формулы (2).