Главная » Просмотр файлов » Ю. Карпов - Иммитационное моделирование систем с AnyLogic 5

Ю. Карпов - Иммитационное моделирование систем с AnyLogic 5 (1124147), страница 69

Файл №1124147 Ю. Карпов - Иммитационное моделирование систем с AnyLogic 5 (Ю. Карпов - Иммитационное моделирование систем с AnyLogic 5) 69 страницаЮ. Карпов - Иммитационное моделирование систем с AnyLogic 5 (1124147) страница 692019-05-10СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 69)

Дополнения в активном объекте УасЫпе В основной алгоритм вносится одно изменение: в соответствии с третьим правилом алгоритма, машина, получившая базовое сообщение, становится черной. Поэтому на переходах с и ез в стейтчарте пигп добавлено это действие. Активный объект наоььпе будет также оперировать и с токенами. Токен имеет свой счетчик и цвет.

Именно эти параметры определены в новом классе сообщений токег. АКтИВНЫй ОбЪЕКт Иасъьпе будЕт ИМЕТЬ даа дОПОЛНИтЕЛЬНЫХ ПОрта, 1п И осе, через которые по кольцу передается токен. Потому тип сообщений, передаваемых через эти порты, определен как токеп. Машина имеет два дополнительных параметра, еокеп типа токеп для хранения полученного по кольцу токена и еаоььпеео1ог, КОтОрЫй ХраНИт паст МашИНЫ В соотвстетаин с этиМ алгоритмом.

Определим машину-лидер как машину с номером О. Именно эта машина будет инициировать запуск токена и анализировать его по получении. Все остальные экземпляры машин будут только передавать токен по кольцу. Часть К П нмвры модвлейдляразличныхобластей и именения Алгоритм распределенного завершения выражается стейтчартом. Этот стейтчарт реализован как две независимые ветви; одна из которых осушествляет алгоритм лидера, а другая — алгоритм обычной машины в кольце. Выбор нужной части стейтчарта в каждой машине выполняется из начального состояния твгсьв1 по номеру машины.

Алгоритм лидера состоит в том, что после некоторой постоянной задержки порождается новый токен и посылается по сети (через порт сне). Далее в состоянии нвьсиутсхвв лидер ждет получения этого токена. После его ПОЛУЧЕНИЯ ИЗ ПОРта Ьл ЛИДЕР ПЕРЕХОДИТ В СОСТОЯНИЕ нвгехссьчвпввбвх, токен при этом сохраняется в локальной переменной сохни. В этом состоянии лидер находится до тех пор, пока его состояние не станет пассивным. При выходе из состояния (когда лидер стал пассивным) производится анализ выполнения четвертого правила алгоритма Дейкстры с помошью алгоритмиЧЕСКОй фуНКцИИ СвхтяСснбгегсв.

ЕСЛИ УСЛОВИЕ ПраВИЛа ВЫПОЛНяЕтСя, ЛИдЕр переходит в состояние зесрл1яс .гсь1я, в котором работа модели останавливается (рис. )9.3). Если условие не выполняется, работа лидера возобновляется с шага порождения нового токена. Рис. 19.3. Ствйтчврт алгоритма обнаружения завершения Глава (9. Информатика и коммуникация Алгоритм обычной машины в кольце тоже прост (правая ветвь стейтчарта рис. 19.3). Находясь в состоянии иа)етокелвхопвьлд, машина ожидает токен, передаваемый по кольцу. Дождавшись токена из порта ъл, машина задерживает его на небольшое время (только для визуального эффекта в анимации), нахолясь в состоянии ркссввв).одтоквл.

