NetLogo
Краткое описание языка | Язык программирования и среда для построения многоагентных моделей. В качестве агентов в системе действуют пятна, черепашки и связи. Ко всем агентам можно обратится. При этом пятна нельзя уничтожить, а связи исчезают, если погибают черепашки, которых они связывают. NetLogo чаще других используется при создании многоагентных моделей, поскольку программы не этом языке понятны специалистам различных предметных областей. Библиотека NetLogo содержит множество готовых моделей по биологии, математике, химии, социология. С этими моделями могут ознакомиться и поиграть ученики. |
---|---|
Компетенции в каких сферах формирует | Empowered Learner, Innovative Designer, Computational Thinker, Creative Communicator, Global Collaborator |
Парадигмы программирования | Функциональное программирование, Объектно-ориентированное программирование, Процедурное программирование |
Возрастная категория | 14 |
Назначение языка (Общее / Учебное) | Специальный прикладной язык |
Visual_Text_Blocks | Текст |
Измерение (2D/3D/Tangible) | 2D |
Область знаний | NetSci, Биология, Социология, Моделирование |
Открытость продукта | Открытый |
Address | https://netlogoweb.org/ |
Предки (Ancestors) | StarLogo, Logo |
Потомки (Descendants) | StarLogo Nova, AgentScript, GAMA |
Активность в данный момент | Project is active |
Доступны ремиксы? | Да |
Год создания | 1999 |
Создатели | Виленский |
Поясняющее видео | |
Используется для создания мобильных приложений? | Нет |
- NetLogo упоминается в свойствах следующих страниц
- AI content generation 27032024, Agent-Based and Individual-Based Modeling: A Practical Introduction, An Introduction to Agent-Based Modeling: Modeling Natural, Social, and Engineered Complex Systems with NetLogo, Artificial Anasazi, Basketball analytics, Butterfly model, Community of Practice (model), Creating Active Essays Using Agent Models, DREAM, Data Growth in Educational Simulation Communities, Data in Education Seminar/28 02 2024, Data in Education Seminar/31 05 2023, Dawkins Weasel, Development of computational thinking based on collective interaction in MediaWiki and multi-agent approach, Drel'Tar, Egorovsn051, Fire (model), Fireflies (model), Flocking, Flocking (model), Game design, GenderDeSegregationSchool, Growing Artificial Societies: Social Science From the Bottom Up (Complex Adaptive Systems), Inquiry based learning, LMS, Leaders & Followers (model), Life (model), Modeling Social Behavior: Mathematical and Agent-Based Models of Social Dynamics and Cultural Evolution, Models Communities, Movement, Multi-mediator model, ODD принципы, Patarakin, Piaget-Vygotsky (model), Practice defining problems to solve by computing for data analysis, modeling or algorithmic thinking, Preferential Attachment, Prisoner's dilemma, School Choice ABM, School Education Competition, Segregation (model), Simulation models on the field of computational didactics, Slime (агрегация слизевиков), Smaldino, Soccer Simulation, Solid Diffusion (model), Sugarscape model, Team Assembly, Team Assembly (model), Teammate, Thinking Like a Tree… следующие результаты
Введение
NetLogo является продолжением языка Лого - первого языка, созданного еще в 1968 году объединенными усилиями Массачусетского Технологического Института и корпорации BBN (Bolt Beranek & Newman) с целью обучать детей при помощи компьютера. Создан Ури Виленским в 1999 году и развивается в Center for Connected Learning and Computer-Based Modeling.
- Домашняя страничка проекта http://ccl.northwestern.edu/netlogo/ . Здесь же можно скачать последнюю версию языка. (September 29, 2022 - 6.3.0)
- Обсуждения происходят в конференции пользователей - http://groups.yahoo.com/group/netlogo-users
В отличие от конференции StarLogo, ориентированной на учителей, конференция и сам продукт NetLogo более тяготеет к исследовательской аудитории и преподавателям ВУЗов.
Среда программирования NetLogo служит для моделирования ситуаций и феноменов, происходящих в природе и обществе. NetLogo удобно использовать для моделирования сложных, развивающихся во времени систем. Создатель модели может давать указания сотням и тысячам независимых "агентов" действующим параллельно. Это открывает возможность для объяснения и понимания связей между поведением отдельных индивидуумов и явлениями, которые происходят на макро уровне.
Язык NetLogo достаточно прост и ученики и учителя могут создавать в этой среде свои собственные авторские модели. В то же время это достаточно мощный язык и среда для проведения исследовательских работ. Библиотека NetLogo содержит множество готовых моделей по биологии, математике, химии, социология. С этими моделями могут ознакомиться и поиграть ученики.
Возможности языка достаточно подробно документированы и по NetLogo существует подробное руководство. К сожалению пока только на английском языке. Язык распространяется вместе с большой библиотекой моделей, которые можно использовать и модифицировать. Для НетЛого повторное использование и дальнейшее развитие моделей даже более естественно, чем для среды Scratch, поскольку все модели хранятся в текстовых файлах. Модели NetLogo: естественные и общественные науки, физика, химия, математика, информатика, экономика, социальная психология.
- Руководство по среде НетЛого на сайте создателей языка
- http://ccl.northwestern.edu/netlogo/faq.html
Интерфейс Netlogo
Черепашки NetLogo
Урок 1. Создаем и группируем черепах
Научимся создавать, расставлять и группировать черепах. Листинг программы - Черепашки NetLogo/Test-turtle.nlogo
Создадим новый проект. У черепашек Netlogo есть свойства - номер, цвет, координаты и т.д. Кроме того, мы можем задавать черепашкам новые свойства - turtles-own. Свойства всегда задаются в начале программы. Например, зададим для черепашек свойство group. Свойство будет иметь 2 значения - ложь или истина. Принадлежит черепашка к группе или не принадлежит.
turtles-own [group]
Вообще внутри turtles-own [] можно перечислить множество свойств
Теперь создадим первую процедуру, которая будет очищать все имеющиеся объекты и значения. Далее следует программа с комментариями. Комментарии задаются двумя символами ;;
Создаем новых черепах
to setup
- ca - очищаем значения
- каждая черепашка располагается в случайной точке экрана
- crt 50 [ ;; создаем 50 черепах и разбрасываем их по экрану
- setxy random-xcor random-ycor
- set group false
- ]
- черепахи рождаются по порядку и поворачиватся последовательно. Когда мы им потом даем команду разойтись, они образуют круг
- cro number_of_turtles [fd max-pxcor - 2]
- Этого же результата можно достичь, если мы используем команду layout-circle
- end
to circle
layout-circle turtles max-pxcor - 2
end
Мы умеем создавать черепашек и расставлять их по экрану. Теперь попробуем собрать черепашек одинакового цвета
Группируем черепах по цветам
to collect_color
- Первая версия - черепашки объединяются, но делают много лишних движений
ask other turtles with [color = [color] of myself] [face myself jump (distance myself) - 1]
во второй версии задаем черепашкам свойство принадлежности к группе и в начале устанавливаем значение этого свойства в false
- if group = false [ask other turtles with [(color = [color] of myself) and (group = false)]
[ черепашка прыгает в сторону вызывающего агента
- face myself jump (distance myself) - 1
черепашка устанавливает свою принадлежность к группе в true - и теперь ее не будут вызывать
- set group true create-link-to myself]]
end
На странице использованы Команды к черепахам NetLogo
Пятна Netlogo
Связи NetLogo
Процедуры NetLogo
Кнопки NetLogo
NetLogo/Files
File-Open
- file-open - открыть файл
- file-open "task_7.txt"
- while [ not file-at-end? ] [ set wikihistory lput read-from-string (word "[" file-read-line "]") wikihistory]
- file-close
Открыли файл и считали все его содержимое построчно в список с именем wikihistory
Read-from-string
- Пример - file-exists? file-open file-at-end? file-read-line
ifelse ( file-exists? "profile.txt" ) [ file-open "profile.txt" while [ not file-at-end? ] [ let author read-from-string (word "[" file-read-line "]") ask one-of users with [agentname = item 0 author] [ set FullName item 1 author set TB item 2 author set OSB item 3 author set Block item 4 author ] ] file-close user-message "Готово!" ] [ user-message "profile.txt нет такого файла!" ]
File-Print
file-open "losted_sch.txt" foreach reverse sort-on [norm-betweenness] users [file-print (se ? [norm-betweenness] of ? [agentname] of ?)] file-close
user-new-file
file-open user-new-file
= Export-view
to clustC let Centr max-one-of users [nw:betweenness-centrality] layout-radial turtles links Centr export-view (word "../sber_results/u325/clusters/" [who] of Centr ".png" ) ask Centr [die] ask users with [count my-links = 0] [die] end
Расширения NetLogo
NetLogo/GIS
NetLogo/NW
Примеры
- NetLogo примеры
- Статья Муравейник - анимированные гифы
- Статья Сеть с использованием модели растущего кластера
- Формирование команд - модель формирования команд
Сообщество NetLogo в сети
- https://jmvidal.cse.sc.edu/netlogomas/ - Модели Видаля
- https://wisc.pb.unizin.org/agent-based-evolutionary-game-dynamics/chapter/0-3/
Критика NetLogo
- there are more limitations than advantages with NetLogo in comparison to AnyLogic http://justinlyonandsimulation.blogspot.com/2006/08/netlogo-vs-anylogic.html
Литература
- Artificial Intelligence—Agents and Environments http://bookboon.com/us/textbooks/it/artificial-intelligence-agents-and-environments
- Artificial Intelligence: Exercises I - Agents and Environments http://bookboon.com/us/textbooks/it/artificial-intelligence-exercises-i
- Artificial Intelligence: Exercises II - Agent Behaviour I http://bookboon.com/us/textbooks/it/artificial-intelligence-exercises-ii
- http://files.bookboon.com/ai/ - примеры NetLogo
- Изучение сетевых и общественных феноменов с помощью черепашек
- Патаракин, Ярмахов
- SIMULATION FOR THE SOCIAL SCIENTIST - http://cress.soc.surrey.ac.uk/s4ss/ - книга с многочисленными примерами социальных систем, написанными и на NetLogo
- Abrahamson, D., Blikstein, P., & Wilensky, U. (2007). Classroom Model, Model Classroom
- Computer-Supported Methodology for Investigating Collaborative-Learning Pedagogy. Proceedings of the Computer-Supported Collaborative Learning conference, New Brunswick, NJ. http://ccl.northwestern.edu/papers/2007/abr-cscl.pdf
- Blikstein, P., Abrahamson, D., & Wilensky, U. (2007). Multi-agent simulation as a tool for investigating cognitive-developmental theory. Paper presented at the 2007 annual meeting of the American Educational Research Association, Chicago, IL, April 9-13. http://ccl.northwestern.edu/papers/2007/NU%20CCL%20AERA%202007%20Piaget%20Conservation%20Paper%20v8.pdf
- Blikstein, P., & Wilensky, U. (2008). Implementing multi-agent modeling in the classroom
- Lessons from empirical studies in undergraduate engineering education. In G. Kanselaar, J. van Merriënboer, P. Kirschner & T. de Jong (Eds.), Proceedings of the International Conference for the Learning Sciences, ICLS2008 (Vol. 3, pp. 266-273). Utrecht, The Netherlands: ISLS. http://ccl.northwestern.edu/papers/2008/Blikstein&Wilensky_MultiAgent.pdf
- Класс рассматривается как мультиагентная система, в которой множество учеников в процессе решения общей задачи.
- Blikstein, P., Abrahamson, D., & Wilensky, U. (2008, March). Groupwork as a complex adaptive system
- A methodology to model, understand, and design classroom strategies for collaborative learning. Paper presented at the annual conference of the American Education Research Association, New York, NY.
- Blikstein, P., Abrahamson, D., & Wilensky, U. (2008). The classroom as a complex adaptive system
- An agent-based framework to investigate students' emergent collective behaviors. In G. Kanselaar, J. van Merriënboer, P. Kirschner & T. de Jong (Eds.), Proceedings of the International Conference for the Learning Sciences, ICLS2008 (Vol. 3, pp. 312-313). Utrecht, The Netherlands: ISLS. http://ccl.northwestern.edu/papers/2008/Blikstein,etAl_ClassroomComplex.pdf
- Kornhauser, D., Rand, W., & Wilensky, U. (2007). Visualization Tools for Agent-Based Modeling in NetLogo. Paper presented at Agent2007, Chicago, November 15-17. http://ccl.northwestern.edu/papers/2009/Kornhauser,Wilensky&Rand_DesignGuidelinesABMViz.pdf
- С отличными примерами визуализаций моделей Netlogo и ссылками на Маэда. Классификация визуализаций: клеточные автоматы, Физические процессы, фракталы, геометрические фигуры.
- Stonedahl, F., Rand, W., & Wilensky, U. (2008, May). Multi-agent learning with a distributed genetic algorithm
- Exploring innovation diffusion on networks. Paper presented at the Seventh International Conference on Autonomous Agents and Multi-agent Systems (AAMAS), Estoril, Portugal. http://ccl.northwestern.edu/papers/2008/Stonedahl,Rand&Wilensky_MultiAgentLearning.pdf
- Wilensky, U., & Rand, W. (2007). Making models match
- Replicating agent-based models. Journal of Artificial Societies and Social Simulation (JASSS), 10(4). http://jasss.soc.surrey.ac.uk/10/4/2.html