Текст
                    
M.A. Корабли
Информатика поиска
управленческих
решении
Компьютер для ведения бизнеса
Для изучающих менеджмент
Контрольные вопросы и задания
для самостоятельного исследования
Имитационное моделирование

ББК 32.882 УДК 621.399 К66 М. А. Кораблин К66 Информатика поиска управленческих решений. — М.: СОЛОН-Пресс, 2003. — 192 с.: ил. — (Серия «Библиотека студента»). ISBN 5-98003-082-4 Монография посвящена вопросам использования современных инфор- мационных технологий в задачах поддержки принятия управленческих ре- шений. Содержит большое количество примеров и зада* 1' для проведения само- стоятельного исследования систем управления, контрольные вопросы по технологии исследования и экономической интерпретации полученных ре- зультатов. В качестве информационных систем поддержки принятия управленче- ских решений используются Solver (поиск решения на электронных таблицах EXCEL) и Micro Saint (имитационное моделирование). Для менеджеров разных уровней и профессиональной ориентации, ин- тересующихся вопросами использования информатики в практике анализа и исследования систем управления предприятиями и организациями, а так- же студентов, обучающихся по специальностям «Прикладная информатика (по отраслям)» и «Менеджмент». Для быстрого и качественного освоения материалов к книге при- лагается CD-диск. ( Сл^- Но ИЗ f " И дХ средств ББК 32.882 УДК 621.339 Книги издательства «СОЛОН-Пресс» можно заказать наложенным платежом по фиксированной цене. Оформить заказ можно одним из двух способов: 1) послать открытку или письмо по адресу: 123242,Москва,а/я 20; 2) передать заказ по электронной почте (e-mail) на адрес: magazin@solon-r.ru. При оформлений заказа следует правильно и полностью указать адрес, по которо- му должны быть высланы книги, в также фамилию, имя и отчество получателя. Жела- тельно указать дополнительно свой телефон и адрес электронной понты. Через Интернет Вы можете в любое время получить свежий каталог издательства «СОЛОН-Пресс». Для этого надо послать пустое письмо иа робот-автоответчик по ад- ресу: katalog@solon-r.ru. Получать информацию о новых книгах нашего издательства Вы сможете, подписав- шись на рассылку новостей по электронной почте. Для этого пошлите письмо по адре- су: news@solon-r.ru. В теле письма должно быть написано слово SUBSCRIBE. ISBN 5-98003-082-4 © Макет и обложка «СОЛОН-Пресс», 2003 © М. А. Кораблин, 2003
Введение Монография посвящена вопросам использования современных информационных технологий в задачах поддержки принятия управ- ленческих решений. Это направление в современном менеджменте является одним из наиболее быстро развивающихся, что определяет появление новых информационных систем и их активное использова- ние для решения новых, все более сложных проблем управления. Изложение материала ориентировано на менеджеров разных уровней и профессиональной ориентации, интересующихся вопроса- ми использования информационной поддержки принятия управлен- ческих решений в практике управления предприятиями и организа- циями. Такая ориентация предполагает весьма поверхностный уро- вень изложения вопросов организации собственно информационных систем, основное внимание читателя акцентируется на конкретных примерах использования информационных технологий, поддерживае- мых этими системами. Как выбрать ассортимент продукции, как вло- жить деньги в инвестиционный проект, стоит ли изменять структуру предприятия, как и чем при решении подобных проблем может по- мочь информатика — вот основные вопросы, определяющие цель этого издания. Вы не найдете здесь детального описания математических основ теории принятия решений — они заменены поверхностным пользова- тельским уровнем использования информационной технологии, в ко- торой «зашита» математика принятия решений. Материал не требует от читателя каких-либо специальных знаний в области информатики и вычислительной техники. Изложение доступно для каждого, кто знаком с информатикой на уровне компьютерной грамотности и хо- чет познакомиться с использованием информатики в решении прак- тических задач управления. В аудиторию читателей включаются также менеджеры, непосред- ственно связанные с проблематикой анализа и исследования систем управления, а также студенты вузов, обучающиеся по специальностям «Менеджмент» и «Информационные системы в экономике». Книга может быть использована в качестве учебного пособия при подготов- ке специалистов в области информационных технологий управления, производственного и операционного менеджмента, экономики и ор- ганизации производства.
4 Введение Методика изложения материала основана на разборе примеров проблемных ситуаций, при этом познавание собственно информаци- онной системы осуществляется непосредственно при анализе и струк- туризации решаемой задачи. Разделы «Быстрое начало», предваряю- щие каждую из частей монографии, позволяют быстро почувствовать существо и стиль соответствующей информационной технологии, как получаются результаты и как их интерпретировать. Остальные разде- лы ориентированы на уточнение и объяснение деталей и дополните- льных возможностей соответствующей информационной технологии в процессе исследования. При первом знакомстве с материалом их можно опустить. Процессы принятия решений Процессы принятия управленческих решений относятся к катего- рии интеллектуальных процессов, непременным участником которых является носитель естественного интеллекта — человек. С другой сто- роны, информатика поиска управленческих решений — одно из на- правлений искусственного интеллекта — связана с использованием новых информационных технологий и компьютерных моделей, вы- полняющих роль «советчика» в процессе принятия решений. Развитие таких технологий показывает, что подобный симбиоз естественного и искусственного не только все чаще используется в управленческой деятельности, но и в отдельных случаях является необходимым для принятия решения. Если естественный интеллект связан в первую очередь с интуицией и искусством принятия решений, то искусствен- ный обладает особыми качествами, не свойственными человеку. Это в первую очередь способность анализа большого количества вариантов решения и выбора наилучшего в том или ином смысле. В сфере информационных технологий хорошо известен класс сис- тем поддержки принятия решений (Decision Support System — DSS). Системы этого класса основаны на использовании так называемых решателей задач (Problem Solvers — PS) — пакетов программ, способ- ных решить прикладную задачу. В этом контексте общая структура процесса принятия решения может быть проиллюстрирована рис. 1.1, отражающим вложенности сред принятия решений. Верхний уровень (собственно принятия решений) — уровень взаимодействия лица, принимающего решение (ЛПР), со средой DSS, которая в свою оче- редь использует среду PS. Интерактивность взаимодействий предлага- ет ЛПР наиболее подходящий и со всех сторон «просчитанный» вари- ант решения.
Введение 5 Рис. 1.1. Отношения между DSS, PS и лицом, принимающим решение Процесс принятия решений преследует определенные цели, на- пример повысить производительность работы цеха или распределить финансовые вложения наиболее эффективным образом. В общем слу- чае целей может быть несколько, и они могут иметь определенные противоречия — дисбаланс целей. Например, целевые установки отдела маркетинга могут не совпа- дать с целевыми установками производственного отдела или произ- водство комплектующих, ориентированное на максимальные объемы, может преследовать цели, противоречащие интересам сборочного производства, ориентированного на максимальные объемы реализа- ции готовых изделий. Дисбаланс целей становится реальной пробле- мой в условиях корпоративных систем, территориально распределен- ных и работающих в разных организационно-финансовых условиях. С формальной точки зрения любая целенаправленная деятель- ность должна характеризоваться показателями ее эффективности — критериями или целевыми функциями, которые связывают эти пока- затели с ситуацией, наблюдаемой на предприятиях или в организаци- ях, занимающихся соответствующей деятельностью. Процесс деятель- ности на практике всегда реализуется в условиях определенных ресур- сных ограничений, определяющих «рамки», в которых должна быть достигнута цель. Последовательность принимаемых управленческих решений, которые должны привести из наблюдаемой ситуации к же- лаемой, которая характеризуется требуемыми значениями показате- лей эффективности, определяют тактику и стратегию управления. Любая система класса DSS связана с моделированием варианта принимаемого решения, тактики или стратегии управления. При этом модель должна рассматриваться как инструмент прогноза и предска- зания ситуаций, которые могут возникнуть при принятии соответст- вующего решения. При получении такого прогноза ЛПР может пере- смотреть выбранный вариант управления, смоделировать следствия
6 Введение другого решения и т. д. Подобная итерационная технология, извест- ная как технология «что если» (what if), свойственна всем системам класса DSS. Основными научными направлениями, определяющими методо- логию, а также концептуальные и реализационные основы соответст- вующей информационной технологии поддержки принятия управлен- ческих решений, являются: • математическое программирование; • имитационное моделирование; • эвристическое программирование. Первые два хорошо известны, они определяют содержание основ- ных разделов исследования операций — науки о математических и ал- горитмических основах процессов принятия решений [1]. Эвристиче- ское программирование как научное направление сложилось сравни- тельно недавно и на текущий момент рассматривается как один из разделов искусственного интеллекта, включающий в себя генетиче- ские алгоритмы, нечеткую логику, новые методы поиска (метод отжи- га, поиск с запретами) и т. д. Решение любой задачи поиска с помощью DSS-технологий требу- ет формального описания проблемной ситуации. Такое описание выпол- няется с использованием формальных понятий, составляющих основу информационной технологии. Например, в электронных таблицах та- кими понятиями являются: клеточная формула, изменяемая ячейка, граф зависимостей и т. п. Составить описание проблемной ситуации с использованием этих и им подобных понятий не всегда просто. Ино- гда для этого не хватает знаний в области информационной техноло- гии, иногда в предметной области, а иногда даже при наличии таких знаний не удается установить адекватное соответствие между пробле- мной ситуацией и формальной моделью. В этом заключается пробле- ма априорной неопределенности. Ситуация усугубляется еще и тем, что составление описания проблемной ситуации требует использования двух областей знаний: предметной области и формальной (собственно информационной технологии). Как правило, носителями этих знаний являются люди разных специальностей: менеджеры с одной стороны и системные аналитики, программисты, математики с другой сторо- ны, поэтому формализация проблемы требует выработки общего по- нимания, общего языка для описания ситуации. Рисунок 1.2 иллюст- рирует процесс взаимодействия носителей различных знаний — лиц, участвующих в составлении формальных описаний проблемной ситу- ации. Разумеется, что в общем случае круг таких лиц может расширя- ться, при этом взаимодействие между ними в среде DSS определяет новый круг вопросов инженерии знаний.
Введение 7 Другая проблема поиска решения — проблема размерности — свя- зана с тем, что количество управляемых факторов, определяющих ор- 1 ганизацию исследуемой системы, в общем случае может оказаться ве- сьма большим. При этом алгоритм поиска, работающий с формально определенной моделью, оказывается не способным найти приемле- мый вариант решения за ограниченное время. Причем понятие «весь- ма большое» довольно условно — в некоторых задачах это десятки пе- ременных, а в некоторых сотни и даже тысячи. Каждая такая пере- менная для ЛПР определяет своеобразную степень свободы — возможность планировать изменение соответствующего фактора в ту или иную сторону. Общее число таких степеней свободы регламентируется дополни- тельными ограничениями на пространство поиска. При большом ко- личестве ограничений проблема выбора может превратиться в проб- лему существования единственного варианта, удовлетворяющего всем действующим ограничениям. Если же таких вариантов несколько, проблема приобретает оптимизационный характер — необходимо найти наилучший (оптимальный) вариант решения. В этом плане во главу угла становится функция цели, реализующая критерий эффек- тивности принимаемого решения. Значения этой функции фактиче- ски ранжируют варианты решений по их значимости (прибыльности, своевременности, эффективности). В многокритериальных задачах та-
8 Введение кое ранжирование может выполняться несколькими функциями, вы- ражающими разные точки зрения на проблему. Возможно, что эти точки зрения принадлежат разным Л ПР. Например, продавец и поку- патель одного и того же товара руководствуются разными критериями и по-разному понимают его оптимальность. В целом по мере усложнения проблем поиска управленческих ре- шений роль DSS-технологий заметно возрастает, и по всей вероятно- сти эта тенденция имеет устойчивый характер. В данной монографии излагаются две наиболее распространенные технологии поддержки принятия управленческих решений: поиск ре- шения на электронных таблицах и имитационное моделирование. Первая освещается с использованием широко распространенного па- кета SOLVER (в среде EXCEL), вторая — с использованием учебной версии сравнительно мало известной в России системы Micro Saint [8], широко используемой в университетах США.
Часть 1 Поиск управленческих решений на электронных таблицах Использование электронных таблиц широко распространено для решения многочисленных и разнообразных задач, связанных с учетом и контролем результатов управленческой деятельности: торгово-заку- почных операций, производственных планов, бухучета и т. п. Вместе с тем форма электронной таблицы оказывается очень удобной при ре- шении многих аналитических задач управления деятельностью, и в частности задач исследования операций и поиска оптимальных реше- ний. Для решения таких задач в рамках наиболее распространенной системы электронных таблиц EXCEL используется пакет программ поиска решения (Solver). Этот пакет основан на использовании алго- ритмов и методов математического программирования — одного из основных направлений теории исследования операций. Использование программы Solver не сложно, однако методика и технология компьютерного исследования на электронных таблицах освещены в литературе очень неполно. Это обстоятельство затрудняет формализацию практических задач и, более того, окружает разработку моделей некоторой завесой научной таинственности и малодоступно- сти для практически мыслящего пользователя. В результате за рамка- ми кругозора рядового пользователя остаются многие важные аспекты и возможности повышения эффективности его производственной де- ятельности. Процесс исследования системы на электронных таблицах можно рассматривать как естественное продолжение обычной ежедневной практической деятельности, связанной с вычислениями на таблицах. Для этого нужно просто посмотреть на эту деятельность под другим углом зрения и задаться вопросом: «А что, если?..» Что если изменить условия оплаты товара, что если увеличить площади складских поме- щений и т. п. К каким изменения это приведет? Ответ на такой во- прос тесно связан с размышлениями на тему какова оптимальная стратегия и тактика использования производственных ресурсов, как достигнуть «точки оптимума» и как поддерживать баланс «в ее окрест- ности». Ответы на эти допросы и определяют основную цель исследо-
10 Часть 1. Поиск решений на электронных таблицах вания любой системы. Здесь же нам важно подчеркнуть естественную связь между обычными вычислениями на электронных таблицах и поиском оптимальных управленческих решений на тех же таблицах. Во многих случаях результаты такого поиска не просто являются неожиданными, их невозможно получить без программ поиска реше- ний, поскольку возможности человека в задачах перебора вариантов развития деятельности резко ограничены числом таких вариантов. В этом отношении программа поиска оптимального решения приоб- ретает качество уникального решателя задач, способного найти абсо- лютно нетривиальное решение, не отрабатываемое алгоритмами «ес- тественного интеллекта». Быстрое начало Задача о красках Эза задача была приведена в [1]. В первой части монографии она будет использоваться как сквозной пример для ознакомления со всеми этапами исследований систем управления на электронных таблицах. Условие задачи. Фабрика изготовляет два вида красок: для внут- ренних (В) и наружных работ (Н). Продукция обоих видов поступает в оптовую продажу. Для производства красок используются два ис- ходных продукта — П1 и П2. Максимально возможные суточные за- пасы этих продуктов составляют 6 и 8 т, соответственно. Расходы продуктов П1 и П2 на одну тонну соответствующих красок приведены в таблице. Исходный продукт Расход исходных продуктов в тоннах на тонну краски Максимальный запас исходных продуктов (Т) J краска Н краска В П1 1 2 6 П2 2 1 8 Изучение рынка сбыта показало, что суточный спрос на краску В никогда не превышает спроса на краску Н более чем на 1 т. Кроме того, установлено, что спрос на краску В никогда не превышает 2 г в сутки. Оптовые цены одной тонны красок равны: 3 тыс. долл, для краски Н и 2 тыс. долл, для краски В.
Быстрое начало 11 Какое количество красок каждого вида должна производить фаб- рика, чтобы доход от реализации продукции был максимальным? Приступая к решению этой задачи, предположим, что нам при- мерно известно, сколько краски нужно производить (например, 4 т краски Н и 2 т краски В). Аналогичное предположение целесообразно делать при решении лю- бой оптимизационной задачи, поскольку оно значительно упрощает про- цесс разработки структуры электронной таблицы (ЭТ). Сделав такое предположение, составим ЭТ, которая позволяет рассчитать расходы продуктов на производство красок и получаемый доход (см. табл. 1, 2). Анализируя табл. 1, замечаем, что расходы продуктов Ш и П2, необходимые для производства красок в соответствии с нашим пред- положением, превышают максимальный суточный запас. Следовате- льно, получить 16 тыс. долл, дохода невозможно. Таблица 1 А В С . D , Е J 11 12 13 1. Исходные продукты (Исх_Пр) для производства красок 14 Вид ИсхПр Расход Исх Пр (т/т) Макс.запас Исх Пр (т) Сут. расход Исх Пр (т) 15 Краска Н Краска В 16 П1 1 2 6 8 17 П2 2 1 8 10 18 19 20 2. Суточное производство красок. 21 22 Вид краски Объем пр-ва (т). Оптовая цена (тыс.$/т). Прибыль (тыс.$). Общая прибыль (тыс.$). 23 Н 4 3 12 24 В 2 2 4 25 26 27 3. Ограничения суточного спроса по видам красок (т). 28 Максимум Минимум 29 Краска Н 1 30 Краска В 2
12 Часть 1. Поиск решений на электронных таблицах Попробуем уменьшить объемы производства красок, например 2 т краски Н и 2 т краски В. Подставив эти числа в таблицу, мы получим новые значения прибыли, суточного расхода продуктов и спроса на краски. Продолжая этот процесс перебора вариантов, мы рано или поздно найдем вариант, при котором прибыль будет максимальной, и в то же время будут выполнены ограничения по запасам продуктов и спросу на краски. Это будет означать, что мы решили оптимизацион- ную задачу. Однако такой процесс поиска решений может оказаться слишком долгим и утомительным. Кроме того, если бы номенклатура красок включала в себя не два, а, например, десять видов, мы вообше вряд ли смогли бы найти оптимальный вариант организации производства путем простого перебора вариантов. Таблица 2 ; А В С D . _ Е . 11 12 13 1. Исходные продукты (Исх_Пр) для производства красок 14 Вид Исх Пр Расход Исх Пр (т/т) Макс.запас Исх Пр (т) Сут. расход Исх Пр(т) 15; Краска Н Краска В 16 П1 1 2 6 --В23*В16+В24*С16 17 П2 2 1 8 =В23*В17+Е24*С17 18 19 20 2. Суточное производство красок. 21 22 Вид краски Объем пр-ва (т). Опт.цена (тыс.$/т) Прибыль (тыс.$). Общая прибыль. (тыс.$). 23 Н 4 3 ~С23*В23 24 В 2 2 =С24*В24 25 26 27 3. Ограничения суточного спросп по видам красок (т). 28* Максимум Минимум 29 Краска Н =В24-1 30 Краска В 2 В этом смысле усложнение задачи связано с увеличением ее раз- мерности (количества изменяемых ячеек) и числа ограничений. Прак- тические задачи оптимизации включают в себя десятки и даже сотни
Быстрое начало 13 изменяемых ячеек и ограничений. В таких случаях на помощь прихо- дят специальные программы — решатели оптимизационных задач. Одна из таких программ — Solver — включена в систему Microsoft Ex- cel как дополнение Поиск решения (раздел меню Сервис). Поиск решения Для решения оптимизационной задачи, оформленной в структуре ЭТ, необходимо вызвать приложение Поиск решения (меню Сервис). При этом на экране появится диалоговое окно Поиск решения. В поле Установить целевую (ячейку) окна Поиск решения необхо- димо ввести имя (адрес) соответствующей ячейки. Для нашего приме- ра это ячейка Е24. Затем указывается вид оптимизации путем «нажа- тия» соответствующей кнопки, расположенной непосредственно под полем целевой ячейки. В поле Изменяя ячейки указываются имена (адреса) ячеек, содер- жимое которых подбирается программой поиска решения таким обра- зом, чтобы обеспечить требуемое значение целевой ячейки. Для на- шего примера изменяемыми ячейками являются В23, В24, содержа- щие объемы суточного производства красок. Кнопка Предположить поможет вам в определении изменяемых яче- ек: нажатие этой кнопки приводит к вводу в окно Изменяя ячейки имен тех ячеек, которые программа поиска расценивает как изменяемые.
14 Часть 1. Поиск решений на электронных таблицах В поле Ограничения должны быть введены все ограничения, свя- занные с решаемой задачей. В нашем примере такие ограничения де- лятся на три группы: • естественные ограничения: В23:В24 >= 0 (они вводятся путем нажатия на кнопку Параметры, а затем кнопку Неотрицатель- ные значения); • ограничения по запасам исходных продуктов: Е16:Е17 <= D16:D17; • ограничения спроса на краски: В23 >= D29; В24 <= СЗО. Добавление, изменение и удаление ограничений осуществляется с использованием соответствующих кнопок, расположенных в правой части поля ограничений окна Поиск решения. Нажатие кнопки Добавить или Изменить приводит к вызову до- полнительного окна определения ограничений. В поле Ссылка на ячейку вводится левая часть ограничения. Список Ограничение вклю- чает в себя отношение равенства, «больше или равно», «меньше или равно», отношение цел, которое означает, что левая часть ограниче- ния должна быть целым числом, отношение двоич,. означающее, что левая часть ограничения должна быть двоичным числом (т. е. прини- мающим значения 0 или 1). При использовании отношений цел и двоич поле справа от списка ограничений остается пустым. При испо- льзовании любого другого отношения в этом поле размещается пра- вая часть ограничения. Нажатие кнопки Выполнить окна Поиск решения приводит к запу- ску процесса поиска решения задачи оптимизации. В результате по- иска программа находит такие значения изменяемых ячеек, при кото- рых достигается оптимальное значение целевой ячейки. Для нашей задачи о красках оптимальное решение будет опреде- ляться следующими значениями изменяемых ячеек: • объем производства краски Н (ячейка В23) — 3,33 т; • объем производства краски В (ячейка В24) — 1,33 т. Оптимальное значение целевой ячейки Е24 (при выполнении всех ограничений) составит 12,65 тыс. долл.
Быстрое начало 15 Виды ячеек и зависимости Выше мы уже использовали понятия изменяемой ячейки и целевой ичейки. Изменяемые ячейки всегда содержат числовую информацию, которая подбирается в процессе поиска решения таким образом, что- (и.| обеспечить оптимальное значение целевой ячейки. Кроме того, в процессе поиска используются еще два вида ячеек: • ячейки исходных данных; • зависимые ячейки. Ячейки исходных данных содержат числа, которые не меняются программой поиска решения (Solver), зависимые ячейки содержат формулы, которые неоднократно перевычисляются в процессе поиска решения. Ячейки разного вида в электронной таблице целесообразно окрашивать разным цветом. Например, в приведенных выше табли- цах мы использовали для этого разные степени затушевывания ячеек. Наличие зависимостей между ячейками разных видов в среде EXCEL может быть проиллюстрировано графом зависимостей, по- строенным непосредственно на структуре таблицы (см. табл. 3). По- строение такого графа связано с использованием меню Сервис (Зави- симости, Панель зависимостей). Таблица 3 А В С D Е 14 И сх. продукт Расход исходных продуктов (т/т) Макс.запас Суточный расхо 15 Краска Н Краска В исх.продуктов (т) д исх.продуктов 16 П1 4 • 1 17 П2 » 2— О .г’ Н jfi пп I * 1 Г~Т1Г IU-UU 1 18 19 i 1 20 1 21 i'22. Вид краски Объем пр-вд#£ ДЙтРгая цена (тыс.Уг) Доход (тыс $) Общий доход (тыс.$) ;2з Н •-<£0^ — —«*-42,00 24 В <2^0 — >-2^9 —«М» 4;00 — 25 26 271 28 Максиму!^. Минимум 29 Краска Н 1,00 30 Краска В 2,00 Использование графа зависимостей позволяет формально контро- лировать структуру таблицы. В правильно составленной таблице все стрелки должны начинаться в изменяемых ячейках или ячейках исход-
16 Часть 1. Поиск решений на электронных таблицах ных данных и заканчиваться в зависимой или целевой ячейке. Из це- левой ячейки стрелки зависимостей не могут выходить. Таблица счи- тается хорошо структурированной, если граф зависимостей наглядно иллюстрирует причинно-следственные связи между ячейками. «Запу- танный» граф свидетельствует о плохой струкгуризации таблицы. Краткий экскурс в теорию Формулировка любой оптимизационной задачи требует использо- вания некоторой базовой системы понятий. Любая переменная (изменяемая ячейка в ЭТ) обычно интерпре- тируется как некоторый ресурс (например, ресурс времени, материа- ла, продукта, валюты), выраженный в количественном измерении (минуты, тонны, штуки, рубли). Задача оптимизации состоит в том, чтобы подобрать такие значения переменных, при которых целевая функция (целевая ячейка ЭТ) принимает максимальное, минималь- ное или заданное значение (оптимальное значение), при этом най- денные значения переменных в совокупности составляют оптималь- ное решение задачи. В классическом исследовании операций [1, 4—6] задачи матема- тического программирования делятся на несколько различных типов в зависимости от вида целевой функции и ограничений. К основным типам относятся задачи линейного и нелинейного программирования. Для первого типа характерна целевая функция, линейно зависящая от пе- ременных (ресурсов) исследуемой системы, и такие же линейные ограничения. Если же целевая функция или хотя бы одно из ограни- чений нелинейно зависит от переменной (хотя бы одной), задача от- носится к типу нелинейного программирования. В качестве примеров нелинейностей можно привести зависимости видов Xi*Xj, Xi/Xj, log(Xi) (вычисление логарифма от Xi), MIN(Xi,Xj,Xk), Xj2 (квадрат Xj) и т. д. Здесь Xi, Xj — переменные задачи. Если оптимизационная задача должна решаться в целых числах, когда хотя бы одна из переменных модели должна измеряться в шту- ках (станках, автобусах и т. п.), говорят о целочисленном программиро- вании. Наконец, если хотя бы одна из переменных может принимать только одно из двух значений (0 или 1), говорят о булевском програм- мировании. Вычислительные алгоритмы поиска решения для разных классов задач характеризуются разной степенью сложности, наиболее слож- ными являются задачи целочисленного программирования, к наибо- лее простым относятся задачи линейного программирования. Класс
Быстрое начало 17 щдач линейного программирования весьма широк, эти задачи имеют наиболее эффективную реализацию и характеризуются наглядной •кономической интерпретацией результатов. Поэтому любую иссле- дуемую систему желательно привести к линейной модели. К сожале- нию, это не всегда возможно. Любой вычислительный алгоритм решения оптимизационной за- дачи имеет характер итерационного процесса, постепенно (шаг за ша- юм) приближающегося к оптимальному решению. Такие процессы поиска решения характеризуются точностью вычислений, количест- вом итераций и временем поиска решения. Все эти характеристики определяются в разделе Параметры окна Поиск решения. Итерационные процессы поиска должны обладать свойством схо- димости вычислений. Это свойство заключается в том, что разность результатов, получаемых на n-ом и (и + 1)-ом шаге вычислений, дол- жна с ростов п стремиться к нулю: limn^o(A;+1-A'n) = 0. Здесь Х„ + „ Х„ — значения изменяемых ячеек на n-ой и (и + 1)-ой итерации. Практически п ограничивается конкретным значением N — количеством итераций. Количество итераций определяет число шагов в последовательности приближений текущего решения задачи к опти- мальному, при этом время, затраченное на реализацию такой после- довательности, определяет время поиска оптимального решения. По умолчанию в программе Solver: N = 100. Точность вычислений оптимального решения задачи определяет- ся количеством значащих цифр в представлении значений изменяе- мых ячеек Хп. Понятие точности тесно связано с понятием отклоне- ния |A^ + । — A'J, которое может задаваться в процентах от абсолютной величины XN. Итерационные процессы могут отличаться также методами реали- Иции вычислений. Для линейных моделей используется главным об- разом так называемый симплекс-метод, для нелинейных — метод Ньютона и метод сопряженных градиентов. Они кратко комментиру- ется в разделе «Поиск решения». ЗиЮТСКЭ. ПГАТИ | ----- . 1 Контрольные вопросы у н»биЫИ ф»»1^ I 1. Какое предположение целесообразно сделать перед разработкой структуоы ЭТ д.е решения оптимизационной задачи? 2. Что такое размерность оптимизационной задачи? 3. Что такое целевая ячейка? 4. Что такое изменяемые ячейки? 5. Чем отличаются зависимые ячейки от ячеек исходных данных?
18 Часть 1. Поиск решений на электронных таблицах 6. Чем отличаются изменяемые ячейки от ячеек исходных данных? 7. Перечислите и охарактеризуйте отношения в списке ограничений (ниспа- дающее меню) окна Добавить ограничение. 8. Какие ограничения относятся к естественным? 9. Чем полезна структура графа зависимостей для ЭТ, связанной с решением оптимизационной задачи? 10. В каких ячейках ЭТ программа поиска размешает оптимальное решение задачи? 11. В какой ячейке размещается оптимальное значение целевой функции'. 12. Назовите и охарактеризуйте основные виды задач математического про- граммирования. 13. Какие задачи математического программирования имеют наиболее эффек- тивную реализацию на ЭТ? 14. Чем характеризуется итерационный процесс решения задачи? 15. Можно ли рассматривать целевую ячейку как разновидность зависимой? Почему? Поиск решения Общие рекомендации по разработке структур электронных таблиц В общем случае структура ЭТ, ориентированная на решение опти- мизационной задачи, может быть представлена в различных видах. Выбор конкретного определяется во многом субъективными пред- ставлениями исследователя о наглядности таблицы, удобстве ее испо- льзования, уровне детализации и т. п. Необходимым условием корректной структуры ЭТ, используемой для решения оптимизационной задачи, является наличие изменяе- мых ячеек и целевой ячейки. Приведем несколько практических рекомендаций по оформлению задачи в структуре таблицы. При оформлении оптимизационной задачи в структуре электрон- ных таблиц рекомендуется использовать во всех текстовых ячейках, содержащих названия столбцов и/или строк, определение размерно- сти содержимого ячейки. Например «т» (тонна), или «час», или «долл.» и т. п. Использование размерностей способствует выявлению грубых ошибок, связанных, например, с умножением «столов на сту- лья» и получением в результате «тонн в минуту». Просмотрите разработанную структуру ЭТ с использованием гра- фа зависимостей: все стрелки должны бы.ъ направлены от изменяе- мых ячеек и ячеек исходных данных через зависимые ячейки в сторо-
Поиск решения 19 н\ ।к пеной. Хорошо структурированная таблица характеризуется на- 14HIIIII.IM |рафом зависимостей. Н< е числовые данные задачи должны быть размещены в соответ- шующих ячейках ЭТ, несмотря на то что использование программы шик к.| решения позволяет вводить отдельные числовые данные непо- < fit ц< шепно через окно ограничений Поиска решения. Это позволяет при исследовании различных вариантов организации системы изме- ни и. i-акие данные, не затрагивая окна поиска. ( гарайтесь использовать в ЭТ числа пс зозможности одного по- рчдьа или близких порядков (например, 10 и 100). Это упрощает про- цесс поиска решения и позволяет избежать многих вычислительных ошибок. Например, в рассмотренной выше задаче о красках оптовая нсна тонны краски выражается в тысячах долларов. Однако в таблице и< пользуются значения 3 (тыс. долл.) и 2 (тыс. долл.), а не 3000 долл, и 'ООО долл. Это сделано специально в стиле этой рекомендации. В процессе разработки ЭТ вы можете столкнуться с ситуацией, । nt да отдельные ограничения «Не вписываются» в структуру таблицы. В п ом случае такие ограничения целесообразно оформить в виде от- чальной таблицы, связанной с вашей задачей. В этом стиле оформле- на, например, таблица «Ограничения суточного спроса по видам кра- 1 ок» (см. табл. 1). Использование ЭТ для решения оптимизационной задачи будет более наглядным, если вы будете использовать именование ячеек. До- Ьинства именования ячеек наглядно проявляются при работе с про- । раммой поиска решения, при анализе отчетов по результатам мода- пирования и при построении сводных таблиц по результатам исследо- ваний системы. Например, мы хотим назвать ячейку В23, в которой сохраняется суточный объем производства краски для наружных работ, именем Краска Н, ячейку В24 с аналогичным содержимым — именем Крас- <а_В, а целевую ячейку с общим доходом — именем Общий_доход. Для этого мы последовательно выделяем каждую из этих ячеек в таб- лице и обращаемся к меню Вставка, раздел Имя, оператор Присвоить, который открывает окно именования. В это окне вводится соответст- вующее имя, и в дальнейшем во всех отчетах поименованная ячейка будет идентифицироваться присвоенным ей именем. Стиль оформления ограничений Хорошим стилем оформления задания на поиск решения являет- ся испсльзование ограничений, левые и правые части которых состо- ят только из имени (адреса) одной ячейки или массива ячеек. При этом
20 Часть 1. Поиск решений на электронных таблицах все промежуточные вычисления, связанные с определением левой и правой частей таких ограничений, размещаются в зависимых ячейках таблицы. (Последние версии EXCEL не допускают отклонений от этого стиля.) Ниже приведены примеры оформления ограничений. Плохой стиль ' Хороший стиль I 821<=С21;В22<-С22; В21:В22<=С21.С22 | Е4>=12; E4>=G7; (В ячейке G7 размещено число 12) | G4IK4-N4; L7=N4; (В ячейке L7 размещена формула =G4+K4) Второй пример иллюстрирует общее правило: все исходные чис- ловые данные целесообразно размещать в ячейках ЭТ, а не вводить в окно ограничений (рекомендация 3 в приведенном выше списке). Это связано с возможностями изменять такие данные в процессе исследо- вания системы. Ниже приводятся некоторые рекомендации по оформлению огра- ничений на оптимальное решение задачи. Старайтесь избегать избыточных ограничений. Тривиальный при- мер таких ограничений: В23<=16, В23<=20. Избыточные ограничения всегда «мешают» процессу поиска и в некоторых случаях могут приве- сти к зацикливанию вычислений. Использование ограничений в форме равенства всегда «сужает» полигон для поиска решения. Такие ограничения в общем случае ока- зываются слишком «жесткими» для реальных задач, и (по возможно- сти) следует отдавать предпочтение более «мягким» неравенствам. Противоречивые ограничения делают процесс поиска бессмыслен - ным. Тривиальный пример таких ограничений: В24 <= СЗО; В24 >= СЗО+2. Такие ограничения всегда связаны с отсутствием ре- шения задачи. Основная проблема, связанная с противоречивыми ограничениями, заключается в том, что для сложных задач с большим числом ограничений весьма трудно выявить противоречия между от- дельными ограничениями. Проблема начальных значений Перед вызовом программы поиска решения в изменяемые ячейки целесообразно ввести некоторые ориентировочные начальные значе- ния. В некоторых случаях от выбора таких значений зависит и сама возможность найти оптимальное решение задачи. В этой связи реко- мендуется несколько раз вычислить таблицу для различных значений
Поиск решения 21 и «меняемых ячеек и «почувствовать» тенденции приближения к опти- муму. Запомните, чем ближе начальные значения к точке оптимума, 1см легче и быстрее его удается найти. К сожалению, эта рекоменда- ция может быть использована для решения сравнительно простых за- дач. В этом отношении может может оказаться полезным специальное средство системы EXCEL — Подбор параметра (меню Сервис). В поле Установить в ячейке указывается адрес (имя) ячейки, со- держащей формулу (в нашем случае это целевая ячейка Е24), которая устанавливает зависимость от изменяемой ячейки (в нашем случае и о В23). Подбор параметра позволяет подобрать такое значение из- меняемой ячейки, при котором целевая получит установленное нами «качение (в этом примере 16). П' «<'»>> параметре Qr* £3 Установить в ячейке! / |$Е$24 5J | ОК Значение: [16^ Отмена Изменяя значение ячейки; |$В$23 Отметим, что подбор параметра ни в коей мере не заменяет поиск решения. Подбор параметра можно рассматривать как простейший ва- риант такого поиска, когда устанавливается связь только между двумя ччейками без учета каких-либо дополнительных ограничений. Именно поэтому мы рекомендуем использовать подбор параметра лишь как вспомогательное средство, способное помочь при решении проблемы начальных значений. Результат работы программы подбора параметра занесется в ячей- ку, указанную в поле Изменяя значение ячейки (в нашем примере В23). Управление процессом поиска решения Нажатие кнопки Выполнить окна Поиск решения приводит к запу- ску процесса поиска решения задачи оптимизации. При невозможно- сти запустить поиск решения система может вывести следующие со- общения: Недостаточно памяти для решения задачи. Это означает, что EXCEL не смог выделить память для поиска решения. Закройте не- нужные файлы или приложения и попытайтесь запустить программу снова.
22 Часть 1. Поиск решений на электронных таблицах В другом сеансе EXCEL используется SOLVER. Запущено несколь- ко сеансов работы с EXCEL, в одном из которых используется SOLVER — программа поиска решения. Попробуйте завершить или закрыть окна, связанные с этими сеансами. Управление процессом поиска решения связано с использовани- ем диалогового окна Параметры поиска решения, которое открывается при нажатии кнопки Параметры окна Поиск решения. Все параметры, управляющие процессом поиска решения, делятся на три группы, которые описываются ниже. Предварительно заметим, что каждый из этих параметров имеет значение по умолчанию, подхо- дящее для большинства решаемых задач. Использование новых уста- новок параметров обычно необходимо для проведения серьезных ис- следований сложных систем управления. Группа параметров, определяющих время процесса поиска К. этой группе относятся четыре параметра: максимальное время, число итераций, точность и допустимое отклонение. К настройке этих параметров целесообразно обратиться при полу- чении следующих сообщений о неудачном окончании процесса поис- ка решения: • поиск решения не может улучшить текущее решение. Все огра- ничения выполнены; • остановка при исчерпании лимита времени; • остановка при выполнении максимального числа итераций. Максимальное Время Ограничивает время, требующееся для процесса отыскания реше- ния. Значение времени должно быть положительным целым числом. Время по умолчанию 100 (секунд). Максимальное значение, которое можно ввести: 32 767. Число Итераций Ограничивает число промежуточных вычислений в процессе по- иска решения и, как следствие, время поиска. Значение должно быть положительным целым числом, по умолчанию -100. Максимальное значение, которое можно ввести: 32 767.
Поиск решения 23 Точность Используется в процессе поиска при проверке ограничений (на равенство и/или неравенство). Вводимое значение должно быть боль- ше 0 и меньше 1. По умолчанию 0.000001. Чем выше точность, тем Польше время поиска решения. Допустимое отклонение Так же как и точность используется алгоритмом поиска при про- верке ограничений, но (в отличие от точности) используется только в ыдачах целочисленного программирования при проверке целочис- ленных ограничений. Величина, вводимая в это поле, определяет до- пустимое отклонение в процентах от результата предыдущей итера- ции. Чем больше отклонение, тем быстрее процесс решения. Группа параметров, адаптирующих процесс поиска к математической модели задачи Для того чтобы определить значения параметров этой группы, ис- следователю в общем случае необходимо иметь определенное пред- ставление о математических методах решения оптимизационных за- дач. Выше в разделе «Быстрое начало» («Краткий экскурс в теорию»)
24 Часть 1. Поиск решений на электронных таблицах уже отмечалось, что в математическом программировании различают- ся три основных вида таких задач: линейные, целочисленные и нели- нейные. Алгоритмы решения задач линейного программирования имеют наиболее эффективную реализацию. Потому, если вы уверены, что ваша задача относится к линейным, выберите в окне Параметры поис- ка решения перед выполнением поиска кнопку Линейная модель. Если это указание ошибочно (модель в действительности нели- нейна), EXCEL в процессе поиска выведет сообщение «Условия ли- нейности модели не соблюдены». В этом случае для решения проблемы придется сбросить флажок Линейная модель и решать задачу с исполь- зованием более сложных и менее эффективных алгоритмов нелиней- ного программирования. Тем не менее, если вы не уверены в том, к какому классу относит- ся задача, ее решение всегда рекомендуется начинать с попытки использования линейной модели и только при неудачном исходе процесса поиска обращаться к нелинейным моделям. Алгоритмы решения задач целочисленного программирования имеют значительно менее эффективную реализацию, чем для линей- ных моделей. Для повышения эффективности этих алгоритмов целе- сообразно использовать поле Допустимое отклонение. Управление процессом поиска решения нелинейных задач требует в общем случае специальных знаний по математическому программи- рованию. Вместе с тем использование программы поиска не предъяв- ляет к пользователю таких требований, ограничивая его участие в этом процессе лишь несколькими кнопками управления. Параметры группы Производные позволяют подобрать методы вы- числения производной целевой функции, наиболее подходящие для конкретного вида этой функции. Кнопка Прямые используется по умолчанию, кнопка Центральные определяет способ, который может улучшить решение проблемы, найденное с помощью метода Прямые. Отличия в методах, реализуемых нажатием этих кнопок, ощутимы для целевых функций и нелинейных ограничений, которые немонотонны и/или имеют разрывы. Параметры группы Оценка определяют методы, используемые по- иском решения для построения оценок значений переменных (изме- няемых ячеек) в процессе поиска. Кнопка линейная обычно использу- ется для линейных или линеаризованных проблем, квадратичная — для нелинейных. В этой связи еще раз напомним, что сходимость процесса поиска во многом зависит от начальных значений изменяе- мых ячеек.
Поиск решения 25 Параметры группы Метод определяют используемый алгоритм поиска. Метод Ньютона проигрывает в памяти методу сопряженных ||м|диснтов, но обладает хорошей сходимостью, метод сопряженных ।Пациентов позволяет экономно расходовать память компьютера при I» шении задач большой размерности. Кнопка Автоматическое масштабирование полезна в тех случаях, । ргда изменяемые ячейки и целевая ячейка имеют значения, сильно oi пинающиеся по величине (значения разных порядков). Например, в шпачах поиска оптимального состава смесей (см. далее) вариации со- < ива смеси могут изменяться в долях (от 0 до 1), в то время как целе- || in функция измеряется в абсолютных единицах, например в тысячах ноиларов. В таких задачах эта кнопка должна быть включена. Вместе с к м еще раз подчеркнем, что в общем случае использование перемен- ных, отличающихся по величине на порядок и более, затрудняет про- цесс поиска решения. Группа параметров контроля процесса поиска Среди сообщений системы о неудачном завершении процесса по- иска есть несколько, на которые трудно отреагировать, поскольку каждое из таких сообщений может быть вызвано самыми разными причинами. Например: • значения Целевой Ячейки не сходятся; • поиск Решения не смог найти правильное решение; • поиск Решения обнаружил ошибочное значение в целевой ячейке или ячейке ограничения. При получении любого из этих сообщений необходим дополните- льный анализ причин, по которым процесс поиска зашел в тупик. >го может быть недостаточность, противоречивость или избыточ- ность ограничений, ошибка в формуле, нарушение зависимостей между ячейками таблицы и т. п. В общем случае, если поиск не может определить оптимальное решение, исследователь должен проанализи- ровать возможности коррекции условий задачи, ее упрощения и/или шьтернативной формулировки. В таких случаях дать какие-либо кон- кретные рекомендации весьма сложно, но иногда может помочь ис- пользование режима пошагового выполнения процесса поиска. Для перехода в этот режим следует включить кнопку Показывать результаты итераций в окне Параметры поиска решения и после этого вновь запустить поиск решения. Запущенный поиск будет останавли- вагься после каждой итерации и выводить диалоговое окно Текущее состояние поиска решения.
26 Часть 1. Поиск решений на электронных таблицах f1стерние пом. ад дош.ния Поиск решения приостановлен. Текущие значения показаны на рабочем листе. Сохранить сценарии... | Ознакомившись с содержанием вашей рабочей таблицы после за- вершения очередной итерации, вы можете Продолжить процесс поис- ка или остановить, нажав кнопку Стоп. В последнем случае EXCEL выведет результаты, перевычислит рабочий лист и выведет диалоговое окно Результаты поиска решения без завершения процесса поиска. Такой режим пошагового поиска позволяет наблюдать последова- тельность приближений к оптимальному решению задачи. Во многих случаях это помогает «почувствовать» сходимость процесса и устано- вить причины неудач и тупиков при поиске оптимального решения. Сохранение и загрузка моделей Информация, введенная в диалоговое окно Поиск решения, и па- раметры, введенные в дополнительное окно Параметры поиска реше- ния, образуют модель оптимизационной задачи. Такая модель факти- чески представляет собой задание на поиск решения, включающее в себя: определение целевой и изменяемых ячеек, вид оптимизации, ограничения, максимальное время, число итераций и т. д. Модель за- дачи размещается на рабочем листе в области, называемой область модели. На одном рабочем листе обычно используется одна модель зада- чи. Однако анализ электронных таблиц, размещенных на одном листе рабочей книги, в общем случае может проводиться с использованием нескольких разных моделей задач. Такие модели могут различаться как заданием на поиск решения, так и параметрами поиска. При этом на одном лисге рабочей книги могут быть размещены несколько об- ластей моделей, каждая из которых хранит свою модель задачи. Кнопки Загрузить модель и Сохранить модель окна Параметры по- иска решения позволяют сохранять и загружать различные модели за- дач для выполнения поиска решений. Окна, открываемые этими кнопками, имеют одинаковую структуру. Использование кнопки Сохранить модель позволяет сохранить на одном рабочем листе более, чем одну модель задачи.
Поиск решения 27 Для сохранения модели нужно либо принять предлагаемый поис- !.ом решения интервал, либо определить в поле Задайте область модели i сылку на Ячейку, определяющую место размещения области модели на рабочем листе. При этом модель сохраняется в вертикальном интер- И.1ЛС ячеек, который начинается в выделенной ячейке и продолжается пи из на количество ячеек, определяемое программой поиска решения. При сохранении модели задачи удостоверьтесь, что предложен- ный программой интервал для области модели или столбец под ука- миной вами ячейкой не содержат данных. Кнопка Загрузить модель открывает окно Загрузка модели. По умолчанию в поле Задайте область модели указывается та область мо- дели, с которой работали на данном рабочем листе при последнем вы- юве программы поиска решения. Для открытия другой модели, пред- парительно сохраненной вами, введите в это поле интервал ячеек, в котором размещена требуемая область модели (или выделите этот ин- тервал на рабочем листе). Вместо интервала в этом поле можно указать только ячейку, «под которой» будет располагаться область модели. Еще раз подчеркнем, что область модели, содержит только ин- формацию, определяющую одно из заданий на поиск решения. Эта ин- формация не предназначена для какого-либо анализа, связанного с содержанием задачи. Как только вы загрузите модель задачи в окно Поиск решения, вы по изменению информации в полях этого окна определите задание на поиск, соответствующее загруженной модели. Исследователь должен относится к модели задачи как к готовому заданию на поиск решения и только. Не следует рассматривать область модели как набор результатов поиска решения. Результаты поиска решения В результате поиска решения EXCEL выводит сообщения о том, удалось ли получить оптимальное решение задачи. Все сообщения си- стемы можно разделить на две группы: сообщения о получении реше-
28 Часть 1. Поиск решений на электронных таблицах ния (сообщения об успехе) и сообщения о причинах, по которым не удалось получить оптимальное решение (сообщение о неудаче). Сооб- щения выводятся в окно Результаты поиска решения. При получении оптимального решения задачи выводится сообще- ние: Решение найдено. Все ограничения и условия оптимальности выпол- нены. • ’ejijJii.TSrrW поиска решения Решен? е найдено. Все огра чиче1 <ия и условия оптимальности выполнены. ^Сохранить найденное решение! Восстановить исходные значения ыпо-чета Результаты Устойчивость Пределы ОК Отмене | Сохранить сценарии...Справка j При получении решения может быть выведено и другое сообще- ние: Поиск Решения сошелся на текущем решении. Все ограничения вы- полнены. Это сообщение говорит о том, что значение целевой ячейки не менялось в процессе поиска в течение пяти последних итераций. Оп- тимальное решение может быть найдено, но возможно, что процесс улучшает решение очень медленно. Эти два сообщения относятся к категории «успешных». При получении таких сообщений исследователь может Сохранить найденное решение или Восстановить исходные значения. В первом случае EXCEL подставляет найденные значения в изменяемые ячей- ки таблицы, во втором восстанавливает исходные значения в этих ячейках. Сохранение результатов поиска решения может быть связано с формированием отчетов о результатах поиска. В поле Тип отчета окна Результа.ы поиска решения исследователю предлагается три вида отче- тов: по результатам, по устойчивости и по пределам. При выборе со- ответствующего отчета (или отчетов) EXCEL выводит каждый из вы- бранных отчетов на отдельный лист рабочей книги. Содержание отче- тов обсуждается в разделе «Анализ отчетов». Кроме того, EXCEL предлагает Сохранить сценарий для использо- вания его диспетчером сценариев. Использование диспетчера сцена- риев описывается ниже в этом разделе.
Поиск решения 29 Сценарии Мсхпнизм сценариев предназначен для формирования наборов in iv ii.i.iroB вычислений на ЭТ. Применительно к решению оптими- ...кншых задач использование сценариев помогает сформировать I. н п.гаты серии выполнения заданий на поиск решения. Результаты > н ой «серии поисков» запоминаются в соответствующей серии сце- IliplICll Для того чтобы сформировать такую серию сценариев, необходи- ма после каждого завершения задания на поиск решения нажать > попку Сохранить сценарий в окне Результаты поиска решений. В поле Пи шание сценария открываемого при этом окна Сохранение сценария in |><>\одимо ввести уникальное имя, под которым будут сохранены пыления всех изменяемых и зависимых ячеек ЭТ, используемой при in шолнснии текущего задания на поиск решения. Гохроьлние сценарии х Название сценария: Р |краски| _ Отмена-; | Справка | Результаты серии поисков, собранные таким образом в итоговую < |руктуру отчета или сводную таблицу, могут в дальнейшем редакти- роваться и анализироваться с использованием стандартных средств I XCEL. Для формирования итогового отчета по серии сценариев следует тратиться к меню Сервис, раздел Сценарии. Контрольные вопросы 1. Назовите необходимые условия корректности ЭТ, предназначенной для поиска решения. 2. В чем заключаются преимущества, связанные с именованием ячеек ЭТ? 3. Какие ограничения относятся к избыточным? 4. Какие ограничения относятся к противоречивым? 5. Охарактеризуйте стилевые особенности оформления ЭТ для решения оп- тимизационных задач. 6. В чем заключается проблема начальных значений изменяемых ячеек? 7. Чем отличается Подбор параметра от Поиска решения? 8. Охарактеризуйте основные параметры, определяющие время процесса по- иска решения.
30 Часть 1. Поиск решений на электронных таблицах 9. Что вы сделаете при получении сообщения «Условия линейности модели ни соблюдены»? 10. Охарактеризуйте основные параметры, определяющие вид использует юй математической модели задачи. 11. В каких задачах полезно использование кнопки Автоматическое масштаб» рование окна Параметры поиска решения? 12. Что вы сделаете при получении сообщения Значения Целевой Ячейки нс сходятся? 13. В каких задачах полезно использование кнопки Показывать результаты итераций окна Параметры поиска решения? 14. В каких задачах полезно использование кнопки Допустимое отклонение окна Параметры поиска решения? 15. Что вы сделаете при получении сообщения Условия линейности модели нс соблюдены? 16. Какая информация сохраняется в области модели? 17. В каком интервале ячеек размещается область модели? 18. Для каких целей в процессе исследования системы используются сцена рии? Анализ отчетов Программа Поиск решения (Solver) готовит три вида отчетов, ко- торые характеризуют найденное решение задачи: отчет по результа- там, отчет по устойчивости и отчет по пределам. Ниже описывается структура отчетов и экономическая интерпретация результатов реше- ния оптимизационных задач менеджмента. Геометрическая интерпретация задачи о красках В этом разделе мы приводим простейшую геометрическую интер- претацию задачи о красках для того, чтобы читателю было проще ра- зобраться с основными понятиями, используемыми в при анализе от- J четов. Эта интерпретация иллюстрируется следующим графиком i (рис. 1.3). < На осях координат отложены суточные объемы производства кра- сок, определенные выше как содержимое изменяемых ячеек (см. По- иск решения, Общие рекомендации по разработке структур ЭТ). Тонкими линиями представлены ограничения для задачи о красках: к ограничения по запасам продуктов: п Продукт Ш: 1*Краска_Н + 2*Краска_В <=6; (1) Продукт П2: 2* Краска Н + 1* Краска_В <= 8; (2)
Анализ отчетов 31 Рис. 1.3. Геометрическая интерпретация задачи о красках ограничения по сбыту: Краска_В <= Краска_Н+1; (3) КраскаВ <=2; (4) Эти ограничения мы вводили в электронную таблицу (см. табл. 2). На рис. 1.3 все прямые ограничений построены по отношениям (I)—(4), в которых знаки неравенства заменены знаками равенства. Маленькие стрелки на рисунке рядом с прямыми ограничений указы- вают на область, в которой действуют соответствующие ограничения. Например, для ограничения (4) это область левее прямой (4), т. е. щапазон, в котором КраскаВ <= 2 (и, конечно, Краска_ В >— 0). Пересечения прямых ограничений образуют область ABCDEF, в которой только и могут находиться оптимальные решения задачи. Эта область называется полигоном возможных решений. Целевая функция (ЦФ) задана выражением 3*Краска__Н + 2*Краска_В, которое уже использовалось нами при составлении ЭТ. На рисунке приведена прямая ЦФ6, определенная уравнением 3*Краска_Н + 2*Краска_В = 6,
32 Часть 1. Поиск решений на электронных таблицах т. е. для случая, когда ЦФ принимает значение 6 (тыс. долл.). Стрелки у этой прямой, указывающие на знаки «+» и «—», показывают, в ка- ком направлении будет перемещаться прямая ЦФ (параллельно самой себе) соответственно при увеличении значений ЦФ и уменьшении этих значений. Все точки этой прямой, находящиеся внутри полиго- на, будут удовлетворять ограничениям задачи. Чем больше прибыль, получаемая от продажи красок, тем дольше перемещается прямая ЦФ от ЦФ6 в направлении «+». Естественно, что максимальное значение прибыли будет наблюдаться в единственной точке полигона — точке С. Это точка и будет определять оптимальные объемы производства красок Краска_Н0ПТ и Краска_В0ПТ. Прямые ограничений, проходящие через точку оптимума (в на- шем случае С), определяют связанные ограничения, остальные прямые ограничений определяют несвязанные ограничения. Эти термины опре- деляют влияние запасов соответствующих ресурсов на оптимальное решение задачи. Для используемого примера связанными являются ограничения по запасам ресурсов (1) и (2). Эти ресурсы называются дефицитными. Понятие дефицитного ресурса тесно связано с поняти- ем связанного ограничения. Изменение запасов дефицитного ресурса всегда изменяет значе- ние целевой функции и соответственно оптимальное решение задачи. Недефицитный ресурс не влияет на такое решение, но, разумеется, в определенных пределах. Для ситуации, изображенной на рис. 1.3, ре- сурс сбыта краски В (2 т в день, ограничение (4)) недефицитен. Но если спрос на этот вид краски начнет уменьшаться и достигнет вели- чины, меньшей значения Краска_В0ПТ, он станет дефицитным. Из этого примера видно, что в зависимости от изменения условий производства и сбыта красок ресурсы могут менять свой статус, т. е. переходить из дефицитных в недефицитные, и наоборот. Возможно- сти таких изменений определяют устойчивость бизнес-процессов в системах менеджмента. Коэффициенты в системе ограничений (1)—(4) и в ЦФ определя- ют углы наклона прямых на рисунке. Эти коэффициенты полностью определяются исходными данными задачи, вместе с тем вариации та- ких коэффициентов могут представлять самостоятельный интерес в исследовании систем менеджмента. Например, если в нашей задаче прямая ЦФ окажется параллельной прямой ограничения (2), то мак- симальному значению ЦФ будет соответствовать множество решений (все точки отрезка ВС на рисунке). Эти и подобные им аспекты при проведении исследований на ЭТ анализируются на основе использования отчетов, создаваемых про- граммой поиска решений.
Анализ отчетов 33 К сожалению, в общем случае для сложных задач с большим ко- '1ич< <-||1ом переменных столь наглядную геометрическую интерпрета- цию мдачи поиска решения дать не удается. Отчет по результатам 1десь обсуждается отчет по результатам, подготовленный систе- ||>й при решении задачи о красках. Этот отчет состоит из трех разде- |чц целевая ячейка, изменяемые ячейки и ограничения. MU ineoft Excel 8.0 Отчет по результатам .|“1чий лист: [Задача о красках.х1з]Решение задачи |>1ч»т создан: 05.02.01 13:08:59 1 |ип1.|цая ячейка (Максимум) Ячейка Имя Исходно Результат 1.1 $24 Общий_доход 12,67 12,67 111млняемые ячейки Ячейка Имя Исходно Результат 11Ц.23 Краска_Н 3,33 3,33 |)11$24 Краска_В 1,33 1,33 нрпничения Ячейка Имя Значение формула Статус Разница I.I $16 П1 Суточный_расход исх.продуктов (т) 6,00 $E$16<=$D$16 связанное 0 1 $17 П2 Суточный_расход исх.продуктов (т) 8,00 $E$17<=$D$17 связанное 0 |.В$23 Краска_Н 3,33 $B$23>=$D$29 не связан. 3,00 Ш$24 Краска_В 1,33 $В$24<=$С$30 не связан. 0,6666667 В разделе «Целевая ячейка» отмечается вид оптимизации, в на- шем случае это максимизация — (Макс). В столбце «Ячейка» указы- плстся адрес ячейки ($Е$24), в столбце «Исходно» приводится исход- ное содержимое ячейки (до поиска оптимального решения), в столбце Результат» — максимальное значение целевой функции. В столбце Имя» приводится имя целевой ячейки — «Общий_доход», заданное нами при именовании ячейки. В разделе «Изменяемые ячейки» аналогично описываются ячейки пзрьируемых переменных. В столбце «Результат» этого раздела отчета приводится оптимальное решение задачи (точка оптимума). В разделе «Ограничения» приводится описание всех ограничений >адачи, заданных через диалоговое окно Поиск решения. Количество i |рок этого раздела отчета равно количеству ограничений.
34 Часть 1. Поиск решений на электронных таблицах В столбцах «Ячейка» и «Имя» приводятся адреса и имена всех ячеек, используемых в левых частях ограничений задачи. В столбце «Значение» выводятся значения этих ячеек на момент окончания про- цесса поиска. В столбце «Состояние» описывается вид ограничения. В столбце «Формула» выводятся формулы ограничений. В столбце «Состояние» описывается вид ограничения. Поскольку мы не именовали ячейки Е16, Е17, содержание столб- ца «Имя» для них система определила по правилам умолчания. Эти правила сводятся к тому, что в столбце «Имя» размещайся название строки и столбца соответствующей ячейки. При этом в ка- честве первого используется содержимое ближайшей текстовой ячей- ки слева от именуемой (для Е16 это «П1»), а в качестве второго — со- держимое ближайшей текстовой ячейки сверху (для Е16 это строка «Суточный расход исх.продуктов (т)»). Использование определения имени ячейки по умолчанию в общем случае снижает наглядность от- чета. Для того чтобы избавиться от этого недостатка, целесообразно именовать ячейки таблицы по правилам системы EXCEL (меню Вставка, раздел Имя). Термин «связанное» определяет ограничение, которое повлияло на определение оптимального решения, термин «не связанное» свидете- льствует о том, что данное ограничение не повлияло на определение точки оптимума. (Этот термин уже пояснялся в предыдущем разделе «Геометрическая интерпретация задачи о красках».) В нашем примере два связанных ограничения: SES16 <= $D$16 и $Е$17 <= $D$17. Оба относятся к ограничениям на запасы исходных продуктов Ш и П2, используемых для производства красок. Тот факт, что эти ограниче- ния связанные, свидетельствует о том, что запасы продуктов в этой за- даче являются дефицитными ресурсами, — любое их изменение приве- дет к изменению оптимального решения задачи. Остальные ограничения — не связанные. Это означает, что значе- ния ячеек, используемых в правых частях ограничений, определяют количества недефицитных ресурсов. Запасы таких ресурсов могут из- меняться в некоторых пределах, не оказывая влияния на оптимальное решение задачи. Вместе с тем при выходе за такие пределы недефи- цитный ресурс может стать дефицитным, и наоборот. Понятие ресурса в общем случае имеет довольно абстрактно. Так, для первых двух ограничений рассматриваемой задачи это вполне конкретные запасы продуктов П1 и П2. В то же время для третьего и четвертого ограничений это некоторый условный ресурс сбыта. Пра- вая часть любого ограничения всегда можег интерпретироваться как запас некоторого ресурса, но что именно мы вкладываем в это поня- тие в каждом конкретном случае, зависит только от нашего понима-
Анализ отчетов 35 мни проблемы. В сложных задачах иногда очень непросто штерпре- I пронять понятие ресурса. В столбце «Разница» приводятся значения разности левей и пра- ш >п части ограничений. Для связанных ограничений эта разность рав- на пулю, т. е. запасы дефицитных ресурсов при оптимальной органи- > шин исследуемой системы должны быть полностью исчерпаны (поэ- iiiMv они и называются дефицитными). Для несвязанных ограничений разница между левой и правой час- 1НМИ не равна нулю. Это свидетельствует о том, что недефтцитные |н । уреы полностью не израсходованы, и запас таких ресурсы может нить уменьшен на величину, не превышающую обсуждаемой разницы, без ипшиения оптимального решения. Разумеется, что увеличение запасов in исфицитных ресурсов не представляет интереса для анализа иссле- lycMOki системы, поскольку недефицитный ресурс и так имеется в из- lil.ll КС. В качестве примера приведем анализ третьего ограничения этой । in 1смы. Оно относите^ к ограничениям по спросу, междулевой и припой частями неравенства существует разница в 3 (тонны краски), 11п<|рые определяют разницу в спросе между краской В и краской Н. Поскольку ограничение относится к категории не связанных,разницу и i просе можно уменьшить на 3 т, т. е.: В23 - D29 = 3; a D29 = В24 - 1 (см. табл. 2). Следовательно, В23 - В24 +1 — 3 = 0. Отсюда В23 = В24 + 2. Иными словами, оптимальное решение не изменится, если спрос ini краску Н (В23) превысит спрос на краску В (В24) не более чем на ' । Анализ четвертого ограничения позволяет утверждать, что умень- шение спроса на краску В не более чем на 0,67 т также не повлияет ил оптимальное решение. Отчет по устойчивости Отчет по устойчивости имеет две различные формы: отчет по V< 10ЙЧИВОСТИ решений, полученных с помошью линейных моделей пшпмизации и нелинейных. Результатам решения линейных задач можно дать наглядную эко- номическую интерпретацию. К сожалению, результаты, получаемые с помощью нелинейных моделей, в большинстве случаев не ипеют та- । <>н интерпретации.
36 Часть 1. Поиск решений на электронных таблицах Основной вопрос, освещаемый в этом отчете: насколько устойчиво найденное оптимальное решение по отношению к возможным изменениям параметров задачи. Любая строка любой таблицы этого отчета говорит о том, какие изменения можно произвести по отношению к ячейке (столбец «Ячейка») при условии, что содержимое остальных ячеек определяется оптимальным решением. Отчет по устойчивости для линейной модели Отчет состоит из двух разделов: изменяемые ячейки и ограниче- ния. Microsoft Excel 8.0 Отчет по устойчивости Рабочий лист: [Задача о красках.хк]Решение задачи Отчет создан: 19.02.01 13:31:42 Изменяемые ячейки Ячейка Имя Результ. значение Нормир. стоимость Целевой Коэффици- ент Допустимое Увеличение Допустимое Уменьшение SBS23 Краска_Н 3,33 0,00 3 1 2 $В$24 Краска_В 1,33 0,00 2 4 0,5 Ограничения Ячейка Имя Результ. значение Теневая Цена Ограничение Допустимое Допустимое Правая часть Увеличение Уменьшение SES16 П1 Суточ- ный-расход исх.продукто в (т) 6,00 0,33 6 1 1Е+30 $Е$17 П2 Суточ- ный^расход исх.продукто в(т) 8,00 1,33 8 1Е+30 2 Раздел «Ограничения» связан с анализом связанных ограничений на возможность изменения их правых частей (запасов дефицитных ресурсов) в пределах постоянства теневой цены. Для дефицитных ресурсов (в нашей задаче это запасы исходных продуктов, сохраняемые в ячейках Е16, Е17) важен вопрос: какое до- полнительное увеличение целевой функции может обеспечить увели- чение запасов ресурса. Ответ на этот вопрос связан с использованием понятия теневой цены (скрытой цены, двойственной цены, ценности ресурса). Теневая цена ресурса определяет прирост целевой функции, обес- печиваемый увеличением запаса дефицитного ресурса на единицу его измерения.
Анализ отчетов 37 Гак, теневая цена продукта П1 (ячейка Е16) определена как и <1133 (тыс. долл./т). Это означает, что увеличение запаса Ш на Пишу увеличит целевую функцию примерно на 333 долл. Аналогич- ное влияние на изменение значения целевой функции оказывает те- |ц II.IH цена продукта П2 (ячейка Е17), которая определяется значени- । м 1,333333 (тыс. долл./т). Теневая цена определяет скрытые возможности реорганизации in 1емы путем изменения запасов дефицитных ресурсов, изменения <||>|.|низации использования этих ресурсов (расширение складов и । и ). Кроме того, теневая цена позволяет ранжировать такие ресурсы точки зрения их полезности для расширения производства. Например, в нашем примере сравнение теневых цен П1 и П2 по- Mi ii.i.iae1', что при стремлении увеличить общую прибыль от продажи i риски предпочтение нужно отдать увеличению запасов продукта П2, п< и кольку он имеет большую теневую цену. Однако анализ найденного оптимального решения с помощью те- н пых цен имеет смысл только в определенных пределах. Эти пределы укп плвают, в каких границах изменение запасов того или иного дефи- ип того ресурса влияет на найденное оптимальное решение задачи и шипение целевой функции. В этом разделе отчета утверждается, что 1.Ш.1СЫ ресурса П1 могут изменяться в пределах (6 — 1, 96; 6 + 1) пни, дальнейшее увеличение или уменьшение запаса не будет оказы- |ып, влияния на оптимальное решение задачи (т. е. соответствующее ц|р.|ничение по запасу ресурсов станет избыточным, а сам ресурс пе- р< идет в категорию недефицитных). Аналогично значения (8 — 1, 95) и 2 (8 14) определяют пределы возможных изменений запасов другого и фицитного ресурса П2. Увеличение П2 в этом интервале от 8 т до I ’ । приведет к изменению оптимального решения задачи и увеличе- нию значения целевой функции, уменьшение запаса П2 с 8 т до при- й мерно 6 т — к уменьшению найденного значения целевой функции. Другими слезами, четыре правых столбца таблицы ограничений определяют теневую цену ресурса и диапазон возможных изменений ш пасов этогс ресурса, в котором теневая цена остается для данной за- мни постоянной. Любое изменение дефицитного ресурса в пределах постоянства теневой цены приводит к изменению оптимального ре- шения задачи и значения целевой функции. Для л обого недефицитного ресурса теневая цена равна нулю, поэто- му для этого типа ресурсов интересен один вопрос: насколько можно • пизить запасы ресурса при сохранении найденного оптимального ре- шения. Огвет на этот вопрос можно получить при анализе отчета по рс *ультатам.
38 Часть 1. Поиск решений на электронных таблицах Третья строка таблицы «Ограничения» отчета по устойчивости x.i рактеризует несвязанное ограничение по сбыту. Фактически эта строки не добавляет никакой информации к содержанию аналогичной строки в отчете по результатам: недефицитный ресурс сбыта может быть со кращен на 3 т и неограниченно увеличен (величина 1Е + 30 в этом смысле просто большое число, представленное в научном формате). В разделе «Изменяемые ячейки» определяется нормированн.ы стоимость (редуцированная стоимость) единицы изменяемой ячейки (в нашем примере тонны краски) и анализируются возможные измс нения коэффициентов целевой функции (в нашем примере это стон мости тонны краски Н и В). Редуцируемая стоимость (Рс) единицы продукции определяет раз- ницу между ее стоимостью (Ст) и производственными затратами на ее изготовление (Пз): Рс= Ст — Пз. Первая строка таблицы «Изменяемые ячейки» посвящена анализу ячейки В23, в которой содержится оптимальное значение производи мого объема краски Н — 3,33 т. Целевой коэффициент, определяющий стоимость первой тонны краски Н, имеет значение 3 (тыс.$/т). Производственные затраты н.| изготовление тонны краски Н связаны с расходами исходных продук тов П1 и П2, которые относятся к дефицитным ресурсам. В соответствии с условиями задачи на изготовление тонны краски Н требуется 1 т продукта Ш и 2 т продукта П2, следовательно, затра ты на производство тонны краски Н определяются выражением: Пз =1 (т П1/т КраскиН) * Теневая Цена П! (тыс.$/т П1) + + 2 (т П2/т Краски Н) * Теневая_Цена_П2 (тыс. $/т П2). Подставляя сюда значения теневых цен Ш и П2 из таблицы «Ограничения», получим: Пз =1 * 0,333333 + 2 * 1,333333 = 3 (тыс.$/т краски_Н). Поскольку стоимость тонны краски Н составляет 3 (тыс.долл./т), редуцируемая стоимость тонны Краски_Н будет определяться значе- нием: Рс = Ст — Пз = 3 — 3 = 0 (тыс.$/т краскиН). Аналогично определяется редуцируемая стоимость единицы варь- ируемой переменной ячейки В24 — тонны краски В. Нулевые значения редуцируемой стоимости свидетельствуют о полной реализации всех потенциальных возможностей, связанных с по- лучением прибыли от данного вида производственной деятельности
Анализ отчетов 39 । и нк >>н । на краски). В этом и заключается оптимальное решение м | ни II нищем случае редуцируемая стоимость может отличаться от in и < lopony как увеличения, так и уменьшения, что свидетельству- । и и к Налапсе между стоимостью единицы продукции и производст- HIII.IMII тратами на ее изготовление. При упрощенном анализе этого раздела отчета редуцируемая сто- и и показывает, насколько увеличится/уменьшится значение це- ||>11 ячейки при увеличении на единицу значения соответствующей in пнемой ячейки. Ина последних столбца таблицы «Изменяемые ячейки» определи- । пн 1можные вариации целевых коэффициентов, при которых сохра- «I ни >i оптимальное решение задачи, но изменяется оптимальное значе- н цс и-вой функции. При изменении целевого коэффициента 3 (это стоимость 1 т кра- в 11, в тыс. долл.) в пределах (3 — 2 = 1; 3 + 1 = 4) и изменении це- нно коэффициента 2 (стоимость 1 т краски В) в пределах (1,5; 6) гпимальное решение в ячейках В23,В24 сохранится, но значение це- ни и! функции изменится. Например, для прежних объемов произ- ||| ни ina краски (3,33 т краски Н и 1,33 т краски В) и допустимых но- ши целевых коэффициентах 4 и 6 значение общей прибыли будет: 4 (тыс.$/т) * 3,33т + 6 (тыс. $/т) * 1,33т = 21,33 (тыс.$). С другой стороны использование минимально возможных значений ..с вых коэффициентов приведет к получению прибыли в размере: I (гыс.долл./т) * 3,33т + 1,5 (тыс.долл./т) * 1,33т = 5,33 (тыс.долл.). Еще раз подчеркнем, что эти изменения общей прибыли могут ныть получены только за счет изменения цен на краску без изменения ипимального соотношения объемов производства, т. е. фактически । к-1 какой-либо реорганизации исследуемой системы. Отчет по устойчивости для нелинейной модели При использовании нелинейной модели для решения той же зада- чи отчет по устойчивости оформляется программой поиска решения в виде таблицы, приведенной ниже. Нормированный градиент является «нелинейным аналогом» реду- цируемой стоимости для линейной модели, а множитель Лагранжа — аналогом теневой цены в малой окрестности точки оптимума. Это утверждение позволяет построить лишь некоторые весьма приблизи- тельные аналогии с линейной моделью. Оба этих понятия являются
40 Часть 1. Поиск решений на электронных таблицах математическими, а не экономическими и должны интерпретировать- ся математиком, а не экономистом или менеджером. Microsoft Excel 8.0 Отчет по устойчивости Рабочий лист: [Задача о красках.х1з]Решение задачи Отчет создан: 27.02.01 16:38:55 Изменяемые ячейки Результ. Нормир. Ячейка Имя значение градиент $В$23 Краска_Н 3,33 0,00 $В$24 Краска_В 1,33 0,00 Ограничения Ячейка Имя Результ. значение Лагранжа Множитель $Е$16 П1 Суточный_расход исх.продуктов (т) 6,00 0,33 $Е$17 П2 Суточный_расход исх.продуктов (т) 8,00 1,33 $В$23 Краска_Н 3,33 0,00 Отчет по пределам В этом отчете распечатывается целевая ячейка, ее имя и значение, изменяемые ячейки (содержащие варьируемые переменные), их верх- ние и нижние пределы и соответствующие целевые результаты (целе- вые значения). Нижний предел есть наименьшее значение, которое может нахо- диться в изменяемой ячейке, если фиксировать остальные ячейки и удовлетворить все ограничения. Верхний предел есть наибольшее зна- чение при тех же условиях. Microsoft Excel 8.0 Отчет по пределам Рабочий лист: [Задача о красках.х|Б]Решение задачи Отчет создан: 27.02.01 16:54:22 Целевое Ячейка $Е$24 Имя Общий_доход значение 12,67 Ячейка Изменяемое Имя значение Нижний предел Целевое результат Верхний предел Целевое результат $В$23 Краска_Н 3,33 0,33 3,67 3,33 12,67 $В$24 Краска_В 1,33 #н/д #н/д 1,33 12,67
Анализ отчетов 41 Целевой результат — это значение целевой ячейки, когда значе- ние и «меняемой ячейки достигает соответственно нижнего или верх- ш к> предела. Понятия верхнего и нижнего пределе наглядно иллюстрируются 1>.|(|>иком, связанным с геометрической интерпретацией решения за- пили. Верхний и нижний пределы для Краски_Е соответствуют эрди- H1I и точки С (верхний предел) и ординате точки пересечения штрих- нункгирной линии, опущенной из этой точки, с прямой ограничения (<) Аналогично для Краски В: верхний предел — это абсцисса точки < , а нижний предел — 0. Отчет по пределам имеет одну и ту же струк- । vpy для линейной и нелинейной модели. Контрольные вопросы 1. Дайте определение теневой цены ресурса. 2. Дайте определение редуцируемой стоимости единицы произведенной про- дукции. 3. Какова единица измерения теневой цены? Единица измерения редуцируе- мой стоимости? 4. В чем отличие дефицитного ресурса от недефицитного? 5. О чем говорит столбец «Разница» в отчете по результатам? 6. К каким последствиям может привести снижение запасов недефицитного ресурса? Дефицитного ресурса? 7. К каким последствиям приведет увеличение запасов дефицитного ресурса? В каких пределах? 8. Чему равна теневая цена недефицитного ресурса? 9. К каким последствиям может привести изменение значения столбца «Целе- вой коэффициент» в разделе «Изменяемые ячейки» отчета по устойчивости? 10. О чем свидетельствуют следующие значения редуцируемой стоимости в разделе «Изменяемые ячейки» отчета по устойчивости: 3, —3, 0? 11. К какой категории относится ресурс, если его теневая цена равна 1,4? 12. Ресурс имеет теневую цену, равную 0. Целесообразно ли увеличение его за- пасов? Уменьшение запасов? 13. Целевой коэффициент изменяемой ячейки равен 2. Какова редуцируемая стоимость этой ячейки, если ее значение определяет оптимальное решение задачи? 14. О чем свидетельствует термин «связанное» в отчете по результатам, раздел «Ограничения»? Термин «не связанное»? 15. В отчете по устойчивости указаны пределы изменения целевого коэффици- ента изменяемой ячейки. Приведет ли изменение целевого коэффициента в этих пределах к изменению оптимального решения задачи? Изменению оптимального значения целевой функции? 16. В отчете по устойчивости (раздел «Ограничения») приведены пределы из- менения запасов дефицитных ресурсов. Приведет ли изменение запасов та- ких ресурсов в указанных пределах к изменению оптимального решения задачи? Какое условие определяет указанные пределы? 17. Значение изменяемой ячейки определяет оптимальное решение задач Целевой коэффициент этой ячейки равен —2. К чему призедет увеличение значения этой ячейки?
42 Часть 1. Поиск решений на электронных таблицах Примеры структуризации задач для исследования систем менеджмента В этом разделе приводятся примеры структуризации задач для ис- следования систем производственною, операционного и финансового менеджмента. Все задачи разделены на группы, определяющие основ- ные стереотипы структуризации ЭТ. Этап структуризации, как уже отмечалось, является одним из наи- более трудных в организации исследования систем менеджмента, час- то требующим нетривиальных решений. Каждая задача связана с ин- дивидуальным подходом к определению структуры соответствующей таблицы. Это обстоятельство во многом определяет творческий харак- тер процесса отрук^ризации задачи и исследования соответствующей системы в целом. С проведением структуризации могут быть связаны два этапа ра- боты: математическая формулировка задачи и собственно разработка ЭТ. Математическая формулировка задачи определяет лишь общую канву, на которой может быть сконструирована ЭТ: задание варьируе- мых переменных, ограничений и целевой функции. В общем случае она не содержит многих деталей и дополнительных поясняющих фак- торов, присутствующих в таблице. Этап математической формулиров- ки мы приводим только для того, чтобы пояснить основы подхода к разработке ЭТ. В целом же ЭТ значительно содержательнее чисто ма- тематической формулировки задачи. Структура ЭТ должна быть представлена в наглядной форме, поясняющей все промежуточные вычисления и взаимосвязи между переменными, определенные форматы ячеек и размерности разме- щенных в них переменных, названия строк, столбцов и отдельных ячеек и т. п. Задачи определения объемов производства товарсв и услуг Для этих задач целевая ячейка обычно определяет объем реализа- ции некоторой разнородной продукции в стоимостном выражении. Целью оптимизации является определение оптимального соо.тгоше- ния объемов между видами выпускаемой продукции, при котором объем реализации достигает максимума.
Примеры структуризации задач 43 Задачи о5 ассортименте определяют широкий класс однотипных чц.1Ч, которые могут отличаться одна от другой видами продукции (.п сортиментом товаров или услуг), набором ограничений, ценами на продукцию разных видов и т. п. В прикладном плане эти задачи осо- |н ипо разнообразны. Этот класс задач обычно ориентирован на решение вопроса: как Рациональнее организовать производственный процесс (использовать ин субподрядчиков, сверхурочное время, сколько платить за аренду > 11ПКОВ и т. п.). Такие задачи связаны с исследованием определенного уровня организации производства с целью определения оптимальных шачений параметров, характеризующих этот уровень. В этом смысле ни задачи иногда называют задачами целевого программирования. К этому классу задач относится подробно рассмотренная выше «мча о красках. Ниже приводится еще один пример структуризации шдачи этого типа. Использование сверхурочных работ При изготовлении изделий двух видов осуществляется последова- к ньная обработка соответствующих заготовок на двух различных > । ликах. Каждый станок может использоваться для производства из- щ лий по 8 часов в сутки, однако этот фонд времени можно увеличить и.| 4 часа за счет сверхурочных работ. Каждый час сверхурочного вре- мени требует дополнительных расходов: для станка 1 это долл.5, для ! >анха 2 — долл.7. Производительность станков и продажная цена из- делий приведены в таблице. Станс1' Производительность станков (::зделие/ч. изделие 1 изделие 2 1 5 6 2 4 Б Цена изделия $6 $4 Требуется определить объемы производства изделий каждого вида п уровень использования сверхурочного времени на каждом из стан- ков, обеспечивающие получение максимальной прибыли. Математическая формулировка задачи Содержимое изменяемых ячеек Определим XII, Х12 хак количества изделий первого типа, выпу- скаемых соответственно на первом и втором станках. Аналогично,
44 Часть 1. Поиск решений на электронных таблицах Х21, Х22 будут определять количество изделий второго типа, выпус каемых на этих же станках. Tlc/у, Т2с/у — время сверхурочных работ соответственно на пер- вом и втором станках. Ограничения 1. По времени занятости станков: XI1/5 + Х21/6 <= 8 + Tlc/y; Х12/4 + Х22/8 <= 8 + Т2с/у; Т1с/у <= 4; Т2с/у <= 4. 2. «Естественные» ограничения: Tlc/y >= 0; Т2с/у >= 0; X1UX22 >= 0. Целевая функция: Z = (XI1+ Х12)*6 + ( Х21 + Х22)*4 - (5* Т1с/у + 7* Т2с/у). Максимизировать Z. Структура ЭТ А В С D Е F G 1 Ста- нок Производительность станков (изделие/час) Количество произве- денных изделий по станкам (шт) 2 Изделие 1 Изделие 2 Изделие 1 Изделие 2 3 1 5 6 4 2 4 8 5 Цена изделия ($) Общее количество изделий (шт) Выручка за произве- денные изделия ($) 6 6 4 =D3+D4 =ЕЗ+Е4 =B6*D6 =С6*Е6 7 ИТОГО ($) =F6+G6 8 Ста- нок Время, связанное с производством изделий (час) Издержки, связанные с использо- ванием с/у времени ($) 9 Рабочее Сверх- урочное Общий ресурс времени Макси- мальное сверх- урочное Стои- мость часа с/у времени 10 1 8 =В10+С10 4 5 =C10*F10 11 2 8 =В11+С11 4 7 =C11*F11 12 ИТОГО ($) =G10+Gll 13 Общая прибыль =G7-G12
Примеры структуризации задач 45 И (меняемые ячейки: D3:E4; С10:С11. Ограничение по времени использования станков: С10:С11<=Е10:Е11. Целевая ячейка: G13. Задачи смеси Как правило, в таких задачах требуется определить такой состав । меси различных пьодуктов, который удовлетворяет заданным огра- ничениям по ее качеству (например, по калорийности, пластичности, щержанию питательных веществ) и вместе с тем определяет смесь минимальной стоимости. В литературе часто встречается и другое на- шппие для этого класса задач — «задачи о диете». Для этого вида оптимизационных задач характерно наличие про- 111*11 гныл (или долевых) ограничений. Ниже приводится пример струк- । уризации задачи этого типа. Определение топливной смеси Фирма хочет использовать для своих грузовиков смешанное топ- ни но с целью сокращения транспортных расходов. Планируется сме- шивать два вида топлива (А и В). Смешанное топливо должно иметь октановое число не меньше 80. ' >ктановое число смеси является взвешенным средним октановых чи- < ел смешиваемых компонент, причем веса пропорциональны соответ- 11 нующим смешиваемым объемам (при смешивании компонент объ- ем смеси равен сумме объемов компонент): ОЧсм = Ва*ОЧа + ВЬ*ОЧв; Ba = Va/(Va + Vb); Bb = VB/(Va + Vb). Здесь ОЧсм, ОЧа, ОЧв — октановые числа соответственно смеси, юплива А и топлива В, Va, Vb — объемы смешиваемых топлив А и В. Для обеспечения всех грузовиков фирмы в течение следующего месяца необходимо не менее 3000 галлонов топлива. Фирма рас- полагает хранилищем для топлива емкостью 4000 галлонов. Воз- можно приобретение до 2000 галлонов топлива А и 4000 галлонов юплива В. Топливо А имеет октановое число 90 и стоимость $1,20 за галлон, опливо В имеет октановое число 75 и стоимость $0,90 за галлон. Определите смесь минимальной стоимости.
46 Часть 1. Поиск решений на электронных таблицах Математическая формулировка задачи Содержимое изменяемых ячеек Пусть переменная Va определяет объем топлива А, а переменная Vb — объем топлива В. Ограничения 1. По запасам топлива: Va + Vb >= 3000; Va + Vb <= 4000. 2. По закупкам топлива: Va <= 2000; Vb <= 4000. 3. По октановому числу смеси: Ва*90 + ВЬ*75 >= 80. Целевая функция: Z = 1,20*Va + 0,90*Vb. Минимизировать Z. Структура ЭТ А В с D Е F 1 Вид то- плива Количе- ство за- купаемо- го топли- ва (галлон) Макси- мальный объем за- купки то- плива (галлон) Октановое число топ- лива Содержимое топлива в смеси (доли) Стоимость гал- лона топлива ($) 2 А 2000 90 =В2/В4 1,20 3 В 4000 75 =ВЗ/В4 0,90 4 Общее количество смеси (галлон) =В2+В3 5 Объем хранилища (галлон) 4000 6 Минимальная потребность в топливе (галлон) 3000 7 Октановое число смеси =D2*E2+D3*E3 8 Требуемое октановое число смеси 80 8 Стоимость топливной смеси =F2*B2+F3*B3 Изменяемые ячейки: В2:ВЗ. Ограничения: 1. По закупкам топлива: В2:ВЗ <= С2:СЗ. 2. По запасам топлива: F4 <= F5; F4 >= F6. 3. По октановому числу смеси: F7 >= F8. Целевая ячейка: F8.
Примеры структуризации задач 47 Задачи дисбаланса 1ти задачи связаны с установлением оптимального соответствия Mr*ну процессами спроса и предложения (закупки и продажи тсва- |h>ii, производства комплектующих и сборки изделий, планирования и фпыической реализации плана и т. п.) Несоответствие между этими процессами образует дисбаланс, который всегда связан с убытками, in чнсляемыми в денежном выражении. Причины возникновения пн Ьаланса Moiyr быть самыми разными, поэтому и задачи этого типа мшуг значительно отличаться друг от друга. 11иже рассматриваются две характерных задачи этого класса. Минимизация дисбаланса при сборке изделий из комплектующих Изделия двух типов (А и В) собираются с использованием комп- •н'ктующих четырех видов (1, 2, 3 и 4). Структура изделий определена и 11блице (изделие типа А состоит из трех комплектующих первого шип, десяти комплектующих второго типа и т. д). Тип изделия Вид комплектующих 1 2 3 4 А 3 10 7 1 В 0 8 5 4 Комплектующие выпускаются на двух различных заводах. В сле- дующей таблице приведены данные, характеризующие производите- I пость заводов по выпуску комплектующих и недельный ресурс вре- мени, которым располагает каждый из заводов для их производства. 11< на изделий вида А — $40, вида Б — $27. Завод Недельный фонд времени (ч) Производительность по видам комплектующих (ед./ч) 1 2 3 4 1 130 10 5 7 8 2 90 8 6 12 3 Определите еженедельные затраты времени (в часах) на производ- 11 ло комплектующих каждого вида на каждом заводе, обеспечиваю- щие максимальный объем реализации изделий при минимальном in ic6? лансе.
48 Часть 1. Поиск решений на электронных таблицах / 'ате этическая формулировка задачи Определим варьируемые переменные Xij как еженедельные затраты времени (в час) для производства комплектующих i-oro вида на j- эм заводе (i = 1, 2, 3, 4; j = 1, 2). Тогда суммарное количество комплекту- ющих, выпускаемых двумя заводами (по видам комплектующих), определится выражениями: N1=1O*X11+8*X12; (комплектующие первого вида); N2=5*X21+6*X22; (комплектующие второго вида); N3=7*X31+12*X32; (комплектующие третьего вида); N4=8*X41+3*X42 (комплектующие четвертого вида). Введем дополнительные варьируемые переменные «второго уровня Nia — количество комплектующих i-oro вида, используемых для сбор- ки изделия А, аналогично Nib (Nia + Nib = Ni; i = 2, 3, 4). При решении этой задачи целесообразно использовать понятие полного комплекта — набора комплектующих, из которых может быть собрано одно изделие. Так, для изделия А полным комплектом явля- ется набор (3, 10, 7, 1), а для изделия В — (0, 8, 5, 4). Любой комплект составляется из порций комплектующих разных видов. Для изделия Л это 4 порции: 1) из трех комплектующих первого вида; 2) десяти второго вида; 3) семи третьего вида; 4) одной комплектующей четвертого вида. Дисбаланс заключается в том, что из-за различий в производите- льности заводов число таких порций не позволяет составить целое число полных комплектов, поэтому возникает дисбаланс, связанный с образованием остатков комплектующих одного вида и нехваткой ком- плектующих другого вида. Оба этих фактора влекут к снижению объе- мов производства изделий. При этом фактически количество выпус- каемых изделий определяется минимальным количеством порций, из которых могут быть составлены полные комплекты. Например, все комплектующие первого вида используются д ля сбор- ки изделий А. Какое количество изделий типа А можно собрать из комп- лектующих первого вида? Очевидно, это количество определяется тем, ci юлько порций можно собрать из комплектующих первого вида, т. е. ве- личиной [Nl/З] (квадратные скобки определяю1, здесь целую часть). Комплектующие второго вида делятся на две части, одна из них идет на сборку изделий типа А, вторая — на сборку изделий типа В, при этом N2a + N2b = N2. Величина [N2a/10] определит количество порций и соответственно количество изделий типа А, которые можно собрать с учетом объема имеющихся комплектующих второго вида — N2a.
Примеры структуризации задач 49 I л.<им образом, общее количество изделий типа А, которое может •ин. собрано при наличии комплектующих 1+4-ого видов в количест- й< < N1, N2a, N3a, N4a), определится формулой: Hui но_Изделий_А = MIN ([NI/3], lN2a/10], [N3a/7], [N4a]). Аналогично для изделий типа В: 1 он ноИзделийВ = MIN ([N2b/8], [N3b/5], [N4b/^]). Содержим? целевой ячейки: Z = 40Я!ТСол-во_Изделий_А + ,’J Кол-во_Изделий_В. Ограничения: по времени производства для завода 1: XII + Х21 + Х31 + Х41 <= 130; для завода 2: Х12 + Х22 + Х32 + Х42 <= 90. по видам комплектующих: Nia + Nib = Ni; i = 2, 3, 4; Nia, Nib = целые. Максимизировать Z. Таким образом, в этой задаче общее число варьируел.ых перемен- ных (изменяемых ячеек) равно 14. Из них 8 переменных Xij имеют |ы 1мерность времени, а 6 переменных (Nia, Nib) — безразмерны. Структура ЭТ А в С D Е : F G В I J 1 Производство комплектующих на заводах 2 За- вод Производитель- ность по видам комплектующих (шт/час) Вчемя производства по ви- дам комплектующих (час) Общее время про- изводства ком- плектующих по згзодам (час) 3 1 2 3 4 1 2 3 4 4 1 10 5 7 8 =F4+G4+H4+I4 5 2 8 6 12 3 =F5+G5+H5+I5 6• Количество комплектующих по видам (шт) Норматив времени для производства комплектующих (час) 7 Завод 1 =В4* F4 =С4* G4 =D4* Н4 =Е4* 14 130 8 Завод 2 =В5* F5 =С5* G5 =D5* Н5 =Ь5* 15 90 9 Общее количество ком- плек ующих (шт) =F7+ F8 =G7+ G8 =Н7+ Н8 =17+ 18
50 Часть 1. Поиск решений на электронных таблицах Продолжение ЭТ А с D Е F G н I J 10 Сборка изделий и Тип изде- ЛИЯ Вид комплектую- щих Количество комплектующих для сборки изделий по видам (шт) Количество соб- ранных изделий (шт) 1 2 3 4 12 А 3 10 7 1 =F9 =MIN(F15;I15) 13 В 0 8 5 4 0 =M1N(G16;I16) 14 Общее количество ком- плектующих =F12 =G12 +G13 =Н12 +Н13 =112+ 113 15 Количество порций для формирования полного комплекта изделия А =F12/ В12 =G12 /С12 =Н12 /D12 =112/ El 2 16 Количество порций для формирования полного комплекта изделия В 0 =G13 /С13 =Н13 /D13 =113/ Е13 17 Цена изделия по типам ($) Выручка за изделия по типам ($) Общая выручка за изделия ($) 18 А в А В =Н19+П9 19 40 27 =F19 *112 =G19 *J13 Изменяемые ячейки первого уровня: F4.T5. Изменяемые ячейки второго уровня: G 12:113. Целевая ячейка: Л9. Ограничения: • по времени производства J4 : J5 <= J7:J8; • по видам комплектующих: G14 : 114 = G9:I9; • G12:113 = целые. Модель производства с запасами Фирма переводит свой завод на производство новых изделий, которые планируется выпускать в течение четырех месяцев. Оцен- ки спроса на изделия в каждый из этих месяцев приведены в таб- лице: к к ( я и I I' \ II Месяц поставки изделия 1 2 3 _ 4 - I Спрос (штук) 100 200 180 300 J
Примеры структуризации задач 51 В каждый месяц спрос можно удовлетворить за счет: • избытка изделий, произведенных в предшествующие месяцы; • изделий, произведенных в текущем месяце; • изделий, произведенных в последующие месяцьт для погашения невыполненных ранее заказов. Затраты на изготовление одного изделия составляют долл.4. Изде- 1нс, произведенное, но не поставленное потребителю в текущем ме- । >щс, влечет за собой дополнительные издержки на хранение в разме- ра цолл.0,5 за каждый месяц хранения. Изделие, выпускаемое в счет нсныполненных заказов, облагается штрафом в размере долл.2 за каж- ii.ni месяц недопоставки. Объем производства меняется от месяца к месяцу по внутризавод- < ким причинам. В рассматриваемые 4 месяца планируется следующая программа выпуска изделий. Месяц производства изделия 1 2 3 4 Выпуск (штук) 50 180 280 270 Требуется уточнить (доопределить) эту программу таким образом, побы она обеспечивала минимальные издержки, обусловленные не- । <пласованностью спроса и предложения (дисбалансом). Задачи такого типа в исследовании операций известны как • транспортные задачи». Это обусловлено тем, что чаще всего та- кие задачи связаны с оптимизацией процессов перевозок. Вместе ( тем к этому типу сводится рассматриваемая задача и многие другие, не имеющие непосредственного отношения к транспорту. ' нсцифика этих задач заключается в использовании табли- цы-матрицы, строки и столбцы которой определяют факторы дисбаланса — спрос и предложение, места производства и по- |рсбления продукции и т. п. Пусть i определяет месяц производства изделия, a j — месяц по- < ывки. В качестве содержимого изменяемых ячеек будем использовать \ij — количество изделий, произведенных в i-ый месяц и поставлен- ных в j-ый. Математическая формулировка задачи Определим матрицу стоимостей производства' и хранения из- пепий.
52 Часть 1. Поиск решений на электронных таблицах Месяц пр-ва (i) Месяц лоте эбления (j) Г рограмма выпуска чзделий (шт) 1 2 3 4 1 4 4,5 5 5,5 • 50 2 6 '4 4,5 5 180 3 8 6 4 4,5 280 4 10 8 6 4 270 Спрос (шт) 100 200 180 300 Cij = $4; (при i = j); $4 + $0,5 * (j - i); (при j > i); $4 + $2*(i- j); (при i > j). В таком же виде определим программу производства изделий Месяц пр-ва (i) Месяц потребления (j) Программа выпуска изделий (шт) 1 2 3 4 1 Х11 Х12 Х13 Х14 50 2 Х21 Х22 Х23 Х24 180 3 Х31 Х32 ХЗЗ Х34 280 4 Х41 Х42 Х43 Х44 270 Спрос 100 200 180 300 Ограничения: предложение (объемы производства): Х11+Х12+Х13+Х14= 50; Х21+Х22+Х23+Х24-180; X31+X32+X33+X34=280; Х41+Х42+Х43+Х44=2 70. спрос: Х11+Х21+Х31+Х41=100; X 12+Х22+Х32+Х42=200; X 13+Х23+Х33+Х43=180; X 14+Х24+Х34+Х44=300. Целевая функция: Z= Sj Sj (Xij*Cij) для i=l,2.3,4; j= 1,2,3,4. Минимизировать Z.
Примеры структуризации задач 53 Стр^траЭТ А В С 1 D —L Е F 1 Затраты на производство, хранение н штрафы ($) > 4- Месяц пр-ва Месяц потребления Пр 'грамма выпуска изделий (шт) 1 1 2 3 4 4 1 4 4,5 5 5,5 50 2 б 4 4,5 5 180 6 3 8 б 4 4,5 280 7 4 10 8 6 4 270 8 Спрос (шт) 100 2оо 180 300 •> Объемы производства изделий (шт) 10 Месяц Месяц потребления Реальный выпуск II пр-ва 1 2 3 4 изделий (шт) 12 1 =СУММ(В12:Е12) 13 2 =СУММ(В13:Е13) 14 3 =СУММ(В14:Е14) 15 4 =СУММ(В15:Е15) 16 Спрос (шт) =СУММ( В12:В15) =СУММ( С12:С15) =СУММ( D12:D15) =СУММ( Е12:Е15) 17 Суммарные издержки дисбаланса ($) =СУММПРОИЗВ( В12:Е.5; В4:Е7) Функция СУММ() находится в списке функций системы EXCEL, ина реализует суммирование элементов массива. Функция УММПРОИЗВ() суммирует произведения элементов двух массивов. Опа также находится в списке функций EXCEL. Например, СУММПРОИЗВ(В12:Е15; В4:Е7) = Bl 2*В4+С12*С4+ D 12*D4+E 12*Е4+ B13*B5+C13*C5+D13*D5+E13*E5+ B14*B6+C14*C6+D14*D6+E14*E6+ B15*B7+C15*C7+D15*D7+Ei5*E7. Изменяемые ячейки: В12:Е15, целевая ячейка F17. Ограничения: по производственной программе: F4:F7=F12:F15; по спросу: В8:Е8=3!6:Е16; естественные: В12:Е15 целые, неотрицательные.
54 Часть 1. Поиск решений на электронных таблицах Составление «скользящих» графиков Такие графики обычно связаны с расписаниями многосменной работы предприятия в условиях нестационарного спроса на товары или услуги, связанные с деятельностью этого предприятия. Эти зада- чи характеризуются наличием многих ограничений, действующих в разные периоды времени. Например, спрос на общественный транс- порт сильно меняется в зависимости от времени суток, спрос на про- даваемые товары в магазине меняется в зависимости от дня недели и времени суток и т. д. Задача состоит в том, чтобы организовать распи- сание обслуживания клиентов (пассажиров, покупателей и т. п.) та- ким образом, чтобы издержки от неравномерности спроса были бы минимальны. Ниже приводится пример задачи, связанной с неравномерностью покупательского спроса в течение суток. Составление скользящего расписания при нестационарном потребительском спросе В таблице приведено количество продавцов, которое необходимо для удовлетворения покупательского спроса в торговом зале магазина в течение суток. Требуется так организовать расписание работы про- давцов, чтобы их общее количество (и соответственно расходы на оплату их труда) было минимальным. Время суток Требуемое ..олччесгво продавцов 0-4 2 4-8 2 8-12 5 12-16 7 16-20 7 20-24 4 Математическая формулировка задачи Допустим, что продавцы в магазине работают по 8 часов (в смену). В соответствии с данными задачи количество требуемых прода з цов меняется через 4 часа. Если предположить, что в первую смену работает XI продавцов, во вторую — Х2 и т. д., то график работы про- давцов можно представить следующим рисунком.
Примеры структуризации задач 55 О 8 16 24 Время суток Жирные линии означают смены, которые начинаются через 4 •i.K.i и продолжаются 8 часов. Смены перекрываются, т. е., напри- м< р, с 4 до 8 часов в торговом зале присутствуют (XI + Х2) продав- цов, с 8 до 12 часов — (Х2 + ХЗ) продавцов, а с 0 часов до 4 работа- пи (XI + Х6) продавцов. Этот «скользящий» график и образует рас- писание смен. XI 4- Хб определяют изменяемые (варьируемые) переменные, кото- рые следует определять из условия минимального общего количества продавцов, т. е. целевая функция в этой задаче определяется выраже- нием : (Xl+X2+X3+X4+X5+X6)=>min. В качестве ограничений при этом будут выступать условия: Х1+Х6>=2; Х1+Х2>=2; Х2+Х3>=5; Х3+Х4>=7; Х4+Х5>=7; Х5+Х6>=4. Кроме того, (XI -с Х6) должны быть целыми и положительными. Такая структуризация может быть реализована, например, в сле- |ующей электронной таблице. 1 А В С D Е F Но- мер сме- ны Нача- ло смены (час) Интервал времени (час) Кол-во продавцов в смене Кол-во про- давцов в зале Требуемое кол-во про- давцов 2 1 0 0-4 =D7+D2 2 1 2 4 4-8 =D2+D3 2 4 3 8 8-12 =D3+D4 5 5 4 12 12-16 =D4+D5 7 6 5 16 16-20 =D5+D6 7 7 6 20 20-24 =D6+D7 4 8 Общее количество продавцов СУММ (D2:D7)
56 Часть 1. Поиск решений на электронных таблицах Здесь столбцы А, В, С, F определяют исходные данные, столбец D -- изменяемые ячейки, столбец Е — зависимые ячейки, реализую щие математическую формулировку задачи. Ячейка F8 — целевая Ограничения: E2:E7>=F2:F7; Е2:Е7 — целые и неотрицательные. Задачи оптимизации инвестиций Основная цель решения этого класса задач — найти оптимальное распределение (вложение) финансовых средств, доставляющее макси мальную прибыль (в будущем) по истечении срока действия инвеста ционного проекта. Для этих задач характерно наличие большого раз нообразия способов вложения средств, использование ограничений и виде равенств, определяющих разделение общей суммы инвестицион ных вложений на части — вложения в различные проекты. Число та ких ограничений зависит от сроков реализации инвестиционных про ектов. При этом на каждом временном отрезке, связанном с инвеста циями, в электронной таблице «появляются» новые варьируемые переменные. Такие переменные определяют процесс деления прибы ли, полученной на предыдущем этапе инвестиций, на части — вложс ния в проекты на последующем этапе. При большом выборе инвестиционных проектов с различными сроками окупаемости и коэффициентами прибыли эти задачи стано вятся весьма сложными и трудно формализуемыми. Оптимизация инвестиций в проекты Денежные средства могут быть использованы для финансирова ния двух проектов. Проект А гарантирует получение прибыли в раз мере 70 центов на вложенный доллар через год. Проект В гарантируе! получение прибыли в размере 2 долл, на каждый инвестированный доллар, но через два года. При финансировании проекта В период инвестиций должен быть кратным двум годам. Как следует распоря даться капиталом в 100 тыс. долл., чтобы максимизировать суммар ную величину прибыли, которую можно получить через три года по еле начала инвестиций? Математическая формулировка задачи Содержимое изменяемых ячеек Ха, Ya — вложения в проект A; Xb, Yb — вложения в проект В. Возможные инвестиции могут быгь иллюстрированы схемой приведенной на рисунке.
Примеры структуризации задач 57 В этой схеме стрелки определяют возможные вложения в проек- 1ы, а символические обозначения на стрелках — объемы таких вложе- iiuii. Из приведенной схемы следует, что в исследуемой системе суще- 11 иуют только два возможных срока вложений — начало первого года и начало второго года. Суммы вложений в эти сроки определяют со- u-ржимое изменяемых ячеек. «Точка вложений» в начале третьего ища одна, в нее вкладываются все доходы от предыдущих вложений, ha точка не связана с какими-либо вариациями сумм. Ограничения: Ха + ХЬ ~ 100 000; Ya + Yb — (1 + 0.7)*Ха. Целевая функция: Z = Ya*(l + 0.7)2 + Yb*(l + 2) + Xb*(l + 2)*(1 + 0,7). Максимизировать Z. Представление этой задачи в форме электронной таблицы целесо- oi «разно оформить в следующем виде. А В С D Е F G н Коэф- фици- ент от- дачи 1-ый год 2-ой год 3-ий год Вложе- ние Выход Вложе- ние Выход Вло- жение Выход Проект А 0.7 =СЗ*(1 +ВЗ) =ЕЗ*(1+ ВЗ) =F5 =G3*(1 +ВЗ) Проект В 2 =С4*(1 +В4) =Е4*(1+ В4) Итого =СЗ+С4 =D3 =ЕЗ+Е4 =F3+F4 =НЗ+Н4 Первоначальная сумма вложений 1000000
58 Часть 1. Поиск решений на электронных таблицах Изменяемые ячейки: СЗ:С4, ЕЗ:Е4. В двух первых размещаются вложения первого года, в двух последних — вложения второго года. Ограничения: С5 = Н6; Е5 = D5; Целевая ячейка: Н5. Задачи логического выбора Этот класс задач связан с выбором конкретных вариантов органи- зации системы с учетом ресурсных ограничений. Как правило, в зада- чах логического выбора используются изменяемые ячейки, которые могут хранить одно из двух значений: 1 или 0, иначе «выбирать вариант организации» или «не выбирать». В математическом программирова нии такие задачи называются задачами булевского программирования. Использование булевских переменных позволяет сформулировать различные логические ограничения выбора. Например, выбор одного из двух вариантов организации исследу- емой системы (1, 2) может определяться двумя булевскими перемен ными (XI, Х2). Условие выбора только одного из двух вариантов эквивалентно ло- гическому ограничению: XI + Х2 = 1. Такое ограничение моделирует условие взаимоисключения. Условие выбора хотя бы одного из двух вариантов эквивалентно логическому ограничению XI + Х2 >= 1. Если вариант 2 может быть принят только при принятии вари анта 1 (взаимообусловленность), следует использовать ограничение XI >= Х2. Если же вариант 2 должен быть принят при принятии ва- рианта 1, вводится ограничение Х2 >= XI. В качестве примера рассмотрим задачу о выборе варианта капита- ловложений. ( I" II II Распределение капиталовложений Проект Распределение капиталовложений Прибыль Год1 Год 2 ГодЗ 1 5 1 8 20 2 4 7 10 40 3 3 9 2 20
Примеры структуризации задач 59 Продолжение таблицы Проект Распределение капиталовложений Прибыль । Год1 Год 2 ГодЗ 4 7 4 10 15 5 8 6 1 30 Максимальный объем капиталовложений 25 25 25 Рассматриваются пять проектов, которые могут быть осуществле- ны в течение последующих трех лет. Ожидаемые величины прибыли о г реализации каждого из проектов и распределение необходимых ка- питаловложений по годам (в тыс. долл.) приведены в таблице. Пред- полагается, что каждый утвержденный проект будет реализован за трехлетний период. Требуется выбрать совокупность проектов, кото- рой соответствует максимум суммарной прибыли. Математическая формулировка задачи| Добавим к таблице исходных данных столбец изменяемых ячеек. Обозначим содержимое этих ячеек как Xi, где i = 1, 2, ..., 5 определя- ет номер проекта, a Xi определяет решение: вкладывать (Xi = 1) или ист (Xi = 0) средства в i-ый проект. Такую переменную, принимаю- щую только два возможных значения (1 или 0), называют булевской. Ограничения: 1) по объему капиталовложений в первый год: 5* XI + 4*Х2 +3*ХЗ + 7*Х4 + 8*Х5 <= 25; во второй год: 1* XI + 7*Х2 +9*ХЗ + 4*Х4 + 6*Х5 <= 25; в третий год: 8* XI + 10*Х2 +2*ХЗ + 10*Х4 + 1*Х5 <= 25; 2) «естественные» ограничения: Х1-?Х5 = двоичные (булевские). Целевая функция: Z= 20*Х1 + 40*Х2 + 20*ХЗ + 15*Х4 + 30*Х5. Максимизировать Z. Электронная таблица в этом варианте может выглядеть следую- щим образом.
60 Часть- i. 1 юиск решений на электронных таблицах А в С D Е F 1 2 Проект Распределение капиталовложений (тыс $) Прибыль (тыс.$) Выбор про- :кта (1-да, 0-нет) Год 1 Год 2 ГодЗ 3 1 5 1 8 20 4 2 4 7 10 40 5 3 3 9 2 20 : 6 4 7 4 10 15 - . 7 5 8 6 1 30 8 Реальный объем капиталовложе- ний (тыс.$) =E(F3:F7) *(ВЗ:В7) =X(F3:F7) *(СЗ:С7) =E(F3:F7) *(D3:D7) Реальная прибыль (тыс.$) =E(F3:F7)* (ЕЗ:Е7) 9 Максимальный объем капита- ловложений (тыс.$) 25 25 25 Формула =£(F3:F7)*(B3:B7) записывается в системе EXCEL как СУММПРОИЗВ (F3:F7;B3:B7). Она определяет сумму произведений столбца F3:F7 на столбец ВЗ:В7: СУММПРОИЗВ (F3:F7;B3:B7) = F3*B3 + F4*B4 + F5*B5 + F6*B6 + + РГВ7. F3:F7 — изменяемые булевские ячейки, F8 — целевая ячейка. Ограничения: B8:D8 <= B9:D9. Контрольные вопросы 1. Как связана математическая формулировка оптимизационной задачи со структурой ЭТ, на которой будет проводиться поиск решения задачи? 2. Приведите примеры элементов сходства и различия между математической формулировкой задачи и структурой ЭТ. 3. Укажите основные особенности задач определения оптимального ассорти- мента продукции. 4. Укажите основные особенности задач о смеси. 5. Могут ли изменяемые ячейки одной задачи иметь разные размерности? 6. Укажите основные особенности систем с дисбалансом. Приведите приме- ры таких систем. 7. Укажите основные особенности «транспортных задач». Зсегда ли они свя- заны с транспортом? 8. Что такое «скользящий график» и в чем заключается его оптимизация? Приведите примеры. 9. Укажите основные особенности задач оптимизации инвестиций. В чем за- ключаются основные трудности поиска решения этих задач? 10. Дайте краткую характеристику задач логического выбора. Приведите при- меры логических ограничений.
Задачи для исследования систем управления ’ 61 U.K какому виду математического программирования относятся задачи логи- ческого выбора? 12. Приведите примеры изменяемых ячеек различных уровней. Как бы Вы определили понятие уровня изменяемой ячейки? 13. Могут ли в одной задаче использоваться изменяемые переменные разных типов (например, булевские и действительные)? Задачи для исследования систем управления 1. Задачи определения объемов производства товаров и услуг При подборе задач были использованы источники [1, 2, 3, 7]. 1.1. Оптимизация производства карамели Кондитерская фабрика для производства трех видов карамели А, В и С использует три вида основного сырья: сахарный песок, патоку и фруктовое пюре. Нормы расхода сырья каждого вида на производ- U во одной тонны карамели приведены в таблице. В ней же указано общее количество сырья каждого вида, которое может быть использо- H.IHO фабрикой, а также приведена прибыль от реализации 1 т караме- чн соответствующего вида. Вид сырья Нормы расхода сырья (т) на 1 т карамели Общее кол-во сырья (т) А В С Сахарный песок 0,8 0,5 0,6 800 Патока 0,4 0,4 0,3 600 Фруктовое пюре 0 0,1 0,1 120 Прибыль от реализации 1 т продукции (тыс. руб.) 108 112 126 Найти оптимальное сочетание объемов производства карамели (по видам), обеспечивающее максимальную прибыль от ее реализа- ции. Исследовать, как изменятся эти объемы при изменении запасов ырья на фабрике.
62 Часть 1. Поиск решений на электронных таблицах 1.2. Оптимизация объемов производства изделий Изделия четырех типов проходят последовательную обработку на двух станках. Время обработки одного изделия каждого типа на каж- дом из станков приведено в таблице. Время обработки одного изделия (ч) Станок Тип 1 Тип 2 ТипЗ Тип 4 1 2 3 4 2 2 3 2 1 2 Затраты на производство одного изделия каждого типа определя- ются как величины, прямо пропорциональные времени использова- ния станков (в машино-часах). Стоимость машино-часа составляет долл.10 для станка 1 и $15 для станка 2. Допустимое время использо- вания станков для обработки изделий всех типов ограничено следую- щими значениями: 500 машино-часов для станка 1 и 380 машино-ча- сов для станка 2. Цены изделий типов 1, 2, 3, и 4 равны соответствен- но $65, $70, $55 и $45. Найдите оптимальные объемы производства изделий, исходя из условия максимизации суммарной чистой прибыли. Исследуйте, как повлияет на оптимальное решение изменение стоимости машино- часа для первого и второго станков. 1.3. Оптимизация размещения объемов субподрядных работ Подразделение по изготовлению технологической оснастки про- изводства моторов столкнулось с проблемой: самим производить не- I сколько приспособлений для сборочного цеха или использовать суб- подрядчиков. Любое из этих приспособлений требует использования операций литья, обработки и сборки. Операции литья для приспособлений А и । В могут быть выполнены субподрядчиками, но литье для приспособ- ления С требует специального оборудования, что исключает исполь- зование субподрядчиков. Стоимость операций и цены на приспособления приведены ниже. Каждое приспособление А требует 9 мин. для литья, 9 мин. для обработки и 5 мин. для сборки. Для приспособления В это соответст- венно L5, 5 и 3 мин. Для приспособления С это 12, 12 и 3 мин.
Задачи для исследования систем управления 63 “ — -=——i Стоимость операций по изготовлению приспособлений ($) Тип приспособления А В С Литье(субподрядчики) 0.65 0,80, - Обработка 0,25 0,15 0,35 Сборка 0,40 0,25 0,25 Литье (собственное) 0,20 0,25 0,30 Цена приспособления ($) 2,25 2,35 2,35 Ресурсы производственного времени подразделения составляют: • для операции литья — 12 тыс. мин в неделю; • для операции обработки — 18 тыс. мин в неделю; • для операции сборки — 15 тыс. мин в неделю. Определите оптимальное размещение объемов производства при- способлений, доставляющее максимальную прибыль. Исследуйте, как повлияет на оптимальное решение изменение расценок на литье, вы- полняемое субподрядчиками. (Субподрядчики не используют ресурсы производственного времени и производственные мощности подразде- ления по изготовлению технологической оснастки производства.) 1.4. Оптимизация размещения рекламы Фирма имеет возможность рекламировать свою продукцию, испо- льзуя местные радио- и телевизионные сети, а также центральное те- левидение. Затраты на рекламу в бюджете фирмы ограничены величи- ной $2000 в месяц. Каждая минута радиорекламы обходится в $5, каждая минута местной телерекламы — в $50, а минута центральной юлерекламы — в $70. Опыт прошлых лет показал, что объем сбыта, который обеспечивает каждая минута местной телерекламы, в 25 раз Польше сбыта, обеспечиваемого минутой радиорекламы, а минута центральной телерекламы обеспечивает увеличение сбыта по сравне- нию с минутой радиорекламы в 40 раз. Определите оптимальное распределение финансовых средств, ежемесячно отпускаемых на рекламу, между радио- и двумя видами юлерекламы. Фирма хотела бы использовать радиосеть по крайней мере в два раза чаще, чем сеть телевидения. Исследуйте, оправдано ли это поже- члние фирмы? Фирма рассматривает возможность дополнительного использова- ния рекламы типа «бегущая строка» на центральном телевидении. < гоимость минуты такой рекламы на 30 % меньше стоимости минуты обычной рекламы центрального телевидения, а сбыт меньше только
64 Часть 1. Поиск решений на электронных таблицах на 10 %. Возможно ли при этом уменьшить объем средств, выделяе- мых на рекламу в целом, при сохранении прежнего уровня сбыта? 1.5. Оценка номенклатуры изделий Предприятие электронной промышленности выпускает пять мо- делей радиоприемников, причем модели 1—3 производятся на техно- логической линии А, а модели 4—5 на технологической линии В. Су- точный объем производства линии А — 70 изделий, линии В — 95 из- делий. Радиоприемники всех моделей используют однотипные элементы электронных схем в количествах, определяемых таблицей. Модель приемника 1 2 3 4 5 Кол-во элементов 10 8 6 11 15 Прибыль от реализации первого приемника ($) 30 20 10 22 40 Максимальный суточный запас используемых элементов равен 1800 единицам. Определите оптимальные суточные объемы производства радио- приемников различных видов, доставляющие максимальную прибыль. Предприятие планирует в дополнение к двум существующим за- пустить третью технологическую линию С по сборке радиоприемни- ков с производительностью 100 изделий в сутки. Какие модели при- емников целесообразно производить на этой линии, в каких объемах и какой минимальный суточный запас элементов необходим для пол- ной загруженности всех трех линий? 1.6. Оценка развития производства В связи с закрытием неприбыльной производственной линии на предприятии образовался избыток производственных мощностей. Менеджер рассматривает возможность использования свободной про- изводственной линии для производства одного или более из трех ви- дов продуктов XI, Х2 или ХЗ. Ниже приведены затраты производст- венного времени на единицу каждого из этих продуктов. I Вид обработки Затраты времени на единицу продукта (ч) XI Х2 • ХЗ Фрезерование 8 2 3 Токарная 4 3 0 Шлифовальная 2 0 1 1
Задачи для исследования систем управления 65 Доступные ресурсы времени обработки в неделю: фрезерование — Н(Ю ч, токарная — 480 ч, шлифовальная — 320 ч. Коммерсанты оценивают, что они могут реализовать весь объем продукции видов XI и Х2, который может быть произведен, но как максимум 80 единиц продукции вида ХЗ в неделю. Ожидаемая прибыль по видам продуктов на единицу продукции (удельная прибыль): XI — $20, Х2 — $6, ХЗ — $8. Каково оптимальное распределение между видами производимой продукции, обеспечивающее максимальный объем реализации (в дол- ипрах)? В каких пределах может изменяться удельная прибыль (по видам продуктов) без изменений найденного оптимального распределения и । лкие значения этой прибыли обеспечат максимальное увеличение найденного объема реализации? 1.7. Оптимизация ассортимента молочного завода Продукцией молочного завода являются молоко, кефир и смета- на, расфасованные в бутылки. На производство 1 т молока, кефира пли сметаны требуется соответственно 1010, 1010 и 9450 кг молока. 11ри этом затраты рабочего времени при разливе 1 т молока и кефира ।оставляют 0,18 и 0,19 машино-часов. На расфасовке 1 т сметаны за- шпы специальные автоматы в течение 3,25 ч. Всего для производства цельномолочной продукции завод может использовать 136 т молока. Основное оборудование может быть занято в течение 21,4 маши- и<> часа, а автоматы по расфасовке сметаны — в течение 16,25 ч. При- ьыль от реализации 1 т молока, кефира и сметаны соответственно ринка 30, 22 и 136 тыс. руб. Завод должен ежедневно производить не менее 100 т молока, расфасованного в бутылки. На производство дру- IOII продукции не имеется никаких ограничений. Требуется определить оптимальное соотношение между объемами производимой молочной продукции, при котором прибыль от ее реа- чи >ации будет максимальной. Можно ли рассчитывать на увеличение прибыли, если отказаться in ограничения на производство молока? Каково максимальное уве- личение прибыли? На сколько можно снизить цены на кефир и сме- t пну, отказываясь от дополнительной прибыли? 1.8. Составление плана загрузки станков На текстильном предприятии имеется три типа ткацких станков. 111 каждом могут вырабатываться 4 вида тканей: миткаль, бязь, ситец и сатин. Производительность каждого станка и затраты на изготовле- ние тканей приведены в таблице.
66 Часть 1. Поиск решений на электронных таблицах Производительность станка (м/ч) Затраты на выработку 1 м ткани ($) Тип CldHKd миткаль бязь ситец сатин миткаль бязь ситец сатин 1 24 30 18 42 0,2 0,1 0,3 0,1 2 12 15 9 21 0,3 0.2 0,4 0,1 3 8 10 6 14 0,6 0,3 0,5 0,2 Цена 1 м ткани ($) 10 15 17 8 Учитывая, что фонд рабочего времени каждого типа станков со- ответственно равен 90, 220 и 180 станко-часов, составить такой план их загрузки, при котором общие затраты, обусловленные изготовле- нием 1200 м миткаля, 900 м бязи, 1800 м ситца и 840 м сатина, явля- ются минимальными. Для найденного плана определить прибыль фабрики. Найти оптимальный план выпуска тканей, определенный из усло- вий получения максимальной прибыли при отказе от ограничений на объемы выпускаемой продукции. Сравнить эти планы и оценить упущенную выгоду, связанную с ограничениями на ассортимент производимой продукции. 1.9. Использование сверхурочных работ При изготовлении изделий двух видов осуществляется последова- тельная обработка соответствующих заготовок на двух различных станках. Каждый станок может использоваться для производства из- делий по 8 часов в сутки, однако этот фонд времени можно увеличить на 4 часа за счет сверхурочных работ. Каждый час сверхурочного вре- мени требует дополнительных расходов: для станка 1 это долл. 5, для станка 2 — долл.7. Производительность станков и прибыль в расчете на одно изделие приведены в таблице. Станок Производительность станков (изделие/час) изделие 1 изделие 2 1 5 6 2 4 8 Удельная прибыль $6 $4
Задачи для исследования систем управления 67 Требуется определить объемы производства изделий каждого вида и уровень использования сверхурочного времени на каждом из стан- ков, обеспечивающие получение максимальной чистой прибыли. Увеличит ли прибыль включение в план производства дополните- |||>пого вида изделий (Изделия 3) на прежних производственных мощ- ностях? Изделие имеет удельную прибыль $5 и требует использования юлько второго станка с производительностью 7 изделий в час. 1.10. Выбор варианта раскроя В производстве объемных изделий используются заготовки листо- вого материала, из которого изготовляются детали методом раскроя I.I готовки. Каждая заготовка может быть раскроена тремя способами (1, 2 и 1) В результате раскроя заготовки получатся детали трех разных ти- поразмеров. В соответствии с требованиями производственного про- цесса из имеющихся в наличии заготовок нужно получить не менее 10 деталей первого типоразмера, не менее восьми деталей второго ти- поразмера и не менее 10 деталей третьего типоразмера. Способы раскроя определяются матрицей вида: А = [а,]. Здесь .1,1 — количество деталей i-oro типоразмера, получаемое из одной за- Готовки путем ее раскроя j-ым способом. Количество заготовок, раскраиваемых каждым способом, должно быть целым и не превышать четырех. Отходы от раскроя одной заго- ювки для каждого из способов составляют 4, 5 и 5 (усл. единиц), co- in ветственно, для первого, второго и третьего способов. Предложить вариант раскроя с минимальными суммарными отхо- цами. Определить величину этих отходов. Цех раскроя предполагает реализовать выкроенные детали по це- нам $4, $6 и $2,5 соответственно для первого, второго и третьего типо- размера. При этом потери от процедуры раскроя оцениваются величи- ной долл.0,3 на условную единицу отходов. Оптимизируйте процесс раскроя, исходя из соображений получения максимальной прибыли. 2. Задачи смеси 2.1. Задача о сплавах Для получения двух сплавов А и В используются четыре металла Ml, М2, М3 и М4. Требования к содержанию этих металлов в сплавах Л и В приведены ниже.
68 Часть 1. Поиск решений на электронных таблицах Сплав Требования к содержанию металлов А Не более 80 % металла М1 Не более 30 % металла М2 Не менее 50 % металла М4 В От 40 до 60 % металла М2 Не менее 30 % металла М3 Не более 70 % металла М4 Характеристики и запасы руд, из которых получают металлы, ука- заны в следующей таблице. Руда Максимальный запас (т) Состав (%) Цена ($/т) Ml М2 М3 М4 Др. комп. 1 1000 20 10 30 30 10 30 2 2000 10 20 30 30 10 40 3000 5 5 70 20 0 50 Цена 1 т сплава А — $200, 1 т сплава В — $300. Максимизируйте прибыль от продажи сплавов А и В, варьируя количествами приобретаемой руды и составами сплавов. 2.2. Составление кормовой смеси Бройлерное хозяйство птицеводческой фермы насчитывает 10 тыс. цыплят, которые выращиваются до 8-недельного возраста. Недельный расход корма для цыплят зависит от их возраста. Недели 1 2 3 4 5 6 7 8 | Недельный расход корма на одного цыпленка (в фунтах) 0,26 0.4 0,6 1.2 1.7 1.9 2,1 2,5 Кормовой рацион цыплят должен удовлетворять требованиям по питательности, которые выполняются при использовании определен- ных сочетаний кормовых ингредиентов. Перечень таких ингредиентов может быть достаточно широк, но (упрощая задачу) мы ограничимся только тремя ингредиентами: зерно, соевые бобы и известняк. Требо- вания к питательности рациона также упростим, учитывая только три вида питательных веществ: кальций, белок и клетчатку. В таблице
Задачи для исследования систем управления 69 приведены данные, характеризующие содержание (по весу) питатель- ных веществ в каждом из ингредиентов и удельную стоимость каждо- ги ингредиента. Содержание питательных веществ (фунт на фунт ингредиента) Стоимость ингре- I диента ($/фунт) кальций белок клетчатка Известняк 0,38 - - 0,04 Зерно 0,001 0,09 0,02 0,15 Соевые бобы 0,002 0,50 0,08 0,40 Смесь должна содержать: • не менее 0,8 %, но не более 1,2 % кальция; • не менее 22 % белка; • не более 5 % клетчатки. Определите кормовую смесь минимальной стоимости, количество каждого из ингредиентов, образующих эту смесь, и расходы (по неде- лям) на приобретение корма для цыплят. 2.3. Производство удобрений Мощности завода по производству удобрений позволяют произве- iай в текущем месяце 1000 т нитратов, 1800 т фосфатов и 1200 т пота- ша. В результате смешения этих активных ингредиентов с инертны- ми, запасы которых не ограничены, могут быть получены три вида удобрений. В таблице указано содержание активных ингредиентов в смеси. Вид удобрений Процентное содержание активных ингредиентов Цена ($/т) нитраты фосфаты поташ 1 5 10 5 40 2 5 10 10 50 3 10 10 10 60 Цена ($/т) 160 40 100 Цена инертных ингредиентов составляет долл.5 за тонну. Затраты смешения, упаковки и продажи составляют долл. 15 на тонну для каж- дого вида удобрений.
70 Часть 1. Поиск решений на электронных таблицах Какова оптимальная программа производства удобрений, позво- ляющая полностью использовать производственные мощности завода по выпуску активных ингредиентов в текущем месяце? Сколько следует производить в текущем месяце удобрений ви- дов 2 и 3, если существует соглашение о постав <е 6000 т удобрений вида 1? Насколько при этом используются производственные мощности завода по выпуску активных ингредиентов? Существует ли дисбаланс в производстве этих ингредиентов? 3. Задачи дисбаланса 3.1. Минимизация дисбаланса на линии сборки Фирма производит изделие, представляющее собой сборку из трех различных узлов. Эти узлы изготовляются на двух различных заводах. Из-за различий в составе технологического оборудования производи- тельность заводов по выпус у каждого из трех видов узлов неодина- кова. В таблице приведены исходные данные, характеризующие как производительность заводов по выпуску каждого из узлов, так и мак- симальный суммарный ресурс времени, которым в течение недели располагает каждый из заводов для производства этих узлов. Идеальной является ситуация, когда производственные мощности обоих заводов используются таким образом, что в итоге обеспечивает- ся выпуск одинакового количества каждого из трех видов узлов. Однако этого трудно добиться из-за различий в производительно- сти заводов. Более реальная цель состоит, по-видимому, в том, чтобы максимизировать выпуск изделий, что, по существу, эквивалентно минимизации дисбаланса, возникающего вследствие некомплектно- сти поставки по одному или двум видам узлов. Завод Максимальный недельный фонд времени(ч) Производительность (узел/ч) узел 1 узел 2 узелЗ 1 100 8 5 10 2 80 6 12 4 Требуется определить еженедельные затраты времени (в часах) на производство каждого из грех видов узлов на каждом заводе, обеспе- чивающие максимальный выпуск изделий при минимальном дисба- лансе.
Задачи для исследования систем управления 71 3.2. Минимизация дисбаланса при сборке изделий из комплектующих Изделия двух типов (А и В) собираются с использованием комп- лектующих четырех видов (1, 2, 3 и 4). Тип изделия Вцд комплектующих 1 2 3 4 А 3 10 7 1 0 8 5 4 Структура изделий определена в таблице (изделие типа А состоит из трех комплектующих первого типа, 10 комплектующих второго inna и т. д.). Комплектующие выпускаются на двух различных заводах. В сле- дующей таблице приведены данные, характеризующие производите- льность заводов по выпуску комплектующих и недельный ресурс вре- мени, которым располагает каждый из заводов для их производства. Цена изделий вида А — $40, вида В — $27. Завод Недельный фонд врек.ент (ч) Производительность по видам комплектующих (ед./ч) 1 2 3 4 1 130 10 5 7 8 2 90 8 6 12 3 Определите еженедель гые затраты времени (в часах) на производ- ство комплектующих каждого вида на каждом за зоде, обеспечиваю- щие максимальный объем реализации изделий при минимальном дисбалансе. 3.3. Балансирование процессов сборки Предприятие производит изделия трех видов: А, В и С. Изделия каждого вида собираются на отдельном участке сборки из комплекту- ющих пяти наименований: Hl, Н2, ..., Н5. Структуры изделий опре- делены в 1 аблице. Вцд изделия Структура изделия Н1 Н2 НЗ Н4 Н5 А 2 5 6 6 1 В 3 7 9 11 3 С 2 4 5 2 1
72 Часть 1. Поиск решений на электронных таблицах Комплектующие изготовляются в© вспомогательных цехах. Каж- дый цех по производству комплектующих характеризуются численно- стью ] рабочих и средней производительностью труда на одного рабо- чего. Сведения по цехам приведены в таблице. Цех по производств] комплектующих Максимальное количество рабочих Средняя производительность труда рабочего (компл./ч) Н1 10 7 Н2 15 12 НЗ 17 13 Н4 64 23 Н5 23 11 Изделие А может быть реализовано по цене $10, В — $13иС — $12. Объемы производства изделий непосредственно связаны с коли- чеством рабочих во вспомогательных цехах. При калом количестве рабочих в каждом из таких цехов предприятие может получить макси- мальный объем реализации при минимальном дисбалансе между це- хами по выпуску комплектующих? 3.4. Балансирование процесса производства с запасами Фирма переводит свой завод на производство новых изделий, ко- торые планируется выпускать в течение четырех месяцев. Оценки спроса на изделия в каждый из этих месяцев приведены в таблице. Месяц поставки и’депия 1 2 3 4 Строе (штук) 100 200 180 300 В каждый месяц спрос можно удовлетворить за счет: • избытка изделий, произведенных в предшествующие месяцы; • изделий, произведенных в текущем месяце; • изделий, произведенных в последующие месяцы для погашения невыполненных ранее заказов. Затраты на изготовление одного изделия составляют $4. Изделие, произведенное, но не поставленное потребителю в текущем месяце, влечет за собой дополнительные издержки на хранение в размере $0,5 за каждый месяц хранения. Изделие, выпускаемое в счет невыпол-
Задачи для исследования систем управления 73 пенных заказов, облагается штрафом в размере $2 за каждый месяц недопоставки. Объем производства меняется от месяца к месяцу по внутризавод- ским причинам. В рассматриваемые 4 месяца планируется следующая программа выпуска изделий. Месяц производства изделия 1 2 3 • Выпуск (штук) 50 180 280 270 Требуется уточнить (доопределить) эту программу таким образом, чтобы она обеспечивала минимальные издержки, обусловленные не- согласованностью спроса и предложения. Как изменится найденной решение, если издержки на хранение будут больше штрафа, равны штрафу? 3.5. Минимизация дисбаланса в транспортной системе Решите задачу оптимизации распределения самолетов трех раз- личных типов по четырем маршрутам, исходя из условия минимиза- ции эксплуатационных расходов и потерь из-за неудовлетворенного спроса. Характеристики парка самолетов и движения по авиалиниям, а также стоимостные характеристики авиаперевозок приведены в таб- лицах. Убытки неудовлетворенного спроса на одного неперевезенного пассажира могут быть обусловлены двумя причинами: • нет пассажира, желающего улететь («перевозка» свободного ме- ста); • есть пассажир, желающий улететь, но нет свободных мест. С экономической точки зрения эти причины эквивалентны. Тип самолета Вместимость (число пасс) Кол-во самолетов Кол-во рейсов в сутки на маршруте 1 2 3 4 1 50 5 ? ? ? 2 30 8 ? ? _2_1 3 20 10 ? ? ? ? • Суточный пассажиропоток на маршруте 100 200 90 120 -
74 Часть 1. Поиск решений на электронных таблицах Исследование системы проведите для двух вариантов организации перелета: • каждый самолет может выполнять не более одного рейса в сутки; • каждый самолет может выполнять не более двух рейсов в сутки. Авиакомпания планирует приобрести еще 2 самолета второго типа, полагая, что убытки при этом сократятся на 10 %. Оправданы ли эти планы компании для каждого из вариантов организации перевозок? Тип самолета Эксплуатационные расходы на 1 рейс по маршруту ($) 1 2 3 4 1 1000 1100 1200 1500 2 800 900 1000 1000 3 600 800 800 900 Убыток от неудовлетворенного спро- са (на одного неперевезенного пас- сажира) 40 50 45 70 Балансирование плана развития производства Фирма разрабатывает план сборки компьютеров. Прогноз спроса на компьютеры для каждого квартала следующего года приведен в таблице. Квартал Спрос 1 1000 II 500 III 3000 IV 2000 j При работе в одну смену фирма может собирать 1200 компьюте- ров каждый квартал при стоимости сборки долл. 100 за компьютер. Если ввести вторую смену, ежеквартально можно собирать еще 800 компьютеров, но сборка каждого компьютера во вторую смену обойдется дороже — долл. 120 за компьютер. Изготовленные в теку- щем квартале компьютеры могут продаваться в последующие кварта- лы, однако хранение одного компьютера на складе обходится в долл.30 за квартал. Сколько компьютеров следует собирать ежеквартально в первую и вторую смены, чтобы удовлетворить спрос с минимальными совокуп- ными затратами? На сколько процентов следуег использовать мощность первой смены в I квартале?
Задачи для исследования систем управления 75 Сколько компьютеров следует собрать и сбыть во II квартале? Сколько компьютеров следует собрать во II квартале для сбыта в |ретьем квартале? 4. Составление «скользящих» графиков 4.1. Сменно-суточное планирование Исследуются возможности более рациональной организации го- родского автобусного парка с целью снижения интенсивности внут- ригородского движения. На начальном этапе было определено мини- мальное количество автобусов, которое может удовлетворить потреб- ности в перевозках. Результаты этого этапа исследования показали, но минимальное количество автобусов существенно меняется в зави- симости от времени суток (см. таблицу). Время суток Минимальная потребность в автобусах Дополнит, издержки (долл.) 0.01-2.00 4 25 2.01-4.00 2 25 4.01-6.00 6 25 6.01-8.00 8 25 8.01-10.00 10 15 10.01-12.00 9 15 12.01-14.00 7 15 14.01-16.00 10 15 16.01-18.00 12 15 18.01-20.00 8 15 20.01-22.00 6 25 22.01-24.00 4 25 С другой стороны, пребывание на линии лишних автобусов связа- но с дополнительными издержками, которые приведены в третьем столбце таблицы (в долларах на один лишний автобус). Определить скользящий график чередования шести часовых смен, обеспечивающий минимальные суммарные дополнительные издерж- ки от пребывания на линии лишних автобусов. Исследуйте две возможности организации такого графика: • смены начинаются через 2 часа, • смены начинаются через 3 часа.
76 Часть 1. Поиск решений на электронных таблицах Автотранспортное предприятие рассматривает возможность пере хода на скользящий рафик с 8- часовыми сменами. Оправдан ли та- кой переход при 2, 3 и 4 часовых интервалах между началами смен? 4.2. Оптимизация использования рабочих В разные дни недели магазину требуется различное количество ра5о«их, занятых на полную ставку. Число рабочих, требуемых в каж дый день недели, приведено в таблице. Понедельник 15 Вторник 13 Среда 13 Четверг 15 Пятница 19 Суббота 14 Воскресенье 9 Практика магазина заключается в том, что каждый работающий на ставку (зтавочних) работает 5 дней и имеет 2 свободных дня каж- дую неделю (2 дня подряд). Например, ставочник, работающий с по- недельника по пятницу, имеет субботу и воскресенье свободными. Заоплатг рабочего составляет долл. 10 в день, лишние рабочие (превышающие количество требуемых) поиносят убытки. Составьте скользящий график работы в магазине, минимизирую- щий убытки от лишних рабочих. Управляющий рассматривает возможность использования полста- вочников, работающих по 3 дня в неделю и получающих долл.6 в день. При какой организации работ такая возможность сократит убытки от лишних рабочих? 5. Задачи оптимизации инвестиций 5.1. Оптимизация распределения инвестиций в долгосрочные проекты Денежные средства могут быть использованы для финансирова- ния трех проектов разной длительности. Проект А гарантирует получение прибыли в размере 70 центов на вложенный доллар через год. Проект В гарантирует получение прибы- ли в размере долл.2 на каждый инвестированный доллар, но через два
Задачи для исследования систем управления 77 к 1а. Проект С гарантирует получение прибыли в размере долл.З дол- u.ipa на каждый инвестированный доллар, но через три года. При финансировании проекта В период инвестиций додже, быть кратн дм двум годам, а проекта С — трем годам. Как следует распоря- цнться капиттлом в $100 тыс., чтобы максимизировать суммарную ве- инчину прибыли, которую можно получить через пять лет после нача- ы инвестиций? Как изменится оптимальное решение при изменении процентов прибыли по каждому из проектов? 5.2. Использование инвестиций для реализации контракта Компания заключает контракт на покупку оборудования стоимо- (тью 750 млн. руб. В соответствии с условиями контракта 150 млн. руб. необходимо заплатить через 2 месяца, а остальную сумму через 6 месяцев при поставке оборудования. У компании нет в наличии необходимой суммы, поэтому она со- щает целевой фонд, используемый для инвестиций. По планам ком- пании эти инвестиции создадут дополнительную наличность к мо- менту, когда придется расплачиваться по контракту. Компания жела- ет определить Минимальный объем целевого фонда, необходимый длн получения требуемых средств. Инвестиционный процесс планируется осуществлять не протяже- нии шести месяцев в рамках четырех инвестиционных проектов, све- дения о которых приведены в таблице. Опоеделите стратегию вложения средств, реализующую пожела- ние компании. Проект Месяцы, в начале которых возможны инвестиции Длительность проекта Процент прибнпч А 1,2,3,4,5,6 1 1.5 В 1,3,5 2 3,5 С 1.4 3 6,0 D 1 6 11,0 5.3. Инвестирование с учетом инфляционных ожиданий 500 тыс. руб. можно инвестировать на протяжении шести месяцев и 4 проекта на условия;;, приведенных в таблице. Ожидаемые значения процента инфляции по месяцам приведены и таблице.
78 Часть 1. Поиск решений на электронных таблицах Проект Месяцы, в начале которых возможны инвестиции Длительность проекта Процент прибыли А 1,2,3,4,5,6 1 1,5 В 1,3,5 2 3,5 С 1,4 3 6,0 i D 1 6 11,0 Найти стратегию инвестиций, определяющую максимальную при- быль к концу третьего, четвертого и шестого месяца с учетом инфля- ции. Оправдано ли продолжение инвестиционного процесса после тре- тьего месяца? После четвертого месяца? 6. Задачи логического выбора 6.1. Выбор организационно-технических мероприятий по модернизации производства Руководство завода предполагает провести комплекс организаци- онно-технических мероприятий по модернизации производства. Пе- речень возможных мероприятий приведен в таблице. Мероприятие Трудовые ресурсы (чел. дни) Финансовые ресурсы (млн. руб.) Производственные площади (м2) Экономиче- ский эффект (млн. руб.) Закупка станков сЧПУ 350 400 130 13000 Текущий ремонт 250 90 - 3000 Монтаж транспорт- ного конвейера 100 60 300 8000 Установка рельсово- го крана 200 300 150 12000 Ввод системы конт- роля качества 130 150 2500 1 Разработка автома- тизированной сис- темы управления 800 500 100 15000
Задачи для исследования систем управления 79 На реализацию всех мероприятий завод может выделить: • трудовых ресурсов — 1300 чел.-дней, • финансовых ресурсов — 800 млн. руб, • производственных площадей — 700 м2. Какие мероприятия следует провести, располагая этими ресурса- ми, чтобы общий экономический эффект был максимальным? Какова псличина этого эффекта? Какой объем выделяемых ресурсов останет- си неиспользованным при реализации найденного варианта? Изменится ли решение задачи, если завод выделит на модерниза- цию 1 млрд, руб.? Изменится ли решение задачи, если завод полностью удовлетво- рит потребности модернизации в производственных площадях и тру- ювых ресурсах при прежнем финансировании? 6.2. Размещение госзаказа по производству изделий В регионе работают 4 химических завода. Им предложено принять участие в конкурсе по размещению госзаказа на производство изде- лий пяти наименований в объемах, приведенных в таблице. Наименование изделия А1 А2 АЗ А4 А5 Объем заказа (шт) 350 250 400 150 150 Каждый из заводов представил несколько вариантов годовой про- I (Бедственной программы по выполнению госзаказа и соответствую- щие финансовые условия. Варианты завода 1 Варианты завода 2 Варианты завода 3 Варианты завода 4 Наименование изделия 1 2 3 1 2 1 2 3 1 2 А1 100 200 200 50 80 - - 100 100 50 А2 200 100 150 - - 200 250 100 40 60 АЗ 300 250 200 120 100 100 50 500 60 100 А4 100 50 100 100 50 - - - 50 — А5 50 100 80 - - 100 100 80 150 100 Объем финансирования (млрд, руб) 12 16 14 7 9 16 15 17 5 8
80 Часть 1. Поиск решений на электронных таблицах Каковы минимальные затраты на выполнение госзаказа? Какой вариант размещения заказа обеспечивает его выполнение при минимальных объемах финансирования? 6.3. Распределение заказов на производство работ Фирма распределяет заказы на разработку пяти программ между пятью программистами. В таблице приведены оценки времени разработки программ (и днях), данные самими программистами. Каждый программист оценил свои условия оплаты труда ($/день) в соответствии с таблицей. Программист Время, требуемое для разработки программы (в днях) Пр1 Пр2 ПрЗ Пр4 Пр5 Петров 46 59 24 62 67 Иванов 47 56 32 55 70 Сидоров 44 52 19 61 73 Никитин 47 60 . 17 65 60 Волков 41 63 20 60 75 Решите задачу о назначении программистов на разработку про- грамм. Какие минимальные затраты несет фирма при предложенном назначении? Каков минимальный срок выполнения всего объема ра- бот, выполняемых фирмой? Программист Оплата труда ($/день) Петров 50 Иванов 90 Сидоров 40 । Никитин 70 Волков 60 Фирма рассматривает возможности сокращения затрат на работы по программированию. Для этого предлагается два варианта: • сократить сроки выполнения работ на 10 % с одновременным повышением ставок оплаты на 5 %; • увеличить сроки выполнения рабог на 10 % с одновременным сокращением ставок на 5 %.
Задачи для исследования систем управления 81 Оправданы ли эти варианты и как они изменяют назначения про- । раммистов? Город И Г2 ГЗ Г4 Г5 Спрос ($) 5200 7000 6400 4300 3000 6.4. Назначение торговых агентов Предприятие по производству головных уборов рассматривает возможности освоения новых рынков сбыта в пяти городах. Возмож- ности сбыта невелики, так что в каждый город достаточно направить по одному торговому агенту. Представитель предприятия 1 2 3 4 5 6 7 | Оценка степени освоения рынка 0,75 0,6 0,55 0,8 0,5 0,45 0,65 | Данные таблиц содержат оценки спроса на изделия предприятия и оценки степени освоения рынка семью представителями предприя- тия, которые могут быть использованы в качестве торговых агентов в осваиваемых городах. Сделайте назначения на должности пяти торговых агентов, при- водящие к максимальному сбыту продукции предприятия. Каков мак- симальный общий объем реализации продукции? Предприятие рассматривает возможность послать в города Г2 и ГЗ по два торговых агента, разделяя эти города на две «сферы влияния». Приведет ли это решение к росту объемов реализации продукции? Какие представители предприятия должны быть назначены в эти го- рода для достижения максимального общего объема реализации? Предприятие рассматривает возможность послать в города Г4 и Г5 одного торгового агента в связи с небольшими объемами сбыта. Оправдано ли это решение? 6.5. Выбор варианта хранения нефти Нефтеперерабатывающее предприятие использует в производстве нефть трех сортов (1, 2 и 3). Резервные запасы нефти каждого сорта должны быть не меньше соответственно 20, 40 и 60 тыс. т. Для хране- ния нефти могут быть использованы 4 резервуара емкостью 25, 30, 35 и 40 тыс. т. Затраты на хранение одной тонны нефти сорта 2 на 10 %
82 Часть 1. Поиск решений на электронных таблицах выше, чем сорта 1, а сорт» 3 — на 20 % выше, чем сорта 1. Смешение нефти разных сортов при хранении не допускается. Сколько резервуаров следует использовать? Как распределяются сорта нефти по резервуарам? Каковы минимальные затраты на хранение нефти? Целесообразно ли устанавливать дополнительный резервуар объе- мом 20 тыс. т? 6.6. Выбор варианта реконструкции предприятия Для реконструкции машиностроительного предприятия было представлено на выбор 10 проектов, каждый из которых характеризу- ется четырьмя агрегированными показателями и ежегодной ожидае- мой прибылью, представленными в таблице. Агрегированный показатель проекта Варианты проек.оч Объемы доступ- ных ресурсов 1 2 3 4 5 6 7 8 9 10 Затраты труда (нормо-час) 50 60 30 40 80 70 50 20 40 50 300 Затраты энергии (тыс. кВт) 4 4 2 5 5 2 3 6 6 3 24 Расходы на материалы (млн. руб.) 3 2 4 5 3 2 4 2 2 3 20 Финансовые средства (млн. руб.) 7 5 9 6 4 3 7 2 4 5 30 Ожидаемая прибыль (млн. руб.) 9 8 8,5 8,8 9 8 9 8,7 8,9 8 При выборе проектов необходимо учесть ряд ограничений техно- логического характера: • одновременно может быть реализовано не более семи проектов; • пятый и восьмой проекты взаимно исключают друг друга; • первый проект можег быть реализован лишь при условии реа- лизации второго; • четвертый проект может быть реализован лишь при условии ре- ализации хотя бы одного из двух пооектов: либо третьего, либо десятого. Выбрать проекты для реконструкции предприятия, обеспечива- ющие максимальную ожидаемую прибыль. Каков размер этой при- были?
Задачи Зля исследования cuci пе,и управлеч/'я 83 6.7. Выбор плана развиты iq объединения Объезди ение кабельной промышлень^осто состоит из трех заводов. 11оменклат?а выпускаемых изделий вклк^чает три позиции: сабель си- новой, провд для осветителы ых установи ок, провод обмото1 ный. Варна' Производство кабельных изделий по годам Затраты за 3 года кабель провод силовой провод обмоточный 1 2 3 1 2 3 1 2 3 1 6,9 8,0 10,37 44 53 2,8 3,0 4,0 1557 2 7 7 8.6 25 - - 3 18 20 1399 3 7 7,8 8,7 30 - - 6 18 20 1034 4 19 23 28 - - 13 15 18 2822 16 18 22 - - 16 18 21 3042 6 - - - 864 950 - — - 364 Погребють 15 17 25 20 300 450 10 15 10 При: плнировании развития объединения на три года разработа- ны 3 вариата (1+3) для завода 1, 2 варианта (4+5) — для завода 2 и один (6> —тля завода 3. (В таблице все Г;анные в условных единицах.) Требуеся выбрать варианты для включения в план развития объ- единения, )беспечивающие удовлетворение заданной потребности в кабельн ыхизделиях и реализуемые с минимальными затратами. Ка- ковы эти зтраты? 6.8. Распределение капя^таловложений В теблде приведены характеристики пяти проектов, конкуриру- ющих за получение инвестиционных фондов компании. Таблиц показывает, какие деньги будут получены на рубль инве- стиций. Гд Xapa^epi лики проекта А В С D Е -1,0 0 _^'1.0 -1.0 0 +0,3 -1.0 J-1.0 0 0 » +1.0 +0,3 0 0 -1.0 0 +1.0 0 +1,75 +1.4
84 Часть 1. Поиск решений на электронных таблицах Например, проект А связан с инвестициями, которые можно сде- лать в начале первого года на два следующих. Причем в конце второ- го года можно возвратить 0,3 руб. на каждый рубль, вложенный в на- чале первого года. Аналогично, в конце третьего года можно получить еще 1 руб. на рубль вложений в начале первого года. Максимальная сумма, которая может быть вложена в проект А, составляет 500 млн. руб. По другим проектам объем вложений не ограничен. Проект В аналогичен проекту А, но вложения можно сделать только в начале второго года, а выплаты по процентам — в конце третьего и четверто- го года. Деньги, полученные в результате инвестиций, можно реинвести- ровать в соответствии с таблицей. В дополнение к этому компания может получить по 6 % годовых за краткосрочный (на год) вклад де- нег, которые не были инвестированы в проекты в текущем году. У компании имеется 1 млрд. руб. для инвестиций. Она хочет максимизировать сумму денег, получаемых к четвертому году инве- стиционного процесса. Какова эта сумма и оптимальная стратегия инвестиций?
Часть 2 Имитационное моделирование в задачах поиска управленческих решений Одним из основных направлений, определяющих методологию, концептуальные и реализационные основы информационной техно- логии поддержки принятия управленческих решений, является ими- гционное моделирование. Методология имитационного моделирова- ния основана на воспроизведении реальных или гипотетических биз- пес-процессов в специальной компьютерной среде, образующей виртуальный мир предприятия, организации, производства и любого другого объекта управления. Эта технология появилась в 60-х г. XX в., и на протяжении мно- гих лет она не только остается одной из основных в исследовании операций, но и бурно развивается в области реинжиниринга биз- пес-процессов [10] и нсзых направлений искусственного интеллекта (онтология предприятий [11], клеточные автоматы [12], мультиагент- 1ые системы [13] и др.). Основу этой технологии составляет компьютерный имитацион- ный эксперимент, связанный с воспроизведением динамических про- цессов функционирования исследуемой системы. В процессе такого воспроизведения осуществляется наблюдение за функционированием модели и выявление «узких мест» в организации деятельности. Основными достоинствами этого метода являются: • возможность воспроизведения реальной системы с практически любым уровнем детальности; • повторяемость эксперимента; • возможность произвольной фрагментации и структуризации системы. Технология имитационного моделирования излагается на основе использования системы Micro Saint, одной из наиболее простых и адекватных задачам исследования систем операционного и производ- ственного менеджмента. Micro Saint представлена на сайтах www.adeptscience.co.uk,www.maad.com,www.maad.com, используемая версия (студенческий вариант) взята на сайте www.radata.demon.co.uk
86 Часть 2. Имитационное моделирование (в настоящее время отсутствует). Система не русифицирована. Отли- чительными особенностям,, ее являются концептуальная завершен- ность, целостность и простота использования даже для исследования весьма сложных систем. На взгляд автора, система является прехрас ным инструментом для изучения концепций и технологии имитаци- онного моделирования систем управления в различных областях про- изводственного и операционного менеджмента. Быстрое начало: введение в систему Micro Saint Этап конструирования и описания модели Сетевая структура модели Модель исследуемой системы должна быть представлена в виде сетевой структуры. Пример такой структуры приведен на рис. 2.1. Рис. 2.1.Сетевая структура модели
Введение в систему Micro Saint 87 Овалы изображают блоки действий, стрелки — пути перемещения шпамических объектов (тэгов), ромбы — разветвления таких путей, шЬлички изображают очереди тэгов, а маленький треугольник рядом с первым блоком определяет точку ввода тэгоз в модель. Конструирова- ние структуры модели связано с использованием «подсвеченных» кнопок нижней панели инструментов (см. рис. 2.2). I °| / Рис. 2.2 Содержательно эту простейшую схему рис. 2.1 мы будем интерп- рсгировать как Пример 1: модель обслуживания автомобилей на заправочной станции Станция оснащена одной бензоколонкой, перед которой может образовываться очередь. Тэг в этой модели исполняет роль автомоби- 1Я, а разветвитель используется длг организации потока автомобилей, буква М, стоящая внутри ромбика (первая буква слова Multiple — множественный), означает, что любой тэг-автомобиль, приехавший пи заправку, попадая в разветвитель, раздваивается (порождает ко- пию). При этом основной тэг направляется в блок 2 (на обслужива- ние), а копия возвращается в первый блок, имитируя приезд другого ниомобиля. Разветвитель появляется в структуре модели автоматически при <> здании в блоке нескольких выходных стрелок связи с помощью ин- щументов панели рис. 2.2. Блок «Саг coming» определяет приезд автомобилей на заправку, а ftjjoK «Gas station» — обслуживание автомобиля у бензоколонки. Лю- ной тэг, «входящий» в блок, может в этом блоке задерживаться на определенное время. Такое время имитирует интервалы между прихо- цлми автомобилей на заправочную станцию и собственно длительно- < 1 ью процедуры заправки. I Описание элементов модели Описание элементов модели связано с понятием переменной. Лю- «я переменная используется для описания какой-либо характеристи- ки системы, например, бензоколонка может находиться в одном из 'Шух состояний:
88 Часть 2. Имитационное моделирование • занята (идет заправка автомобиля), • свободна (нет заправки — колонка простаивает). Мы можем имитировать эти состояния с помощью переменной Status, которая будет принимать два значения: Status := 1; (колонка переходит в состояние «Занята»), Status := 0; (колонка переходит в состояние «Свободна»). Оператор «:= » называется оператором присваивания, он назначас i переменной Status то значение, которое записано справа от оператора присваивания. В этом примере Status — имя переменной, а 0 и 1 возможные значения переменной. Во многих случаях перечислить все значения переменной трудно (или невозможно), поэтому в таких си туациях переменную характеризуют типом, определяющим ее возмож ные значения. Например, переменную N — количество автомобилей, обслужен ных на автозаправке, резонно охарактеризовать типом Integer (целое число), а переменную V — количество заливаемого бензина — типом Real (действительное число). В процессе имитации исследуемой системы переменные модели будут изменять свои значения, поэтому перед запуском модели всем переменным необходимо назначить исходные начальные значения (Initial Value), которые будут определять исходное состояние системы. Все переменные модели должны быть внесены в список перемен- ных. Открытие такого списка реализуется нажатием кнопки (сред- ний ряд, вторая кнопка слева, см. рис. 2.1). При этом откроется окно списка переменных (рис. 2.3). 1 £ EXAMPL1.MOD : Variable Cataloa ОИЕЗ Name Value clock 0.000 —! duration 0.000 —1 objective 0.000 run. 0 seed 1 tag 2 Рис. 2.3. Окно списка переменных (Name — имя, Value — значение переменной) В этом списке представлены системные переменные. Такие пере- менные используются в любой модели, важнейшими из них для нас являются переменные clock — модельное время и tag (тэг) — индивиду- альный номер динамического объекта.
Введение в систему Micro Saint 89 Одновременно в модели может присутствовать много тэгов, все ' ini совершают передвижения по блокам структурной схемы. Однако лизания таких передвижений происходит в определенной последо- |н|||‘льности, при этом тэг, который в текущий момент времени стоит || ।олове такой последовательности, считается активным. Кроме системных в модели присутствуют переменные, которые прсделяются непо-средственно пользователем применительно к его модели. В нашем случае это переменные Status — состояние бензоколонки и N — количество автомобилей, обслуженных на автозаправке. Для в и о чтобы ввести эти переменные в список, необходимо нажать попку (нижний ряд панели инструментов рис. 2.1, справа). При иом откроется окно рис. 2.4, в котором задается имя переменной, ее ммеловое содержание, тип и начальное значение. Рис. 2.4. Окно описания переменной Нажатие кнопки Accept вводит переменную в список, только по- uic этого она становится полноправным участником процесса моде- лирования.
90 Часть 2. Имитационное моделирование Описание задачи Окно описания задачи открывается после двойного клика на со отвётствующем блоке сетевой структуры модели. На рис. 2.5 приведено такое окно для первого блока сетевоп стоуктуры рис. 2.1 «Gar coming». Рис. 2.5.Окно описания задачи Поля Time Distribution, Mean Time и Standart Deviation используют ся для задания интервала времени между приходами автомобилей на заправочную станцию. В списке Time Distribution содержатся различ- ные законы распределения вероятностей. Для нашего примера мы ис- пользовали равномерное распределение (Rectangular) со средним зна чением 10 (мин) и отклонением от среднего, равным 3 (мин). (В поле Standart Deviation в этом случае записывается 10 -3 = 7 (мин), т. е нижняя граница равномерного распределения.) Такое задание приве дет к тому, что в нашу модель будут поступать автомобили (тэги) че- рез интервал времени (10 ± 3) мин. Выбор в качестве единицы времс-
Введение в систему Micro Saint 91 пи 1 мин. обусловлен только исследователем. В общем случае это мо- жет быть произвольная единица (день, час и т. п.). Поле Release Condition в общем случае содержит условие возмож- ности входа тэга в соответствующий блок. Если в этом поле присутс"- иует любое число, большее 0, вход в блок открыт (в нашем примере для блока «Gar coming» любой автомобиль может въехать на запра- почную станцию). Для блока «Gas station» в поле Release Condition должно быть размещено условие входа в этот блок: Status= =0, т. е. пход автомобиля в блок возможен только тогда, когда бензоколонка вободна. В противном случае автомобиль не сможет подъехать к бен- юколонке и будет находиться в очереди (символ «= =» используется гак отношение равенства). Поля Beginning Effect, Launch Effect и Ending Effect предг.азнг лены для размещения в них описаний действий, которые необходимо вы- полнить соответственно при входе тэга в блок, при прерывании его обслуживания в блоке и при выходе тэга из блока (поле Launch Effect и дальнейшем не используется). В нашем примере для блока «Саг coming» (рис. 2.5) мы использо • ьали только поле Beginning Effect, в котором разместили оператор: lag:=tag+l. Этот оператор присваивания (см. выше) реализует алго- ритм накопления: каждый раз при входе вновь приехавшего автомо- Ьиля в блок «Саг coming» входной эффект будет увеличивать индиви- дуальный порядковый номер автомобиля на 1. Таким образом, через структуру модели будут последовательно проводиться тэги-автомоби- ли с номерами 0, 1, 2 и т. д. В аналогичном окне для блока «Gas station» в полях входного и выходного эффектов будут размещены действия по изменению состо- яния бензоколонки. В поле входного эффекта определяется действие по занятию бензоколонки: Status:=l; а в поле выходного — по ее освобождению: Status:=0. Кроме того, в этом поле определяется дей- гвие, связанное с подсчетом количества автомобилей, «прошедших» через автозаправочную станцию: N:=N+1. В полях Time Distribution, Mean Time и Standart Deviation блока «Gas .tation» следует указать характеристики времени заправки автомобиля (например, равномерное распределение в интервале 12 ± 6 мин.). Исполнительная система, реализующая проводку тэгов через структуру модели, вычисляет описанные эффекты в следующем по- рядке: • условие входа в блок (Release Condition); • Beginning Effect;
92 Часть 2 Имитационное моделирование • определение времени задержки в блоке (поля Time Distribution Mean Time и Stanc'art Deviation); • Ending Effect. Рис. 2.6. Окно описания очереди Описание регистратора очереди Окно регистратора очереди вызывается двойным кликом на знач- ке соответствующей очереди (табличка) в структуре модели. Поле Sorting Order определяет порядок элементов (тэгов) в оче- реди: • FIFO (First In-First Out, первым вошел — первым вышел); • LIFO (Last In-First Out, последним вошел — первым вышел); • Sorted (очередь упорядочена по значениям выражения, которое размещено в поле Priority). В последнем случае из очереди для входа в блок задачи выводится тот тэг, для которого значение выражения в поле Priority максимально. Обычно это выражение использует индивидуальный номер тэга. Использование полей Entering Effect и Departing Effect аналогично использованию полей входного и выходного эффекта в окне описа- ния задачи.
Введение в систему Micro Saint 93 Описание разветвителя Рис. 2.7. Описание разветвителя Окно описания разветвителя открывается двойным кликом на изображении разветвителя на структурной схеме модели. Разветвитель может использовать один из трех типов разветвления (Decision Type): Multiple, Probabilistic и Tactical. Первый тип разветв- ления уже обсуждался выше — он создает множество копий тэга, во- шедшего в разветвитель, и отправляет их на все выходы разветвителя. Такой режим позволяет моделировать параллельные (одновременно протекающие) процессы в исследуемой системе. Единицы в полях Routing Condition интерпретируются так же, как н в полях Release Condition описания задачи (см. рис. 2.5). Тип Probabilistic определяет стохастический (случайный) механизм выбора тэгом направления дальнейшего движения. Для такого выбора в полях Routing Condition задаются вероятности переходов по выбран- ному направлению (их сумма должна быть равна 1).
94 Часть 2. Имитационное моделирование Тип Tactical использует поля Routing Condition для записи вы|м пий, значения которых определяют направление дальнейшего дни ния тэга. Тэг, проходящий через разветвитель типа Tactical, будег к правлен в ту задачу, для которой выражение, записанное в соотве1 вующем поле Routing Condition, примет (в момент перемш максимальное значение. Этап проведения компьютерного эксперимента с моделью Запуск модели После составления описаний всех элементов модели она мож< i быть запущена для выполнения задач. Для запуска и управления при цессом выполнения модели используется правая часть средней паи< ли инструментов (рис. 2.8). Рис. 2.8. Панель управления моделированием Кроме кнопок этой панели можно также обратиться к разделу Execute главного меню системы. Остановка модели Существует два основных способа остановки модели: «вручную» (меню Execute, оператор Halt) и по определенному условию (достиже - ние в модели определенного состояния). Второй способ связан с размещением оператора остановки halt() в определенных полях описания модели. Например, размещение опера -
Введение в систему Micro Saint 95 |Ш h ilt () в поле Entering Effect очереди (см. рис. 2.6) приведет к ио, когда первый тэг войдет в очередь и произойдет вычисле- >«и» лого эффекта, модель будет остановлена. Сбор результатов компьютерного эксперимента Целью любого компьютерного эксперимента является сбор ин- формации о значениях переменных модели, наблюдаемых в процессе псдения эксперимента, и состояниях очередей, возникающих в jiunecce моделирования. Переменные, которые могут наблюдаться в ♦♦ i перименте, составляют коллекцию переменных. Для одной и той же । ли могут быть определены несколько разных коллекций, отлича- вшихся друг от друга составом переменных и условиями, при кото- рых осуществляется регистрация их значений. Список коллекций открывается нажатием кнопки j Если для pa |работанной модели не определено ни одной коллекции, этот спи- 1>к пуст (рис. 2.9). EXAMPL1.MPD : Snapshots ВДЙЕЗ Document Туре Trigger Рис. 2.9. Список коллекций переменных Для определения коллекции следует нажать кнопку при от- крытом списке коллекций. При этом открывается окно описания коллекции (рис. 2.10). В поле Doc' nient Name указывается имя коллекции (Gas), в поле Variables to Store — имена переменных, которые мы включаем в кол- лекцию (в нашей коллекции три переменных: clock, N и Status). Кро- ме того, в этом же окне указываются условия, при которых будут ре- гистрироваться значения переменных коллекции. Для коллекции Gas значения всех переменных будут регистриро- ва"'ъся каждые 10 единиц модельного времени, начиная с 0 (запуск модели) и кончая 1440 единицами модельного времени (остановка модели). Эти данные размещены в полях: Trigger Type, Trigger at Time, Repeat Intenal и Stop Time. В общем случае условия сбора значений переменных коллекции могут быть и другими — эти возможности определяются списком Trigger Туре (см. рис. 2.11 с раскрытым ниспадающим меню).
96 Часть 2. Имитационное моделирование Рис. 2.10.Описание коллекции переменных Da.:umentName , Trigger Type Trigger on Trigger at Типе —*3 Repeating — Repeat interval ,-Й Step ------- Stop Time Gas Depart Queue Begin Task End Task Clock Enter Queue Depart Queue j 1440.00 Рис. 2.11. Меню условий сбора переменных в эксперименте Варианты Begin Task и End Task определяют в качестве условий сбора значений переменных соответственно ситуации, когда тэг вхо- дит в блок задачи и выходит из блока задачи. При этом поле Trigger on будет определять номер этой задачи.
Введение в систему Micro Saint 97 Варианты Enter Queue и Depart Queue определяют в качестве усло- вий сбора ситуации, когда тэг входит в очередь и соответственно вы- чинит из нее. При этом поле Trigger on будет определять номер очере- ш I. Вариант End of Run будет связан со сбором результатов только в момент окончания моделирования. Выбор одного из этих вариантов будет определять условия сбора шачений всех переменных коллекции. После того как мы определили состав переменных коллекции, условия сбора результатов и закрыли окно рис. 2.10, в окне рис. 2.9 появится запись , LXAMPL1.M0D : Snapshots Document Type Trigger [GaS © clock. ““ Теперь при необходимости внесения изменений в коллекцию (до- бавление или удаление переменных) можно открыть окно рис. 2.10 двойным кликом на строке коллекции в списке Snapshots. Определение параметров прогона модели Перед запуском модели необходимо определить, в каком режиме пудет проходить моделирование (выполняться прогон модели). Для ввода такой информации следует нажать кнопку определения пара- метров прогона |(=|, при этом на экране монитора появляется окно рис. 2.12. В этом окне отмечаются функции, которые будут реализованы в процессе прогона модели. 1. Trace of Tasks (трассировка задач). 2. Snapshots of Variables (сбор значений переменных). 3. Standart Deviations Set to Zero (не используется для простых за- дач). 4. Action View Functions (анимация). 5. Queue Data Collection (сбор данных о состояниях очередей). 6. Time to begin Data Collection (модельное время начала сбора дан- ных). 7. Times to Run the Model (номер прогона модели). 8. Show Entities With (форма показа динамических объектов — тэ- гов, символами или их количеством, обычно символами). Второй и пятый из этих пунктов необходимы для сбора результа- тов, остальные реализуют вспомогательные функции.
98 Часть 2. Имитационное моделирование Рис. 2.12. Установка параметров прогона После установки этих позиций при запуске модели система за просит вас о файлах, в которых вы предполагаете собирать информа цию. Обычно имена таких файлов совпадают либо с именем модели (для нашего примера EXAMPLE 1), либо с именем коллекции пере менных (Gas). Структуры файлов результатов На рис. 2.13 представлен фрагмент файла GAS.RES, в котором со брана коллекция Gas (рис. 2.10), а на рис. 2.14 — фрагмент файла EXAMPLE 1.QUE, в котором собрана информация о состоянии очере дей в течение прогона программы модели. Файл рис. 2.13 содержит 4 поля, из них 3 хранят значения пере- менных коллекции, собранных через интервал в 10 ед. времени, .i поле Trigger информирует нас об условии сбора данных (см. рис. 2.10 2.11). Файл в целом содержит 144 записи о значениях переменньп коллекции Gas. (Термин Snapshot определяет как бы моментальны!! снимок, фотографию, на которой запечатлено состояние модели, м фиксированное в определенный момент времени.) Файл рис. 2.14 содержит 6 полей: 1. Clock (момент времени, в который изменилось состояние оче- реди);
Введение в систему Micro Saint 99 Рис. 2.13. Фрагмент коллекции Gas 2. Tag (номер объекта-тэга, который был активен в этот момент времени). Напомним, что активный тэг — это тэг, который в текущий момент времени передвигается по структуре модели и меняет ее со- стояние; 3. Run (номер прогона программы модели, он для нас не инфор- мативен); 4. Length (длина очереди тэгов в момент Clock); 5. Wait (время ожидания в очереди активного тэга); 6. Trigger (характер изменения состояния очереди). Поскольку в нашем примере всего одна очередь с номером 2 (см. рис. 2.6), все записи файла рис. 2.14 свидетельствуют об изменении состояния очереди с номером 2. В поле Trigger встречаются записи четырех видов: 1) Start (старт для работы с очередью); 2) Enter (вход тэга в очередь); 3) Depart (выход тэга из очереди); 4) Bypass (проход тэга через очередь без задержки, т. е. через пус- >ую очередь). Il EXAMPL1.QUE : Results И 51 El File contains 259 snapshots. dock| tag| run | length | wait| Trigger |^1 start 2 ]—1 0.000: °; i; o: 0.000] 7.000| 1; i; o; 0.000] bypass 2]' 15.107] 2; i; i; 0.000 ] enter 2 ] 18.643] 2] i; 0] 3.476] depart 2; • 27.020 ] 3] i; 1] 0.000 ] enter 2 ] 30.493 ] 3; i] °: 3.474; depart 2; < 36.899 ] 4] i; 1] 9.000 ] enter 2; 39.996] 4; i; o: 3.097; depart 2 ]-r| •u__ _ ' , * . 7 ±L. Рис. 2.14. Фрагмент файла EXAMPLE.QUE
100 Часть 2. Имитационное моделирование Первая запись файла EXAMPLE.QUE говорит о том, что в нача льный момент времени тэг с номером 0 вошел в очередь нулевой дан ны и тут же вышел из нее (в блок 2), вторая свидетельствует о прохо де тэга 1 через пустую очередь. Тэг с номером 2 вошел в пустую очс редь и простоял в ней (в одиночестве) 3.476 ед. времени в связи < занятостью блока 2 (заправка автомобиля — тэга с номером 1). Дна логично поведение тэгов с номерами 3 и 4. Всего за весь сеанс мод< лирования система зарегистрировала 259 изменений в очереди Анализ результатов эксперимента Результаты эксперимента могут быть проанализированы с испол1. зованием методов, инкапсулированных в меню Анализ (Analyze). Эта методы позволяют представить результаты прогона модели в нагляд ной лаконичной форме графика или таблицы. Использование мето дов анализа призвано способствовать выявлению «узких мест» в орта низации исследуемой системы и принятию управленческих решении по реорганизации бизнес-процессов. Статистика очереди Файлы результатов с расширением QUE анализируются методами «Статистика очереди» (Queue Statistics) и «Графы очереди» (Queue Graphs). Для вызова этих методов необходимо открыть соответству, > щий файл (сделать окно с файлом активным) и выбрать в меню нуж ный вам метод. Вызов метода «Статистика очереди» для файла EXAMPLE1.QUE приведет к выводу таблицы рис. 2.15. В этой таблице для очереди 2 примера 1 представлены характери стики длины очереди (Length of Queue) и времени пребывания тэга п очереди (Wait Time) (Mean — среднее значение, Std.Def. — Standart Deviation — среднеквадратичное отклонение для каждой из характе- ристик). Рис. 2.15. Статистика очереди
Введение в систему Micro Saint 101 Рисунок 2.16 иллюстрирует использование метода «Графы очере- III» применительно к файлу EXAMPLE1.QUE. Рис. 2.16. Графики характеристик очереди На этом рисунке приведены 4 вида рафиков: • зависимость длины очереди от времени; • гистограмма длины очереди; • зависимость времени ожидания в очереди от времени; • гистограмма времени ожидания в очереди. (Форма гистограммы обсуждается подробнее в пункте «Гистог- раммы» этого же раздела.) Зависимости Методы анализа файла с расширением RES можно разделить на те группы: построение зависимостей и построение гистограмм. Построение зависимостей выполняется в три этапа: • разметка координатных осей будущего графика зависимости; • оформление графика (название зависимости, названия осей, диапазоны и т. п.); • выбор формы представления графика зависимости. Разметка координатных осей графика связана с использованием правой части нижнего ряда панели инструментов (рис. 2.17). Дчя раз- метки необходимо «перетащить» кнопку горизонтальной оси с панели инструментов в тот столбец таблицы файла, который будет опреде- лять значения горизонтальной оси.
102 Часть 2. Имитационное моделирование Рис. 2.17. Инструменты разметки Аналогично перетаскивается кнопка вертикальной оси (оси ордн нат), но в отличие от горизонтальной она может быть перетащена и несколько столбцов таблицы файла. В этом случае в рамках одноп> графика будет построено несколько зависимостей. Кнопка удалении разметки «стирает» элементы сделанной разметки также путем ее «нс ретаскивания» в соответствующие столбцы файла. Рис. 2.18 иллюстрирует разметку файла GAS.RES (рис. 2.13) дли построения зависимости переменной N от модельного времени clock а рис. 2.19 — график этой зависимости, построенный с помощью мс тода «Линейчатый граф» (Bar Graph) меню Анализ. Рис. 2.18. Размеченный файл Рис. 2.19. Пример графика зависимости
Введение в систему Micro Saint 103 Оформление графика реализуется методами «Шкала графика» и {«(головки графика» (Graph Scale, Graph Titles) меню Анализ. Гистограммы Гистограмма (Frequency Distribution) — это особый вид графика, пня разметки которого указывается только одна горизонтальная ось (ось абсцисс). Столбец файла, используемый для определения такой оси, сортируется: • определяется максимальное значение, содержащееся в этом столбце (Мах); • определяется минимальное значение, содержащееся в этом столбце (Min); • диапазон (Max—Min) делится на заданное число интервалов (Int) одинаковой ширины: w=(Max — Min)/Int. После этого в процессе сортировки подсчитывается количество шачений Li, i = 1 -г Int, попадающих в каждый из таких интервалов. Подсчитанные таким образом величины Li выводятся на вертикаль- ную ось графика гистограммы. Гистограмма интерпретируется обыч- но как показатель эффективности использования того или иного обо- рудования в течение определенного интервала времени. Например, рис. 2.20 представляет гистограмму переменной Status, определяющей состояние бензоколонки в течение всего периода моделирования (1440 мин. = 1сутки). Эта переменная может принимать в модели юлько два значения: 1 (занята) и 0 (свободна). Гистограмма представ- Frequency Distribution for Status 100 Рис. 2.20
104 Часть 2. Имитационное моделирование лена двумя столбиками: высота первого определяется количеством нулей в столбце Status файла GAS.RES, а высота второго — количесл вом единиц в том же столбце. Анализ этого графика наглядно пока зывает, что бензоколонка в течение суток простаивает менее 4 % вре- мени, что свидетельствует о ее высокой загрузке. Оформление графика гистограммы выполняется теми же метода ми, что и для обычных зависимостей. Контрольные вопросы и предложения 1. Из каких элементов строится сетевая структура модели? 2. Охарактеризуйте понятие переменной и оператора присваивания. 3. Опишите структуру окна описания переменной. 4. Охарактеризуйте структуру окна описания задачи. Дайте характеристику основных эффектов. 5. Охарактеризуйте структуру окна описания очереди. 6. Охарактеризуйте структуру окна описания разветвителя. 7. Дайте характеристику элементов управления, связанных с запуском и оста новкой модели. 8. Охарактеризуйте структуру окна описания коллекции регистрируемых пе- ременных. 9. Перечислите и дайте характеристику элементам управления сбором значс ний регистрируемых переменных. 10. Дайте характеристику основных параметров прогона модели. 11. Охарактеризуйте структуру файла результатов процесса моделирования. 12. Охарактеризуйте структуру файла очередей, зарегистрированных в процес се моделирования. 13. Охарактеризуйте статистику очередей, получаемую при анализе результатов компьютерного эксперимента. 14. Как построить график зависимости между переменными модели по резуль тэтам эксперимента, собранным в файле с расширением RES. 15. Как построить гистограмму значений переменной по результатам экспери мента, собранным в файле с расширением RES. Развитие концепций: дополнительные методы и средства имитации Модели потоков в сетевых структурах В предыдущем разделе мы рассматривали модель потока автомо- билей, приезжающих на автозаправочную станцию. При этом в каче- стве элемента такого потока рассматривался тэг — автомобиль (при- мер 1).
Дополнительные методы и средства имитации 105 В общем случае элементом потока может являться любой объект, падюмещающийся, перемещаемый или возникающий во времени и/или в пространстве. Объектом информационного потока может быть наклад- ная (например, на получение товара), документ, распоряжение, сооб- щение и т. п. Финансовый поток формируется последовательностью рансфертов, денежных поступлений, вложений и т. д. Любое изменение состояния исследуемой системы (изменение падений переменных модели и/или перемещение тэга) рассматрива- । !ся как событие. Поэтому любой информационный поток может рас- сматриваться как поток событий. В формальное понятие события можно вложить любое смысловое содержание, например начало рабо- чей смены, возникновение аварии, приезд автомобиля на заправоч- ную станцию и т. п. В качестве элементов событийных потоков могут выступать любые объекты реального (или виртуального) мира. Виды потоков Наиболее простой является модель однородного потока. Элементы •кого потока однотипны, они либо не отличаются один от другого, мибо такие отличия несущественны для решения проблемы. Напри- мер, в примере 1 мы рассматривали поток автомобилей как однород- ный, поскольку нас не интересовали ни марка автомобиля, ни объем его бензобака, — эти свойства мы считали несущественными для no- ri роения нашей простой модели. Поток описывался только тремя ха- рактеристиками: 1) средним временем между приходами автомобилей; 2) среднеквадратичным отклонением; 3) законом распределения вероятностей времени между поступле- ниями автомобилей на заправку. Во многих задачах поток однородных событий характеризуется интенсивностью — величиной, обратной среднему времени между со- бытиями в потоке. Однородный поток, в котором интервалы времени между событи- ями распределены по экспоненциальному закону, называется про- стейшим. Такой поток имеет единственную числовую характеристи- ку — среднее время между событиями (поле Standart Deviation при за- дании такого потока не используется). Модели неоднородных потоков характеризуются наличием индиви- дуальных особенностей у тэгов — элементов потока. Например, грузо- вик и автобус — две разновидности транспортных средств, которые могут являться элементами одного транспортного потока. Моделиро- вание неоднородных потоков всегда связано с привнесением в модель
ioe Часть 2. Имитационное моделирование индивидуальных особенностей тэгов. Техника такого моделирования поясняется в примере 2. Пример 2: модель обслуживания клиентов в парикмахерской В парикмахерскую могут приходить клиенты двух типов. Клиенты первого типа желают только стричься. Распределение интервалов их прихода 35±10 мин. Клиенты второго типа желают постричься и по- бриться. Распределение интервалов их прихода 60±20 мин. Парик- махер обслуживает клиентов в порядке «первым пришел — первым обслужен». На стрижку уходит 18±6 мин., а на бритье 10±2 мин. В парикмахерской оборудовано только одно место для обслужива- ния клиентов. Определите, насколько целесообразно оборудование второго места и прием на работу второго парикмахера. Индивидуальные свойства тэгов В этой задаче необходимо учитывать индивидуальные особенно- сти клиентов, т. е. не только знать индивидуальный номер тэга, но и тип клиента, которого он представляет в модели. Для того чтобы реа- лизовать такую возможность, необходимо «повесить на грудь» каждо- го тэга-клиента, входящего в модель, «визитную карточку», на кото- рой должно быть написано, к какому типу он принадлежит: • 1 — клиенту нужна только стрижка; • 2 — клиенту нужна стрижка и бритье. Массив таких «визитных карточек» должен быть описан в списке переменных. На рис. 2.21 приведено окно описания переменной cli- ent type, имитирующей визитные карточки клиентов парикмахер- ской. Эта переменная характеризуется размерностью и типом. Размер- ность массива определяет резервируемое количество визитных карто- чек, — в нашем случае мы выбрали 1000. Каждая из карточек являет- ся элементом массива client type и идентифицируется индексом, на- пример client type [1] — визитная карточка первого визитера, client_iype [2] — второго и т. д. В общем случае, если tag — номер тэга, то client_type[tag] — визитная карточка этого тэга. Переменная или число в квадратных скобках определяют индекс элемента массива (обычно это целое число или целочисленная переменная). Тип пере- менной client type определен как Array of Integers — массив целых чи- сел, это означает, что каждый из элементов массива может иметь в качестве значения только целые числа (в нашем примере 1 или 2).
Дополнительные методы и средства имитации 107 Рис. 2.21. Описание переменной client type Описание модели примера 2 На рис. 2.22 приведена структура модели примера 2. Она призвана проиллюстрировать только принцип моделирования неоднородных по- кжов и потому описана здесь не полностью. В этой структуре первый блок генерирует единственный тэг, кото- рый запускает на вход парикмахерской два потока клиентов: первого 1ипа (client 1 stream) и второго (client 2 stream). В этих блоках отраба- 1ываются задержки между приходами клиентов и «навешиваются ви- ттные карточки». Для этого в поле Beginning Effect блока 2 (client 1 dream) размещаются операторы: tag:=tag+l; client_type[tag]:=l; а в (шоке 3 (client 2 stream) — операторы: tag:=tag+l; client_type[tag]:=2;. 11еред блоком 4 образуется общая очередь клиентов разных типов, по- скольку вход в этот блок ограничивается условием: St = =0; где St — переменная, имитирующая состояние парикмахера (0 — свободен, 1 — ынят). Это условие выносится в поле Release Condition блока 4. Задержка на время обслуживания в этом блоке определяется вели- чиной 18±6 ед. времени. В поле Beginning Effect размещается оператор Sl:=l, который имитирует переход парикмахера в состояние занято-
108 Часть 2. Имитационное моделирование Рис. 2.22. Структура модели примера 2 сти, а в поле Endii ig Effect размещается оператор освобождения парик- махера. В нашем примере он может быть освобожден, если заверши лось обслуживание клиента первого типа, если же стригся клиент вто пого типа, то его обслуживание должно быть продолжено (в блоке 5 — shaving), и следовательно парикмахер не может быть освобожден. В соответствии с этим содержанием в поле Ending Effect блока 4 раз мещается оператор: if client_type[tag]= =1 then St:= 0;. Клиент, выходящий из четвертого блока, направляется в пятый при выполнении условия: client_type[tag]= =2; и направляется в шес- той при выполнении условия client_type[tag]= =1. Эти условия разме- щаются в разветвителе, стоящем на выходе пятого блока. Соответственно в поле Ending Effec* блока 5 размещается оператор освобождения парикмахера: St:= 0;. В остальном эта модель мало чем отличаемся от модели примера 1. Задача как накопитель тэгов В общем случае в блоке задачи могут одновременно находиться несколько тэгов. Как правило, это происходит тогда, когда задача имитирует механизм обслуживания нескольких клиентов. В таких случаях задача превращается в своеобразный накопитель тэгов. Пример 3: '.юдель автозаправки с несколькими колонками Эта модель отличается от модели примера 1 наличием нескольких бензоколонок. В этом случае целесообразно, сохраняя структуру модели примера 1 (см. рис. 2.1), ввести переменную Nb — число свободных бензо ко-
Дополнительные методы и epoih mu. । hmuik/iuhii fwi попок и переопределить блок 2 описанием, приведенным нп рис I (переменная Status при этом оказывается ненужной). Рис. 2.23. Пример описания задачи-накопителя тэгов В этом случае блок 2 примера 1 превращается в накопитель, в ко- юром одновременно могут находиться Nb тэгов, имитирующих авто- мобили. Замкнутые системы Замкнутыми будем называть системы, в которых отсутствуют входные потоки тэгов. Все изменения в таких системах происходят за счет внутренних преобразований, внутренних процессов, происходя- щих в системе. Деление систем на открытые и замкнутые достаточно условно. В любой реальной системе обычно можно выделить компоненты того и другого вида, однако понятие замкнутой системы полезно для осво- ения приемов имитации сложных систем.
110 Часть 2. Имитационное моделирование Пример 4: модель использования общего оборудования Производство изделий определенного вида включает в себя длите- льный процесс индивидуального изготовления, заканчивающийся ко- ротким периодом обжига изделия в печи. Поскольку содержание печи обходится довольно дорого, несколько рабочих, каждый из которых изготовляет «свое» изделие, используют одну печь, в которой одно- временно можно обжигать только одно изделие. Рабочий не может начать новую работу, пока не вытащит из печи законченное изделие. Таким образом, рабочий трудится в следующем режиме: 1) изготавливает изделие; 2) ожидает возможности использования печи по принципу «пер- вым пришел — первым обслужен»; 3) использует печь; 4) переходит к изготовлению нового изделия. На операцию изготовления изделия требуется 30±5 мин., на опе- рацию обжига 8±2 мин. Требуется построить имитационную модель для определения такого количества рабочих, при котором с одной стороны очередь минимальна, с другой — простои печи минимальны. Решение этой задачи связано с разработкой модели, в которой ис- пользуется переменная Nw — количество используемых рабочих, зна- чение которой подбирается в процессе моделирования таким обра- зом, чтобы обеспечить наилучший баланс между длиной очереди и временем занятости печи. Структура модели иллюстрируется схемой рис. 2.24. Рис. 2.24. Структура модели примера 4 Блок 1 (Begin) создает тэги в количестве, определяемом величи- ной Nw. Каждый тэг имитирует рабочего. Все созданные тэги-рабо- чие становятся в очередь перед вторым блоком (Operation 1) и ждут «начала работы». Работа начинается с появлением в модели (Nw)-oro тэга, который «разрешает» тэгам-рабочим войти во 2-ой блок. После входа каждый из рабочих начинает «ходить по кругу»: Блок2—Оче-
Дополнительные методы и средства имитации 111 ргць—БлокЗ. Подобное «хождение» имитирует рабочий цикл, выпол- няемый каждым рабочим в течение рабочего дня. Приведем содержимое основных полей блоков 1—3. Блок!. (Begin) Release Condition: tag<Nw; Beginning Effect: tag:=tag+l; Ending Effect: if tag — =Nw then Start:—1; {Start — сигнал для начала работы} Блок2. (Operation 1) Release Condition: Start = — 1; Mean Time:30; Standard Deviation: 25; Frequency Distribution: Rectangular БлокЗ. (Operation 2) Release Condition: St = = 0; Mean Time: 8; Standard Deviation: 6; Frequency Distribution: Rectangular {St — состояние печи: 0 — свободна, 1 — занята} Beginning Effect: St:=l; {Занять печь} Ending Effect: St:=O; {Освободить печь} (Блоки 1 и 2 в этом примере используются как накопители тэгов.) Язык описания эффектов Для описания модели используется язык описания эффектов. Основными элементами этого языка являются переменные, операто- ры и функции. Переменные были кратко описаны в разделе Описание цементов модели, там же был описан и оператор присваивания. Здесь мы излагаем дополнительные сведения о средствах языка описания >ффектов, необходимые для разработки имитационных моделей. Любое текстовое описание представляется последовательностью операторов языка, разделенных знаком «;». Кроме того, в любое место ыкого описания может быть вставлен комментарий — произвольный ickct, заключенный в фигурные скобки, например {Это текст ком- ментария}. К операторам, которые используются наиболее часто, относятся операторы присваивания, уточняющие (adjustment) и логические опе- раторы. Два последних описываются ниже. Более подробные сведе-
112 Часть 2. Имитационное моделирование ния по составу операторов и особенностям их использования содер жатся в справочном разделе системы. Уточняющий оператор определяет лаконичную запись соответству ющего оператора присваивания. Например, оператор присваивания Х:=Х+1 эквивалентен уточняющему оператору Х+=1. Аналогично оператор Х:=Х—6 эквивалентен оператору X——6, оператор Х:=Х*и оператору X*=n, a X:=X/Nn оператору X/=Nn. Здесь X, и, Nn — име на переменных. Логические операторы сравнивают два числовых значения или до гических аргумента. Результат равен 1, если сравнение является ис- тинным, или 0, если сравнение ложно. Соответственно 1 рассматри вается как значение ИСТИНА, а 0 — как значение ЛОЖЬ. Например, если известно, что а равно 0,01 а b равно 3, то следующие выражения истинны: а < = Ь; а < Ь; а <> Ь; а следующие ложны: а — = Ъ; а >= Ь, а > Ь. (Здесь запись < = означает «меньше или равно», < означает «меньше», О — «не равно», = = — «равно», >= — «больше или рав- но», > — «больше».) Не путайте записи «= =» и «:=»: логический оператор «= =» срав нивает значения двух переменных, а оператор присваивания «:=» на- значает значение переменной, стоящей слева от оператора. К логическим операторам относятся также операторы «&» (логи- ческое И) и «|» (логическое ИЛИ). Оператор «&» проверяет истин- ность двух логических выражений (одновременно) и возвращает зна- чение 1, они оба истинны, в противном случае он возвращает значе- ние 0. Например, если а равно 0,01 а b равно 3, то следующие выражения истинны: (а = = 0,01) & (Ь = = 3); (а < 2) & (Ь > 2); (а < Ь) & (Ь О 0). Заметим, что выражение (а & Ь) также истинно, поскольку оба ар- гумента больше нуля, соответственно истинным будет и выражение (а * 100) & (Ь / 3). В этом смысле любое число, не равное нулю в ло- гическом операторе, интерпретируется как ИСТИНА, а ноль — как ЛОЖЬ. Логический оператор (|) проверяет, есть ли из двух значений хотя бы одно, не нулевое, и возвращает в этом случае значение ИСТИНА, а если нет, то возвращает значение ЛОЖЬ. В нашем примере логиче- ские операторы (а= =0,01) | (Ь>4), (а>0) | (Ъ>0) истинны, а (а = = 0) | (а = = Ъ), (а—0,01) | (Ь З) — ложны. If-then-else оператор обеспечивает выполнение действий, необхо- димых при заданных условиях. Например, оператор: if а + 3 == 5 then b:= 1, с:= 1; в случае, когда (а + 3 = = 5), т. е. переменная а имеет
Дополнительные методы и средства имитации 113 иычение 2, запишет в переменные b и с значения 1, а в противном мучае он ничего не сделает. Оператор: if a then b += I else b —= 1; и случае, когда а не равно нулю, увеличит значение переменной b ни 1, а в противном случае (а равно нулю) уменьшит b на единицу. Оператор: if а < b then b else а; при условии, что а меньше Ь, вер- пе г значение переменной Ь, а в противном случае — значение пере- менной а. Использование редактора При заполнении полей для описания элементов модели целесооб- разно воспользоваться текстовым редактором, который доступен в любом окне описания элемента (кнопка Edit в левом верхнем углу окна). Редактор обеспечивает функции вырезания, копирова- пия/вставки и удаления выделенных фрагментов текстового описа- ния. Кроме того, при редактировании текстовых фрагментов целесо- образно использовать специальные инструменты поиска и замены Ирагментов текста, доступные через кнопки верхней панели инструментов. Датчики случайных чисел Датчики случайных чисел реализуют механизмы имитации стоха- стических факторов. Значения таких факторов характеризуются рас- пределениями вероятностей. Например, когда время между прихода- ми автомобилей на заправочную станцию задается величиной 10±3 ед. времени, подразумевается, что такое время является случайным фак- тором, значения которого равномерно распределены в интервале [7, 13] ед. времени. Равномерное распределение вероятностей (Rectangular Distribution, Uniform Distribution) продуцируется функцией random(), которая вы- дает действительные случайные числа в диапазоне 0.0 * 1.0, и функ- цией randomlnt (min, max), которая выдает целые случайные числа в диапазоне от min до max. Кроме равномерного распределения вероятностей в прикладных задачах широко используются также экспоненциальное распределе- ние и распределение Пуассона.
114 Часть 2. Имитационное моделирование Экспоненциальное распределение (Exponential Distribution) связано с моделированием простейших потоков. В таких потоках время между событиями распределено по экспоненциальному закону. Эго распред- ление характеризуется единственным параметром — средним знамени ем. Вызов функции ехроп(Меап) вернет в качестве результата значение случайного числа, выбранного из экспоненциального распределении со средним mean. Если в задаче задана интенсивность простейшего по тока Int, то среднее время между событиями будет определяться как mean=l/ Int. Поэтому для имитации задержек между появлениями со бытий следует воспользоваться вызовом функции expon(l/lnt). Распределение Пуассона (Poisson Distribution) тесно связано с эк< поненциальным распределением: оно характеризует количество собы тий в простейшем потоке, наблюдаемое за определенный интервал времени. Если задать величину этого интервала (Т) и интенсивность потока (Int), то произведение Mean=(Int*T) будет определять среднее количество событий за интервал времени Т. Эта характеристика явля- ется единственным параметром функции poisson(Mean), которая ис- пользуется как датчик пуассоновских случайных чисел. Использова- ние функции poisson(Mean) возможно и для других задач, например для имитации количества записей в инвентаризационной ведомости, объемов производства деталей в течение рабочего дня и т. п. Функция poisson(Mean) всегда выдает случайные числа, которые являются по- ложительными и целыми. Для более подрой того знакомства с использованием других рас- пределений вероятностей следует обрати ться к справочной информа- ции системы или специачьиой литературе. Функции Функции языка разделяются на две категории: встроенные и определяемые пользователем. Встроенные функции нам уже неодно- кратно встречались, примерами таких функций являются halt() (фун- кция, реализующая оператор остановки модели), poisson(Mean) (дат- чик случайных чисел) и т. п. Эти функции не могут быть изменены пользователем — они не доступны для изменений. Вторая категория функций создается пользова; елем для описания тех или иных эффектов моделирования. Создание такой функции связано с определением функции и включением ее в библиотеку фун- кций. Для выполнения этих действий следует нажать кнопку Ж1 , которая откроет окно библиотеки функций.
Дополнительные методы и средства имитации 115 В этой библиотеке хранятся только функции, созданные пользова- нием Для внесения изменений в уже определенную функцию доста- iii'iiio сделать двойной клик на соответствующей записи в окне биб- шогеки функций. Для определения новой функции следует при от- । рытом окне библиотеки функций нажать кнопку и заполнить ноля открывающегося при этом окна определения функции (рис. 2.25). Рис.2.25. Окно определения функции В поле Name задается имя функции. Имена функций не должны совпадать с именами переменных, поэтому для именования функций целесообразно использовать заглавные буквы. В поле Purpose разме- щается краткое описание семантики функции, а в поле Expressions — .1лгоритмическое описание эффекта, связанного с вызовом функции. В дальнейшем вы получаете возможность использовать созданную функцию в любом текстовом фрагменте любого поля описания вашей модели. Для этого необходимо просто вставить имя функции в соот- ветствующее место описания. В нашем примере на рис. 2.25 опреде-
116 Часть 2. Имитационное моделирование ------------------------------------------------------------- лена функция, имитирующая интервалы времени между прибытиями автомобилей на заправочную станцию. Поэтому для имитации поток.i автомобилей достаточно вставить в поле Mean Time соответствующе! и блока вызов функции 1NT. Использование функций повышает лаконичность и наглядное! i. описания модели. Пример 5. Имитация случайных величин, заданных эмпирическим распределением (таблицей} В качестве примера описания в окне рис. 2.25 мы использовали функцию датчика случайных чисел, определенных эмпирическим за коном распределения вероятностей. Такой закон обычно задается таблицей. Здесь приведен пример такой таблицы и краткий коммен тарий к составлению алгоритма вычисления функции INT. Интервалы времени между при- бытиями автомобилей (сек) Суммарная частота Интервалы времени между прибытиями автомобилей (сек) Суммарная частота Меньше 0 0 400 0,81 100 0,25 500 0,9 200 0,48 600 1,0 j 300 0,69 Из данных, приведенных в таблице, следует, что в 25 % наблюде- ний интервалы времени между прибытиями автомобилей на автостан- цию оказались меньше 100 сек, в 23 % (0,48—0,25) — от 100 до 200 сек, в 21 % (0,69—0,48) — от 200 до 300 сек и т. д. Датчик случайных чисел, имитирующий интервалы времени между приходами автомо- билей, строится по простой схеме: сначала разыгрывается интервал (строка) таблицы, а затем число внутри этого интервала: {определение случайного числа R между 0 и 1} R:= random(); {определение случайного числа между 0 и 600} {определение случайного числа между 0 и 100} if R<0.25 then randomlnt(0,100) else {определение случайного числа между 100 и 200} if R<0.48 then randomlnt( 100,200) else {далее аналогично } if R<0.69 then randomlnt(200,300) else if R<0.81 then randomlnt(300,400) else » if R<0.9 then randomlnt(400,500) else randomlnt(500,600);
Дополнительные методы и средства имитации 117 Динамика моделирования Запуск и выполнение модели определяют динамический процесс моделирования. Этот процесс визуально отображается в двух формах: и виде процессов прохождения тэгов через структуру модели и в виде ниимационных картин. Первая форма отображения связана с закрашиванием тех блоков модели, в которых в текущий момент времени находятся тэги, и с изображением тэгов, скапливающихся в определенных «узких» местах (и очередях или перед блоками с ограниченным доступом). Очередь, в которой находятся тэги, закрашивается так же, как и занятые блоки, а сами тэги изображаются символами. Вместо индивидуального изобра- жения тэгов на диаграмме исполняемой модели может указываться общее количество тэгов в блоке, перед блоком или в очереди. Уста- новки отображения тэгов в динамике работы модели назначаются в окне рис. 2.12 (Show Entities With). Выбор «Symbols» определяет инди- видуальное отображение тэгов символами, выбор «Numbers» — ото- бражение общего количества тэгов. Рисунок 2.26 иллюстрирует две формы отображения одного и того же состояния, наблюдаемого в динамике выполнения модели приме- Рис. 2.26. Две формы отображения динамики перемещения
118 Часть 2. Имитационное моделирование pa 1. Отображаемое состояние характеризуется тем, что в каждом из двух блоков модели находится по одному тэгу, а в очереди стоят 12 тэгов, ожидающих освобождения бензоколонки. Форма анимационных картин (рис. 2.12 — Action View Functions) используется главным образом для презентации моделей. Средства анимации Micro Saint рассматриваются ниже. Отладка моделей При описании моделей в текстовых фрагментах могут быть допу- щены различные ошибки. Обнаружение и идентификация таких оши- бок обычно проводятся в динамике выполнения модели, при этом по- льзователю выдается сообщение об ошибке. Получив такое сообще- ние, следует найти ошибку, исправить ее и продолжить выполнение модели или заново запустить модель. Ниже приводятся некоторые ти- пичные примеры сообщений об ошибках. • Message Syntax ERROR Job 1 tag:=tag+l Semicolon expected at end. (в конце ожидается точка с запятой) • Message s:=l; Unrecognized word (неизвестное слово) • Message Matherror couldn't create the dialog box (Математическая ошибка не дает создать область диалога) Любое сообщение об ошибке начинается со слова Message. Пер- вый тип сообщения — наиболее полный. В нем содержится тип ошибки (синтаксическая), место локализации ошибки (блок 1), выра- жение, в котором зафиксирована ошибка (tag:=tag+l) и собственно вид ошибки (в конце ожидается точка с запятой). При получении та- кого сообщения ошибку исправить легче всего для этого надо от- крыть окно описания блока 1, найти нужное выражение и вставить в конец его знак «;». (Попутно заметим, что этот знак должен «закры- вать» любой оператор модели.) Второй тип сообщения не содержит места локализации ошибки. Здесь просто приводится выражение (s:=l;) и констатируется, что си- стема не может распознать переменную s. Как правило, это связано с тем, что такую переменную забыли включить в список переменных. Устранение ошибки связано, таким образом, с включением перемен- ной (или функции) в соответствующий список. Третий тип ошибки обычно связан с использованием переменной типа Array of Integers или Array of Reals. Ошибка заключается в тол;,
Дсполнительные методы и средства имитации 119 что размерность массива недостаточна и ее следует увеличить. Обыч- но для этого нужно в окне описания соответствующей переменной в сроке «first (second, third) index numbered 0 through 10» увеличить no- педнее число: «through 1000». Такая ошибка обычно возникает при использовании в качестве индекса массива переменной tag (напри- мер, tag:=tag+l; f[tag]:=l, и f описана как Array of Integers или Array iif Reals). Все другие виды сообщений об ошибках по форме похожи на приведенные примеры. Однако наряду с рассмотренными видами ошибок, которые могут ныть обнаружены исполнительной системой, в модели могут присут- твовать семантические ошибки, которые может распознать только человек — разработчик и пользователь модели. Например, по замыслу разработчика должно использоваться выражение tag:=tag+l;, а в мо- дель введено выражение tag:=tag—1;. Формально (синтаксически) оно правильно, но результаты, полученные на такой модели, будут неадек- патны исследуемой системе. Такие ошибки обнаружить достаточно |руднэ. В этом смысле может оказаться полезным использование ис- полнитель! ого монитора (execution monitor), окно которого открывает- ся КНОПКОЙ tg и . В этом окне (рис. 2.27) отображаются значения переменных, ко- юрые изменяются в процессе моделирования и характеризуют с точ- ки зрения пользователя адекватность имитационной модели исследуе- мой системы. 1 й EXAMPL1.MOD : Executio.. Monitor 1 PC Run 1 of I Clock: 52 176 Task Completed: 2 gas station Expression: Value: N; Status; 4.000 0.000 clock; 52.176 Рис. 2.27. Окно исполнительного монитора Любая модификация записи в окне исполнительного монитора реализуете: [ двойным кликом на соответствующей строке, а добавле- ние новой записи производится уже известной нам кнопкой . И в юм и в другом случае открывается окно для ввода выражений, кото- рые используются исполнительным монитором (рис. 2.28). В поле expression to be evaluated вводятся выражения, значения ко- торых могут характеризовать адекватность модели. Пользователь, на-
i20 Часть 2. Имитационное моделирование Рис. 2.28. Окно ввода выражений для исполнительного монитора блюдая динамику изменений этих значений, может оценить, насколь- ко правдоподобно поведение отлаживаемой модели. Календарь событий Модельное время — это системная переменная, имитирующая ход часов реального времени, в котором «живет» и развивается исследуе- мая система. Имитация хода реального времени основывается на кон- цепции событий, которые связаны с изменениями состояния модели. Такие события упорядочены по времени их возникновения в специа- льной структуре — календаре (расписании) событий. Пересчет модель ного времени связан с выбором ближайшего по времени события из календаря и «переводом стрелок часов» модельного времени на мо- мент возникновения этого события. Такая схема предполагает, что события могут следовать одно за другим через интервалы времени разной величины, включая и ноль (одновременно происходящие со- бытия). Таким образом, календарь событий представляет собой своеобраз- ный сценарий моделирования. Каждое событие такого сценария связа- но с выполнением определенного набора действий, которые должны произойти в тот или иной момент времени, по тому или иному усло- вию. Сценарий содержит события двух типов: 1) события, связанные с изменением текущего состояния системы (например, выход активного тэга из очереди, вход тэга в тот или иной блок и т. п.); 2) запланированные события, специально введенные в халендарь пользователем для управления процессом выполнения модели.
Дополнительные методы и средства имитации 121 События первого типа полностью определяются структурой моде- ли и описанием ее элементов, события второго типа управляют компьютерным экспериментом. Такое управление может быть связа- но с остановкой модели, установкой новых значений переменных в процессе моделирования, выполнением дополнительных вычислений по окончании этапа моделирования и т. п. Планирование событий в календаре обычно используется для об- работки промежуточных результатов компьютерного эксперимента и внесения необходимых изменений в динамике интерпретации модели. В качестве примера использования календаря событий для управ- ления экспериментом приведем планирование события остановки мо- дели. Допустим, что нам необходимо остановить модель примера 1 через 1 сутки работы заправочной станции: 1 сутки= 24(час)*60 (мин/час)=1440 (мин). Для планирования такого события кнопкой О| открываем окно календаря событий (рис. 2.29), затем открываем окно описания собы- тия (для этого используется уже знакомая нам общая кнопка •‘rgj до- бавления объектов) и в этом окне (рис. 2.30) заполняем соответствую- щие поля. Рис. 2.29. Пример записи в календаре событий В поле Perform at Time назначается время наступления события (140 единиц модельного времени (EMB.), 1 ЕМВ.=1 мин.), в поле Expi “ssion. определяется оператор, который должен быть выполнен в назначенное время (оператор остановки halt()). Нажатие кнопки Ac- cept приводит к появлению в календаре событий состпетствующей строки — уведомления о событии (см. рис. 2.29). Внесение в кален- дарь такого уведомления приведет к остановке модели в момент вре- мени clock=1440, т. е. ровно через сутки функционирования исследу- емой системы (бензозаправочной станции) в реальном времени. Использование полей Repeating и Stop связано с перепланирова- нием событий через определенный интервал времени (Repeat Interval) до момента окончания процесса переплан трования (Stop Тime). Пе- репланирование событий используется для внесения управляющих воздействий в динамике развития модели через определенные интер-
122 Часть 2. Имитационное моделирование Рис. 2.30 Окно описания события валы времени. Например, перепланирование события «Пауза» (pause ()) приведет к периодическим остановкам в процессе компьютерного моделирования. Единица модельного времени и ее связь с реальным временем Модельное (или системное) время — одно из основных понятий имитационного моделирования. Модельное время всегда связано с определенной системной переменной, которая должна копировать ход часов реального времени. Работа исследуемой системы на протя жении длительных периодов реального времени (сутки, месяцы, годы) воспроизводится в компьютерной имитационной модели за секунды или минуты с сохранением всех хронологических особенностей ис- следуемой системы (всей хронологии причинно-следственных связей, действующих в исследуемой системе). Такая хронологическая адек- ватность модели обусловлена тем, что единица модельного времени
Дополнительные методы и средства имитации 123 =,—_-------------------------------------------------------- (LMB) определяет своеобразный масштаб, соотносящий размерности реального времени и машинного таймера, определяющего скорость интерпретации модели. Выбор единицы модельного времени (ЕМВ) полностью определя- ется условиями задачи. Если все хронологические характеристики ис- следуемой системы заданы в одних и тех же временных единицах (на- пример, секундах), то определение ЕМВ тривиально: ЕМВ = 1 сек. [ ели же для описания отдельных компонент системы используются разные временные единицы (например, месяцы и дни), то выбор 1;МВ определяется из субъективных соображений представления о точности и адекватности модели. Выбор ЕМВ = 1 (день) приведет к более точной модели, но ее использование может потребовать боль- ших затрат машинного времени, а выбор ЕМВ = 1 (месяц) — к менее । очной, но более быстродействующей модели. Системная переменная clock, определяющая модельное время, имеет тип Real (действительное число). В этом смысле такой формат представления времени позволяет выбирать в качестве ЕМВ любую единицу реального времени с минимальной потерей точности. Тем не менее, если в задаче используются сильно отличающиеся по протя- женности временные отрезки, то целесообразно в качестве ЕМВ вы- бирать наименьший из них, соответствующий минимальной единице реального времени. Разработка многоуровневых структурных моделей До сих пор мы рассматривали модели только одного (нулевого, верхнего) уровня. В общем случае сетевая структура модели может быть представлена на нескольких уровнях. При этом нулевой уровень определяет основную модель, составленную из компонент, каждая из которых в свою очередь может рассматриваться как модель первого, второго и т. д. уровня. Концепция многоуровневой модели позволяет уточнять структуру составляющих ее компонент на нижних уровнях, оставляя на верхних только общие «архитектурные контуры» исследу- емой системы. Для конструирования многоуровневой модели исполь- зуются дополнительные средства панели инструментов конструирова- ния сетевой структуры (рис. 2.31). Эти средства включают в себя: • создание подуровня сетевой структуры; • средства навигации (перемещения) по иерархической структуре модели; • дополнительные средства вставки/вырезки структурных объ- ектов.
124 Часть 2 Имитационное моделирование Рис. 2.31. Средства конструирования многоуровневых моделей Для знакомства с ними обобщим описанный в разделе «Быстрое начало» пример!. Допустим, что на автозаправочной станции имеется магазин и каждый водитель после заправки автомобиля может подъехать к этому магазину и сделать несколько покупок. Такая обобщенная модель в дополнение к введенным ранее блокам будет содержать еще модель обслуживания покупателей в магазине. Не определяя детали этой вновь вводимой компоненты, выделим для нее специальный подуро- вень модели. Для введения этого подуровня в структуру модели следу- ет нажать кнопку и связать появившийся на экране монитора прямоугольник с ранее определенными блоками. Затем для определения структуры модели обслуживания покупа- телей в магазине следует перейти в окно подуровня и определить эту модель обычными средствами. В результате мы получим двухуровне- вую структуру, приведенную на рис. 2.32. В этой модели окно EXAMPL1.MOD: Network О EXAMPL1 опре- деляет структуру модели примера 1 с добавленным фрагментом моде- ли магазина, которую мы назвали «Shopping». Прямоугольная рамка блока с номером 3 определяет, что модель, заключенная в этом блоке, обладает собственной сетевой структурой, которую мы определили в окне EXAMPL1.MOD: Network 3 Shopping как состоящую из трех блоков задач: осмотр магазина (survey), оплату покупок у кассы (pay desk) и выход (exit). Любой блок-прямоугольник, используемый в процессе разработ- ки модели, определяет собственную сетевую диаграмму. Таким обра- зом, в рамках одной общей модели можно определить множество вло-
Дополнительные методы и средства имитации 125 Рис. 2.32. Пример многоуровневой модели женных сетевых структур. Заметим, что нумерация блоков при этом остается сквозной, проходящей через все сетевые диаграммы, состав- ляющие модель системы. Отметим, что в тех случаях, когда сетевой блок-прямоугольник имеет выходящие стрелки, в его сетевой структуре тающего элемента исевдоблок не используется псевдоблок в виде в качестве завер- окружности. Этот имеет своего номера, ком блока, следующего за сетевым в он фактически является двойни- диаграмме верхнего уровня. Ска- йнное иллюстрируется рис. 2.33. Рис. 2.33. Иллюстрация к использованию псевдоблока
126 Часть 2. Имитационное моделирование При моделировании сложных систем использование концепции многоуровневых моделей и «вложенных» сетей делает струхтуоу моде ли значительно более наглядной и легко понимаемой. Анимация имитационных моделей Для презентации имитационных моделей и наглядного представ ления процессов функционирования исследуемой системы использу ются специальные средства анимации модели. С помощью этих средств в отдельном окне Action View, предназначенном для просмот- ра анимационных картин, строится сцена, на которой в процессе имитации будут демонстрироваться процессы перемещения объектов (тэгов), определяющие динамику развития исследуемой системы. Для того чтобы реализовать анимацию созданной модели, необхо димо: • определить фон, на котором будут развиваться анимационные процессы; • связать динамику изменения сцены с программой модели. Окно сцены (Action View) открывается нажатием кнопки |:^ (средний ряд панели инструментов). Проиллюстрируем анимацию имитационной модели на примере I «Модель обслуживания автомобилей на заправочной станции» (см рис. 2.1). Определение фона Этот этап обычно связан с использованием готового рисунка или его созданием с использованием графического редактора. В качестве такого редактора проще всего использовать Paint, который включен и группу «Стандартные» общего списка программ Windows. Рисунок со храняется в файле с расширением BMP. Для вставки фонового рисунка в окно Action View необходимо: • открыть вставляемый рисунок в графическом редакторе, • скопировать его (в буферную область памяти), • открыть окно Action View, • вставить рисунок в окно Action View. Последнее действие реализуется с использованием меню Micro Saint (раздел Edit — Paste) или кнопкой ЁЦ (верхний ряд панели ин- струментов).
Дополнительные методы и средства имитации 127 Ниже на рис. 2.34 приведен вариант фонового рисунка, созданно- го для рассматриваемого примера в редакторе Paint. Рис. 2.34. Пример фона для конструирования анимационной сцены Динамика изменения сцены Для реализации анимационной динамики необходимо выбрать изображения динамических объектов (иконки), которые в процессе моделирования будут перемещаться по сцене на подготовленном ([зоне. Иконки выбираются в меню Action View, раздел View Icons. По- скольку для рассматриваемого примера движущимся объектом явля- ется автомобиль, выберем иконку с изображением автомобиля (на- пример, иконку с номером 447). Все процессы имитации движения автомобилей в программе модели будут иллюстрироваться передвиже- нием соответствующих иконок на фоновом рисунке. Траектории та- кого передвижения определяются отрезками прямых с заданными на- чальной и конечной точками. Указание этих точек проводится непо- средственно на фоновом рисунке в окне Action View с помощью специальной панели инструментов (нижний ряд справа). Панель инструментов для размещения иконки объекта на сцене содержит три кнопки 5I : • левая кнопка с изображением трейлера (курсор-трейлер) для размещения иконки на сцене в точке начала траектории (в этой точке иконка появляется на сцене); • средняя кнопка с изображением стрелки (курсор-стрелка) для перемещения иконки по сцене в соответствии с планируемым отрезком траектории от точки начала отрезка до точки его конца;
128 Часть 2. Имитационное моделирование • правая кнопка с изображением перечеркнутого трейлера (кур сор-крест) для удаления иконки со сцены в точке окончании траектории. После выполнения первого действия окно Action View будет вы глядеть, как показано на рис. 2.35. Рис. 2.35. Конструирование анимационной сцены — 1 В левом нижнем углу окна установлена точка появления иконки автомобиля на сцене — в это место фонового рисунка устанавливает ся курсор-трейлер и делается щелчок левой кнопкой мыши. При этом в строке под заголовком Action View (строке оператора) размещается оператор создания изображения объекта (автомобиля) на сцене create. Этот оператор фиксирует, что мы создали объект (tag) с иконкой но мер 447, с координатами места на сцене, где разместилась иконка объекта (X = 38, Y = 113). Для того чтобы оператор создания изображения объекта на сцене (create) выполнялся синхронно с оператором создания объекта в мо дели, его (оператор create) необходимо скопировать из окна Action View и вставить в соответствующее место программы. Копирование оператора в окне Action View связано с использованием команды Сору редактора Edit, а вставка в окно задачи — команды Paste. Для рассматриваемого примера такую вставку следует сделать в раздел Be- ginning Effect блока car coming (см. рис. 2.5). При этом каждый раз, когда в модели появляется новый тэг-автомобиль, приехавший на за- правочную станцию, в окне Action View на сцене появляется его иконка, иллюстрирующая событие появления автомобиля.
Дополнительные методы и средства имитации 129 Анимация передвижения автомобиля от точки начала траектории hi бензоколонки связана с «перетаскиванием» иконки объекта от точ- i его появления на сцене до изображения бензоколонки. Для этого необходимо курсором-стрелкой (средняя кнопка панели инструмен- н»> анимации) перетащить иконку в нужное место экрана. [ При этом в левом верхнем углу окна Action View появится опера- inp перемещения объекта move, который определяет новые координа- I.I положения иконки объекта на сцене и время, за которое произош- KI перемещение (duration). Этот оператор должен быть скопирован и перенесен в поле Launch Effect блока car coming (см. рис. 2.5). Удаление иконки объекта со сцены выполняется с помощью пра- вой кнопки панели инструментов анимации. Для этого курсор-крест, связанный с этой кнопкой, устанавливается на удаляемой иконке объ- кта и делается щелчок кнопкой мыши. Оператор удаления Dispose появляется в строке операторов окна Action View и переносится в со- ответствующее место программы модели аналогично. (Если мы огра- ничимся только анимацией приезда автомобилей на заправку, этот оператор должен быть размещен в поле Ending Effect блока car coming.) Таким образом, сделанные анимационные добавления в програм- му модели приводят к описанию блока car coming, приведенному на рис. 2.37. При запуске этой программы в окне Action View можно наблю- дать динамический анимационный процесс приезда автомобилей на станцию.
130 Часть 2. Имитационное моделирование I Рис. 2.37. Окно описания задачи car coming с элементами анимации Для того чтобы траектория движения автомобиля «оставлял > след» на сцене, необходимо использовать разделы Dot, Line и Refresh меню Action View. Они связаны с видом представления Траектории (точки, линии, стирание траекторий). Основным вопросом анимации является правильная и корректнан вставка операторов анимации в текст программы модели. Операторы create и dispose связаны с созданием и удалением иконки объекы (тэга), поэтому они должны синхронизироваться с созданием и удале- нием самого объекта. Оператор create обычно вставляется в поле Be- ginning Effect, a dispose — в поле Ending Effect. Оператор перемещении move связан с перемещением иконки тэга из точки начала отрезы траектории в точку конца за время duration. Duration ~ это то время, которое тэг проводит в блоке, поэтому оператор move всегда разме- щается в поле Launch Effect. Попутно заметим, что duration является системной переменно!!, связанной с активным тэгом, т. е. тэгом, который обрабатывается и модели в текущий момент времени.
Дополнительные методы и средства имитации 131 В сложных случаях для получения наглядной анимационной кар- там может оказаться необходимым добавление в модель специаль- ных блоков, которые служат только целям создания анимации. На- пример, для рассматриваемого примера мы ограничились анимацией гальке приезда автомобилей на заправочную станцию. Фаза ожида- ния освобождения бензоколонки и фаза собственно заправки не ани- шруются, поскольку автомобиль на этих фазах находится в непо- фшжном состоянии. Анимация фазы отъезда связана с уточнением ншолнительных обстоятельств — как автомобиль уезжает? Просто его иконка исчезает с экрана монитора или движется по некоторой траек- и>рии до точки исчезновения? Для анимации этой фазы необходимо получить ответы на подобные вопросы и только после этого модифи- цировать модель. Если отъезд автомобиля будет связан с созданием циектории отъезда, в модель придется добавить еще один блок. Существует и другая, не менее важная проблема, связанная с ани- г-щией. В модели (и на сцене) могут одновременно присутствовать не- колько динамических объектов. Если такие объекты движутся по од- ной и той же траектории, то в одном месте траектории могут находить- и несколько объектов одновременно. При этом иконка одного из '|Ьъектов может заслонять другую, что лишает анимационную картину наглядности. Для преодоления этого эффекта можно использовать, на- пример, метод смещения на сцене иконок разных объектов относите- ii.no друг друга путем введения случайной аддитивной составляющей в их координаты. Например, вместо оператора create (tag,447,38,113) ис- пользовать оператор create (tag,447,38+ randomlnt (0,20),113+ rando- nilnt(0,20)). Такой оператор каждый раз при появлении нового объекта и модели будет выводить на сцену иконку, координаты которой будут пучайным образом выбираться из интервалов (38<-58) для X и (113-И 33) для Y. На экране это выглядит как некоторая «туча» иконок, i низанных с приезжающими и отъезжающими автомобилями. Для более наглядной анимации динамики очереди используются 14шее сложные механизмы, требующие специальных расчетов коорди- нат иконок на сцене. Однако все трудности составления программ шимации с лихвой окупаются наглядной иллюстрацией динамиче- ских взаимодействий в системе. Контрольные вопросы и предложения 1. Назовите основные виды потоков в системах и определите их отличитель- ные свойства. 2. Как используется массив переменных для реализации индивидуальных свойств тэгов? 3. Охарактеризуйте основные операторы языка описания эффектов модели.
132 Часть 2. Имитационное моделирование 4. Дайте характеристику основных датчиков случайных чисел. 5. Для каких целей в модель вводятся функции? 6. Как задается эмпирическое распределение вероятностей в модели? 7. Чем различаются режимы «Symbols» и «Numbers» в динамике работы м<> дели? 8. Ваши действия при получении сообщения «Unrecognized word» при отдал ке модели? 9. Ваши действия при получении сообщения «Matherror couldn't create the di.i log box» при отладке модели? 10. Охарактеризуйте использование исполнительного монитора в процессе oi ладки модели. 11. Охарактеризуйте использование календаря событий в процессе моделиро вания. 12. Какие виды событий размещаются в календаре? 13. Как связано модельное время с реальным? 14. Как реализуется конструирование многоуровневых моделей? 15. Как конструируется анимационная картина в окне «Action View»? 16. Как интерпретируется переменная duration? Поиск решения: оптимизация на имитационных моделях Одно из наиболее известных направлений оптимизации — мате- матическое программирование и его реализация в виде информаци онной системы на электронных таблицах — было описано в первон части этой монографии. Однако многие задачи бизнеса и производит ва не удается сформулировать в категориях математического програм мирования. Имитация как метод исследования сложных систем основана, как уже отмечалось, на принципе копирования поведения реальной или гипотетической системы. Каждый «прогон» модели связан с имита цией конкретного варианта организации системы. В классической технологии имитационного моделирования для выбора оптимальных решений необходимо исследовать каждый из возможных вариантов такой организации, что существенно увеличивает время компьютер ного моделирования. Статистические аспекты имитационного моде лирования связаны с определением показателей эффективности сис темы на основе анализа трассы состояний динамического процесса При этом результат исследования всегда является статистикой (функ цией от наблюдаемых экспериментальных данных), в то время как и моделях математического программирования при исследовании сис тем на электронных таблицах результат (целевая ячейка) формируется
Оптимизация на имитационных моделях 133 |угем вычисления функций, представляющих аналитические зависи- мости между переменными модели. Эти обстоятельства выделяют проблему оптимизации на имитаци- онных моделях как самостоятельный класс задач, позволяющий уже в процессе прогона модели реализовать вариации управляемых пере- менных с целью получения оптимального решения. Описываемая ниже оптимизационная процедура OptQuest реали- |ует специальный немонотонный поиск наилучшего решения и нахо- iiiT эффективную траекторию приближения к такому решению. Оптимизация на имитационных моделях в системе OptQuest OptQuest — это приложение, ориентированное на оптимизацию имитационных моделей, созданных с помощью Micro Saint (MS-мо- пелей), и позволяющее пользователям автоматически находить опти- мальные решения сложных задач. Для использования этого приложения в MS-модели необходимо определить специальную переменную objective, которая будет показы- ппть, какая комбинация значений варьируемых переменных модели чудет наилучшей. Для иллюстрации использования приложения OptQuest рассмот- рим пример MS-модели. Пример 6. Модель технического контроля изделий Собранные телевизионные приемники после сборки проходят ис- пытания на станции технического контроля. Если в процессе контро- ii>l оказывается, что функционирование телевизора ненормально, его переправляют на участок наладки, после которой он вновь возвраща- гся на станцию контроля для повторной проверки. После одной или нескольких проверок телевизор попадает в цех упаковки. Описанная ситуация иллюстрируется схемой, приведенной на рис. 2.38. На одном месте на любом из стеллажей может храниться один те- иевизор, ожидающий контроля или наладки, соответственно. Телеви- монные приемники попадают на станцию контроля каждые 5±2 мин. На станции работают Nk контролеров, каждому из них на проверку 1елевизора нужно 9+3 мин. Примерно 85 % телевизоров проходят проверку успешно и попадают в цех упаковки, остальные 15 % попа- цдют на участок наладки, на котором работает один рабочий- налад- чик. Наладка занимает 30±10 мин.
134 Часть 2. Имитационное моделирование Рис. 2.38 Пусть каждый запуск имитационной модели моделирует один p.i бочий день (8 ч = 480 мин.). Сформулируем задание на оптимизацию. Каждый контролер получает заработную плату независимо от врс мени его полезной работы в течение рабочего дня. Поэтому админи страция стремится к тому, чтобы коэффициент полезного действии (КПД) каждого контролера приближался к 1. КПД контролера оцени вается как отношение полезного времени его работы, связанного < контролем телевизионных приемников, к продолжительности рабочс го дня. Кроме того, администрация учитывает, что количество мест ип стеллаже 1 (см. рис. 2.38) ограничено десятью. В этом смысле адмп нистрация интерпретирует оптимизацию системы контроля как опре деление такого количества контролеров, при котором их КПД при ближается к 1 при ограничении на объем стеллажа 1. Структура модели иллюстрируется рис. 2.39. Рис. 2.39. Структура модели стадии контроля изделий
Оптимизация на имитационных моделях 135 Ниже приводится описание переменных модели. Имя переменной Смысловое содержание Тип переменной Начальное значение State Состояние наладчика: 0 - свободен, 1 - занят Integer 0 Nk Количество контролеров на станции контроля Integer 1 Nek Количество свободных контролеров Integer 1 q Текущая длина очереди перед станцией контроля Integer 0 Стах Максимальная длина очереди перед станцией контроля Integer 0 Tsk Общее полезное время занятости контролеров Real KPD Коэффициент полезного действия контролера - отношение полезного времени к общему времени работы: KPD:=(Tsk/Nk)/480; clock системная переменная Real 0 duration системная переменная Real 0 objective системная переменная Real 0 run системная переменная Integer 1 seed системная переменная Integer 1 tag системная переменная Integer 0 Блок 1 (TV) создает тэги, каждый из которых имитирует телевизи- онный приемник, поступающий на станцию контроля. Блок 2 (technical control) имитирует станцию контроля, на кото- рой работает Nk контролеров. Если все контролеры заняты, тэги-те- левизоры становятся в очередь перед данным блоком и ждут, пока хо- 1Я бы один контролер не освободится. Блок 3 (rapairing) — блок наладки. Если наладчик занят, тэги-те- левизоры становятся в очередь перед данным блоком и ждут, когда он освободится. После наладки они отправляются на повторный конт- роль. Блок 4 (wraping) — блок упаковки.
136 Часть 2. Имитационное моделирование Следующее описание определяет содержимое основных полей блоков разветвителей и очередей модели. Блок I. (tv construction) Mean Time: 5; Standard Deviation: 3; Release Condition: 1; Beginning Effect: tag += 1; Разветвитель 1. Decision Type: Multiple Routing condition: technical control: 1; tv con struction: 1; Очередь 2 (technical control queue) Sorting Order: FIFO Entering Effect: q+=l; if q>Q_max then Q_max:=q; Departing Effect: q—=1; Блок 2. (technical control) Mean Time: 9; Standard Deviation: 6; Release Condition: Nck>0; (Вхождение в блок возможно, когда свободен хотя бы один кош ролер.) Beginning Effect: Nek—=1; Launch Effect: Tsk:=Tsk+duration; Системная переменная duration определяет время, в течение кото рого тэг будет находиться в блоке. Обычно системная переменная du ration используется в поле Launch Effect. В данном примере эта перс менная используется для определения общего полезного времени контролеров путем накопления интервалов времени, потраченных пи контроль телевизионных приемников. Ending Effect: Nck+=1; Разветвитель 2. Decision Type: Probabilistic Routing condition: repairing: 0,15; wraping 0,85; Очередь 3 (rapairing queue) Sorting Order: FIFO Блок 3. (rapairing) Mean Time: 30; Standard Deviation: 20; Time Dist- ribution: Rectangular Release Condition: State==0; Begining Effect: Sta te:=l; Ending Effect: State:=0; Блок 4. (wraping) Release Condition: 1; Внесем в календарь событий операторы присваивания начальных значений переменным MS- модели, оператор определения перемен ной objective и оператор остановки прогона (halt) по истечении 8 ра- бочих часов (480 мин.).
Оптимизация на имитационных моделях 137 4 TV.MOD : Event Queue Time Tag Type Event 0 001 480.000 0 0 © © Nck:=Nk, KPD:=(Tsk/Nk)/480, £1 -J 480.000 0 © objecti.ve:=Q_maij+(l-KPD); haltQ; ' Гис. 2.40. Начальное содержимое календаря событий для модели технического контроля изделий Количество свободных контролеров Nek устанавливается равным общему количеству контролеров Nk (ситуация перед началом рабо- п.|). Выполнение оператора присваивания (Nck:=Nk) планируется с к больщой задержкой (0.001) сразу после запуска модели (ниже пояс- няется необходимость такой задержки). Функция objective вычисляется после определения KPD непосред- ' । пенно перед завершением прогона. Структура этой функции ориен- шрована на поиск такого количества контролеров (Nk), которое обес- печивало бы, с одной стороны, минимальную длину очереди (Q max), и с другой — эффективную работу контролеров (KPD, близкий к еди- нице). В структуре формулы: objective:=Q_max+(l—KPD) оба этих фактспа достигаются при поиске такого значения Nk, при котором objective достигает минимума. Определенная таким образом функция objective и будет опреде- лять целевую функцию оптимизации модели. Заметьте, что в отличие от целевой ячейки электронной таблицы определенная здесь целевая функция оптимизации имитационной модели не имеет аналитической зависимости от варьируемой пере- менной Nk. Запуск процесса оптимизации связан с выбором пункта Optimize из меню Micro Saint (Execute —>Optimize). Результатом этого выбора будет гапуск приложения OptQuest и открытие главного окна CptQuest. Определение оптимизационной задачи Прежде всего необходимо создать новый файл с расширением ОРТ или открыть существующий файл, связанный с оптимизируемой имитационной моделью (подпункт New или Open пункта главного меню File, соответственно, рис. 2.41). В дальнейшем в таком файле будут храниться параметры оптимизации. При создании нового файла, для того чтобы определить оптими- зационную задачу, необходимо: 1) выбрать изменяемые переменные из переменных имитацион- ной модели;
138 Часть 2. Имитационное моделирование Рис. 2.41. Главное окно OptQuest (исходное состояние) 2) указать — максимизировать или минимизировать целевую фу» кцию модели; 3) если необходимо, ввести дополнительные ограничения для из- меняемых переменных. Выбор изменяемых переменных (Edit — > Variables) приведет к от- крытию окна рис. 2.42. Рис. 2.42.Таблина выбора изменяемых переменных В этом окне представлен весь список переменных нашей имита- ционной модели. Из них мы должны выбрать только те переменные, которые для имитационной модели являются входными. Значения та- ких переменных не должны вычисляться или изменяться внутри MS-модели. Только OptQuest в процессе оптимизации может варьи- ровать значениями этих переменных, ориентируясь на достижение оптимального значения целевой функции. В нашей модели такой входной переменной является только одна — это переменная Nk, остальные зависят от нее (прямо или косвенно).
Оптимизация на имитационных моделях 139 Двойной щелчок мыши в поле Select (рис. 2.42) изменяет статус переменной: Yes — переменная выбрана для изменения OptQuest, No — нет. В поле Name отображаются имена переменных MS-модели. В по- ях Lower Bound и Upper Bound указываются соответственно возмож- ная нижняя и верхняя границы для соответствующей переменной, '(ля облегчения поиска можно указать предполагаемые значения из- меняемой переменной в колонке Suggested Value. Если предполагае- мые значения выходят за границы или не удовлетворяют ограничени- им, то они игнорируются. Тип переменной (Integer/Real) переносится и таблицу рис. 2.42 из MS-модели автоматически. Установка параметров оптимизации (Edit — > Settings) в окне рис. 2.41 связана с определением вида оптимизации (поиск максиму- ма или минимума целевой функции) и установкой количества прого- нов модели (обычно выбирается один). Если выбирается большее ко- личество запусков, то значение целевой функции усредняется по ко- личеству запусков (см. рис. 2.48). Ограничения (Edit — > Constraints) в окне рис. 2.41 устанавливают- я только для входных переменных. OptQuest позволяет пользователю плавать произвольное число ограничений в виде линейной комбина- ции изменяемых переменных. Если предположить, что изменяемые переменные — это Xi (для i = 1, ..., п), то любое ограничение может оыть записано в следующей форме: а1*Х1 + а2*Х2 + ... + ап*Хп # Ь, где ai и b — константы, а знак '#' заменяет одно из следующих отно- шений: '=', , '= =’ (отношения равенства) или '<=', (от- ношения порядка). В нашем примере одна изменяемая переменная — число контро- леров Nk. Мы задаем для нее единственное ограничение: Nk <= 6. Для этого случая окно ограничений будет выглядеть следующим обра- зом (рис. 2.43). Рис. 2.43. Окно ограничений на изменяемые переменные
140 Часть 2. Имитационное моделирование Установка дополнительны)' опций Меню Опций (Options) рис. 2.41 позволяет установить время он тимизации и выбрать вариант алгоритма оптимизации. Опция «Ускоритель нейронных сетей» (Neural Network Acceleu tor) разработана, чтобы улучшить мощность поиска OptQuest'a. При использовании нейронной сети OptQuest собирает информацию о по лучаемых значениях целевой функции при различных значениях и i меняемых переменных. Затем эта информация используется для обу чения нейронной сети в процессе поиска. OptQuest автоматически определяет как много данных требуется и как часто нужно повтори и. обучение, основываясь на том, что время проведения имитации моде ли и время оптимизации ограничено пользователем. В меню опции «Ускоритель нейронных сетей» 4 пункта: 1. No Neural Network (Без нейронной сети). Этот механизм поиска на каждом шаге оптимизации (Simulation) формирует новые значении входных переменных и отправляет их в имитационную MS-моделк для формирования оценки целевой функции objective. Использование этого механизма предпочтительно для имитационных моделей с ма лым количеством изменяемых переменных. 2. Conservative Neural Network (Консервативная нейронная сеть) Этот алгоритм поиска связан с использованием консервативного пра- вила для того, чтобы отбрасывать потенциально плохие решения. Ис спользование этого пункта целесообразно, если на имитацию отведе но относительно мало времени. 3. Aggressive Neural Network (Агрессивная нейронная сеть). Эта опция предпочтительна для большинства моделей и указана по умолчанию. 4. Extremely Aggressive Neural Network (Экстремально агрессивная нейронная сеть). Выбор этого пункта сильно ускоряет поиск, увели- чивая риск потерять некоторые хорошие решения. Рекомендуется для моделей, имитация которых очень продолжительна и в которых до- статочно приближенного решения. Запуск и остановка поиска Этим целям служит пункт меню Run рис. 2.41: когда все готово к оптимизации, нажмите Start, для остановки поиска — Stop (или кла- вишу Esc). Процесс оптимизации (поиск решения) В динамике процесса поиска в главном окне системы OptQuest отображается состояние этого процесса (см. рис. 2.44).
Оптимизация на имитационных моделях 141 Рис. 2.44. Главное окно OptQuest в динамике поиска Статус поиска (Status) отображается в левом верхнем углу окна (па рис. 2.44 статус определяет время до окончания поиска). Имя файла оптимизации (Optimization file) отображается в правом верхнем yiлу окна (в нашем случае TV.OPT). На белой полосе в центре окна отображается текущее состояние процесса поиска. Ниже приводится перечень таких состояний. Ready ~ исходное состояние готовности начать процесс оптими- ыции. Running a Test Simulation — OptQuest запускает тестовую имита- цию, чтобы установить параметры поиска. Building Initial Population — OptQuest генерирует начальную попу- ияцию возможных решений. Optimizing — идет поиск. Возможно, Micro Saint выполняет запуск имитационной модели или OptQuest решает, какие значения входных переменных сгенерировать следующими. Neural Network Accelerator Engaged — если вы включили ускорение нейронной сети, OptQuest периодически обучает эту сеть. Diversifying — OptQuest определил, что популяция решений полу- чит преимущество, если будет применена специальная диверсифика- ционная стратегия при создании новых решений. Диверсификацион- ная процедура включает новые решения в популяцию перед тем, как поиск будег продолжен. Evaluating Diversified Population — OptQuest оценивает последнюю диверсифицированную популяцию. Ниже белой полосы состояния поиска размещается таблица, ко- торая содержит: • номер очередного запуска процесса имитации с новым вариан- том значений входных переменных (Simulation);
142 Часть 2. Имитационное моделирование • значение целевой функции, полученной при этом запуске (<>1> jective); • значения входных переменных, используемые при этом запусм (в нашем случае это одна переменная — Nk). Результаты поиска (значение целевой функции) располагаются и файле OPTQUEST.RES. Его можно просмотреть и проанализирован средствами системы Micro Saint как обычный файл результатов этап системы. Результаты оптимизации После завершения оптимизации главное окно OptQuest отображл ет трассу просмотренных вариантов решения оптимизационной зада чи (рис. 2.45) и выделяет лучший из них. Рис. 2.45. Главное окно OptQuest после завершения оптимизации Для просмотра результатов оптимизации в меню опций (Options) используются специальные средства интерпретации результатов п виде графика (Graph), просмотра переменных (View Variables) или данных времени исполнения (Run Data). Для рассматриваемого примера использование формы графика приводит к выводу окна рис. 2.46. По оси абсцисс отложена последовательность шагов процесса по- иска решения (Simulation) с запуском соответствующей MS-модели. График Current показывает текущие результаты, a Best — процесс улучшения текущих результатов. По оси ординат откладываются значения целевой функции (objec- tive). Эта ось может использовать два типа разметки: линейную (Line- ar/Linear) и логарифмическую (Log/Linear). Первая удобна при значи-
Оптимизация на имитационных моделях 143 Рис. 2.46. График результатов оптимизации юльной разнице в результатах оптимизации, вторая — при небольших отличиях между результатами. Выбор типа разметки открывается в меню Туре. Для рассматриваемого примера поиск начался со значения Nk = 2, рекомендованного в таблице выбора (рис. 2.42) в качестве нача- льного значения. При этом по результатам первой попытки (Simulati- on = 1) целевая функция определилась значением 6,00616. Вторая по- пытка (Simulation = 2) определялась значением Nk = 6, предложен- ным алгоритмом поиска (нами был выбран алгоритм No Neural Network — без нейронной сети). Имитация системы на втором шаге поиска привела к определению objective значением 0,673794, что су- щественно улучшило результат. Третья попытка использовала в каче- сгве пробного значения входной переменной Nk = 4, что опять-таки улучшило результат (objective = 0,510690). Четвертая попытка практи- чески не изменила результат третьей, пятая была связана (как легко догадаться) с дальнейшим снижением Nk (скорее всего Nk =1), что привело к резкому возрастанию длины очереди перед контролем и со- ответственно к резкому возрастанию значения целевой функции (ob- jective ~50). Это вызвало резкое ухудшение уже найденного приближе- ния к оптимуму, поэтому кривая Best не отреагировала на этот вари- ант. шестой и седьмой шаги были связаны с возвращением в окрестности уже использованных значений Nk = 4+5, что также не улучшило результата поиска. Просмотр результатов в окне View Variables связан с использова- нием диаграммы соотношений между значениями входных изменяе- мых переменных. Поскольку в нашем примере такая переменная то- лько одна, окно для анализа результатов для рассмотренного примера оказывается малоинформагивным (рис. 2.47).
144 Часть 2. Имитационное моделирование Рис. 2.47. Диаграмма сравнения переменных Третья форма интерпретации результатов (Run Data) связана с выводом подробной информации о последовательности шагов про цесса поиска, которые привели к наилучшему результату (последую щие шаги не рассматриваются). В нашем примере к наилучшему резу- льтату привели три шага поиска и соответственно три запуска MS-мо- дели. Рис. 2.48 иллюстрирует вывод информации в форме (Run Data). Оптимальный результат представлен первой записью. Она включает в себя: 1) номер шага в процессе поиска (si- mulation); 2) значения изменяемых переменных (Values of Variables); 3) среднее значение целевой функции (Average Objective). Это значение форми- руется по нескольким прогонам модели в случае, когда перед оптимизацией в уста- новках (Edit —> Settings) указывается ко- личество прогонов, большее 1. В нашем примере Run = 1, поэтому усредненное значение objective не отличается от обыч- ного; 4) стандартное отклонение от среднего (Standard Deviation). При количестве про- гонов, равном 1 (Run=l в Edit —> Settings) этот параметр равен 0; 5) индивидуальные значения целевой функции по каждому из прогонов MS-мо- дели (Individual Run Objective). В общем Run Data Ffe Edt Simulation: 3 Values of Variables: 4 Average Objective: 0,51069 Standard Deviation: 0 Individual Run Objectives Run 1 :0,51069 Simulation: 2 Values of Variables: 6 Average Objective: 0,673794 StandarcjOeviation: 0 Individual Run Objectives Run1 :0673794 Simulation: 1 Values of Variables: 2 Average Objective: 6,006163 Standard Deviation: 0 Individual Run Objectives Runt: 6,0061 S3 $ Рис. 2.48. Окно Run Data
Оптимизация на имитационных моделях 145 случае это список, в нашем примере прогон один, поэтому в списке только одна запись: (Run 1: 0,51069). После завершения оптимизации OptQuest предлагает внести изме- нения в MS-модель, связанные с установкой оптимальных значений изменяемых переменных. При согласии пользователя такое измене- ние вносится в календарь на момент системного времени clock = 0. При этом запуск MS- модели будет приводить к установке оптималь- ных значений изменяемых переменных. Рисунок 2.49 показывает со- держимое календаря с установленным OptQuest оптимальным значе- нием числа контролеров (Nk = 4). [ Е TV.MOD : Event Queue ' fieri Time Tag Type Event 0.000 0 © Nk := 4; r 0:001 0 © Nck:=Nk; 480.000 0 © KPD:=(Tsk/Nk)/480; 480.000 0 © objective:=Q_max+(l-KPD), halt0; Рис. 2.49. Содержимое календаря с установленным оптимальным значением числа контролеров (Nk = 4) Из сопоставления содержимого календарей MS-модели до и после оптимизации (рис. 2.49 и 2.40) становится понятным, почему мы установили оператор присваивания (Nck:=Nk) не в начальный мо- мент времени, а несколько позже. Контрольные вопросы и предложения 1. Что определяет функция objective в системе поиска оптимального решения на имитационной MS-модели? 2. В чем состоит принципиальное отличие целевой функции objective от целе- вой ячейки электронной таблицы? 3. Чем отличаются входные изменяемые переменные от остальных перемен- ных имитационной MS-модели? 4. Как учитываются при оптимизации границы значений изменяемых пере- менных? 5. Какое значение получаюг обычно входные переменные на первом шаге процесса поиска, если задано поле Suggested Value? 6. Какие переменные MS-модели могут использоваться при определении ограничений на пространство поиска в окне (Edit —> Constraints)? 7. Охарактеризуйте основные опции «Ускорителя нейронных сетей» и ситуа- ции, в которых их следует использовать.
146 Часть 2. Имитационное моделирование 8. В чем состоят отличия кривых Current и Best при представлении результа- тов оптимизации в виде графика? 9. Как интерпретируется термин Simulation в разметке оси абсцисс графика результатов имитации? 10. Как изменятся результаты оптимизации, если целевую функцию рассмат- риваемого примера определить следующим образом: objective:=Q_max? 11. Как изменятся результаты оптимизации, если целевую функцию рассмат- риваемого примера определить следующим образом: objective:=(l-KPD)? 12. Можно ли в качестве изменяемой переменной рассмотренной модели вы- брать переменную Q_max? Переменную State? Почему? 13. В чем состоят основные отличия между поиском оптимальных решений на электронных таблицах и имитационных моделях?
Задания по имитационному моделированию систем производственного и операционного менеджмента При составлении заданий была использована монография [9]. Звездочками отмечены задания повышенной сложности. Задание 1 Модель парикмахерской В парикмахерскую могут приходить клиенты двух типов. Клиенты первого типа желают только стричься. Распределение интервалов их прихода 35± 10 мин. Клиенты второго типа желают постричься и по- бриться. Распределение интервалов их прихода 60±20 мин. Парик- махер обслуживает клиентов в порядке «первым пришел — первым обслужен». На стрижку уходит 18±6 мин., а на бритье 10±2 мин. В парикмахерской оборудовано только одно место для обслужива- ния клиентов, менеджер рассматривает возможность установки второ- го дополнительного места. Методом имитационного моделирования определите, насколько целесообразно оборудование второго места и прием на работу второго парикмахера. Доходы от работы парикмахерской определяются количеством клиентов, обслуженных в течение рабочего дня (9 часов с часовым перерывом на обед) , убытки определяются временем простоев парик- махера (в отсутствие клиентов) и количеством необслуженных клиен- тов в очереди. Моделирование проведите для рабочей недели (6 дней по 8 ча- сов).
1^8 Задания по имитационному моделированию Задание 2 Модель обслуживания производственного участка На некоторой фабрике в кладовой работает один кладовщи <. Он выдает запасные части механикам, обслуживающим станки и устана J- ливающим эти части на станках, выходящих из строя. Время, необхо- димое для удовлетворения запроса механика, зависит от типа запас- ной части, причем запросы бывают двух категорий (см. таблицу). Каггория запроса И. провалы времени прихода механике» (сек) Время обслуживания (сек) 1 420±360 300+90 2 360±240 100±30 Кладовщик обслуживает механиков по принципу «первым при- шел — первым обслужен» независимо от категории запросов. Поскольку сломанный станок ничего не производит, простой ме- ханика в очереди приносит убыток 9 долл, в час (0,25 цента в секун- ду). Эта стоимость не зависит от того, за какой запасной частью ушел механик. Руководство считает, что среднее число механиков, простаи- вающих в очереди, можно уменьшить, если запросы категории 2 в кладовой будут удовлетворяться быстрее запросов категории 1, т. е. запрос категории 1 будет обслуживаться только в том случае, если в очереди нет ни одного запроса категории 2. (Очередь механиков упо- рядочена по приоритетам.) Постройте имитационную модель и смоделируйте работу системы обслуживания механиков в течение 8-часового рабочего дня. Модель должна дать ответ на следующие вопросы. I. Уменьшится ли среднее число механиков, ожидающих в очере- ди, при приоритетном обслуживании по сравнению с бесприоритет- ным? 2. Сколько денег будет сэкономлено за рабочий день при приори- тетном обслуживании?
Задания по имитационному моделированию 149 Задание 3 Модель мойки автомобилей Необходимо решить, какое число мест на стоянке следует отвести для автомобилей, ожидающих мойки. Интервалы времени между при- ходами автомобилей на мойку распределены экспоненциально со средним значением, равным 5 мин. Время мойки автомобиля также распределено экспоненциально со средним значением в 4 мин. Если клиенты приезжают на мойку и не находят свободного места для ожи- дания, они уезжают и моют свой автомобиль в другом месте. Исследуйте на имитационной модели, как зависит доля обслужен- ных и уехавших клиентов от числа мест на стоянке. Имитацию прове- дите для одного, двух и трех мест на стоянке для машин, ожидающих мойки. Каждая конфигурация должна имитироваться для полного ра- бочего дня (8 часов без перерыва). Поскольку необслуженные клиен- ты и пустующие места на стоянке приносят убытки, определите на модели такое количество мест, которое минимизирует эти убытки.
150 Задания по имитационному моделированию Задание 4 Модель технического контроля изделий Собранные телевизионные приемники после сборки проходят ис- пытания на станции технического контроля. Если в процессе контро- ля. оказывается, что функционирование телевизора ненормально, его переправляют на участок наладки, после которой он вновь возвраща- ется на станцию контроля для повторной проверки. После одной или нескольких проверок телевизор попадает в цех упаковки. Описанная ситуация иллюстрируется схемой, приведенной на рисунке. Телевизионные приемники попадают на станцию контроля каж- дые 5±2 мин. На станции работают два контролера, каждому из них на проверку телевизора нужно 9+3 мин. Примерно 85 % телевизоров проходят проверку успешно и попадают в цех упаковки, остальные 15 % попадают на участок наладки, на котором работает один рабо- чий-наладчик. Наладка занимает 30±10 мин. Контролеры Постройте имитационную модель системы и оцените с ее помо- щью, сколько мест на стеллажах необходимо предусмотреть на стан- ции технического контроля и на участке наладки. На одном месте на стеллаже может храниться один телевизор, ожидающий контроля или наладки, соответственно.
Задания по имитационному моделированию 151 Задание 5 Модель продовольственного магазина Небольшой продовольственный магазин состоит из трех прилав- ков и одной кассы на выходе из магазина. Время между приходами покупателей распределено экспоненциально со средним значением 75 сек. Войдя в магазин, каждый из покупателей берет корзину и может обойти один или несколько прилавков, отбирая продукты. Вероят- ность обхода конкретного прилавка приведена в таблице. Время, тре- буемое для обхода прилавка и число покупок, выбранных у прилавка, распределены равномерно. Подробная информация по каждому из прилавков также приведена в таблице. Прилавок Вероятность покупок у прилавка Время, затраченное на по- купки у прилавка(сек) Число покупок, сделан- ных у прилавка (штук) 1 0.78 120±60 3±1 | 2 0.55 150±30 4±1 3 0.82 120±45 5±1 | После того как товар отобран, покупатель становится в очередь к кассе. Уже стоя в очереди, покупатель может захотеть сделать еще 2±1 покупки. Время обслуживания покупателя в кассе пропорционально числу сделанных покупок, на одну покупку уходит 3 сек для провер- ки. После оплаты продуктов покупатель оставляет корзину и уходит. Постройте модель обслуживания покупателей в магазине, проведи- те моделирование 8-часового рабочего дня, определите нагрузку касси- ра и максимальную длину очереди перед кассой. Определите максима- льное число корзин, одновременно находящихся у покупателей.
152 Задания по имитационному моделированию Задание 6 Модель использования оборудования на нескольких работах Производство изделий определенного вида включает в себя длите- льный процесс индивидуального изготовления, заканчивающийся ко- ротким периодом обжига изделия в печи. Наименование операции Необходимое время выполнения (мин.) Изготовление изделия 30±5 Обжиг изделия в печи 8±2 Поскольку содержание печи обходится довольно дорого, несколь- ко рабочих, каждый из которых изготовляет «свое» изделие, использу- ют одну печь, в которой одновременно можно обжигать только одно изделие. Рабочий не может начать новую работу, пока не вытащит из печи законченное изделие. Таким образом, рабочий трудится в следующем режиме. 1. Изготавливает изделие. 2. Ожидает возможности использования печи по принципу «пер- вым пришел — первым обслужен». 3. Использует печь. 4. Переходит к изготовлению нового изделия. Время, необходимое для выполнения различных операций, и их стоимость приведены в таблицах. Постройте имитационную модель и определите на ней число ра- бочих, использование которых приносит максимальную прибыль. Статья затрат Размер затрат ($) Зарплата сборщика 3,75$ в час Содержание печи (за 8-часовой рабочий день независимо от степени ис- пользования) 80$ Стоимость материала, расходуемого на одно изделие 2$ Стоимость готового изделия 7$ Моделирование проведите для 40 часов рабочего времени, пред- полагая, что в течение рабочего дня нет перерывов и рабочие дни идут подряд без выходных. За единицу модельного времени следует принять 1 мин.
Задания по имитационному моделированию 153 Задание 7* Модель управления производственным участком На трикотажной фабрике 50 швейных машин работают по 8 часов в день 5 дней в неделю. Любая из этих машин может в любой момент времени выйти из строя. В этом случае ее заменяют резервной маши- ной либо сразу (если есть резерв), либо по мере его появления. Тем временем сломанную машину отправляют в ремонтную мастерскую, где ее чинят и возвращают в цех, но уже в качестве резервной. В су- ществующем замкнутом цикле движения машин можно выделить 4 фазы (см. рис.). Предварительные прикидки по реорганизации производства пока- зывают, что для организации надежной и выгодной работы следует использовать 59 машин: 50 из них используются непосредственно в производстве, 5 составляют резерв (так называемый «горячий» ре- зерв), 2 могут одновременно ремонтироваться и 2 находиться в состо- янии ожидания ремонта. Из таких предположений следует, что в ре- монтном подразделении следует держать не менее двух рабочих. Резерв машин Машины, находящиеся в работе Машины, находящиеся в ремонте Управляющий хочет знать, насколько оправданы такие прикидки, сколько рабочих следует нанять для работы в мастерской, сколько ма- шин арендовать для использования в качестве резервных, чтобы ими можно было заменить собственные в случае отказа, какую платить за это арендную плату. Опыт эксплуатации машин на аналогичных предприятиях пока- зывает, что на ремонт сломанной машины уходит примерно 7±3 часа. Время безотказной работы машины (т. е. время от отказа до следую - щего отказа, так называемая «наработка на отказ») составляет при-
154 Задания по имитационному моделированию мерно 157±25 часов и не зависит от того, собственные это машины или арендуемые. Плата за аренду машин не зависит от того, работают они или про- стаивают. Почасовой убыток от снижения уровня производства при исполь- зовании менее 50 машин в производстве составляет примерно 20$ на неработающую машину. Оплата рабочих в мастерской — 3,75$ в час. За машины, находящиеся в резерве, надо платить по 30$ в день. Постройте модель системы и исследуйте на ней организацию сис- темы с целью определения минимальной стоимости эксплуатации.
Задания по имитационному л оделировёнию 155 Задание 8 Задача о балансе оборудования После завершения литья в литейном цехе отливка должна быть перенесена в цех, где происходит ее окончательная обработка. Для выполнения этой обработки служит так называемый агрегат доводки, которым управляет один оператор. Доводка состоит из двух процедур, условно называемых «процедура 1» и «процедура 2». В делом совокуп- ность операций по доводке отливки определяется следующей после- довательностью этапов. Номер этапа по доводке Время выполнения этапа (мин.) 1 8О±20 2 15±5 3 95±15 4 30+5 1. Выполнить процедуру 1. 2. Повернуть отливку. 3. Выполнить процедуру 2. 4. Кантование отливки: а) выгрузить обработанную отливку из агрегата; б) уложить обработанную отливку; в) поднять следующую необработанную отливку из штабеля необ- работанных стлпвок; г) загрузить ее в агрегат; д) вернуться к этапу 1. Для выполнения второго и четвертого этапов требуется подъем- ный кран, во время выполнения первого и третьего этапов этот кран простаивает. Распределение времени, затрачиваемого на выполнение этапов по доводке отливки, приведено в таблице. Поскольку этапы 1 и 3 требуют относительно много времени, простой крана может оказаться значительным, если он будет обслу- живать только один агрегат доводки. С другой стороны, если кран бу- дет обслуживать несколько агрегатов, могут возникнуть простои агре- гатов из-за ожидания освобождения крана. Руководство цеха доводки интересует вопрос, при каком соотно- шении кранов и агрегатов достигается баланс в использовании обору- дования, который заключается в минимальном простое как кранов, так и агрегатов доводки. Постройте имитационную модель, проведите моделирование для 40-часовой рабочей недели и постарайтесь определить на модели та- кое соотношение числа кранов и агрегатов доводки, которое приво- дит к минимальному дисбалансу.
156 Задания по им итационному моделированию Задание 9 Сравнение альтернативных вариантов систем обслуживания в банке Распределение времени между приходами клиентов в банк описы- вается экспоненциальным распределением со средним значением 18 сек. В течение рабочего дня открыто 8 окошек кассиров. К каждому кассиру стоит очередь. В момент прихода каждый клиент встает в очередь, которая являемся самой короткой. После обслуживания кли- ент уходит из банка. Обслуживание в кассе имеет 5 различных видов [кассовых опера- ций). Зремя выполнения каждой из операций имеет экспоненциаль- ное распределение. Вероятности обслуживания клиента с выполнени- ем определенной операции и соответствующее среднее время выпол- нения операций приведены в табл. 1. Таблица 1 Вид обслуживания (кассовая операция) Вероятность обслуживания Среднее время выполнения операции (сек) 1 0,10 45 2 0,19 75 3 0,32 100 4 0,24 150 5 0,15 300 Ни один из клиентов не требует выполнения более чем одной кассовой операции за один визит в банк. Руководство банка хотело бы сократить время ожидания клиентог без привлечения к работе дополнительных кассиров. Для этого пред- лагается организовать «быструю» очередь. При такой организации все приходящие клиенты становятся в общую очередь, и, когда какой-ли- бо кассир освобождается, клиент, стоящей в очереди первым, идет к окошку этого кассира. Построить имитационную модель и сравнить на ней оба варианта организации обслуживания клиентов в банке. Моделирование каждо- го варианта должно охватывать пять 6-часовых рабочих дней.
Задания по имитационному моделированию 157 Задание 10 Сравнение альтернативных вариантов систем обслуживания в банке (2) Распределение времени между приходами клиентов в банк описы- вается экспоненциальным распределением со средним значением 18 сек. В течение рабочего дня открыто 8 окошек кассиров. Каждый кассир выполняет только одну из пяти возможных операций, при этом в очередь к нему встают только те клиенты, которые нуждаются в выполнении соответствующей операции. Время выполнения каждой из операций имеет экспоненциальное распределение. Вероятности обслуживания клиента с выполнением определенной операции и соответствующее среднее время выполне- ния операций приведены в таблице. Вад обслуживания (кассовая операция) Вероятность обслуживания Среднее время выполнения операции(сек) 1 0,10 45 2 0,19 75 3 0,32 100 4 0,24 150 5 0,15 300 Приведенная ниже таблица содержит один из возможных вариан- тов распределения кассиров по операциям. Окно кассира, в котором выполняется операция 1 2 3 4 5 6 7 3 Вид обслуживания (кассовая операция) 1 2 3 3 4 4 5 5] Ни один из клиентов не требует выполнения более чем одной кассовой операции за один визит в банк. Попытайтесь найти такой вариант распределения кассовых операций по кассирам, при котором ожидание клиентов было бы минимальным.
158 Задания по имитационному моделированию Задание 11 * Модель производственного цеха Цех располагает шестью группами различного оборудования, в каждой группе содержится оборудование определенного типа (см. табл. 1). Таблица 1 Номер группы Тип оборудования Число единиц оборудования 1 Отливочные блоки 14 2 Токарные станки 5 3 Строгальные станки 4 4 Сверлильные станки 8 5 Фрезерные станки 16 6 Шлифовальные станки 4 Цех производит 3 типа деталей. Каждый тип детали изготовляется по технологии, которая характеризуется определенной последователь- ностью этапов выполнения технологических операций, а каждый этап связан с использованием единицы определенного оборудования (см. табл. 2). Все время выполнения операций распределено по экспонен- циальному закону. Таблица 2 Тип детали Технология изготовления детали Среднее время выполнения опе- рации (мин.) последовательность этапов оборудование, используемое на этале 1 Отливочный блок Станки: 125 1 2 строгальный 35 3 токарный 20 4 шлифовальный 60 Станки: 2 1 фрезерный 105 2 сверлильный 90 3 токарный 65 1 Отливочный блок Станки: 235 з 2 фрезерный 250 3 сверлильный 50 4 строгальный 30 j 5 шлифовальный - - 25 _
Задания по имитационному моделированию 159 Объем заказа для цеха на изготовление деталей в течение 8-ми ча- сового рабочего дня составляет в среднем 50 деталей и описывается распределением Пуассона. 24 % этого объема приходится на детали 1-ого типа, 44 % — детали 2-ого типа и оставшиеся — 3- его типа. Построить имитационную модель, провести моделирование для пяти 40-часовых рабочих недель и в конце каждой недели вывести в файл результатов: • распределение времени выполнения заказа по типам деталей; • распределение количества изготовленных деталей по типам де- талей; • распределение количества незавершенных работ (неизготовлен- ных деталей) по типам деталей.
160 Задания по имитационному моделированию Задание 12* Реорганизация заправочной станции Интервалы времени между прибытиями автомашин на заправоч- ную станцию характеризуются распределением, приведенным в табл. 1. Таблица 1 Интервалы времени между прибытиями (сек) Суммарная отно- сительная частота Интервале зреме- ни между прибы- тиями (сек) Суммарная отно- сительная частота Меньше 0 0 400 0,81 100 0,25 500 0,9 200 0,43 600 1,0 300 0,69 Время обслуживания автомашин подчинено распределению, при- веденному в табл. 2. Таблица 2 Время обслуживания (сек) Суммарная отно- сительная частота Время обслужива- ния (сек) Суммарная отно- сительная частота Меньше 100 0,0 500 0,77 200 0,06 600 0,83 300 0,21 700 1,0 400 0,48 Заправочная станция оборудована пятью бензоколонками и от- крыта с 7 ч до 19 ч. В 19 ч выключается свет. Машины, приехавшие после 19 ч, не обслуживаются, а машины, попавшие на заправку до 19 ч и стоящие в очереди, должны быть обслужены. Водитель машины останавливается на обслуживание, если он на- ходит свободную колонку или колонку, освобождения которой ожи- дает не более одной машины. В против, юм случае он уезжает и тем самым уменьшает потенциально возможную прибыль заправочной станции. Прибыль с одной обслуженной машины составляет в среднем $1. Служащий, работающий на заправочной станции, может обслуживать не только одну, но и несколько бензоколонок (в порядке очереди).
Задания по имитационному моделированию 161 Заработок служащего составляет $2,5 в час и выплачивается толь- ко за 12-часовой рабочий день (обслуживание оставшихся машин по- сле 19 ч не оплачивается). Постоянные расходы на бензозаправке со- ставляют $75 в день. Владельцу колонки нужно определить, сколько служащих следует нанять для того, чтобы максимизировать дневную прибыль. Построить имитационную модель системы и провести моделиро- вание для каждого числа нанятых служащих в течение 5 рабочих дней.
162 Задания по имитационному моделированию Задание 13 Модель автобусной остановки По расписанию автобус должен приходить на остановку каждые 30 мин. Ориентировочно точность прибытия можно оценить величи- ной ±7 мин. Приход пассажиров на автобусную остановку описывается моде- лью простейшего потока с интенсивностью 24 человека в час. Автобус вместимостью 50 человек в момент своего прибытия ве- зет 35±15 пассажиров. Выходят на остановке 5±2 пассажира, а входя г в автобус столько ожидающих, сколько возможно. Для высадки пас- сажира требуется 4±3 сек, а для посадки 8±4 сек. Ожидающие посад- ки не входят в автобус до тех пор, по не выйдут все желающие, посад- ка осуществляется в порядке очереди. Пассажиры, которым не удалось сесть в автобус, делятся на две категории: • «нетерпеливые» (уходят с остановки и больше не возвраща- ются); • «терпеливые» (ждут следующего автобуса). Любой пассажир, приходящий на остановку с вероятностью 0,5, относится к «терпеливым». Но после каждой неудачной попытки сесть в автобус вероятность его «терпения» уменьшается вдвое. Соот- ветственно увеличивается вероятность его превращения в «нетерпели- вого» и ухода с остановки при невозможности сесть в следующий ав- тобус. Построить модель, имитирующую события на автобусной оста- новке, и определить распределение числа необслуженных пассажиров на один автобус. Моделирование провести для 100 прибытий автобусов.
Задания по имитационному моделированию 163 Задание 14 Обслуживание танкеров в порту Портовый грузооборот связан с заливкой танкеров сырой нефтью для ее дальнейшей транспортировки. Имеется возможность заливать одновременно до трех танкеров. Танкеры, прибывающие в порт каж- дые 11 ±7 часов, могут быть одного из трех различных типов. Относи- тельная частота прихода танкеров различных типов и требуемое время для их заливки приведены в таблице. Тип танкера Относительная частота Время заливки (ч) 1 0,25 18±2 2 0,55 24±3 3 0,20 36+4 Прибывшему танкеру любого типа для подхода к стоянке и отхода от нее требуются услуги буксира. В порту имеется один буксир, кото- рый транспортирует танкер в один конец примерно за 1 час. В этой части океана часто штормит, а в период шторма для танке- ра невозможен ни подход к стоянке, ни отход от нее. Продолжитель- ность шторма 4±2 часа, время между окончанием шторма и началом следующего подчиняется экспоненциальному распределению со сред- ним значением в 48 часов. Грузоотправитель намеревается заключить контракт на перевозку нефти из этого порта. Он считает, что 5 танкеров второго типа могли бы полностью удовлетворить условия контракта. После заливки и от- хода от стоянки они должны плыть в пункт назначения, выгружать нефть, возвращаться в порт для новой заправки и т. д. График движе- ния танкеров грузоотправителя предусматривает, что время их пребы- вания в пути (от порта заправки до порта назначения и обратно), включая выгрузку нефти, должно составлять 240±24 часа. Построить модель, имитирующую работу порта, и определить на ней, как повлияет портовый грузооборот на график движения этой группы танкеров. Моделирование провести для 1 года перевозок и со- брать на модели статистику времени отставания от графика.
164 Задания по имитационному моделированию Задание 15 Задача о библиотеке В библиотеке без открытого доступа любой желающий получип. книгу должен представить библиотекарю, работающему у стола вида чи, листок запроса. После этого библиотекарь идет в книгохранили ще, ищет там книгу и возвращается с ней к столу выдачи. Затем про исходит процедура выдачи, после чего посетитель уходит с книгой. Если обслуживания ожидают несколько человек, то библиотекарь мо- жет сэкономить время, забирая листки запроса сразу у нескольких чи тателей. Построить имитационную модель выдачи книг в библиотеке, реа лизующую следующие условия. 1. Поток посетителей к столу выдачи простейший с интенсивно стью 30 человек в час. 2. Каждый посетитель хочет получить ровно одну книгу. 3. Обслуживание посетителей идет в порядке очереди. 4. Число библиотекарей, работающих у стола выдачи, должно быть переменным. 5. Библиотекарь одновременно берет листки знпроса у нескольких посетителей, стоящих в очереди, но не более чем у четырех. 6. Если к моменту прихода посетителя свободны 2 или более биб- лиотекарей, то его обслуживает тот из них, кто был свободен дольше других. 7. Временные характеристики модели: • время, затрачиваемое на прохождение в один конец от стола выдачи до книгохранилища 1 ±0,5 мин.; • время поиска в книгохранилище одной, двух, трех и четырех книг распределено по нормальному закону со средним соот- ветственно 3, 6, 9 и 12 мин. и стандартным отклонением, равным 20 % от среднего; • время оформления выдачи после возвращения библиотекаря из хранилища 2±1 мин на человека. Определить на модели: 1) распределение времени, затраченного посетителем на ожидание выдачи книги; 2) распределение числа листков запроса, забираемых библиотека- рем перед уходом в книгохранилище. Провести моделирование для случаев, когда у стола выдачи рабо- тают 3, 4 и 5 библиотекарей. Для каждого случая продолжать модели- рование до тех пор, пока не будут полностью обслужены 100 посети- телей.
Задания по имитационному моделированию 165 Задание 16 Задача о запасных деталях В станке используют деталь, которая время от времени выходит из строя. Как только деталь отказывает, станок выключают, отказав- шую деталь заменяют другой (если она есть), и станок вновь включа- ют. Неисправные детали могут быть отремонтированы. Наладчик станка отвечает за съем и установку деталей. Ремонтом снимается механик, в обязанности которого также входит ремонт других блоков. Эти блоки поступают в ремонтное подразделение в среднем с интенсивностью 1 блок за 9 ч (простейший поток). Время, требуемое на ремонт блока, 8±4 ч. Блоки имеют более высокий прио- ритет при ремонте, чем рассматриваемые детали. Организация описываемой системы представлена следующим ри- сунком. Механик Время работы детали распределено нормально со средним 350 ч и стандартным отклонением 70 ч. Съем детали со станка занимает 4 ч, время установки новой детали — 6 ч. Время ремонта детали распреде- лено нормально со средним 8 ч и стандартным отклонением 0,5 ч. Построить модель системы и использовать ее для определения по- лезного времени работы станка как функции от числа запасных дета- лей, имеющихся в системе. Исследовать систему для случаев, когда запасных деталей нет, а также, когда имеются 1, 2 и 3 запасные детали. Для каждого случая выполнить прогон модели в течение 5 лет при условии 40- часовой рабочей недели.
166 Задания по имитационному моделированию Задание 17* Модель станции технического обслуживания (СТО) На небольшой СТО производят техосмотр и связанный с ним рс монт транспортных средств, который выполняет один механик. Рабо чий день механика составляет 8 часов. Число автомобилей, прибыва ющих ежедневно на СТО, распределено равномерно от двух до четы рех. Время, необходимое для обслуживания первой машины, распределено равномерно от 1,5 до 2,5 часов. Машины, которые л< удалось обслужить в течение рабочего дня, остаются на СТО, а работа по их ремонту продолжается на следующий день. Полицейские машины могут прибыть на СТО в любое время су ток. В среднем они приезжают раз в 48 часов, и обслуживаются меха ником вне очереди. Более того, при появлении полицейской машины механик прекращает обслуживание обычных машин и начинает занч маться обслуживанием прибывшей полицейской машины. После за вершения такого обслуживания он возвращается к прерванным рабо там по ремонту. Если СТО закрыта в момент приезда полицейском машины, ее оставляют на станции до 8 ч утра (время начала работы) Время обслуживания полицейских машин экспоненциально со сред- ним 2,5 часа. Постройте имитационную модель СТО и оцените распределение числа полицейских машин, находящихся в ремонте. Выполнить про- гон модели для 25 рабочих дней, предполагая, что механик работает без перерывов.
Задания по имитационному моделированию 167 Задание 18 Модель выполнения работ по сетевому графику На рисунке изображен сетевой график выполнения работ брига- дой рабочих. Узел 1 определяет начало выполнения комплекса работ, узел 7 — завершение работ. Узел 2 определяет завершение работы 1—2, для выполнения которой требуются 4 рабочих и 14±6 дней. Остальные узлы и дуги интерпретируются аналогично. Информация о всех дугах (работах) и требуемых для их выполне- ния ресурсах приведена в таблице. Il Дуга (работа) Требуемое количество рабочих Время выполнения работы (дни) 1-2 4 14±6 1-3 3 20±9 2-4 3 10±3 2-5 5 18+4 3-4 2 22+5 3-6 1 25±7 4-5 0 0 4-7 4 15±5 5-7 2 8±3 6-7 4 10±3
168 Задания по имитационному моделированию Последовательность выполнения работ определяется двумя уели виями: наличие количества рабочих, необходимого для начала рабо, и синхронизации. Например, работы 1—2 и 1—3 могут быть начап.1 одновременно, если позволяют ресурсы рабочей силы. Если же таких ресурсов не хватает, то выполняется в первую очередь та работа, дли которой требуется больше рабочих (по принципу максимальной заня тоста). Синхронизация сводится к простому правилу: любая работа мо жег быть начата, если все предшествующие ей работы завершены. На пример, работа 4—7 может быть начата только после того, как завер шены работы 2—4 и 3—4. Пунктирная дуга (на рисунке дуга 4—5) определяет фиктивную работу, требующую 0 ед.времени и 0 рабочих Такая дуга используется в графике только как условие синхронизации (работа 5—7 может быть начата только по завершении работ 2—5 и 4-5). Постройте модель последовательности работ, оцените распределе ния времени выполнения всего комплекса работ и времени простоя рабочих (измеряется в человеко-днях) для случаев, когда в бригаде 5 человек, 6 человек, 8 человек. В каждом из этих случаев проведите имитацию для 100 циклоп полного выполнения комплекса работ.
Задания по имитационному моделированию 169 Задание 19* Модель выполнения работ по сетевому графику с ресурсными ограничениями На рисунке изображен сетевой график выполнения дорож- но-строительных работ бригадой рабочих. Подобный график описан в вдании 18. Информация о всех дугах (работах) и требуемых для их выполне- ния ресурсах приведена в таблице. Песок и гравий, требуемые для выполнения работ, завозятся на строительный участок 5-тонными грузовиками, в среднем за 10 дней работы приходит 4 грузовика. Песок перевозится до покрытия нормы, необходимой для производства всех песчаных работ. После полного завершения таких работ начинается перевозка гравия с такой же ин- тенсивностью. В каждом из этих случаев проведите имитацию для 100 циклов полного выполнения комплекса работ. Дуга (работа) Требуемое количе- ство рабочих Время выполнения работы (дни) Требуемое количе- ство песка (т) Требуемое количе-1 ство гравия (т) 1 1 1-2 4 14±6 28 I 1-3 3 20±9 50 1 2-4 3 20 | 2-5 5 18±4 36 3-4 2 22±5 46 3-6 1 257 - 55 ! 4-6 0 135 - 30 5-6 2 8±3 28
170 Задания по имитационному моделированию Постройте модель производства дорожно-строительных рабог оцените распределения времени выполнения всего комплекса работ и времени простоя рабочих (измеряется в человеко-днях) для случаен, когда в бригаде 5 человек и 8 человек. Статистика должна собираться раздельно для простоев из-за нехватки рабочих рук и простоев из-за нехватки материалов.
Задания по имитационному моделированию 171 Задание 20 Модель процесса сборки изделий рабочими с невысокой квалификацией На участок сборки изделий поступают узлы трех типов: А, В и С. Время между поступлениями этих узлов на участок сборки задано в табл. 1. Таблица 1 Тип узла Время между поступлениями узлов А 15+5 В 6±2 С 10+3 Собираемое изделие состоит из двух узлов типа А, пяти узлов типа В и трех узлов типа С. Технологическая схема операции сборки приведена на рисунке. Окружности представляют операции сборки, квадра-ы — исходные и собираемые узлы, стрелки определяют после- довательность сборки. Например, операция 1 связана со сборкой узла D, состоящего из одного узла А и двух узлов В, она может начаться только при наличии этих узлсв на участке сборки. Операции 1 и 2 могут выполняться од- новременно (разными рабочими), операция 3 связана с приведением в соответствие (подгонкой) узлов D и Е, она может начаться только при готовности обоих узлов. Операция 4 может выполняться только после операции 3 и т. д. (см. рисунок). В табл. 2 приведены времена выполнения операций. Таблица 2 1 Операция Время выполнен1.я (мин.) I 1 15±3 2 18±3 3 5+2 4 10+2 5 15±4 I 6 8+3
172 Задания по имитационному моделированию Каждая из операций выполняется одним рабочим. Посколгп квалификация рабочих позволяет им выполнять только один вид от рации, за каждой операцией закреплен один рабочий. Такая оргаип зация процесса сборки предполагает, что рабочий, завершивший one рацию, ожидает возможности вновь начать эту операцию. Например, рабочий, завершивший операцию 1, ожидает, когда ii>i участке сборки будут в наличии два узла В и один узел А. Рабочий выполняющий операцию 3, для ее выполнения должен дождаться к> товности узлов D и Е; рабочий, выполняющий операцию 4, должен дождаться завершения операции 3, готовности узла D и наличия узла В и т. д. Смоделировать процесс сборки изделий. Имитацию провести на протяжении 10 8-часовых рабочих дней. Определить: 1) распределение времени простоя каждого из 6 рабочих; 2) распределение количества изделий, собираемых за рабочий день.
Задания по имитационному моделированию 173 Задание 21 Модель процесса сборки изделий (2) На участок сборки изделий поступают узлы трех типов: А, В и С. Время между поступлениями этих узлов на участок сборки задано в табл. 1. Таблица 1 Тип узла Время между поступлениями узлов А 15+5 | В 6±2 С 10±3 | Собираемое изделие состоит из двух узлов типа А, пяти узлов типа В и трех узлов типа С. Технологическая схема операции сборки приведена на рисунке. Окружности представляют операции сборки, квадраты — исходные и собираемые узлы, стрелки определяют после- довательность сборки. Например, операция 1 связана со сборкой узла D, состоящего из одного узла А и двух узлов В, она может начаться только при наличии этих узлов на участке сборки. Операции 1 и 2 могут выполняться од- новременно (разными рабочими), операция 3 связана с приведением в соответствие (подгонкой) узлов D и Е, она может начаться только при готовности обоих узлов. Операция 4 может выполняться только после операции 3 и т. д. (см. рисунок).
174 Задания по имитационному моделированию В табл. 2 приведены времена выполнения операций. Таблица 2 Операция Время выполнения (мин.) 1 15±3 2 18±3 3 5+2 4 10+2 5 15±4 6 8+3 Каждая из операций выполняется одним рабочим. Поскольку квалификация рабочих позволяет им выполнять только один вид опе- рации, за каждой операцией закреплен один рабочий. Такая органи- зация процесса сборки предполагает, что рабочий, завершивший опе- рацию, ожидает возможности вновь начать эту операцию. Например, рабочий, завершивший операцию 1, ожидает, когда на участке сборки будут в наличии два узла В и один узел А. Рабочий, выполняющий операцию 3, для ее выполнения должен дождаться го- товности узлов D и Е; рабочий, выполняющий операцию 4, должен дождаться завершения операции 3, готовности узла D и наличия узла В и т. д. Смоделировать процесс сборки изделий. Имитацию провести на протяжении 10 8-часовых рабочих дней. Определить: 1) распределение времени простоя каждого из 6 рабочих; 2) распределение количества изделий, собираемых за рабочий день.
Задания по имитационному моделированию 175 Задание 22* Модель процесса сборки с использованием высококвалифицированных рабочих На участок сборки изделий поступают узлы трех типов: А и В. Время между поступлениями этих узлов на участок сборки задано в табл. 1. Таблица 1 Собираемое изделие состоит из двух узлов типа А и пяти узлов типа В. Технологическая схема операции сборки приведена на рисунке. Окружности представляют операции сборки, квадраты — исход- ные и собираемые узлы, стрелки определяют последовательность сборки. Например, операция 1 связана со сборкой узла D, состоящего из одного узла А и двух узлов В, она может начаться только при нали- чии этих узлов на участке сборки. Операции I и 2 могут выполняться одновременно (разными рабочими), операция 3 связана с приведени- ем в соответствие (подгонкой) узлов D и Е, она может начаться толь- ко при готовности обоих узлов. Операция 4 может выполняться толь- ко после операции 3 и т. д. (см. рисунок). В табл. 2 приведены време- на выполнения операций.
176 Задания по имитационному моделированию Таблица 2 Операция Время выполнения (мин.) 1 15±3 18±3 3 512 4 10±2 5 15±4 6 8±3 Каждая из операций выполняется одним рабочим, а рабочие до- статочно квалифицированы, чтобы выполнить любую из технологиче- ских операций. При этом рабочий, завершивший, например, выпол- нение операции 1 (собрав узел D) и не имеющий возможности при- ступить к выполнению операции 3 (по причине неготовности узла Е), может приступить к выполнению операции 6, если к этому моменту времени готов узел G и имеется в наличии узел В. В общем случае ра- бочий, завершающий операцию, может приступить к выполнению любой операции из тех, которые готовы к выполнению. Выбор, к ка- кой операции приступить, производится на основе приоритетов опе- раций. Приоритет операции тем выше, чем ближе операция к концу технологической цепочки, т. е. наиболее приоритетна операция 6, а операции 1 и 2 имеют одинаковый приоритет. Смоделировать процесс сборки изделий для случаев, когда в нем участвуют 3, 4, 5 или б рабочих. Для каждого из этих случаев провести имитацию процесса сборки на протяжении 10 8- часовых рабочих дней. Определить: 1) распределение времени простоя рабочих (в человеко-минутах); 2) распределение количества готовых изделий, собираемых за один рабочий день.
Задания по имитационному моделированию 177 Задание 23* Модель дисбаланса производства комплектующих для сборки изделий квалифицированными рабочими Исследовать процесс сборки изделий, описанный в задании 22, для случая, когда в этом процессе участвуют 4 квалифицированных рабочих. В результате имитации определить распределения количества уз- лов типов А и В, находящихся на участке, но не востребованных для сборки в течение рабочего дня (распределения остатков). Эти распре- деления определяют дисбаланс производства комплектующих узлов. Поскольку такой дисбаланс связан в общем случае с дополнительны- ми расходами, целесообразно так организовать производство комп- лектующих узлов, чтобы дисбаланс был минимальным. Предположите, что узлы типов А и В производятся на двух поточ- ных линиях, обеспечивающих участок сборки, и определите на моде- ли производительность этих линий и соответственно время между по- ступлениями узлов на участок сборки (см. табл. 1 задания 22), обеспе- чивающие минимальный дисбаланс в процессе сборки.
178 Задания по имитационному моделированию Задание 24 Модель дисбаланса производства комплектующих для сборки изделий неквалифицированными рабочими Исследовать процесс сборки изделий, описанный в задании 20. В результате имитации определить распределения количества узлов типов А, В и С, находящихся на участке, но не востребованных для сборки в течение рабочего дня (распределения остатков). Эти распре- деления определяют дисбаланс производства комплектующих узлов. Поскольку такой дисбаланс связан в общем случае с дополнительны- ми расходами, целесообразно так организовать производство комп- лектующих узлов, чтобы дисбаланс был минимальным. Предположите, что узлы типов А, В и С производятся на трех по- точных линиях, обеспечивающих участок сборки, и определите на мо- дели производительность этих линий и соответственно время между поступлениями узлов на участок сборки (см. табл. 1 задания 20), обес- печивающие минимальный дисбаланс в процессе сборки.
Задания по имитационному моделированию 179 Задание 25 Модель транспортной развязки На рисунке приведена схема регулируемого перекрестка. В на- правлениях А и С организовано 2- рядное движение транспортных средств, в направлениях В и D — однорядное. В направлениях А и С из правого ряда возможно движение прямо и направо, а из левого ряда — прямо и налево. В направлениях В и D движение возможно только в прямом направлении. Транспортные средства, делающие ле- вый поворот, должны предварительно пропустить весь транспорт, двигающийся во встречном направлении. Общие характеристики транспортных потоков приведены в таб- лице. I • | Направление Интенсивность потоков (ТС/мин) Распределение ТС по направлениям А 7 Прямо 60 % Направо 20 % Налево 20 % В 3 С 8 Прямо 80 % Направо 15% Налево 5 % D 4
180 Задания по имитационному моделированию Любое транспортное средство перед перекрестком перестраивает- ся (меняет ряд движения) в соответствии с требуемым направлением. Средства, движущиеся в прямом направлении, выбирают ряд движе- ния по принципу наименьшего количества впереди стоящих машин. Светофор меняет красный свет на зеленый и наоборот через 1 ми- нуту. Влиянием желтого сигнала светофора пренебречь. Для этого предположить, что автомобиль, выехавший на перекресток на зеле- ный сигнал светофора, благополучно завершает проезд перекрестка независимо от последующей смены сигнала светофора. Время проезда через перекресток составляет 10±5 сек. Построить модель регулируемого перекрестка и определить на ней распределения времени задержки транспортных средств, следую- щих в каждом из четырх направлений. Прогон модели выполнить для 8 часов.
Задания по имитационному моделированию 181 Задание 26* Модель транспортной развязки (2) На рисунке приведена схема кольцевой развязки перекрестка. Движение по кольцу возможно только против часовой стрелки (пра- востороннее движение). Любое транспортное средство движется по кольцу до правого по- ворота, определяющего необходимое направление дальнейшего дви- жения. Кольцо выполняет роль главной дороги, т. е. любое транспор- тное средство, ожидающее возможности выехать на кольцо, должно уступить дсрогу тпанспортгюму средству, движущемуся по кольцу. При построении модели в качестве условия выезда на кольцо сле- дует использовать условие отсутствия автомобилей в ближайшей ле- вом секторе кольца. Например, транспортное средство, подъехавшее к кольцу с направления А, может выехать на кольцо только при отсут- ствии автомобилей в секторе ab, транспортное средство, подъехавшее к кольцу с направления В, может выехать на кольцо только при от- сутствии автомобилей в секторе Ьс и т. д. Время проезда одного сек- тора кольца 8±3 сек. Общая характеристика потоков транспортных средств приведена в таблице на стр. 182. Построить модель кольцевой развязки и определить на ней рас- пределения времени задержки транспоргных средств, следующих в каждом из четырех направлений. Время задержки определяется вре- менем ожидания возможности выехать на кольцо.
182 Задания по имитационному моделированию Направление Интенсивность потоков (ТС/мин) Распределение ТС по направлениям А 2 Прямо 60 % Направо 20 % Налево 20 % В 3 Прямо 40 % Направо 20 % Налево 40 % С 2 Прямо 80 % Направо 15% Налево 5 % D 4 Прямо 50 % Направо 10% Налево 40 % Прогон модели выполнить для 8 часов.
Задания по имитационному моделированию 183 Задание 27 Модель центра обслуживания Центр обслуживания включает в себя бензозаправочную станцию, мойку автомобилей и магазин. Автомобили прибывают в центр обслу- живания в среднем через 10+3 мин. Водитель оставляет машину рабо- тнику центра для заправки и мойки, а сам отправляется в магазин, где он проводит 15+5 мин. Работник получает от водителя указания отно- сительно заправки и мойки. Примерно 50 % прибывающих автомоби- лей требуют заправки и мойки, 30 % — только заправки и 20 % — то- лько мойки. Зап завка автомобиля требует 6+2 мин., мойка — 8+1 мин. Центр оснащен двумя бензозаправочными колонками и двумя мойками. Заправку и мойку выполняют 3 работника центра. Каждый из них, получив заказ, выполняет последовательно процедуры заправки и мойки в том порядке, кото] »ый обеспечивает в сложившейся ситуа- ции наиболее быстрое обслуживание. После выполнения заказа авто- мобиль отгоняется на стоянку, где ее и забирает водитель после воз- вращения из магазина. Постройте модель системы и определите: 1) распределение количества занятых работников центра; 2) распределение времени обслуживания автомобиля; 3) распределение времени пребывания автомобиля в центре об- служивания. Прогон модели выполните для 10 12-часовых рабочих дней.
184 Задания по имитационному моделированию Задание 28 Модель организации перевозок при нестационарных пассажиропотоках Поток пассажиров, приходящих на автобусную остановку, харак- теризуется переменной интенсивностью, заданной в таблице. В каж- дом из приведенных в таблице интервалов времени поток имеет ха- рактер простейшего. Интервал времени (D Время суток (ч) Интенсивность пассажиропо- тока (человек / мин.) (?,) 1 0-4 0,5 2 4-8 1 3 8-12 10 4 12-16 5 5 16-20 10 6 20-24 3 Вместимость автобусов, циркулирующих на маршруте, — 30 чело- век. Если на маршруте циркулирует один автобус, то интервалы вре- мени между приходами его на остановку определяются величиной 40+10 мин. Увеличение числа автобусов на маршруте в п раз соответ- ственно уменьшает интервалы между приходами автобусов на оста- новку в п раз. Загруженность приходящего автобуса определяется в процентах от его вместимости эмпирической зависимостью (10*Л;/п) %. Например, для 1=3 (см. таблицу) автобус, приходящий на остановку, будет загружен на 100 %, если на линии работает 1 авто- бус, на 50 %, если на линии 2 автобуса, и т. д. Перевозка одного пассажира приносит доход в размере $0,5. Пе- ревозка «пустых мест» (отсутствие пассажиров на остановке) прино- сит убытки в таком же размере на одно пустое место. Невозможность перевозки пассажира по причине переполненности автобуса связана с упущенной выгодой, так же оцениваемой величиной в $0.5 на пасса- жира, который не смог сесть в автобус. Суточное движение автобусов организовано в три смены по 8 ча- сов. Построить имитационную модель и на ее основе определить рас- писание смен и количество автобусов, работающих в сменах, при ко- тором перевозка пассажиров будет наиболее рентабельной. Прогон каждого варианта организации перевозок проводить для 10 суток.
Задания по имитационному моделированию 185 Задание 29* Составление оптимального расписания работ Поток покупателей, приходящих в магазин, имеет характер про- стейшего, но характеризуется интенсивностью, которая изменяется в зависимости от дней недели (см. таблицу). День недели Интенсивность потока (покупатель/мин.) Число продавцов, обслуживающих покупателей Понедельник 0,2 ? Вторник 0,2 ? Среда 0,25 ? Четверг 0,5 ? । Пятница 0,75 ? Суббота 1 ? Воскресенье 0,5 ? Время обслуживания покупателя продавцом — 4+2 мин. Покупа- тель, пришедший в магазин и обнаруживший, что все продавцы заня- ты обслуживанием, ожидает освобождения продавца не более 2+1 мин. Если за это время ни один из продавцов не освободится, поку- патель уходит из магазина без покупки. Это событие связано с упу- щенной выгодой для владельца магазина, поэтому он заинтересован в определении такого количества продавцов, при котором такие уходы были бы сведены к минимуму. Величина упущенной выгоды на одно- го ушедшего покупателя составляет в среднем $2. Простой продавца в течение 1 часа из-за отсутствия покупателей связан с убытками в раз- мере $3. Построить имитационную модель обслуживания клиентов в мага- зине и с ее помощью определить для каждого дня недели количество продавцов, при котором размеры дневной упущенной выгоды и убытки от простоя сводятся к минимуму. В результате решения этой (первой) задачи вы должны заполнить третий столбец приведенной таблицы. Владелец магазина может принять на работу продавцов только на условиях полного рабочего дня (8 часов), при этом каждому из них в течение рабочей недели должны быть предоставлены два выходных дня. В качестве выходных могут использоваться два любых дня неде- ли (не обязательно следующих друг за другом). В этой связи менеджер
186 Задания по имитационному моделированию магазина должен решить вторую задачу: составить такой график рабо- ты продавцов, при котором каждый из них имел бы два выходных дня в неделю и в то же время общее количество продавцов, работающих в течение рабочего дня, было бы как можно ближе к соответствующему значению третьего столбца приведенной таблицы, найденному вами при решении первой задачи. При решении первой задачи использовать Micro Saint, при реше- нии второй — Excel (Поиск решения).
Литература 1. Аронович А. Б., Афанасьев М. Ю., Суворов Б. П. Сборник за- дач по исследованию операций. М.: Изд-во МГУ, 1997. 2. Городецкий В. И. Многоагентные системы: современное состо- яние исследований и перспективы применения. // Новости искусст- венного интеллекта. 1996. №1. С. 44—59- 3. Евдокимов В. В. и др. Экономическая информатика: Учебник для вузов. СПб.: Питер, 1997. 4. Карлберг Конрад. Бизнес-анализ с помощью Excel. Пер. с англ. К.: Диалектика, 1997. 5. Кораблин М. A. EXCEL для менеджера: решение оптимизаци- онных задач Учебно-методическое пособие. Самара: СГАУ, МИР, 1997. 6. -Кораблин М. А. Реинжиниринг бизнес-процессов — новое на- правление современного менеджмента // Рыночная экономика: со- стояние, проблемы, перспективы. Вып. 2. Самара: ИПО СГАУ, 1998. С. 50-54. 7. Кораблин М. А., Зайцев Я. В. Технология имитационного моде- лирования в процессе обучения менеджеров // Информационные тех- нологии. № 4. 1999. С. 42—47. 8. Кораблин М. А., Поручиков А. Н. Информационные техноло- гии менеджмента Сборник задач. Самара: СГАУ, 1999. 9. Курицкий Б. Я. Поиск оптимальных решений средствами Ex- cel 7.0. СПб.: BHV-Санкт-Петербург, 1997. 10. Таха X. Введение в исследование операций: В 2 кн. Кн. 1. Пер. с англ. М.: Мир, 1985. 11. Тоффоли Т., Марголус Н. Машины клеточных автоматов. Пер. с англ. М.: Мир, 1991. 12. Шрайбер Т. Дж. Моделирование на GPSS. Пер. с англ. М.: Машиностроение, 1980. 13. Uschold М., King М., Moralee S., Zorgios Y. The Enterprise On- tology // The Knowledge Engineering Review. Vol. 13. No. 1. 1998. P. 31-88.
Содержание Введение.................................................... 3 ЧАСТЬ 1. ПОИСК УПРАВЛЕНЧЕСКИХ РЕШЕНИЙ НА ЭЛЕКТРОННЫХ ТАБЛИЦАХ.......................................9 Быс трое начало. ..................................... 10 Задача о красках ......................................10 Поиск решения...........................................13 Виды ячеек и зависимости . .............................15 Краткий экскурс в теорию...............................16 Кон трольные вопросы.....................................17 Поиск решения..............................................18 Общие рекомендации по разработке структур электронных таблиц............................................18 Стиль оформления ограничений ..........................19 Проблема начальных значений.............................20 Управление процессом поиска решения.....................21 Группа параметров, определяющих время процесса поиска . 22 Группа параметров, адаптирующих процесс поиска к математической модели задачи..........................23 Группа параметров контроля процесса поиска..............25 Сохранение и загрузка моделей...........................26 Результаты поиска решения...............................27 Сценарии................................................29 Контрольные вопросы........................................29 Анализ отчетов.............................................30 Геометрическая интерпретация задачи о красках...........30 Отчет по результатам...................................33 Отчет по устойчивости..................................35 Отчет по пределам......................................40 Контрольные вопросы.......................................41 Примеры структуризации задач для исследования систем менеджмента........................................42 Задачи определения объемов производства товаров и услуг . 42 Задачи смеси.......................................... 45 Задачи дисбаланса......................................47 Составление «скользящих» графиков......................54 Задачи оптимизации инвестиций..........................56 Задачи логического выбора..............................58 Кон трольные вопросы . . . ......................60
Содержание 189 Задачи для исследования систем управления , . ...........61 1. Задачи определения объемов производства товаров и услуг.........................................61 1.1. Оптимизация производства карамели..................61 1.2. Оптимизация объемов производства изделий...........62 1.3. Оптимизация размещения объемов субподрядных работ................................................62 1.4. Оптимизация размещения рекламы.....................63 1.5. Оценка номенклатуры изделий .......................64 1.6. Оценка развития производства..................... 64 1.7. Оптимизация ассортимента молочного заводя..... 65 1.8. Составление плана загрузки станков.................65 1.9. Использование сверхурочных работ . ... . .66 1.10. 1ыбор варианта раскроя........................... 67 2. 3< дачи смеси..........................................67 2.1. Задача о сплавах................... . . . . 67 2.2. Составление кормовой смеси . . . . ..... 68 2.3. Производство удобрений..................... . 69 3. Задачи дисбаланса......................................70 3.1. Минимизация дисбаланса на линии сборки ............70 3.2. Минимизация дисбаланса при сборке изделий из комплектующих................................ . - 71 3.3. Балансирование процессов сборки....................71 3.4. Балансирование процесса производства с запасами . . 72 3.5. Минимизация дисбаланса в транспортной системе . 73 4. Составление «скользящих» графиков ....... 75 4.1. Сменно-суточное планирование...................... 75 4.2. Оптимизация использования рабочих.......... . . . 76 5. Задачи оптимизации инвестиций.................. . 76 5.1. Оптимизация распределения инвестиций в долгосрочные проекты...............................76 5.2. Использование инвестиций для реализации контракта. . 77 5.3. Инвестирование с учетом инфляционных ожиданий. . 77 6. Задачи логического выбора..............................78 6.1. Выбор организационно-технических мероприятий по модернизации производства.........................78 6.2. Размеще, ме госзаказа по производству изделий ... .79 6.3. Распределение заказов на производство работ.......80 6.4. Назначение торговых агентов....................... 81 6.5. Выбор варианта хранения нефти......................81 6.6. Выбор варианта реконструкции предприятия...........82 6.7. Выбор плана развития объединения...................83 6.8. Распределение капиталовложений.....................83
190 Содержание ЧАСТЬ 2. ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ В ЗАДАЧАХ ПОИСКА УПРАВЛЕНЧЕСКИХ РЕШЕНИЙ.............................................85 Быстрое начало: введение в систему Micro Saint......86 Этап конструирования и описания модели.................86 Этап проведения компьютерного эксперимента с моделью . 94 Анализ результатов эксперимента.................100 Контрольные вопросы и предложения..................104 Развитие концепций: дополнительные методы и средства имитации..................................104 Модели потоков в сетевых структурах ... ... 104 Индивидуальные свойства тэгов.........................106 Замкнутые системы................................... 109 Язык описания эффектов.............................. 111 Использование редактора............................ ..113 Датчики случайных чисел.........................113 Функции.........................................114 Динамика моделирования . . .... 117 Отладка моделей.................................118 Календарь событий................................... 120 Единица модельного времени и ее связь с реальным временем...............................122 Разработка многоуровневых структурных моделей . . .123 Анимация имитационных моделей...................126 Контрольные вопросы и предложения.................... 131 Поиск решения: оптимизация на имитационных моделях. : . 132 Оптимизация на имитационных моделях в системе OptQuest................................133 Контрольные вопросы и предложения . . 145 ЗАДАНИЯ ПО ИМИТАЦИОННОМУ МОДЕЛИРОВАНИЮ СИСТЕМ ПРОИЗВОДСТВЕННОГО И ОПЕРАЦИОННОГО МЕНЕДЖМЕНТА.................................................147 Задание 1. Модель парикмахерской ........................147 Задание 2. Модель обслуживания производственного участка . 148 Задание 3. Модель мойки автомобилей......................149 Задание 4. Модель технического контроля изделий..........150 Задание 5. Модель продовольственного магазина............151 Задание 6. Модель использования оборудования на нескольких работах................................152 Задание 7*. Модель управления производственным участком . 153 Задание 8. Задача о балансе оборудования . . .......155
Содержа! то 191 Задание 9. Сравнение альтернатинных варнапюв систем обслуживания в банке . .................156 Задание 10. Сравнение альтернативных вариантов систем обслуживания в банке (2). . . .... 157 Задание 11*. Модель производственного цеха...............158 Задание 12*. Реорганизация заправочной станции...........160 Задание 13. Модель автобусной остановки............. . . 162 Задание 14. Обслуживание танкеров в порту................163 Задание 15. Задача о библиотеке ..... . . . 164 Задание 16. Задача о запасных деталях. . . . . 165 Задание 17*. Модель станции технического обслуживания (СТО)..................................... 166 Задание 18. Модель выполнения работ по сетевому графику . 167 Задание 19*. Модель выполнения работ по сетевому графику с ресурсными ограничениями...............................169 Задание 20. Модель процесса сборки изделий рабочими с невысокой квалификацией................................171 Задание 21. Модель процесса сборки изделий (2).......... 173 Задание 22*. Модель процесса сборки с использованием высококвалифицированных рабочих..........................175 Задание 23*. Модель дисбаланса производства комплектующих для сборки изделий квалифицированными рабочими. ... 177 Задание 24. Модель дисбаланса производства комплектующих для сборки изделий неквалифицированными рабочими. . . 178 Задание 25. Модель транспортной развязки.................179 Задание 26*. Модель транспортной развязки (2) ...........181 Задание 27. Модель центра обслуживания...................183 Задание 28. Модель организации перевозок при нестационарных пассажиропотоках......................184 Задание 29*. Составление оптимального расписания работ . . 185 i Литература ............................................... 187
PFY-.9 К Серия «Библиотека студента» М. А. Кораблин ИНФОРМАТИКА ПОИСКА УПРАВЛЕНЧЕСКИХ РЕШЕНИЙ Рекомендовано Учебно-методическим объединением по образованию в области прикладной информатики в качестве учебного пособия для студентов высших учебных заведений, обучающихся по специальности 351400 «Прикладная информатика (по областям)» и другим междисциплинарным специальностям Sm Злиотэха Л*’АТИ Учебным фонд Москва СОЛОН-Пресс 2003
Серия «Библиотека студента» Михаил Александрович Кораблин ИНФОРМАТИКА ПОИСКА УПРАВЛЕНЧЕСКИХ РЕШЕНИЙ Ответственный за выпуск В. Митин Макет и верстка С. Тарасов Обложка Е. Холмский ООО «СОЛОН-Прзсс» 123242, Москва, а/я 20 Телефоны: (095) 254-44-10, 252-36-96, 252-25-21 E-mail: Solon-Avtor@coba.ru ООО «СОЛОН-Пресс» 127051, г. Москва, М. Сухаревская пл., д. 6, стр. 1 (пом. ТАРП ЦАО) Формат 60x88/16. Объем 12 п. л. Тираж 1500 экз. Отпечатано с готовых диапозитивов МПИК 424000, г. Йошкар-Ола, ул. Комсомольская, 112 Заказ № пз