NetLogo

Материал из Letopisi.Ru — «Время вернуться домой»
(Различия между версиями)
Перейти к: навигация, поиск
Строка 21: Строка 21:
 
== Связи NetLogo ==
 
== Связи NetLogo ==
  
=== Кнопки NetLogo ===
+
=== [[Кнопки NetLogo]] ===
  
 
{{:Кнопки NetLogo}}
 
{{:Кнопки NetLogo}}

Версия 12:56, 19 марта 2009

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

Домашняя страничка проекта http://ccl.northwestern.edu/netlogo/ . Здесь же можно скачать последнюю версию языка. Обсуждения происходят в конференции пользователей - http://groups.yahoo.com/group/netlogo-users В отличие от конференции StarLogo, ориентированной на учителей, конференция и сам продукт NetLogo более тяготеет к исследовательской аудитории и преподавателям ВУЗов.

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

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

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

Содержание

Netlogo-intface.png

  • Interface - область, где мы исследуем свойства модели. В центре черное по умолчанию поле, на котором взаимодействую черепашки - turtles, пятна - patches и связи черепашек - links. На рабочее поле мы можем добавлять различные кнопки, переключатели. Кнопки привязываются к именам процедур.
  • Information - описание модели. Здесь авторы модели рассказывают - о чем модель, как она устроена, какие особенности, как можно использовать и развивать модель.
  • Procedures - область, где записываются процедуры NetLogo, управляющие поведением агентов - см. агенты NetLogo.

Как правило, в моделях НетЛого присутствуют 2 главные кнопки:

  1. setup - и с ней связана процедура setup - очистить экран, удалить всех агентов, создать агенты, необходимые для работы модели.
  2. go - запуск модели.

В нижней части экрана расположена строка observer - наблюдатель, который может давать команды 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 в сети

В сети существует сообщество пользователей, которые обмениваются моделями, написанными на языке NetLogo. Адрес сообщества - http://ccl.northwestern.edu/netlogo/models/community/

Что можно делать в этом сообществе:

  • Прочитать описание модели, ее назначение, принципы, которые лежат в основании
  • Посмотреть выполнение программы в сети. Для этого достаточно просто запустить программу в своем браузере. Java-applet отработает и покажет в отдельном окне как работает модель
  • Скачать модель и запустить на своем компьютере.
  • Внести в модель изменения и использовать готовые процедуры, взятые из чужой модели внутри своих собственных программ.
  • Загрузить свою собственную модель на общедоступный сервер http://ccl.northwestern.edu/netlogo/upload.shtml и предложить ее к обсуждению и совместному использованию.

Достаточно часто встречается формулировка - данная модель является продолжением или развитием модели - далее следует ссылка на предшествующую модель и имя её автора.

Некоторые модели NetLogo позволяют изучать процессы, кооперации, формирования сообществ и процессы совместного обучения:

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

Близкие по стилю организации сообщества:

Литература


Инструменты