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

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

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

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

Обращение к переменным и параметрам объекта пз включающего класса: х = адепп.воет(0).аде; Этот код, записанный в классе иоо)е1, при выполнении модели вызовет присвоение переменной х объекта хоос значения переменной аде экземпляра реплицированного объекта класса лдепп, включенного с номером О в объект хооп. адепс.)сее(О).аде = 0; адепп. Рсее(0).ееснос)).рвес)П; Этот код, также записанный в классе мое(е1, не только изменяет значение переменной аде в объекте адепс.).сее(о), но также вызывает и пересчет всех условий (например, условия срабатывания перехода в стейтчарте), которые зависят в этом объекте от переменной аде и могут влиять на его будущее поведение. адепТ.

воет(0) . аеп рахат(25); Этот код, записанный в классе нос(е1, при выполнении модели вызовет присвоение параметру рагае объекта адепп.ъпее(о) значения 25, после чего будет вызвана Функция опсьапде рахат, этого объекта. Эта функция может быть определена разработчиком в классе лдепс, для возможного изменения состояния экземпляров данного класса при изменении параметра реха . Если такая функция разработчиком не определена, по умолчанию выполнится подобная функция с пустым телом. Часть И. Средства дл тс для имитационного моделирования систем Доступ к объекпвп включающего класса: моае1 в = (иаае1)дееситтех() т ((в.адепх).хаос)ов()).аде = 35т Пусть эти операторы определены в классе хдепх.

Первый оператор обьявляет переменную в типа моае1, значение которой устанавливается как объект типа мсае1, включающий данный обьскт. Второй оператор увеличивает на ) переменную х во включающем объекте, т. е. в объекте хоох. Третий оператор случайно выбирает одного из агентов, вклточенных в класс мзе1 (т. с. находящихся в обьекте хаос), 'и переменную аде этого объекта устанавливает в 35. Поскольку операция "точка" левоассоциативна, то есть а.ь.с.т) понимается как ( (а. и) .

с) . т), то третий оператор можно записать без скобок: в.адепе.хапт)ов().аде = 35; Уничтожение элемента ренлицированного набора объектов с именем аявлп т)хвроае адепе( <улаляеннй алемене насснна аделси ) 7.8. Заключение Приведенные здесь сведения по языку тата являются, конечно, недостаточными, чтобы читатель овладел существенной частью его возможностей. Однако использование даже некоторых средств языка позволяет качественно увеличить возможности построения моделей на АпуЕойтс. Примеры таких моделей мы рассмотрим в следующей главе.

Глава 8 Примеры моделей, разработанных с использованием языка дача Как уже говорилось, использование программного кода совместно в базовыми срслствами визуальной разработки моделей в АпуЕорс существенно расширяет возможности разработчика. В данной главе подробно описаны две модели, в которых включение фрагментов программного кода позволяет эффективно реализовать сложные структуры данных и алгоритмы поведения обьсктов, которые невозможно описать с помощью одних только визуальных средств.

8.1. Игра "Жизнь" (Ые) В этом разделе мы последовательно, шаг за шагом построим модсль широко известной игры ьагв. Модель включает логику, которая должна выражаться программным кодом. 8Л Л. Постановка задачи Игра "Жизнь" — это нс игра в обычном смысле слова. В ней нет игроков, нет выигравших или проигравших. Игра состоит в том, что на двумерной решетке, разделенной на ячейки, каждая ячсйка может быть в двух состояниях, живая либо мертвая. Состояния всех ячеек решетки меняются синхронно, по шагам.

На каждом следующем шаге состояние ячейки зависит от сс состояния на предыдущем шаге и состояний восьми соседей в сс окружснии также на предыдущем шаге. В зависимости от количества живых соседей, на очередном шаге ячейка становится живой или мертвой в соответствии со следующими правилами: П мертвая ячейка, имеющая ровно три живых соседа, становится живой (рождсние); С3 живая ячейка, имеющая два или три живых соседа, остается живой (вы- живает); Часть!Ъ Средства дпу1 оус дпя имитационного моделирования систем ь? во всех остальных случаях ячейка умирает (умирает от перенаселения либо от одиночества) или остается мертвой.

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