Дождавшись, когда она в базовых вычислениях станет пассивной (это определяется условием таъл.ъвэсасвлсс).чв(иаьл.ы1в)), машина передает токен через порт осе предварительно увеличив его значение на величину счетчика с данной машины и перекрасив токен в темный цвет„если это нужно в соответствии с третьим правилом алгоритма. Дополнения в корневом активном объекте Здесь добавлены только связи экземпляров машин по портам ) о и осе. Машины должны быть связаны в кольцо. Для того чтобы это сделать, в окне структуры активного объекта иовв1 порты реплицированного экземпляра объекта масьълв связаны соединителем, и в окне свойств этой связи выбраны нужные варианты соединения. Для начальных точек соединения это порты оос машины (ъ+т); конечная точка связывает порты ъл машины (ъ).

Кроме этой связи нужно замкнуть кольцо. Для этого в поле Двяалиительвый код класса окна Кпд объекта иос)в1 введена функция оосквасв() с единственным оператором: тасьгле.ъсеп(0).оие.соопесе(тасьъпе.геев(таси).пе.вазе()-1).)п)р Дополнения в анимации Поскольку каждая машина участвует в двух разных вычислениях (в базовых и обмене токенами), в анимации она представлена прямоугольником, разделенным на две части. Нижняя половина отражает динамику базового алгоритма, верхняя половина отражает работу алгоритма распределенного завершения. В эту верхнюю половину помещено также изображение токена кружком, меняющим цвет от светло-серого к темно-серому в соответствии с алгоритмом. Токен включает накопленное значение соквл.соиле при движении токена по кольцу.

Видимость изображения токена определяется булевой переменной ьавтоквл, которая устанавливается в свив при получении машиной токена. На рис. 19.4 показано состояние системы машин, при котором токен находится в машине 4. Будучи порожденным машиной-лидером с номером О, токен прошел в последнем цикле по крайней мере одну черную машину„ поэтому сам стал черным. К текущему моменту он накопил число 7 при движении па кольцу, суммируя значения счетчиков базовых сообщений всех машин. 34х Часть У.

Примеры моделей для различных областей применения Рис. 19.4. Анимация работы алгоритма распределенного завершения Если по получении токена машина-лидер обнаружит, что: П сама эта машина белая, П полученный токен белый„ гз сумма значений токена и счетчика с машины О равна О, то машина принимает решение о том, что состояние завершения распределенных вычислений достигнуто. При обнаружении этой ситуации машина- лидер переходит в заключительное состояние зсорл1яоггсьы, булева переменная ггптвьеа устанавливается в схце, и модель останавливается. Информация об обнаружении завершения появляется в поле анимации.

19.2. Заключение Предоставляемые АпуЕоя1с визуальные средства разработки моделей параллельных и распределенных систем, удобная интеграция визуальной разработки с фрагментами кода на языке Заза для выражения алгоритмов, а также возможность визуализации функционирования параллельных систем делают АпуЕорс весьма привлекательным инструментом для построения моделей сложных протоколов коммуникации.

Трудоемкость разработки таких моделей сравнительно невелика. Например, разработка модели алгоритма распределенного завершения заняла менее одного рабочего дня. Глава 20 Модели коллективного поведения В этой главе представлены две классические широко известные модели коллективного поведения объектов в искусственном мире: синхронизация цепи стрелков и модель неве ваяв (Тепловые жуки). Эти модели приведены здесь для того, чтобы показать, насколько проста реализация моделей искусственной жизни в среде Апу1оя1с.

20.1. Задача о синхронизации цепи стрелков (Нг1пд Зциаб РгоЫегп) Эта классическая проблема синхронизации коллектива взаимодействующих объектов была поставлена Дж. Майхиллом в 1957 г. и опубликована в 1ЕМб2]. Данной проблеме посвящено болыиое количество литературы. На русском языке обсуждение проблемы было опубликовано в книге 1ММ711 20.2.

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

На одном краю цепочки находится Генерал, который в начальный момент переходит в состояние приготовиться. Тем самым он подает команду, т. к. его новое состояние воспримется на следующем шаге по времени его соседом — крайним стрелком. На другом конце цепочки находится Сержант. Алгоритмы Генерала и Сержанта могут отличаться от алгоритма функционирования Часть и Примеры моделей для реэличных областей применения стрелков, которые все одинаковы. Этот алгоритм функционирования стрелков и нужно построить. 20.3. Идея решения Основная идея решения заключается в посылке по цепи стрелков сигналов, распространяюшихся с разной скоростью. Очевидно, что самая большая скорость распространения сигнала по цепи — один стрелок в единицу времени. Если один сигнал распространяется втрое медленнее другого, то два этих сигнала могут встретиться на середине цепочки после того, как более медленный сигнал отразится от края цепи.

