NetLogo
Ages | 12, 13, 14 |
---|---|
FieldActivity | Empowered Learner, Innovative Designer, Computational Thinker, Creative Communicator, Global Collaborator |
Purpose | Язык общего назначения |
Visual_Text_Blocks | Текст |
Dimension | 2D |
Openness | Открытый |
Address | https://netlogoweb.org/ |
Ancestors | StarLogo |
Descendants | |
ActiveNow | Project is active |
Remixing? | Yes |
Содержание |
Введение
NetLogo является продолжением языка Лого - первого языка, созданного еще в 1968 году объединенными усилиями Массачусетского Технологического Института и корпорации BBN (Bolt Beranek & Newman) с целью обучать детей при помощи компьютера. Создан Ури Виленским в 1999 году и развивается в Center for Connected Learning and Computer-Based Modeling.
- Домашняя страничка проекта http://ccl.northwestern.edu/netlogo/ . Здесь же можно скачать последнюю версию языка. (2016 - 5.2)
- Обсуждения происходят в конференции пользователей - http://groups.yahoo.com/group/netlogo-users
В отличие от конференции StarLogo, ориентированной на учителей, конференция и сам продукт NetLogo более тяготеет к исследовательской аудитории и преподавателям ВУЗов.
Среда программирования NetLogo служит для моделирования ситуаций и феноменов, происходящих в природе и обществе. NetLogo удобно использовать для моделирования сложных, развивающихся во времени систем. Создатель модели может давать указания сотням и тысячам независимых "агентов" действующим параллельно. Это открывает возможность для объяснения и понимания связей между поведением отдельных индивидуумов и явлениями, которые происходят на макро уровне.
Язык NetLogo достаточно прост и ученики и учителя могут создавать в этой среде свои собственные авторские модели. В то же время это достаточно мощный язык и среда для проведения исследовательских работ. Библиотека NetLogo содержит множество готовых моделей по биологии, математике, химии, социология. С этими моделями могут ознакомиться и поиграть ученики.
Возможности языка достаточно подробно документированы и по NetLogo существует подробное руководство. К сожалению пока только на английском языке. Язык распространяется вместе с большой библиотекой моделей, которые можно использовать и модифицировать. Для НетЛого повторное использование и дальнейшее развитие моделей даже более естественно, чем для среды Scratch, поскольку все модели хранятся в текстовых файлах. Модели NetLogo: естественные и общественные науки, физика, химия, математика, информатика, экономика, социальная психология.
- Руководство по среде НетЛого на сайте создателей языка
- http://ccl.northwestern.edu/netlogo/faq.html
Интерфейс Netlogo
- Interface - область, где мы исследуем свойства модели. В центре черное по умолчанию поле, на котором взаимодействую черепашки - turtles, пятна - patches и связи черепашек - links. На рабочее поле мы можем добавлять различные кнопки, переключатели. Кнопки привязываются к именам процедур.
- Information - описание модели. Здесь авторы модели рассказывают - о чем модель, как она устроена, какие особенности, как можно использовать и развивать модель.
- Procedures - область, где записываются процедуры NetLogo, управляющие поведением агентов - см. агенты NetLogo.
Как правило, в моделях НетЛого присутствуют 2 главные кнопки:
- setup - и с ней связана процедура setup - очистить экран, удалить всех агентов, создать агенты, необходимые для работы модели.
- go - запуск модели.
В нижней части экрана расположена строка observer - наблюдатель, который может давать команды 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
Пятна - точки - patches
Агенты НетЛого, которые связаны с конкретными координатами на экране. К точке всегда можно обратится. Например:
- ask patch 0 0 [set pcolor yellow]
Ограничения для пятен
- Пятно не может умереть - невозможно велеть пятну умереть.
- Невозможно создать новое пятно. Пятно не может hatch. Однако, пятно может родить новую черепашку sprout или черепашку какой-то специальной породы sprout-breed - По команде sprout в данной точке появляется черепашка
Команды для пятен
- clear-patches (cp)
- Очистить, стереть все пятна и вернуть их в исходное значение - черный цвет
- diffuse patch-variable number
- значение переменной раздается на ближайших соседей - диффузия цвета, запаха на поверхности
- diffuse4 patch-variable number
- значение переменной раздается на 4-х соседей - ближайшие соседние точки по прямой
- import-pcolors
- считать цвета из файла - картинки
- patch-at dx dy
- пятно с координатами относительно данного агента
- Например, ask patch 2 5 [set pcolor yellow ask patch-at 2 2 [set pcolor red]]
- patch-left-and-ahead angle distance
- пятно слева и сверху
- patch-at-heading-and-distance
- пятно по направлению и на расстоянии
- ask patch-at-heading-and-distance -90 1 [ set pcolor green ]
Примеры команд и процедур с пятнами
- Окрасить все пятна в зависимости от расстояния до центра
- ask patches [set pcolor distancexy 0 0]
- Покрасить точки вокруг центральной точки в зеленый цвет
- ask patch 0 0 [set pcolor yellow ]
- ask patch 0 0 [set pcolor yellow ask neighbors4 [ set pcolor green ]]
- ask patch 0 0 [set pcolor yellow ask neighbors4 [ set pcolor green ask neighbors [set pcolor red] ]]
- и так далее, если хотим перекрашивать соседей
Связи NetLogo
Связи в NetLogo такие же агенты как черепахи NetLogo и пятна NetLogo. Связь всегда связывает двух черепах (два узла). Если одна из черепах погибает, то погибает и связь. Связи бывают направленными и ненаправленными.
Ненаправленные связи
Ненаправленные связи создаются командами к черепахам - create-link-with или create-links-with. Например,
- ask turtle 0 [create-link-with turtle 1] - команда черепахе 0 создать связь с черепахой 1
- ask turtle 0 [create-links-with other turtles] команда черепахе 0 создать связи со всеми другими черепахами
- ask turtles [create-links-with other turtles] команда всем черепахам создать связи со всеми другими черепахами
Направленные связи:
- create-links-from или create-link-from направленная связь других агентов к данному агенту
- Например, ask turtle 0 [create-link-from other turtles]
- create-link-to или create-links-to направленная связь от данного агента к другому или другим
- ask turtle 0 [create-link-to other turtles]
Связи между породами
Породы NetLogo связываются такими же командами как и черепахи: create-<breed>-from, create-<breeds>-from, create-<breed>-to, create-<breeds>-to, create-<breed>-with, create-<breeds>-with
layout
Специально для того, чтобы улучшить видимость сети из узлов и связей в NetLogo появились процедуры layout:
layout-circle
- layout-circle turtles radius - все черепашки выстраиваются по кругу заданного радиуса:
- layout-circle turtles with [color = red] 5 - все красные черепашки в круг с радиусом 5
layout-radial
- layout-radial
- layout-radial turtles links (turtle 0) - черепашки выстраиваются относительно корневого агента - указанного в скобках.
Пример процедуры:
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
layout-tutte
to make-a-tree set-default-shape turtles "circle" crt 6 ask turtle 0 [ create-link-with turtle 1 create-link-with turtle 2 create-link-with turtle 3 ] ask turtle 1 [ create-link-with turtle 4 create-link-with turtle 5 ] ; place all the turtles with just one ; neighbor on the perimeter of a circle ; and then place the remaining turtles inside ; this circle, spread between their neighbors. repeat 10 [ layout-tutte (turtles with [link-neighbors = 1]) links 12 ] end
repeat 10 [layout-tutte max-n-of 15 turtles [nw:betweenness-centrality] links 22]
layout-spring
layout-spring - силовой алгоритм размещения
- layout-spring turtle-set link-set spring-constant spring-length repulsion-constant
- repeat 30 [ layout-spring turtles links 0.2 5 1 ] - черепахи, связи, жесткость связи (натяжение), естественная длина связи (которой стремиться достигнуть), сила отталкивания между узлами
- layout-spring turtle-set link-set spring-constant spring-length repulsion-constant
- layout-spring Группа_Черепах Группа_связей Сопротивление Естественная_длина_связи Сила_отталкивания_между узлами
Располагает черепах в черепаха-набор, как если бы ссылки в связи-наборе пружины и черепахи отталкиваются друг от друга. Черепахи, которые соединены ссылкам в связи-набор, но не включенные в набор черепахи рассматриваются как якоря и не переехал.
- spring-constant
- spring-constant - "натянутости" пружины. Это "сопротивление", к тому, чтобы изменить длину связи. Чем выше, тем большее усилие надо прикладывать
- spring-length
- естественная длина связи, которой стремятся достигнуть все связи
- repulsion-constant
- постоянная отталкивание - мерой отталкивания между узлами. Это сила, которую 2 узлов на расстоянии 1 будут оказывать друг на друга. Чем выше repulsion-constant тем сильнее узлы отталкиваются.
Например,
- layout-spring turtle links 2 1 0.1
- layout-spring turtle links 2 0.1 0.1 -
- нужно прикладывать большое усилие, расстояние не велико и они слабо отталкиваются
- layout-spring (turtles with [any? link-neighbors]) links 0.4 6 1
- из одной библиотечной модели NetLogo - растаскивать на большую величину
- layout-spring turtles links (1 / factor) (7 / factor) (1 / factor)
- тот же примерно принцип - 1:7:1 соотношение для разделения узлов
Команды связям
- clear-links - уничтожить все связи
- both-ends
- ask link 0 1 [print both-ends]
- die - умереть
- hide-link - спрятать связь
- in-<breed>-neighbor?
- in-<breed>-neighbors
- in-<breed>-from
- in-link-neighbor? связан ли данный узел с данным узлом?
- ask turtle 1 [show in-link-neighbor? turtle 2]
- in-link-neighbors - все, кто связан с данным агентом направленными связями (к данному агенту)
- ask in-link-neighbors [set heading [heading] of myself] Всем моим связанным соседям повернуться в ту же сторону, что и я
- out-link-neighbors - все, кто связан с данным агентом направленными связями (от данного агента)
- in-link-from
- Возвращает связь, которая связывает агента с данной черепахой. Например,
- ask turtle 0 [ create-link-to turtle 1 ] ask turtle 1 [ show in-link-from turtle 0 ]
- Возвращает связь, которая связывает агента с данной черепахой. Например,
- is-directed-link? если связь направленная, возвращает true (иначе возвращает false)
- is-link? если это связь, возвращает true
- is-link-set?
- is-undirected-link?
- <breed>-neighbor?
- <breed>-neighbors
- <breed>-with
- link-heading - направление связи
- ask link 0 1 [ print link-heading ]
- link-length
- ask link 2 1 [ print link-length ]
- link-neighbor?
- link - связь. Обращение к связи.
- Например - Ask link 0 1 [set color 15]
- links обращение ко всем связям
- ask links [set color 25]
- Если мы хотим выделить группу связей - ask links with [link-length > 3] [set color 45]
- ask links [ask both-ends [ask neighbors [set pcolor 5] ] ]
- ask links with [link-length > 3 ] [ask both-ends [ask neighbors [set pcolor 15] ] ]
- ask links with [link-length < 2 ] [ask both-ends [ask neighbors [set pcolor 25] ] ] - Здесь мы говорим связям, длина которых меньше или больше выбранного значения обратиться к черепашках на обоих концах и передать пятнам команду изменить цвет.
- links-own
- <link-breeds>-own
- link-neighbors
- link-with
- my-<breeds>
- my-in-<breeds>
- my-in-links Возвращает все направленные ко мне связи
- Например, я хочу всех черепах, которые связаны с данной направленными к ней связями что-то сделать
- ask my-in-links [ask other-end [be_free]
- Например, я хочу всех черепах, которые связаны с данной направленными к ней связями что-то сделать
- my-links Возвращает все связи данного агента
- Например, ask my-link [die] - а что еще можно сказать связям?
- my-out-<breeds>
- my-out-links мои направленные исходящие связи
- no-links
- other-end команда от черепашки к связи или связям. Связь передает другому узлу команду к исполнение
- ask my-in-links [ask other-end [die]] или ask my-in-links [ask other-end [hatch]]
- out-<breed>-neighbor?
Вопросы про связи
Как я могу узнать номер связи, чтобы к ней обратиться?
- У связи нет номера. Связь характеризуется номерами узлов, которые она связывает. Мы можем попросить все связи подписать номера своих узлов
- ask links [set label [who] of both-ends]
- и теперь ask link 59 11 [show link-heading show link-length ]
Связать черепах с теми, кого она и произвела. Задача из проекта по по построению модели вики:
- pages-own [history] ;
- Свойство каждой страницы - список "история"
- to write_page
- rt random 10 lt random 10 fd 1
- hatch 1
- [ set breed pages set history lput [who] of myself [] ;
- end
Процедуры NetLogo
В НетЛого есть команды, которые указывают агентам, что делать - переместиться, создать черепашку, установит связь и т.д. Обычно эти команды начинаются с глагола - die, jump, inspect
Процедуры можно создавать - в этом случае процедура начинается со слова To Имя_Процедуры и заканчивается словом End
Report
Кроме того, есть процедуры, которые получают на входе данные, обрабатывают эти данные и выдают результат. Эти процедуры обязательно начинаются со слова to-report и содержат команду вывода значения - report. Например:
to-report absolute-value [number] ifelse number >= 0 [ report number ] [ report (- number) ] end
Процедура получает число и возвращает его абсолютное значение.
Анонимные процедуры
С версии 6.0 в NetLogo появились анонимные процедуры
to logs_to_sociogram ask patches [set pcolor 0] foreach edits [ [?1] -> ;; это вызов анонимной процедуры let friend1 item 0 ?1 let p1 item 1 ?1 let friend2 first first filter [ [??1] -> (p1 = item 1 ??1) and ("create" = item 2 ??1) ] wikilog if friend1 != friend2 [ ask turtle friend1 [ create-friendbond-to turtle friend2 ] ]
]
repeat 2 [layout-spring turtles links 1 10 12 ]
end
Кнопки NetLogo
См. Кнопки NetLogo/test_buttons.nlogo
Button
Кнопка - button - связана с процедурой на странице Procedures. Когда создается кнопка, мы можем указать какому из агентов она отдает указание:
- Обозреватель
- Черепахи
- Пятна
- Связи
Имя команды и имя кнопки на экране могут не совпадать. Например, мы можем создать процедуру setup и на экране задать имя кнопки - "Начнем"
Если кнопка создана и для нее еще нет процедуры, то кнопка окрашена в красный цвет.
to setup ca cro 50 [fd 5] end
Создадим себе первую процедуру. В этой процедуре у нас создаются 50 черепашек.
Slider
Следующая кнопка - рычажок - slider - меняя положение рычажка можно изменять параметры модели. Например, мы хотим, чтобы число можно было при помощи этой кнопки менять число черепах. Рычажок задает имя глобальной переменной и может содержать только латинские буквы. Здесь же указывается интервал, в котором изменяются значения. Например, от 1 до 500
to setup ca cro num_turtles [fd 5] end
Switch
Переключает положение для глобальной переменной. Это значение пользователь на экране может поставить в положение ON/OFF
to setup ca cro num_turtles [fd 5] ifelse green? [ask patches [set pcolor green]] [ask patches [set pcolor pxcor]] end
Здесь показано использование кнопки для организации ветвления. Если переменная green? включена, то пятна экрана окрашиваются в зеленый цвет. Если значение переменной отключено, то пятна окрашиваются в другие цвета. В примере показано, как мы можем окрасить пятно в цвет, выбрав значение цвета из координат этого пятна.
to setup ca cro num_turtles [fd 5] ifelse green? [ask patches [set pcolor green]] [ask patches [ if pycor != 0 [set pcolor pxcor / pycor] ]] end
Chooser
Выбор значения глобальной переменной. Переключатель задает имя глобальной переменной и может содержать только латинские буквы. В этом примере мы создаем tcolor и указываем значения, которые может принимать tcolor - 5, 15, 25, 35, 45. Создадим еще одну кнопку, которая будет проверять цвет черепашки. Теперь жизни черепашек в наших руках. Все, чей цвет меньше выбранного, при нажатии кнопки go будут погибать.
to go ask turtles with [color < tcolor] [die] end
Input
Кнопка позволяет пользователю вводить или выбирать значение. Например, создадим кнопку incolor, в которой можно изменять или выбирать значение цвета. Создадим еще и кнопку "Новые черепахи" и свяжем ее с процедурой hatch_new
to hatch_new ask turtles with [color = incolor] [hatch 2 [rt random 90 fd 2]] end
Теперь мы можем увеличивать численность черепах заданного цвета. Если цвет черепахи совпадает с выбранным пользователем цветом, то эта черепаха рождает двоих потомков.
Monitor
Окно, в котором показывается выбранное значение. Например, мы создаем monitor, который показывает общую численность всех черепах - count turtles.
Plot
Окно, в котором в виде графика отражаются численные значения.
to hatch_new ask turtles with [color = incolor] [hatch 2 [rt random 90 fd 2]] set-current-plot "Trt" plot count turtles with [color = incolor] end
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
За последние годы географические информационные системы (ГИС) изменили нашу жизнь. Google Maps, Earth и десятки других веб-служб сделали прорыв в сервисах-локаторах. Наши мобильные телефоны позволяют через GPRS определять местонахождение их владельцев.
Последние версии NetLogo включили расширения ГИС-расширение. Несмотря на свою простоту, это расширение создает одну из самых доступной ГИС-систем, которые мы знаем.
Программное обеспечение для обработки данных для NetLogo
Литература
- http://pan1950.wordpress.com/2010/10/05/netlogo-gis/
- Агент-ориентированное моделирование природных пожаров. Динамика эвакуаций
- Разработчики данной модели считают что лучшее, что можно сделать в борьбе с пожарами это планирование, выполнение различных сценариев и поиск общих закономерностей заторов на дорогах. Визуализация возможных сценариев пожаров были очень эффективны для повышения информированности общественности и служат фоном для дискуссий с участием трудных решений, стоящих перед сообществом.
- http://www.turtlezero.com/wiki/doku.php?id=guide:gis#how_is_gis_data_represented_in_netlogo
- http://www.geosimulation.org/papers/2010-Torrens-Geography-Compass-agent-based-models-and-the-spatial-sciences.pdf
NetLogo/NW
Сетевое расширение NetLogo - The NetLogo NW Extension for Network Analysis
Зачем это расширение нужно и что оно дает? В качестве примера разных отношений приводится пример, когда в системе есть банкиры и клиенты.
- breed [ bankers banker ]
- breed [ clients client ]
- directed-link-breed [ accounts account ] - Клиенты могут иметь счета у банкиров. Банкиры, вероятно, могут иметь счет у других банкиров.
- undirected-link-breed [ friendships friendship ]
Если мы хотим рассматривать ситуацию как одну большую сеть, то никаких специальных действий совершать не нужно - по умолчанию расширение рассматривает всех черепах и все ссылки между черепахами как одну общую сеть. Но нас могут интересовать подмножества сети. Может быть, нас интересуют только дружеские отношения. Кроме того, может быть, мы хотим изучить только дружеские отношения между банкирами, поскольку тот, у кого высокая степень центральности в дружеской сети банкиров, будет заметно отличаться от человека с высокой степенью центральности в дружеской сети клиентов. В конце концов, имеющий высокую центральную дружбу в сети банкиров, будет очень отличаться от имеющего высокую центральную дружбу в клиентской сети. И для работы с такими подмножествами агентов и связей как раз и разработано "сетевое расширение NetLogo".
А если мы хотим исследовать ситуацию совместной деятельности, то у нас будут отношения между людьми, опосредованные объектами, к которым люди обращаются. И это дает нам возможность рассматривать одну и ту же систему и получать данные для этой системы не изменяя ее внешний вид. Т.е. мы можем не удалять каких-то участников, а просчитывать разные показатели центральности и коэффициенты кластеризации для разных условий. Т.е. мы просто разные агенты и разные связи принимаем во внимание. И тут открывается простор для экспериментов - в рассматривании сети в разных контекстах.
Примеры с совместной деятельностью
- breed [users user] ; - у нас есть участники
- breed [pages page] ; - у нас есть объекты, которые создают, редактируют, комментируют, оценивают ... в зависимости от контекста
- undirected-link-breed [bonds bond] ; - связи создания
- undirected-link-breed [votebonds votebond] ; - голосование
- undirected-link-breed [comments comment] ; - комментирования
- undirected-link-breed [uulinks uulink] ; это в том случае, если нам нужны прямые связи "участник - участник" (можно указать от кого к кому?)
- undirected-link-breed [pplinks pplink] ; связи между страницами
Установление контента
У нас есть сеть, состоящая из множества агентов и связей и мы можем не нарушая этих связей вытащить только те отношения, которые нам интересны
- nw:set-context turtle-set users with ;; только те, кто входит в список
- nw:set-context (turtle-set users with [member? agentname map [first ?] user_list ] pages ) (link-set bonds editbonds)
Вытаскивание групп участников для установления контента
- ask users with [hidden? = false] [show who] - вся спрятавшиеся юзеры
- ask users with [member? agentname map [first ?] user_list ] [set size 3]
Примеры
- NetLogo примеры
- Статья Муравейник - анимированные гифы
- Статья Сеть с использованием модели растущего кластера
- Формирование команд - модель формирования команд
Сообщество NetLogo в сети
В сети существует сообщество пользователей, которые обмениваются моделями, написанными на языке NetLogo. Адрес сообщества - http://ccl.northwestern.edu/netlogo/models/community/
Что можно делать в этом сообществе:
- Прочитать описание модели, ее назначение, принципы, которые лежат в основании
- Посмотреть выполнение программы в сети. Для этого достаточно просто запустить программу в своем браузере. Java-applet отработает и покажет в отдельном окне как работает модель
- Скачать модель и запустить на своем компьютере.
- Внести в модель изменения и использовать готовые процедуры, взятые из чужой модели внутри своих собственных программ.
- Загрузить свою собственную модель на общедоступный сервер http://ccl.northwestern.edu/netlogo/upload.shtml и предложить ее к обсуждению и совместному использованию.
Достаточно часто встречается формулировка - данная модель является продолжением или развитием модели - далее следует ссылка на предшествующую модель и имя её автора.
Некоторые модели NetLogo позволяют изучать процессы, кооперации, формирования сообществ и процессы совместного обучения:
- http://ccl.northwestern.edu/netlogo/models/community/Cluster
- http://ccl.northwestern.edu/netlogo/models/community/Homework_highschool
- http://ccl.northwestern.edu/netlogo/models/community/Wireless-Coop-Mobile
- http://ccl.northwestern.edu/netlogo/models/community/Network_growth
- http://ccl.northwestern.edu/netlogo/models/community/Learning%20and%20Creativity
- http://ccl.northwestern.edu/netlogo/models/community/AdoptLearnOnLine - Как фермеры обмениваются своими опытами о земле
- http://ccl.northwestern.edu/netlogo/models/TeamAssembly - формирование команд
Насколько продуктивно работает сообщество? Сообщество исследовательское, создание модели требует достаточно высокого уровня программирования в среде NetLogo - так что количество загружаемых на сервер файлов не велико. Все загруженные модели пригодны для дальнейшего использования в учебном процессе.
Близкие по стилю организации сообщества:
Критика 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