Модель Лотки-Вольтерра или Хищник-Жертва в GPSS World на языке программирования PLUS
Модель Лотки-Вольтерра основана на дифференциальном уравнении:
x — число жертв (например, кролики);
y — число хищников (например, лисы);
α — скорость роста популяции травоядных;
β — скорость, с которой хищники охотятся на травоядных;
δ — скорость, с которой хищники рождаются из охоты на травоядных;
γ — скорость убывания популяции хищников.
α, β,γ,δ — коэффициенты.
Эти уравнения описывают, как численность жертв и хищников меняется со временем в результате взаимодействия между ними. Решая эти уравнения, можно предсказать, как будет изменяться численность обеих популяций в течение времени.
Данную модель Хищник-Жертва можно применять для оценки численности популяции, например, волк-заяц, кошка-мышь, щука-плотва и другие.
Запишем листинг программы «Хищник-Жертва»
Predator EQU 100; Численность хищников на начальном этапе моделирования
Extraction EQU 1000; Численность добычи на начальном этапе моделирования
K_predator_fertility EQU 0.4000; Коэффициент скорости прироста рождаемости хищника
K_predator_death EQU 0.0200; Коэффициент скорости гибели хищника
K_predator_hunt EQU 0.0005; Коэффициент эффективности охоты хищника на добычу
K_extraction_fertility EQU 0.1000; Коэффициент скорости прироста рождаемости добычи
Predator INTEGRATE (Predator_increment())
Extraction INTEGRATE (Extraction_increment())
GENERATE 1000
TERMINATE 1
PROCEDURE Predator_increment() BEGIN
TEMPORARY Day_increment, Day_fertility, Day_death;
IF (Predator > 999999) THEN Predator = 999999;
IF (Predator < 0) THEN Predator = 0;
Day_fertility = K_predator_fertility # K_predator_hunt # Predator # Extraction;
Day_death = K_extraction_fertility # Predator;
Day_increment = Day_fertility — Day_death;
RETURN Day_increment;
END;
PROCEDURE Extraction_increment() BEGIN
TEMPORARY Day_increment, Day_fertility, Day_death;
IF (Extraction > 999999) THEN Extraction = 999999;
IF (Extraction < 0) THEN Extraction = 0;
Day_fertility = K_extraction_fertility # Extraction;
Day_death = K_predator_hunt # Predator # Extraction;
Day_increment = Day_fertility — Day_death;
RETURN Day_increment;
END;
Как построить график в GPSS World см. здесь.