Имитационная модель «Синхронизация светлячков» в среде моделирования 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