NetLogo

Материал из Поле цифровой дидактики
Краткое описание языка Язык программирования и среда для построения многоагентных моделей. В качестве агентов в системе действуют пятна, черепашки и связи. Ко всем агентам можно обратится. При этом пятна нельзя уничтожить, а связи исчезают, если погибают черепашки, которых они связывают. NetLogo чаще других используется при создании многоагентных моделей, поскольку программы не этом языке понятны специалистам различных предметных областей. Библиотека NetLogo содержит множество готовых моделей по биологии, математике, химии, социология. С этими моделями могут ознакомиться и поиграть ученики.
Компетенции в каких сферах формирует Empowered Learner, Innovative Designer, Computational Thinker, Creative Communicator, Global Collaborator
Парадигмы программирования Функциональное программирование, Объектно-ориентированное программирование
Возрастная категория 14
Назначение языка (Общее / Учебное) Язык общего назначения
Visual_Text_Blocks Текст
Измерение (2D/3D/Tangible) 2D
Открытость продукта Открытый
Address https://netlogoweb.org/
Предки (Ancestors) StarLogo, Logo
Потомки (Descendants) StarLogo Nova, AgentScript, GAMA
Активность в данный момент Project is active
Доступны ремиксы? Да
Год создания 1999
Создатели Виленский
Поясняющее видео
Используется для создания мобильных приложений? Нет
NetLogo упоминается в свойствах следующих страниц
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, 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, Fire (model), Fireflies (model), Flocking, Flocking (model), Game design, Growing Artificial Societies: Social Science From the Bottom Up (Complex Adaptive Systems), Inquiry based learning, Leaders & Followers (model), Life (model), Movement, Patarakin, Piaget-Vygotsky (model), Preferential Attachment, Prisoner's dilemma, Segregation (model), Simulation models on the field of computational didactics, Slime (агрегация слизевиков), Solid Diffusion (model), Sugarscape model, Team Assembly, Team Assembly (model), Thinking Like a Tree, Turtles, termites, and traffic jams: explorations in massively parallel microworld, Urban Suite - Awareness, Urban Suite - Economic Disparity, User interface, Wilensky, Автономия, Агент, Агентное моделирование, Актор, Анализ и интерпретация данных (syllabus), Анализ социальных сетей/Ключевые понятия, Биология, Биосфера, Выращивание данных, Вычислительная история, Вычислительная наука, Вычислительная экономика, Вычислительное мышление, Ген… следующие результаты


Введение

NetLogo является продолжением языка Лого - первого языка, созданного еще в 1968 году объединенными усилиями Массачусетского Технологического Института и корпорации BBN (Bolt Beranek & Newman) с целью обучать детей при помощи компьютера. Создан Ури Виленским в 1999 году и развивается в Center for Connected Learning and Computer-Based Modeling.

В отличие от конференции StarLogo, ориентированной на учителей, конференция и сам продукт NetLogo более тяготеет к исследовательской аудитории и преподавателям ВУЗов.

Среда программирования NetLogo служит для моделирования ситуаций и феноменов, происходящих в природе и обществе. NetLogo удобно использовать для моделирования сложных, развивающихся во времени систем. Создатель модели может давать указания сотням и тысячам независимых "агентов" действующим параллельно. Это открывает возможность для объяснения и понимания связей между поведением отдельных индивидуумов и явлениями, которые происходят на макро уровне.

Язык NetLogo достаточно прост и ученики и учителя могут создавать в этой среде свои собственные авторские модели. В то же время это достаточно мощный язык и среда для проведения исследовательских работ. Библиотека NetLogo содержит множество готовых моделей по биологии, математике, химии, социология. С этими моделями могут ознакомиться и поиграть ученики.

Возможности языка достаточно подробно документированы и по NetLogo существует подробное руководство. К сожалению пока только на английском языке. Язык распространяется вместе с большой библиотекой моделей, которые можно использовать и модифицировать. Для НетЛого повторное использование и дальнейшее развитие моделей даже более естественно, чем для среды Scratch, поскольку все модели хранятся в текстовых файлах. Модели NetLogo: естественные и общественные науки, физика, химия, математика, информатика, экономика, социальная психология.

Руководство по среде НетЛого на сайте создателей языка
http://ccl.northwestern.edu/netlogo/faq.html

Урок 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/Files

NetLogo/Files

NetLogo/GIS

NetLogo/GIS

NetLogo/NW

NetLogo/NW

Примеры

Сообщество NetLogo в сети

см. Сообщество NetLogo

Литература

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
Изучение сетевых и общественных феноменов с помощью черепашек
Патаракин, Ярмахов
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