Введение

NetLogo — это язык программирования и интегрированная среда разработки (IDE) для агентного моделирования.

О

NetLogo был разработан Ури Виленски в духе языка программирования Logo, чтобы быть "легким для освоения и безграничным в возможностях". Он обучает концепциям программирования, используя агентов в виде черепах, патчей, связей и наблюдателя. NetLogo был разработан с учетом широкой аудитории, в частности, для обучения детей в образовательных учреждениях и для специалистов в различных областях, не имеющих опыта программирования, чтобы они могли моделировать связанные с их деятельностью явления. С использованием NetLogo опубликовано множество научных статей. Среда NetLogo позволяет изучать эмерджентные явления. Она поставляется с обширной библиотекой моделей, включающей модели в различных областях, таких как экономика, биология, физика, химия, психология и системная динамика. NetLogo позволяет проводить исследования, изменяя переключатели, ползунки, селекторы, поля ввода и другие элементы интерфейса. Помимо исследований, NetLogo позволяет создавать новые модели и изменять существующие. NetLogo имеет открытый исходный код и свободно доступен на веб-сайте NetLogo. Он используется в самых разных образовательных контекстах, от начальной школы до аспирантуры. Многие преподаватели используют NetLogo в своих учебных планах. NetLogo был разработан и создан Ури Виленски, директором Центра подключенного обучения и компьютерного моделирования (CCL) Северо-Западного университета.

Другие особенности

В дополнение к агентному моделированию, NetLogo также предоставляет базовую поддержку моделирования динамических систем.

Техническая основа

NetLogo — это бесплатное программное обеспечение с открытым исходным кодом, распространяемое под лицензией GNU General Public License (GPL). Также доступны коммерческие лицензии. Оно написано на Scala и Java и работает на виртуальной машине Java (JVM). В его основе лежит гибридный интерпретатор/компилятор, который частично компилирует пользовательский код в байт-код JVM. NetLogo Web — это версия, работающая на JavaScript вместо JVM, что позволяет запускать модели в веб-браузере. Однако она не обладает всеми возможностями настольной версии, и на официальном сайте рекомендуется использовать "настольную версию NetLogo для большинства задач".

Примеры

Простая многоагентная модель в NetLogo — это модель «Волк-Овца», показанная на скриншоте выше. Она моделирует динамику популяций хищника и жертвы с течением времени. Она обладает следующими характеристиками:

В ней есть два вида черепах: овцы и волки. Овцы и волки перемещаются случайным образом и обладают ограниченным запасом энергии. Волки и овцы теряют энергию при движении. Если у волка или овцы энергия падает до нуля, они погибают. Овцы восстанавливают энергию, поедая траву. Волки восстанавливают энергию, поедая овец. И волки, и овцы могут размножаться, передавая часть энергии потомству.

HubNet

HubNet – это технология, использующая NetLogo для проведения интерактивных моделирований в классе. В интерактивном моделировании вся группа пользователей участвует в воспроизведении поведения системы. Используя индивидуальное устройство, такое как компьютер в сети или графический калькулятор Texas Instruments, каждый пользователь выступает в роли отдельного, независимого агента. Одним из примеров занятия с использованием HubNet является моделирование "Трагедии общин", которое демонстрирует экономическую проблему, известную как "трагедия общин".