Ю. Карпов - Иммитационное моделирование систем с AnyLogic 5 (1124147), страница 34
Текст из файла (страница 34)
В обьектах модели выделены общие логические функции поведения, которые, будучи реализованы отдельно, позволяют упростить и прояснить реализацию других объектов и всей модели. 8.2.1. Постановка задачи Запустите модель наг~ еае. Анимационная картинка (рис. 8.4) представляет общую структуру и динамику модели. Цель модели — продемонстрировать, что планирование совместных действий трех объектов (комбайна, трактора и грузовика), участвующих в простой и понятной активности (уборке урожая), требует нетривиальной логики управления, как это обычно и бывает в логистике.
Модель построена как игра, в которой нажатием соответствующих кнопок в окне анимации игрок может управлять движением объектов. Трактор (саге) может быть направлен к комбайну (ссиьазо) на погрузку либо к грузовику (та сх) на разгрузку. Грузовик может быть направлен на разгрузку к бункеру (в/ и) либо от бункера в поле (гьеы) для погрузки в него собранной части урожая из трактора.
Качество управления этими объектами оценивается временем, в течение которого весь урожай с поля будет убран в бункер. Глава 8. Примеры моделей, разработанных с использованием языка 3ача 1бб Для быстрой уборки требуется непростое взаимодействие машин, организация которого и составляет задачу игрока.
Игра происходит по раундам, лучшее время уборки урожая по всем предыдущим раундам показывается игроку. Рис. 8М. Анимация модели "Сбор урожая" 8.2.2. Абстрагирование при построении модели В отличие от модели игры ьзее, рассмотренной выше, эта модель строится для представления динамики процессов, происходящих в реальном мире. Поэтому вопросы абстрагирования при построении этой модели играют важнейшую роль. 8.2.3. Предположения о движении обьектов модели С помощью модели иах ~вас мы хотим проанализировать сложную логику и динамику взаимодействия нескольких объектов, участвующих в уборке урожая. В модели представлено движение объектов в двумерном пространстве Часть П. Средства АлуГ ода для имитационного моделирования систем и их взаимодействие в том смысле, что после заполнения емкости комбайн не может продолжать уборку и вынужден стоять, ожидая трактор для разгрузки, после заполнения кузова трактора тот должен ехать для разгрузки к грузовику и т.
п. При построении модели должны быть решены вопросы: насколько детально следует в модели отражать движение объектов и процессы загрузки-выгрузки, будут ли они выполняться с постоянной либо с переменной скоростью, учитывать ли фактор случайности. Все эти вопросы должны решаться в зависимости от той цели, которую ставит перед собой разработчик молели. Целью данной модели является анализ логики управления взаимодействием объектов системы во времени в процессе их функционирования.
Поэтому в данной модели все процессы мы будем считать детерминированными, скорости передвижения и скорости заполнения емкостей собранным урожаем будем считать постоянными, а передвижение — равномерным, временами разворота движущейся техники пренебрегаем — не это важно для нас с точки зрения цели исследования. Именно поэтому мы абстрагируемся от указанных ранее деталей, считая их несущественными.
В действительности, все эти детали при необходимости могут быть потом добавлены в модель. 8.2.4. Представление процесса сбора урожая Интересным является вопрос о том, как представить в модели сам сбор урожая. На поле анимации в случайном порядке разбросаны зеленые точки, имитирующие урожай. Самым глупым вариантом моделирования сбора урожая была бы реализация анализа того, пошел ли комбайн до очередной точки, и если дошел, то активизировать помещение некоторой части урожая в бункер комбайна и исчезновение этой зеленой точки из окна анимации.
В данной модели принята гипотеза о равномернсти урожая по плогцади поля, поэтому скорость заполнения бункера комбайна в модели является постоянной при движении комбайна по полю с постоянной скоростью. Что касается анимации, то с положением комбайна на поле связана полоса (прямоугольник), высота которого увеличивается при движении комбайна, накладываясь при этом поверх прямоугольника с зелеными точками урожая.
Хотя злесь не учитываются второстепенные детали реального сбора урожая, важно то, что существенные характеристики поведения объектов и их взаимодействия отражены в модели. По ходу объяснения этой модели палее будут прояснены и другие вопросы абстрагирования. 8.2.5. Выделение общей логики поведения обьектов При создании каждой модели следует стремиться сделать ее структуру простой и ясной, Структура данной модели очевидна: три объекта представляют Глава 8.
Примеры моделей, разработанных с использованием языка дача 167 сельскохозяйственную технику (комбайн, трактор и грузовик), один обьект — бункер (взо), и еше один — корневой активный объект иаьс, представляет всю модель. Очевидно, что бункер также должен быть представлен активным обьектом. Хотя он и не движется, бункер тоже имеет активность (он заполняется, когда в него разгружается грузовик). Несмотря на различные алгоритмы функционирования наших объектов, в них имеется общая логика.
Во-первых, комбайн, трактор и грузовик движутся. Во-вторых, у всех активных объектов (кроме корневого) есть логика заполнения емкостей. Один из главных интересных моментов данной модели' — то, как эти две общие функции выделены в отдельные объекты, как они реализованы и как используются. Настоящие проблемы также связаны с вопросами абстрагирования.
Понятно, что бессмысленно отражать в модели каждую деталь реального процесса уборки урожая. Для моделирования достаточным является отражение в модели лишь существенных деталей внешнего поведения объектов. Это так называемый опероционалистский подход к построению моделей. Операционалист скажет, что модель отражает реальный объект, если она ведет себя так же, как реальный объект.
В (РП05] Роджер Пенроуз с этой точки зрения анализирует вопрос "Может ли компьютер мыслить?". Компьютер мыслит, если он ведет себя так же, как и человек в момент раздумий. При этом от компьютера не требуется, чтобы он расхаживал по комнате или морщил лоб подобно тому, как мог бы вести себя размышляющий человек, еше менее важно, чтобы компьютер был внешне похож на человека. Это несущественные детали, от которых в данном случае можно абстрагироваться.
То, что нас действительно интересует при моделировании разумного поведения — способность компьютера выдавать схожие с человеческими ответы на любой вопрос. Представление непрерывных процессов дискретными. Активный объект Двигатель (Моыег) В модели нахчезс непрерывные процессы движения объектов и изменения емкостей представлены не непрерывными, а чисто дискретными процессами. Однако с точки зрения внешних объектов эти процессы ведут себя как непрерывные, например выдавая по запросу в любой момент времени корректные значения координат, что абсолютно приемлемо для моделирования. Каждая из трех машин (комбайн, трактор и грузовик) движется на плоскости.
Движение это происходит по прямой, равномерно с постоянной скоростью. Для движения обычно известны начальная и конечная точка и скорость. Одним из самых простых вариантов моделирования такого движения является моделирование его как непрерывного процесса, а именно, определение текущих координат, начальной скорости и (дифференциальных) уравнений, задающих этот процесс — движение объекта. Часть д Средства Алусоус для имитационного моделирования систем Этот подход„однако, не всегда удобен. Ои требует использования численных методов решения уравнений и проверки условия остановки обьекта на каждом шаге по времени с маленьким интервалом — фактически, имитацию непрерывного процесса с использованием численных методов.
При большом числе движущихся объектов это может существенно замедлить процесс имитационного моделирования. В данной модели непрерывный процесс движения моделируется как дискретный процесс. Поскольку моделируемое движение — равномерное прямолинейное, то при известной скорости и начальных координатах можно вычислить время, когда объект прибудет в точку назначения. Иными словами, для дифференциального уравнения движения мы можем найти решение и использовать его. Именно иа момент времени прибытия объекта в точку назначения можно взвести таймер. Событие срабатывания таймера сообщит о том, что процесс движения закончился.
Если иам нужны промежуточные коорлииаты объекта, то их легко получить в любой момент времени по остатку времени движения, скорости объекта и координате конечной точки его движения. Так непрерывный процесс представляется дискретным. Рассмотрим, как реализован непрерывный процесс движения в нашей модели.
В модели введен новый класс — абстрактный активный объект мочек, имеюшиЙ толькО сВОЙстВО "лаигаться от точки й к точке В с постоянной скоростью". От объекта мочек нужно только, чтобы ои по запросу выдавал промежуточные координаты объекта и по прибытии в точку в известил окружение, что конечная точка достигнута. В некоторых случаях это движение может быть прервано поступившим извне событием. Реализация объекта мочек очень проста. Он имеет в качестве параметров скорость че1осъсу и начальные координаты (хтптсза1 и т*пзсьа1), а также динамический параметр о лккгчат — код )ача (фактически, набор операторов), который должен выполняться при достижении объектом конечной точки.