Лабораторная работа 3: Команды
Цель: перейти от наблюдения моделей к манипулированию ими, наблюдать внутреннюю работу модели и уметь изменить ее внешний вид.
Простая модель: Движение на дороге
· Перейдите к библиотеке моделей «Models Library» (из меню File).
· Откройте модель «Traffic Basic», в секции "Social Science".
· Запустите модель и несколько минут наблюдайте за ней.
· Если возникнут вопросы, обращайтесь к вкладке (панели) Information tab..
В этой модели можно увидеть одну красную машину в потоке голубых машин. Поток машин двигается в одном направлении. Каждая из машин может вызвать скопление и остановить движение. Это модель показывает, что пробка может возникнуть без всякой причины: не нужен ни разбитый грузовик, ни поломанный мост, ни другой инцидент. Вы можете изменять установки модели и наблюдать ее множество раз, пока не прийдете к полному пониманию модели.
В процессе использования этой модели, можете вы предложить какие-то дополнения, которые Вы хотели бы в нее внести.
Рассматривая модель «Движение на дороге», вы можете отметить достаточно простую среду: черный фон с белой улицей и некоторое число голубых машин и одну красную машину. Изменения, которые мы могли бы внести в эту модель, включают следующее: изменение формы и цвета автомобилей, добавление дома или света на улице, создание светофора, или даже создание другой полосы на дороге. Некоторые из этих изменений носят косметический характер, в то время как другие затрагивают ее поведение. В этой лабораторной работе мы сфокусируемся на простейших или косметических изменениях. Чтобы осуществлять эти простые изменения мы будем использовать Командный центр (Command Center).
Командный центр (The Command Center)
Командный центр размещается на панели «Interface Tab» и позволяет вводить команды или директивы в модель. Команды являются инструкциями или предписаниями для агентов NetLogo's: черепашек (turtles), пятен (patches), наблюдателя (observer).
В модели «Движение на дороге» (Traffic Basic):
· Нажмите кнопку "setup".
· Перейдите в командный центр (Command Center).
· Щелкните мышкой в белом прямоугольнике внизу Командного центра (Command Center).
· Напечатайте текст, написанный ниже:
· Нажмите кнопку «enter».
Что вы видите?
Вы можете отметить, что фон весь стал желтым и улица пропала.
Почему машины не стали желтыми тоже?
Вернитесь к команде, написанной в командном центре: мы попросили только пятна (patches) изменить их цвет. В этой модели, машины представлены другим видом агентов, называемым черепашками ("turtles"). Следовательно, машины не получили этих инструкций и не поменяли цвет.
Что происходит в Командном центре (Command Center)?
Вы можете заметить, что команды, которые вы напечатали, появляются уже в середине белого прямоугольника Командного центра. Это показано ниже:
· Напечатайте внизу в белом прямоугольнике Командного центра следующий текст:
Какой результат вы ожидали?
Вы видите, что на желтом фоне появляются в середине коричневые машины:
Мир NetLogo - это двумерный мир, который сделан из черепашек, пятен и обозревателя. (turtles, patches, observer). Пятна (patches) создают основу, на которой черепашки (turtles) могут двигаться и обозреватель(observer) is a being that oversee everything that is going on in the world.
В командном центре мы можем давать команды обозревателю, черепашкам и пятнам. Мы выбираем между этими опциями, используя всплывающее меню (в нижнем левом углу Командного центра) или клавишу «tab» на клавиатуре.
В командном центре (Command Center), щелкните на "O>" в нижнем левом углу:
· Выберите "Turtles" из всплывающего меню.
· Напечатайте set color pink и нажмите return.
· Нажмите и удерживайте клавишу tab, пока не увидите "P>" в левом нижнем углу.
· Напечатайте set pcolor white и нажмите return.
Что вы теперь видите?
Можете вы отметить отличие между этими двумя командами и командами обозревателю, которые мы давали раньше?
Обозреватель видит весь мир и следовательно может давать команды черепашкам и пятнам, используя ask. Как в первом примере (O>ask patches [set pcolor yellow]), обозреватель попросил пятна поменять цвет на желтый. А во втором примере была прямо дана команда группе агентов (P>set pcolor white), уже непосредственно пятнам.
· Нажмите "setup".
Что случилось?
Why did the Graphic Window revert back to the old version, with the black background and white road? Upon pressing the "setup" button, the model will reconfigure itself back to the settings outlined in the Procedures tab. The Command Center is not often used to permanently change the model. It is most often used as a tool to customize current models and allows for you to manipulate the NetLogo world to further answer those "What if" questions that pop up as you are investigating the models. Now that we have familiarized ourselves with the Command Center, let's look at some more details about how colors work in NetLogo.
Работа с цветами
Вы могли заметить, что в нашей работе мы использовали два различных слова для изменения цвета color и pcolor.
В чем отличие между ними?
· Выберите "Turtles" из popup меню Командного Центра (или используйте клавишу tab).
· Введите set color blue and нажмите return.
Что случилось с машинами?
Подумайте о том, как вы сделали машинки голубыми, и попытайтесь сделать пятна красными. Если вы дадите пятнам команду: set color red, получите сообщение об ошибке.
· Напечатайте set pcolor red вместо прежнего и нажмите return.
Мы называем color и pcolor "переменными". Некоторые команды и переменные относятся только к черепашкам, а некоторые только к пятнам. Например, color – это переменная для черепашек, а pcolor - для пятен.
Чтобы изменять цвета черепашек и пятен, или в нашем примере машин и фона, мы должны немного познакомиться с тем, как NetLogo обходится с цветами.
В NetLogo, все цвета имеют свой номер. Во всех наших упражнениях мы использовали наименование цвета. Это потому, что NetLogo распознает 16 различных названий цветов. Это не означает, что NetLogo распознает всего 16 цветов. Ниже приводится диаграмма цветового пространства NetLogo:
Чтобы получить цвет, у которого нет собственного имени, вы должны ссылаться на него по номеру или добавляя или отнимая число от названия цвета. Например, когда вы печатаете set color red, это означает то же самое, если бы вы напечатали set color 15. И вы можете получить боле темную или светлую версию того же цвета, если возьмете чуть большее или меньшее число, как например:
· Выберите "Patches" из popup меню в Command Center.
· Напечатайте set pcolor red - 2 (Пробелы вокруг "-" обязательны)
Это сделает темнее цвет:
· Наберите set pcolor red + 2
А это - светлее.
Вы можете использовать эту технику для любого цвета в диаграмме.
Мониторы агентов и команды агентов (Agent Monitors and Agent Commanders)
В предыдущем параграфе, мы использовали команду set, чтобы изменять цвета всех машин. Рассмотрим, как изменить цвет одной машины. Press "setup" to get the red car to reappear.
· Щелкните на красной машинке правой кнопкой мыши.
· Из popup меню, выберите "inspect turtle 0"
Появится монитор черепашки (машинки):
В этом мониторе мы можем увидеть значения всех переменных, установленных для красной машинки. Переменная – это место, которое содержит значение и это значение может быть изменено. Помните, мы упоминали, что все цвета представлены в компьютере номерами? Это относится и к агентам. Например, черепашка имеет идентификационный номер, который мы называем "who"-номер.
Давайте рассмотрим монитор черепашки.
Какой у нее «who» номерr?
Какой цвет у черепашки?
Какая форма этой черепашки?
Монитор показывает, что номер черепашки - 0, цвет - 15 (красный), а форма автомобиль (car).
Есть два способа открыть монитор черепашки, один – правым щелчком мыши. Еще один путь - выбрать "Turtle Monitor" из меню Tools, затем напечатать «who»-номер черепашки, которую вы хотите инспектировать в поле "who" и нажать return. Другой путь напечатать inspect turtle 0 (или другой номер) в Командном Центре (Command Center).
Монитор закрывается нажатием на крестик в правом верхнем углу.
Теперь, когда мы знаем больше о мониторе агентов (Agent Monitors), имеются три пути изменения индивидуального цвета черепашки.
Один путь – использовать прямоугольник, называемый Agent Commander, который находится внизу агентного монитора (Agent Monitor). Вы печатаете здесь команду, подобно тому, как вы это делали в Командном центре, но это команда относится только к выбранной отдельной черепашке..
· В Agent Commander монитора черепашке Turtle Monitor для черепашки 0, наберите set color pink.
Что вы видите?
Что-то изменилось в мониторе черепашки?(Turtle Monitor)?
Второй путь изменить цвет одной черепашки- это перейти прямо к переменной color в Turtle Monitor и изменить значение.
· Выделите текст справа от "color" в Turtle Monitor.
· Напечатайте новый цвет, как например green + 2.
Что случилось?
Третий путь изменений индивидуального цвета черепашки или пятна – это использование обозревателя. Поскольку обозреватель видит весь мир NetLogo, он может давать команды как отдельным черепашкам так и группам черепашек.
· В Command Center, выберите "Observer" из popup меню.
· Напечатайте ask turtle 0 [set color blue] и нажмите return.
Что произошло?
Также как имеются мониторы черепашек, существуют и мониторы пятен (Patch Monitors). Они работают сходным образом.
Можете вы вызвать patch monitorи использовать его для изменения цвета отдельного пятна?
Если вы попытаетесь в обозревателе дать команду ask patch 0 [set pcolor blue], вы получите сообщение об ошибке:
Чтобы попросить отдельную черепашку о чем-нибудь, мы использовали ее «who» -номер. Но пятна не имеют такого номера, следовательно нам необходимо ссылаться на них каким-то другим путем.
Напоминаем, пятна расположены в системе координат. Два числа необходимы, чтобы начертить точку на графике: значение координаты x-axis и a y-axis. Размещение пятен спроектировано таким же образом.
· Откройте patch monitor для любого пятна.
Монитор показывает что для пятна, его pxcor переменная равна -11 и его pycor переменная равна -4. То есть это точка с координатами x= -11 and y= -4.
Чтобы попросить это отдельное пятно изменить цвет, надо использовать его координаты..
· Напечатайте ask patch -11 -4 [set pcolor blue] и нажмите return.
Какие два слова в єтой команде адресуются к пятнам?
Что дальше?
Вы можете захотеть применить изученную технику к другим моделям из библиотеки. IВ следующей работе №4 вы изучите как изменять и расширять существующие модели и строить собственные модели.
Контрольные вопросы:
1. Опишите интерфейс модели «Traffic Basic».
2. Где находится «командній центр и для чего он предназначен?
3. Чем являются пятна и черепашки в модели?
4. Кто такой «обозреватель»?
5. Как изменить цвет пятна?
6. Как изменить цвет черепашки?
7. Как работать с чветами в NetLogo?
8. Что представляет собой Монитор агентов? Какую информацию там можно увидеть?