
- •Имитационная модель развития конкурирующих этносов на реальном ландшафте
- •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).