Имитационная модель «Синхронизация светлячков» в среде моделирования NetLogo
Безирова Амина
г. Химки, МБОУ Лицей №11, класс 3-В
Учитель:
Построена имитационная модель группового поведения светлячков (синхронизация их мерцаний) с помощью среды программирования NetLogo. Проведено компьютерное моделирование для различных параметров модели. Показано как размер популяции светлячков влияет на скорость синхронизации.
Ключевые слова: имитационные модели, искусственная жизнь, светлячки, синхронизация, Netlogo.
Введение
Модель – это упрощенный аналог реального объекта или явления, представляющий законы поведения входящих в объект частей и их связи. Построение модели и ее анализ называется моделированием. В научной работе моделирование является одним из главных элементов научного познания.
Имитационное моделирование – это разработка и выполнение на компьютере программы, отражающей структуру и поведение моделируемого объекта или явления во времени. Имитационная модель – это упрощенное подобие реальной системы. В нашей работе мы применяем принципы имитационного моделирования для исследования группового поведения семейства светлячков.
О светлячках
Светлячки (семейство жучков Lampyridae, более 2000 видов) знамениты своей способностью испускать в темноте мягкий фосфоресцирующий свет. Коэффициент полезного действия «фонариков» светлячков необыкновенно высок. Если в обычной электрической лампочке в видимый свет превращается около 5% энергии (а остальная рассеивается в виде тепла), то у светлячков в световые лучи переходит от 87 до 98% энергии. Процесс свечения находится под нервным контролем. Многие виды способны по своему желанию уменьшать и увеличивать силу света, а также испускать прерывистый свет.
Звёздочки, светящиеся под ногами, в кронах деревьев или барражирующие почти над самой головой в тёплом ночном воздухе - зрелище поистине волшебное. Но это далёкое от науки определение не может удовлетворить учёного, который стремится познать физическую природу всякого явления окружающего мира.
Раскрыть тайну «его сиятельства» жука-лампирида - такую цель поставил перед собой французский физиолог XIX века Рафаэль Дюбуа. Для решения этой задачи он отделял органы свечения от брюшка насекомых и растирал их в ступке, превращая в светящуюся гомогенную кашицу, затем подливал немного холодной воды. «Фонарик» светил в ступке ещё несколько минут, после чего гас.
Когда учёный добавлял в кашицу, приготовленную тем же способом, кипяток, огонёк потухал мгновенно. Однажды исследователь на пробу соединил содержимое «холодной» и «горячей» ступок. К его изумлению, свечение возобновилось! Дюбуа оставалось только объяснить с точки зрения химии такой неожиданный эффект. Крепко поломав голову, физиолог пришёл к выводу: «живую лампочку» «включают» два разных химических вещества. Учёный назвал их люциферин и люцифераза. При этом второе вещество каким-то образом активизирует первое, заставляя его светиться.
В «холодной» ступке свечение прекратилось, поскольку кончился люциферин, а в «горячей» - потому что под действием высокой температуры разрушилась люцифераза. Когда содержимое обеих ступок соединили, люциферин и люцифераза снова встретились и «засияли».
Дальнейшие исследования подтвердили правоту французского физиолога. Более того, как выяснилось, химические вещества типа люциферина и люциферазы присутствуют в светящихся органах всех известных видов жуков-лампиридов, живущих в разных странах и даже на разных континентах.
Разгадав феномен свечения насекомых, учёные со временем проникли и в другой секрет «сиятельных особ».
Как рождается синхронная светомузыка? Изучая световые органы «огненных» букашек, исследователи установили, что нервные волокна связывают их с глазами светлячков.
Работа «живой лампочки» напрямую зависит от сигналов, которые получает и обрабатывает зрительный анализатор насекомого; последний, в свою очередь, подаёт команды на световой орган. Конечно, один жук не может охватить взглядом крону большого дерева или пространство поляны. Он видит вспышки сородичей, находящихся с ним рядом, и действует с ними в унисон.
Те ориентируются на своих соседей и так далее. Возникает своеобразная «агентурная сеть», в которой каждый маленький сигнальщик находится на своём месте и передаёт световую информацию по цепочке, не зная, сколько всего особей задействовано в системе.
Некоторые виды светлячков способны вспыхивать и затухать в унисон всей стаей, собравшейся на одном дереве. Жучки, расположившиеся на соседнем дереве, тоже вспыхивают согласованно, но не в такт со светлячками, сидящими на первом дереве. Также, в своем собственном ритме, светятся жучки и на других деревьях.
Час за часом, неделями и даже месяцами, жучки мигают на своих деревьях все в том же ритме. Ни ветер, ни сильный дождь не могут изменить интенсивности и частоты вспышек. Можно нарушить синхронность вспышек, если осветить дерево яркой лампой. Но, когда внешний свет погаснет, светлячки опять, словно по команде, начинают мигать. Сначала те, что в центре дерева, приспосабливаются к одному ритму, потом соседние жуки подключаются к ним и постепенно волны вспыхивающих в унисон огоньков распространяются по всем ветвям дерева.
Рассмотрим групповое поведение светлячков (синхронизацию их мерцаний) и попытаемся смоделировать его с помощью NetLogo.
NetLogo — это свободное программное обеспечение для агентного моделирования. Скачать NetLogo можно на официальном сайте http://ccl. northwestern. edu/netlogo/ после бесплатной регистрации.
Что такое Netlogo?
NetLogo – среда программирования для моделирования природных и социальных явлений. Автором является Ури Виленский. Netlogo был создна в 1999 году.
NetLogo особенно хорошо подходит для моделирования сложных систем, развивающихся с течением времени. Разработчик модели может давать указания сотням или тысячам агентов, действующих независимо. NetLogo позволяет создавать модели (достаточно продвинутые и качественные) и «играть» с ними, изучая их поведение при различных условиях.
NetLogo – мощный инструмент для исследователей во многих областях: биология, химия, физика, математика, социальные науки и так далее.
Построение модели
Агентами в нашей модели являются светлячки. Миром агентов является квадрат размером 33x33 пикселя. Агент может находиться в любой точке мира.
Каждый светлячок имеет следующие характеристики:
- Цвет (желтый или серый) Размер (при моделировании полагалось, что размер равен 0.5) Координаты (определяют место нахождения светлячка в мире, в начальный момент задается случайно) Внутренние часы (clock).
Параметры мира определяются общим количеством светлячков (number) и количеством светящихся светлячков (flashes).
В начале работы программы устанавливается начальное количество светлячков. Каждому светлячку задается случайная координата (xcor, ycor) и случайное значение часов (clock). Расскажем подробнее о принципе работы внутренних часов - clock.
Значение часов может меняться от 0 до 10. В каждый такт времени значение часов каждого светлячка увеличивается на единицу. Если значение становится больше 10, то часы обнуляются, т. е. их значение становится равным нулю и отсчет идет заново. Как только значение часов стало равным нулю, светлячок зажигается, т. е. меняет свой цвет с серого на желтый. В следующий такт светлячок выключается, т. е. меняет цвет на серый. На рис.1 представлена иллюстрация того как работают часы.
Время
Рис. 1. Работа внутренних часов clock светлячка.
Как происходит синхронизация в модели? В каждый такт времени светлячок проверяет количество светящихся светлячков рядом. Если светлячок сам не светится, и он видит рядом одного светящегося светлячка, то его внутренние часы clock устанавливаются равными 1. Это означает, что в следующий раз, т. е, через 10 тактов, они зажгутся вместе, так как их часы синхронизированы. Рассмотрим пример (рис. 2). Пусть в такт времени tick=121 часы первого светлячка равны нулю, и он светится, а часы второго равны восемь и он выключен. Тогда второй светлячок, увидев светящегося светлячка рядом, перенастраивает свои часы, т. е. устанавливает их равными 1. И в следующий такт времени (tick = 122) часы обоих светлячков будут равны 1, а через 10 тактов, они станут равными нулю и оба светлячка зажгутся.
Такт времени tick = 121 Такт времени tick = 122 …… Такт времени tick=132
Рис. 2. Синхронизация двух светлячков
В итоге часы всех светлячков будут синхронизованы, и светлячки будут зажигаться и выключаться одновременно. Код программы приведен в приложении 1.
Результаты моделирования
Описанная выше модель была реализована в виде компьютерной программы в среде NetLogo 5.0.5.
Моделирование проводилось в двух разных режимах. В первом случае полагалось, что количество светлячков number = 410. Результаты первого эксперимента представлены на рис. 3 (а, б, в). На рис. 3 (а) видно, что часть светлячков светится. На рис. 3 (б) – (в) светлячки уже синхронизированы. Синхронизация происходит на 414 такте времени.

