
Управленческие решения / mat_Gelrud / тема17
.doc
Тема 17
Имитационное моделирование
Как уже отмечалось, модели линейного программирования наиболее успешно применяются при планировании усилий, связанных с реализацией комплексных проектов. Если плановый период имеет большую протяженность (например. 10 лет или более), соответствующая многошаговая модель линейного программирования, как правило, содержит лишь среднегодовые показатели. При этом влияние результатов оптимизации на показатели, характеризующие текущие операции на отрезках продолжительностью от 1 недели до 1 месяца, в явной форме не учитывается. Если же рассматривается плановый период значительно меньшей продолжительности (скажем, от 3 месяцев до 1 года), то соответствующая модель полностью абстрагируется от вариаций плановых показателей на временных отрезках продолжительностью от 1 рабочего дня до 1 недели. Таким образом, анализ, осуществляемый в рамках линейного программирования, обычно не позволяет определить правила, с помощью которых можно было бы перейти от рекомендуемого плана к процедурам его реализации на отрезках времени, меньших по сравнению с интервалами, которые рассматриваются моделью.
Ограниченность анализа, основанного на использовании метода линейного программирования, обусловлена также отсутствием достоверной информации относительно будущего. Неопределенность прогнозов в той или иной степени свойственна всем задачам планирования.
Модели динамического программирования, напротив, вполне пригодны для анализа мультивременных задач планирования в условиях неопределенности и, таким образом, подходят для построения оптимальных стратегий. Однако по сравнению с моделями линейного программирования динамические оптимизационные модели способны в реальных условиях описывать лишь чрезвычайно упрощенные операционные системы. Как было показано в теме 14, если исключить случаи, когда исследуемая система характеризуется небольшим количеством переменных состояния, вычислительные процедуры при нахождении решений для моделей динамического программирования оказываются неимоверно трудоемкими.
Ориентированные на использование математического аппарата вероятностные динамические модели, в частности модели управления запасами и модели массового обслуживания, также обладают аналогичным недостатком (темы 9 и 10). Чтобы найти численное решение для такого рода моделей, приходится не только ограничиваться случаями, когда операционная система обладает небольшой размерностью, но и вводить упрощающие предположения относительно самой схемы функционирования исследуемой системы. Так, например, с помощью характерных для теории массового обслуживания математических методов, которые аналогичны методам, изложенным в теме 10, невозможно полностью адекватным образом проанализировать «поведение» очередей в ремонтных мастерских. Соответствующие стохастические модели могут служить лишь грубым приближением протекающих в действительности процессов формирования и обслуживания очередей.
Итак, несмотря на то, что математическое программирование и стохастическое моделирование имеют широкий диапазон применения, при рассмотрении многих важных задач организационного управления возникает необходимость обращаться к совершенно иным методам анализа.
Методы, изложенные в предыдущих темах, не смогут обеспечить исчерпывающего анализа таких задач организационного управления, как
1) Формирование инвестиционной политики при перспективном планировании. Инвестиционная политика крупных фирм должна, в частности, учитывать финансовое обеспечение научно-исследовательских и опытно-конструкторских работ при создании новых видов продукции, возможности расширения рынка сбыта, критериальные оценки основных проектов, оценку степени риска при планировании тех или иных комплексов работ, источники финансирования (кредит, привлечение капитала продажей акций и т. д.), увеличение фонда заработной платы, размещение и сокращение финансовых активов, сравнительную оценку вариантов слияния с другой фирмой и приобретения последней и т. п. Полноценная модель, с помощью которой можно было бы анализировать различные варианты инвестиционной политики, должна учитывать стохастическую природу и динамический характер инвестирования, а также предусматривать способ просеивания огромного количества стоящих перед фирмой альтернатив.
2) Выбор средств обслуживания (или оборудования) при текущем планировании. Здесь рассматриваются задачи типа определения количества контрольных прилавков в большом торговом центре, количества бензоколонок на бензозаправочной станции и количества лифтов в строящемся здании. Можно привести много других примеров, в которых рассматриваются вопросы распределения кадров, планировка заводских помещений, выбор мощности оборудования и т. д.
Типичными вопросами, возникающими в связи с решением задачи выбора средств обслуживания или оборудования, являются вопросы, начинающиеся словами «сколько», «каких размеров», «как разместить».
3) Разработка планов с обратной информационной связью и операционных предписаний. К важным задачам данного класса относится, например, задача выработки правил составления календарных планов на предприятиях с мелкосерийным производством, комбинатах по ремонту различных изделий, вычислительных центрах и т. д. Эти предписания, или операционные алгоритмы, должны учитывать гарантийные сроки выполнения заказов, потребности в обслуживании, наличные ресурсы, производственные мощности, темпы повышения квалификации рабочих (или приток дополнительной квалифицированной рабочей силы), уровень снабжения сырьем, по мере поступления информации о новых уже выполненных заказах предприятие сталкивается с задачей уточнения или полного пересмотра своих планов-графиков.
Почему описанные выше классы задач с трудом поддаются анализу? Причина заключается в необходимости одновременного учета факторов неопределенности, динамической взаимной обусловленности текущих решений и последующих событий, в комплексной взаимозависимости между управляемыми переменными исследуемой операционной системы, а в ряде случаев также и в том, что требуется рассматривать строго дискретную и четко определенную последовательность интервалов времени. Такого рода «глобальные» системные задачи обладают слишком большой размерностью и наличием слишком большого количества внутренних взаимосвязей, в силу чего их не удается решить методами математического программирования. Решения, принимаемые по вопросам, порождаемым перечисленными выше проблемами, нередко приводят к очень большим затратам и существенным образом влияют на будущие стоимостные характеристики функционирования системы и на эффективность деятельности фирмы в целом. Поэтому руководители такого рода фирм крайне заинтересованы в применении системного подхода к решению возникающих перед ними задач с тем, чтобы анализ организационно-управленческих ситуаций отличался более высоким качеством по сравнению с анализом, основанным на чистой интуиции или на опыте. Наиболее эффективным из существующих в настоящее время методов является имитационный подход. В настоящей теме наша основная цель заключается в том, чтобы дать описание метода имитационного моделирования и определить, какого рода задачи могут этим методом решаться. Мы не собираемся рассматривать вопросы, связанные с построением и анализом имитационных моделей (или схем) во всех подробностях. Эти вопросы излагаются в специальных работах, посвященных проблемам имитационного моделирования, а также в учебных пособиях, которые выпускаются фирмами-изготовителями ЭВМ и содержат описание специализированных языков для составления имитационных машинных программ.
При имитационном подходе прежде всего строится экспериментальная модель системы. Затем производится сравнительная оценка конкретных вариантов функционирования системы путем «проигрывания» различных ситуаций на рассматриваемой модели.
Обычно представляется слишком неудобным и дорогостоящим решать задачи организационного управления путем имитации реальных действий, как, например, это делается в армейских условиях во время различного рода учений. Более предпочтительным является представление сложной функциональной системы с помощью логико-математической модели, «заложенной» в ЭВМ.
При этом факторы неопределенности, динамические характеристики и весь комплекс взаимосвязей между элементами исследуемой системы представляют в виде формул, хранящихся в ЭВМ. Имитирование системы начинают с некоторого вполне конкретного исходного состояния. В результате принимаемых решений, а также вследствие ряда контролируемых и неконтролируемых событий, среди которых могут быть и события случайного характера, система переходит в последующие моменты времени в другие состояния. Эволюционный процесс таким образом продолжается до тех пор, пока не наступит конечный момент планового периода. Отрезки времени внутри планового периода нередко оказываются четко определенными и образуют упорядоченную последовательность на достаточно большом периоде имитирования. Поэтому имитационный эксперимент сопряжен с огромным количеством вычислений, выполняемых ЭВМ с большой скоростью. Такое отражение в ЭВМ реального процесса длительностью в несколько лет за несколько минут называют сжатием времени.
Многие специалисты по исследованию операций смотрят на машинное имитирование как на средство, к которому прибегают лишь в самых крайних случаях. Это отношение объясняется двумя причинами.
Первая из них связана с характером самих результатов имитирования. Когда модель содержит элементы неопределенности, каждый ответ, вытекающий из конкретного акта имитирования, необходимо рассматривать только как оценку, верную с точностью лишь до статистических погрешностей. Так, например, имитационная модель образования очереди дает лишь оценку ее средней длины и соответствующую вероятность задержки. Следовательно, делая выводы об относительных преимуществах различных пробных вариантов с учетом результатов имитационных тестов, необходимо проявлять осторожность при оценке флуктуаций, сопровождающих исследуемый процесс.
Вторая причина недоверия к имитационному методу определяется способом его практического использования. Если функциональная система настолько сложна, что для ее рассмотрения неприменимы такие методы операционных исследований, как линейное и динамическое программирование или обычный анализ в рамках теории вероятностей, то построение имитационной модели и последующий анализ результатов имитирования в этом случае скорее всего будут сопряжены со значительными трудностями. Многие из склонных к опрометчивым выводам операционистов не без досады убедились, что, как и реальная действительность, «имитационный мир» оказывается трудно постижимым — имитационная модель приводит к такому количеству разнообразных исходов, что в результате получаемую информацию не так-то легко интерпретировать. Цель имитационного моделирования состоит в воспроизведении поведения исследуемой системы на основе результатов анализа наиболее существенных взаимосвязей между ее элементами. Результаты исследования имитационной модели, как правило, представляют собой оценки значений операционных (функциональных) характеристик той системы, поведение которой имитируется. Так, например, при имитационном моделировании функционирования любой системы массового обслуживания практический интерес могут представлять такие показатели, как средняя продолжительность обслуживания «клиента», средняя длина очереди, доля времени вынужденного простоя системы обслуживания и т.д.
Имитационное моделирование следует рассматривать как статистический эксперимент. В отличие от описанных выше математических моделей, результаты которых отражали устойчивое во времени поведение системы, результаты, получаемые в имитационной модели, представляют собой наблюдения, подверженные экспериментальным ошибкам. Это означает, что любое утверждение, касающееся характеристик моделируемой системы, должно основываться на результатах соответствующих статистических проверок.
Метод, используемый для решения перечисленных выше задач, который в известном смысле является предшественником современного имитационного моделирования, известен давно. Это — метод Монте-Карло. Его основная идея состоит в использовании выборок для получения искомых оценок. Процесс получения выборок требует, чтобы решаемая задача была описана соответствующим вероятностным распределением, в соответствии с которым и осуществляются выборки.
Популярность метода Монте-Карло применительно к решению теоретических задач стала падать в конце 50-х годов. Больший интерес стал проявляться к способу анализа сложных практических задач, который стали называть имитационным моделированием. Имитационное моделирование, подобно методу Монте-Карло, основано на использовании выборок оценивания результатов работы системы. В этом отношении многие идеи, возникшие в связи с методом Монте-Карло, нашли непосредственное приложение в имитационном моделировании. К этим идеям относятся использование случайных чисел для получения выборок в соответствии с некоторым вероятностным распределением и разработку способов уменьшения объема выборок, необходимых для надежной оценки результата.
Изложенные выше соображения позволяют также понять, почему метод имитационного моделирования удается реализовать только с помощью ЭВМ. Для получения статистической надежности, достаточной для обоснования управляющих решений, как правило, требуется многократное повторение имитационных тестов.
В отличие от математического программирования имитационное моделирование пока не располагает хорошо структурированными принципами построения моделей. Каждый конкретный случай требует значительной специальной проработки. Используемые при этом языки моделирования являются той основой, на которой возможна выработка каких-либо общих принципов построения имитационных моделей. (Широко распространенными языками моделирования являются Симскрипт и GPSS.)
Отсутствие единой теории имитационного моделирования на ЭВМ есть одновременно «и благо, и зло». Положительным здесь является то, что имеется возможность строить имитационные модели любой степени сложности при огромном количестве динамических взаимосвязей, а также при отсутствии стационарности и наличии взаимно коррелированных стохастических элементов. Отрицательным же моментом является то, что по мере усложнения модели оценка степени ее адекватности оказывается весьма затруднительной.
Целевая установка. При построении имитационной модели, предназначенной для углубленного анализа проблем организационного управления, преследуют по крайней мере одну из следующих целей:
1) Изучение действующей функциональной системы. Рассмотрим промышленную фирму, которая недавно зарегистрировала увеличение числа заказов на свою продукцию и отметила затем заметное ухудшение качества обслуживания своих клиентов в части соблюдения сроков выполнения этих заказов. У этой фирмы может появиться желание построить имитационную модель, с помощью которой можно было бы изучить, каким образом существующие процедуры определения сроков выполнения принимаемых заказов, календарного планирования производства и оформления заявок на поставку сырья порождают наблюдаемые задержки.
2) Анализ гипотетической функциональной системы. Обратимся к больнице, руководство которой рассматривает вопрос внедрения новой системы управления запасами медицинских препаратов. Руководство больницей может изъявить желание построить с использованием ретроспективных данных имитационную модель, чтобы проверить, каким будет средний уровень средств, связанных в запасах, и как часто будут возникать нехватки различных видов препаратов в случае, если будет реализован предлагаемый план.
3) Проектирование более совершенной функциональной системы. Рассмотрим предприятие с мелкосерийным производством, в котором станочные мощности распределены в соответствии с приоритетами, присвоенными выполняемым работам. У фирмы может появиться желание построить имитационную модель для нахождения эффективного способа определения системы приоритетов с тем, чтобы все работы могли выполняться без больших задержек и чтобы при этом коэффициент использования оборудования предприятия был достаточно высок.
Перейдем теперь к описанию этапов построения и использования имитационной модели.
Шаги практической реализации имитационного метода. Ниже приводится краткая характеристика каждого из основных видов работ, которые необходимо выполнить с целью практической реализации метода имитационного моделирования:
Шаг 1. Построение модели. Содержание данного этапа почти не отличается от содержания этапа построения модели любого другого типа. Опасность при этом заключается в излишней детализации модели, которая может привести к слишком большим затратах машинного времени при выполнении соответствующего эксперимента. Лучший способ уберечься от такого рода опасности заключается в том, чтобы постоянно помнить о конкретной цели исследования. Например, если модель должна помочь в выборе одного из двух вариантов размещения нового складского помещения, то, по-видимому, нет необходимости при построении имитационной модели делить плановый период на часы или дни: вполне достаточно использовать отрезки времени, продолжительность которых равняется 1 недели. Однако если с помощью модели нужно решить, сколько в новом складе должно быть погрузочно-разгрузочных платформ (например, одна или две), то, возможно, возникнет необходимость имитировать процесс функционирования упомянутого складского помещения, ориентируясь на отрезки времени продолжительностью от 5 до 15 мин.
Шаг 2. Разработка проекта эксперимента. Операционист сможет уменьшить вероятность той или иной ошибки и, таким образом, потери времени, если он подробно разработает сопровождающие эксперимент процедуры до того, как модель будет «приведена в действие». Это означает, что операционисту необходимо тщательно продумать, какие функциональные характеристики имитируемой системы планируется измерять. Кроме того, следует определить, с помощью какого метода математической статистики будут учитываться флуктуации экспериментальных данных, полученных в результате этих измерений.
Шаг 3. Разработка программного обеспечения. Весь имитационный эксперимент проводится на ЭВМ. Другими словами, все стадии эволюционного развития модели, так же как и генерирование случайных событий, протекают в ЭВМ. Если имитируемая система обладает очень простой структурой, то может оказаться, что при разработке соответствующего «вычислительного варианта» модели удобнее всего использовать один из стандартных языков программирования. Однако представляется более вероятным, что предпочтение будет отдано одному из языков моделирования, такому, как Симскрипт или GPSS, трансляторы с которых имеются для многих ЭВМ.
Пример 17.1. Имитационное моделирование фондовой биржи.
Мистер N хочет оценить степень оптимальности некоторой конкретной стратегии приобретения и продажи акций. Для упрощения схемы рассуждений предположим, что он приобретает или продает только какие-нибудь одни акции. В рассматриваемый момент времени он обладает пакетом в 100 акций, каждая из которых оценивается на текущий момент в 10 у.е. Для простоты, допустим также, что цена акции может ежедневно меняться только на 1 у.е. Держатель акций совершает не более одной сделки в день и платит за каждую сделку комиссионные в размере 2% стоимости реализуемых акций (как в случае приобретения, так и в случае продажи); разумеется, в некоторые дни таких сделок может и не быть.
Цена одной акции в n-й день n-й день |
|||
Цена одной акции |
Возрастает |
Остается без изменения |
Падает |
в (n -1)-й день |
|||
Возросла по сравнению с (n-2)-м днем |
1/2 |
1/4 |
1/4 |
Осталась такой же, как и в (n -2)-й день |
1/4 |
1/2 |
1/4 |
Упала по сравнению с (n - 2)-м днем |
1/4 |
1/4 |
1/2 |
Р и с.17.1. Вероятности изменения цен на акции |
Мистер N хочет проверить степень прибыльности следующей стратегии:
1) обладая пакетом акций, необходимо продать его, как только цены на акции начинают падать;
2) в противном случае следует приобретать акции, как только цены на них начинают возрастать.
Если мистер N обладает пакетом акций, то, согласно стратегии, он сохраняет его в течение всего периода, когда цены на акции либо не меняются, либо возрастают; если же мистер N не располагает акциями, то он воздерживается от их приобретения в течение периода, когда уровень цен на них либо остается без изменений, либо падает.
Чтобы произвести оценку такой стратегии, мистер N должен, кроме того, сделать некоторое предположение относительно характера суточных изменений цен на акции. На основе анализа ретроспективных данных мистер N строит модель изменения цен, представленную на рис.17.1. Проиллюстрируем эту таблицу, рассмотрев в ней вторую и третью строки. Если как в понедельник, так и во вторник цена одной акции равняется 10 у.е. то, по мнению N, в среду цена одной акции будет равняться II с вероятностью 1/4, 10 с вероятностью 1/2 и 9 с вероятностью 1/4 (см. вторую строку). Если же во вторник цена одной акции равняется 9 у.е., то, как полагает N, в среду одна акция будет стоить 10 у.e. с вероятностью 1/4, 9 с вероятностью 1/4 и 8 с вероятностью 1/2 (см. третью строку). Заметим, что в случае, когда цена акции возрастает, N считает, что с вероятностью 1/2 она будет продолжать возрастать; аналогичные суждения он выносит и в тех случаях, когда цена акции не меняется или начинает падать.
Прежде чем начинать имитационный процесс необходима генерация конкрет-ных ситуаций, которые происходят в соответствии с распределением вероятностей, приведенным на рис. 17.1, и отражали бы стохастический дрейф цен.
Один из наиболее простых способов такого рода генерации заключается в бросании двух монет; при этом соответствие между случайными исходами при бросании монет и генерируемыми ситуациями можно представить с помощью таблицы, приведенной на рис. 17.2. Нетрудно убедиться, что при таких правилах соответствия генерируется распределение вероятностей, полностью совпадающее с распределением, которое предполагалось мистером N.
в (n—1)-й день |
Цена одной акции в п-й день |
||
Возрастает |
Остается без Падает изменения |
||
Возрасла по сравнению с (n-2)-м днем |
Герб и решетка |
Два герба |
Две решетки |
Осталась такой же, как в (n-2)-й день |
Два герба |
Герб и решетка |
Две решетки |
|
Два герба |
Две решетки Герб и решетка |
|
Рис. 17.2. Стохастическое изменение цен, полученное путем бросания монет |
Пусть имитируется период продолжительностью 20 дней, каждый из которых соответствующим образом занумерован (день 1, день 2, день 3 и т. д.). При этом пару монет нужно бросать 20 раз; результаты последовательного бросания монет представлены в таблице на рисунке 17.2. Для определения соответствующей последовательности цен на акции необходимо задать начальные условия, а именно цену одной акции в день 0, а также информацию относительно того, наблюдалось или не наблюдалось в этот день изменение цены по отношению к предшествующему дню. Пусть цена одной акции в день 0 равнялась 10 у.е. и совпадала с соответствующим показателем в предшествующий день. При таких начальных условиях и при выпадании после первого бросания герба и решетки цена одной акции в день 1 равняется 10 у.е. (см. вторую строку таблицы на рис. 17.2). Тогда, поскольку цены в день 0 и в день 1 совпадают, в день 2 выпадание двух решеток означает, что цена одной акции в соответствии со второй строкой таблицы на рисунке 17.2 падает до 9. Поскольку в день 2 наблюдалось понижение цены (по отношению к дню 1), выпадание (при третьем бросании монет) двух гербов указывает на то, что в день 3, согласно третьей строке таблицы, цена одной акции будет равняться 10. (Читателю предлагается самостоятельно проверить данные, содержащиеся в таблице на рис.17.3 для дней 5, 10, 15 и 20).
-
день
Результат
бросания
монет
Направление из-менения вчераш-ней цены
Цена
акции
0
-
-
10
1
г/р
Без изменения
10
2
2р
- “ -
9
3
2г
Убывает
10
4
2г
Возрастает
10
5
2г
Без изменения
11
6
г/р
возрастает
12
7
2г
- “ -
12
8
2р
Без изменения
11
9
2г
убывает
12
10
г/р
возрастает
13
11
2р
- “ -
12
12
г/р
убывает
11
13
2р
- “ -
11
14
2г
Без изменения
12
15
г/р
возрастает
13
16
г/р
- “ -
14
17
2р
- “ -
13
18
г/р
убывает
12
19
г/р
- “ -
11
20
2р
- “ -
11