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, 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, 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, Traffic jams, Turtles, termites, and traffic jams: explorations in massively parallel microworld… следующие результаты


Введение

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

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/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