а)

б)

в)
Рис. 3. Количество светлячков N=410, синхронизация происходит на 414 такте
Во втором эксперименте количество светлячков number = 1010. Результаты представлены на рис. 4 (а, б, в). Синхронизация происходит на 154 такте времени.

а)

б)

в)
Рис. 4. Количество светлячков N=1010, синхронизация происходит на 154 такте
Таким образом, можно сделать вывод, о том, что чем больше светлячков, тем быстрее происходит синхронизация.
В нашей модели рассмотрен тип светового сигнала, который называется пульсация. Данный тип сигналов представлен короткими вспышками света, которые испускаются светлячками с регулярными интервалами. Такой тип сигналов преобладает у синхронизирующихся тропических видов родов Pteroptix и Luciola. Можно развить модель и рассмотреть другие виды свечения, которые имеются у разных видов светлячков: непрерывное, прерывающееся, вспышки.
Заключение
Таким образом, построена имитационная модель, иллюстрирующая групповое поведение светлячков в среде Netlogo. Проведены численные эксперименты для двух различных случаев. Сделаны выводы о том, как численность популяции светлячков влияет на результаты работы программы.
Литература
http://ru. wikipedia. org/
http://letopisi. org/index. php/NetLogo
http://netlogo. /
http://dkhramov. /index. php? n=Logo
Приложение 1
Текст кода программы
globals [ flashes ] ;; количество светящихся светлячков
turtles-own
[ clock ] ;; счетчик светлячка
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
to setup
ca ;; очистка экрана
crt number ;; задается количество светлячков
ask turtles
[ setxy random-xcor random-ycor ;; каждый светлячок помещается в случайную точку мира
set shape "circle" ;; задаем форму светлячка в виде круга
set clock random (round 10);; задаем значение внутренних часов светлячка, полагаем, что они изменяются от 0 до 9
set size 0.5 ;; задаем размер светлячка
ifelse (clock < 1)
[ set color yellow ]
[ set color gray ]
]
reset-ticks
end
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
to go
ask turtles
[rt random-float 90 - random-float 90 fd 1 ]
ask turtles [
increment-clock
if (clock >= 1)
[ look ]
]
ask turtles [
ifelse (clock < 1)
[ set color yellow ]
[ set color gray ]
]
tick
count-flashes
end
to count-flashes
set flashes ( count turtles with [color = yellow] )
end
to increment-clock
set clock (clock + 1) ;; увеличить часы на единицу
if clock = 10 ;; если часы равны 10, то они обнуляются
[ set clock 0 ]
end
to look
if ( count turtles in-radius 1 with [color = yellow] >= 1 )
[set clock 1 ]
end


