Напишем программу ПР-1, вычисляющую по 100-1000 значений xi при различных значениях параметра a, который изменяется от 0 до 4 и выводит результаты на экран в графическом виде. Результат ее работы представлен на рис. 1. Видно, что пока a меньше 3, каждому значению параметра a соответствует одно значение x. Дальнейшее увеличение a приводит к каскаду бифуркаций удвоения периода: сначала одному значению a отвечают два значения x, затем 4, затем 8 и т.д. Последовательность бифуркаций, начинаясь слева, переходит в хаос справа, которому соответствует уже не непрерывная линия, а фрактальное множество точек. Полосы хаоса перемежаются с "окнами периодичности". Программа ПР-1. Рис. 1. Квадратичное отображение.
Программа ПР-2. Рис. 2. Динамика популяции волков и зайцев.
Программа ПР-3. Рис. 3. Зависимость численности популяции от времени.
Допустим, продолжительность жизни рыб и акул равны live_r=8, live_a=12 УЕВ. Каждая рыба (акула) через rogd_r=2 УЕВ (rogd_a=3 УЕВ) может родить одну рыбу (акулу), возраст которой равен 0. Это происходит, когда соседняя случайным образом выбранная ячейка не занята рыбой (акулой). В противном случае (ячейка занята) рождения не происходит из-за перенаселенности. С каждым оборотом цикла возраст всех рыб и акул увеличивается на 1 УЕВ. Когда возраст рыбы (акулы) превышает среднюю продолжительность жизни, то рыба (акула) умирает от старости. Рыбы питаются водорослями и червями, а акулы поедают рыб. Если для какой-то ячейки (i,j), занятой рыбой, количество соседних ячеек, занятых рыбами, больше 6, то эта рыба умирает от перенаселения (недостатка пищи): x[i,j]=0. Если акула не ела в течение t_gol=5, то она умирает от голода. За 1 УЕВ акула может переместиться в одну из 8 соседних ячеек (при этом ее координаты i и j изменяются на 1), либо остатья на месте. Если при перемещении акула попадает в ячейку, занятую рыбой, то она съедает ее. При этом переменная gol[i,j] обнуляется. На каждом временном шаге, когда акула не съела рыбу, величина gol[i,j] увеличивается на 1. Рыба движется медленно и перемещается в соседнюю ячейку за 8 УЕВ. Программа ПР-4. Рис. 4. Дискретная модель совместного существования рыб и акул. Используется программа ПР-4. Сначала случайным образом задается расположение заданного количества рыб и акул и их возраст. Основнм является цикл по времени t Repeat ... until KeyPressed;. В нем рассчитывается: 1) возраст каждой рыбы и акулы; 2) перемещение рыб и акул; 3) рождение рыб и акул; 4) смерть рыб от перенаселенности; 5) смерть от голода. Для вывода изображения на экран используется процедура Draw. Если ее закоментировать и активизировать следующие несколько строчек программы, то на экране будет рисоваться график зависимости численности акул от времени. Рис. 5. Колебания численности рыб и акул с течением времени. При запуске программы ПР-4 на экране появляется двумерная сетка (рис. 4), по которой перемещаются рыбы (зеленые клетки) и акулы (красные клетки). Белый цвет означает, что в ячейке нет ни рыбы, ни акулы. Компьютерная модель позволяет исследовать совместное сосуществование рыб и акул в одной акватории при различных параметрах этой системы. Программа позволяет промоделировать ситуацию, когда акулы, зайдя в область i от 0 до 20, умирают (мелководье или зона охоты). Если уменьшать продолжительность жизни акул, длительность их существования без пищи, увеличивать период появления потомства, то можно добиться того, что акулы вымрут, а рыбы останутся. Можно подобрать такие параметры модели, при которых будут происходить колебания численности рыб и акул (рис. 5). Размножение рыб приводит к росту численности акул, эти процессы инерционны, система проскакивает положение равновесия. Когда акул становится слишком много, они поедают большую часть рыб, им не хватает пищи и часть из них умирают от голода. Уменьшение численности акул приводит к увеличению количества рыб.
В нашей модели роль муравья будет выполнять программный агент, который характеризуется двумя координатами X и Y состоянием S. Разобъем горизонтальную поверхность на ячейки, каждая из которых характеризуется целочисленными величинами x и y, принимающими значения 1, 2, 3, ..., L. Каждый k-ый муравей (k= 1, 2, ..., N) имеет координаты xk и yk. Муравьи могут находится в одном из трех состояниях (S=1, 2, 3). Находясь в состоянии S=1 (поиск), муравьи случайным образом перемещаются по поверхности земли, ища пищу. Наткнувшись на пищу, муравей переходит в состояние S=2 (возврат в муравейник с пищей). При этом он перемещается в сторону муравейника, оставляя за собой феромоновый след. После того, как он достиг муравейника и отдал пищу, муравей переходит в состояние 3 (движение по следу в сторону пищи). Если другой муравей в состоянии поиска S=1 наткнется на феромоновый след, то он также перейдет в состояние 3 и будет двигаться по следу от муравейника. Феромоны с течением времени испаряются, след прерывается. Если муравей, находящийся в состоянии 3, движется по "тропинке" к пище и натыкается на разрыв следа либо теряет его, то он переходит в состояние S=1 (поиск). При этом система не имеет централизованного управления, обмен локальной информацией осуществляется только между отдельными агентами посредством феромона, используется мультиагентный подход. Программа ПР-5. Рис. 6. Термиты ищут дорогу к источникам пищи. Рис. 7. Термиты ищут дорогу к источнику пищи за препятствием. Решение данной задачи позволило разработать муравьиный алгоритм, который является эффективным способом нахождения оптимальных маршрутов на графах. В его основе лежит моделирование поведения колонии муравьев, каждый из которых моделируется программным агентом, работающим в соответствии с некоторыми простыми правилами. Установлено, что с ростом размерности решаемых задач оптимизации эффективность муравьиных алгоритмов повышается. Они применимы к динамически изменяющимся сетям, т.к. за счет испарения феромона происходит перестройка оптимального маршрута. Тексты программ находятся в zip-архиве, файл gl-11.pas. ВВЕРХ
Майер, Р. В. Задачи, алгоритмы, программы / Р. В. Майер [Электронный ресурс]. - Глазов: ГГПИ, 2012 // Web-site http://maier-rv.glazov.net . |