Шаги выполнения модели удобно задавать с помощью циклического таймера, каждое срабатывание которого вызовет функцию, которая подсчитает живых соседей всех ячеек и при необходимости изменит их состояния. Именно эта функция, которая реализует логику поведения модели, должна быть определена как лополнительный код на алгоритмическом языке вместе с необходимыми структурами данных. В Апу? о81с определите новый проект ьъгеаа а. Введите в него новую анимацию, в которой установите следующие параметры штриховой рамки, ограничивающей поле изображения в работающей модели: Х = — 420, Ъ' = — 50, Ширина = 890, Высота = 570. Анимация: прямоугольный массив ячеек В какое-либо место поля анимации введите прямоугольник с именем се11 шириной и высотой по 10 (пикселов), которая булет представлять ячейку игры "Жизнь".

В поле Количество этих прямоугольников установите н*н, (статическое) значение цвета прямоугольника может быть произвольным. Определенный так набор реплицированных (размноженных) объектов (прямоугольников) составляет одномерный вектор из и*и фигур с номерами объектов от о до лт*н-т. Определим в корневом активном объекте маът целый параметр н со значением 45. Этот параметр устанавливает размер решетки. Изменение состояний ячейки в игре "Жизнь" происходит в зависимости от количества окружавших ее живых ячеек, если они расположены в двумерной решетке.

Однако определенный нами набор прямоугольников является одномерным — именно так представляется реплицированный объект в Апу(.о81с. Для связи злементов одномерного вектора прямоугольников с двумерной решеткой в анимации будем считать, что в решетке первый индекс (будем его для определенности всегда обозначать ъ) пробегает значения от а до н-1 по оси ?'вниз в координатах поля анимации, а второй индекс (булем его лля определенности обозначать 5) пробегает значения от о до и-т по оси Х вправо в координатах поля анимации (рис.

8.1). Глава 9. Примеры моделей, раэработаннык с использованием языка )аьа 159 о ( г ! (у-1 и-( )кис. 8.1. Соотношение одномеоного индекса и индексов двумерной оешетки Если номер прямоугольника в перечислении этих прямоугольников как одномерного массива графических объектов есть 1пг)ех, то пара координат (1, з ) этого прямоугольника в двумерной решетке может быть подсчитана так: 1=1пг)ех/н з=ъпоехвн По умолчанию ьпаех — имя переменной в Апу1 од[с, пробега(ошей все значения номеров реплицированного объекта в окне его свойств.

Поскольку мы определили размеры прямоугольника )Ох[О, то координаты прямоугольников в псле анимации легко определить так: Х= 10*(1пг[ехви] у= 1О* (тпг)ехуи) Именно эти значения слелует установить в поле динамических значений КООРДИНат К И )' ПРЯМОУГОЛЬНИКОВ С ИМЕНЕМ Се11 В аНИМаЦИИ. ВСЕ Н*Н ПРЯ- моугольников расположатся в плоскости поля анимации вплотную друг к другу в двумерной структуре. По оси К расположатся н первых прямоугольников, ниже расположатся н вторых и т. п. Откомпилируйте модель. Сравните ее с моделью ьтгеаеое1 папки Моде! Ехаптр]аз~рад П. 8.1.3. Дополнительные переменные и функции Определите двумерный массив булевских значений, показывающих состояние прямоугольников решетки.

Для этого в поле Дополнительный код класса окна Код корневого обьекта мего введите объявление этого двумерного массива: Ьоо1еап [) [) е11ое †" пен Ьоо1ееп [Н] [Н] г Если а11ое[1) Ц ] ИетИнио, то будем считать, что ячейка с индексами (',з) находится в состоянии "живая", если а11ое [1) ц) ложно, то будем считать, Часть!(.

С дотла Дпу1одк для имитационного моделирования систем что соответствуюшая ячейка "мертвая". Состояния ячеек будем отражать на анимации цветом прямоугольников, значение которого надо задать в поле динамическою значения цвета. Запустите модель со1отмоае1 и подберите два цвста — один для состояния живой ячейки„другой — лля состояния мертвой ячейки. Например, для живой ячейки можно выбрать цвет с параметрами (<л>,<о>,<в>), равными (50, 10,255>, а для мертвой ячейки — равнЫми (30,100,130>. Чтобы графические обьекты — прямоугольники — были в анимации закрашены в цвет, соответствуюший их состоянию, в поле динамического значения ЦВЕта ЗаЛИВКИ ПРЯМОУГОЛЬНИКа Се> 1 В ОКНЕ СВОйСтВ ЭТОГО ГРафИЧЕСКОГО ЭЛЕ- мента в анимации введите условное выражение: а11ззе [1поех>Н] [1пс]ех/Н] т пеи Со1от(50,210, 255):пеи Со1от(30, 100, 130> Начальные состояния прямоугольников (живой-мертвый) можно задавать разными способами.

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

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

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