Сигнал в нашем случае — это изменение состояния элемента цепи — стрелка. Пример распространения сигналов представлен на рис. 20.1. Каждая строка отражает состояния стрелков цепочки на очередном шаге по времени. В каждой строке прямоугольники представляют стрелков, цвет прямоугольников показывает состояние стрелка. Крайний левый прямоугольник — Генерал, крайний правый прямоугольник — Сержант. В приведенном здесь решении моделируется работа алгоритма из 13 состояний, число шагов которого о (и), и всегда меньше зп, где и — число стрелков. Рис. 20.1. Распространение волн сигналов в цепочке стрелков со временем в модели Глава ЯО.

Марели коллективного поведения 20.4. Описание модели Модель въхтпд вдова ввоыеа находится в папке Моде! Ехашр!еа1рап У. Она содержит три активных объекта, которые моделируют поведение Генерала, Сержанта и стрелка. Модель собирается в корневом объекте аоос, который включает одного Генерала, массив стрелков и одного Сержанта. 20.4Л. Модель Генерала МОДЕЛЬ ГЕНЕраяа (Сепета1) СОдЕржИт ВНутрЕННЮЮ ПЕрЕМЕННуЮ в~уаеаее типа сват и две интерфейснь|е переменные того же типа, еировеиудсасе и ладье. Кроме того, обьект содержит стейтчарт и два статических таймера (рис.

20.2). йио. 20.2. Класс Сепепа1 Переменная вудское принимает значение текущего состояния этого активного объекта. Состояния объектов в модели обозначаются символами. Выходная интерфейсная переменная называется ехровеиувсасе, она передает состояние данного активного объекта тем переменным, которые будут с нею связаны. Входная интерфейсная переменная т1дьс будет показывать состояние соседа справа. Начальные значения этих переменных неважны. Стейтчарт с именем па1п содержит три состояния, начальное с именем л, состояние готов с именем к, и состояние сереляй с именем в.

В нашей модели активные объекты переходят из состояния в состояние синхронно, каждую единицу модельного времени, но только в том случае, если выполнены условия перехода — в частности, соседи находятся во вполне определенных состояниях. Самое простое решение смоделировать такие переходы — зто выполнять их по сигналу с учетом защиты (спите). Сигналом. по которому разрешен переход, является получение любого объекта типа Часть (ь' Примеры мсделей для различных областей применения Оьбеов, этот сигнал периодически будет посылаться стейтчарту таймером вупсьго.

Переход из состояния л в состояние к осушествляется, как только такое событие произойдет, потому что Генерал делает первый шаг, выдавая кОманду приготови ься независимО От каких-либо условий с самого начала функционирования системы. Переход Генерала из состояния к в закл(очительное состояние э требует, чтобы состояние его правого соседа было тоже готов, т. е. имело имя к. При входе в каждое состояние переменной вуувсвсе присваивается значение, соцтветствуюшее этому состоянию, например, при входе в состояние с именем к выполняется оператор иуэсвсе= к . "Жизнь" этому объекту придает таймер вупспго, который периодически каждую единицу модельного времени генерирует событие, направленное непосредственно стейтчарту с именем пвъп. Это описывается вызовом функции гъгекуепв с передачей произвольного объекта базового типа оубесс у стейтчарта: ввтп.гъгекуепс( пеи Оьбесс(( ] Аргументом у функции еъгекуепс() может быть, в частности, объект любого типа, а переход стейтчарта может быть определен, если объект именно этого класса получен.

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6376
Авторов
на СтудИзбе
309
Средний доход
с одного платного файла
Обучение Подробнее