Министерство образования и науки Российской Федерации
ФИЛИАЛ ГОСУДАРСТВЕННОГО ОБРАЗОВАТЕЛЬНОГО УЧРЕЖДЕНИЯ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«БАЙКАЛЬСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ЭКОНИМИКИ И ПРАВА» В Г. УСТЬ – ИЛИМСКЕ
(Филиал ГОУ ВПО в г. Усть–Илимске)
Кафедра экономики
Специальность 002779 Автоматизированные системы обработки информации и управления»
Курсовая работа
по дисциплине
«Имитационное моделирование экономических процессов»
«Система управления запасами с неудовлетворительным спросом»
Руководитель
Г.П. Куклин
Исполнитель
студент группы АИ 08
Тян Е.Е.
Усть-Илимск 2011
СОДЕРЖАНИЕ
Введение
Глава 1. Система имитационного моделирования GPSS WORD
Общие сведения
Моделирование в системе GPSS
Глава 2. Моделирование системы управления запасами с неудовлетворительным спросом
2.1. Постановка задачи
2.2. Описание модели
Заключение
Список литературы
ВВЕДЕНИЕ
Товарно-материальный запас - это запас какого-либо ресурса или предметов, используемых в организации.
С точки зрения практики проблема управления запасами является чрезвычайно серьезной. Потери, которые несут предприятия (особенно промышленные) вследствие нерационального управления запасами, очень велики. Плохо, когда запас мал, недостаточен. Это может привести к нарушению ритмичности производства, росту себестоимости продукции, срыву сроков выполнения работ по договорам, потере прибыли. Однако же, крайне нежелательной является и ситуация, когда запас чрезмерно велик. В этом случае происходит "замораживание" оборотных средств организации. В результате те деньги, которые могли бы "работать", приносить доход покоятся на складах в виде запасов сырья, материалов, комплектующих.
Для эффективного решения проблем, связанных с управлением товарно-материальными запасами требуется применение соответствующих методов. Такие методы существуют, однако, к сожалению, на практике (особенно в России) они пока не находят должного распространения.
Очень показательным является высказывание одного из зарубежных исследователей:
"...Слишком многие предприятия, к сожалению, управляют запасами совершенно неудовлетворительно; это говорит о том, что руководство не осознает всей важности материально-технических запасов производства. Но еще чаще бывает, что осознание проблемы существует. Не хватает понимания того, что надо делать и как это делать".
Итак, управление запасами на рациональной основе - весьма актуальная задача. Определяющее значение при построении системы управления запасами имеет характер потребности в хранимом продукте.
В настоящее время решение задач повышения эффективности управления предприятием невозможно без применения современных вычислительных систем и программных комплексов. Как показывает практика, автоматизация управления предприятием без инноваций в собственно сами методы управления не дает значительного эффекта. Необходима адаптация, проработка методик и моделей управления, в том числе и управления запасами.
Внедрение математических моделей, алгоритмов, предназначенных для решения задачи управления запасами и новых информационных технологий, позволяет автоматизировать процесс получения оптимального решения для многопродуктового ассортимента современного торгового предприятия.
Моделирование – один из способов исследования и устранения проблем, возникающих в окружающем нас мире. Говоря более строго, модель является реальным или абстрактным объектом, который заменяет (представляет) объект исследования в процессе его изучения, находится в отношении сходства с последним (аналогия, физическое подобие и т.п.) и более удобен для экспериментов. Наиболее естественная и важная сфера применения моделирования – анализ сложных систем, в том числе социотехнических (производственных, финансовых и т.д.).
Традиционно различают аналитическое и имитационное моделирование.
Аналитическая модель, как правило, статическая (ее выходы функционально зависят от входов) и поэтому в ряде практических случаев может быть реализована даже с помощью электронных таблиц.
К имитационным моделям прибегают тогда, когда объект моделирования настолько сложен, что адекватно описать его поведение математическими уравнениями невозможно или затруднительно. Имитационное (динамическое) моделирование рассматривает модель как совокупность правил (дифференциальных уравнений, конечных автоматов, сетей Петри и т.п.), которые определяют, в какое состояние в будущем перейдет моделируемый объект из некоторого предшествующего состояния.
Сложные функции моделирующего алгоритма могут быть реализованы средствами универсальных языков программирования (Паскаль, Си), что предоставляет неограниченные возможности в разработке, отладке и использовании модели. Однако подобная гибкость приобретается ценой больших усилий, затрачиваемых на разработку и программирование весьма сложных моделирующих алгоритмов, оперирующих со списковыми структурами данных. Альтернативой этому является использование специализированных языков имитационного моделирования
Объект исследования: система управления запасами с неудовлетворительным спросом
Предмет исследования: внедрение имитационных моделей, предназначенных для решения задачи управления запасами.
Целью выполнения данной курсовой работы является получение навыков системного исследования реальной динамической сложной системы посредством разработки её имитационной модели. В качестве таковой взята система управления запасами на предприятии.
Задачи:
Изучить учебно-методическую и научную литературу по теме исследования.
Изучить GPSS World.
Поставить и решить конкретную задачу по управления запасами с неудовлетворительным спросом с помощью GPSS World.
Курсовая работа состоит из двух глав и списка литературы.
ГЛАВА 1
Система имитационного моделирования GPSS WORD
Общие сведения
имитационное моделирование товарный материальный запас
Дискретно-событийное моделирование обязано своим рождением Дж. Гордону, который в начале 1960-х спроектировал и реализовал на мэйнфреймах IBM систему GPSS. Основной объект в этой системе – пассивный транзакт (заявка на обслуживание), который может определенным образом представлять собой работников, детали, сырье, документы, сигналы и т.п. «Перемещаясь» по модели, транзакты становятся в очереди к одноканальным и многоканальным устройствам, захватывают и освобождают эти устройства, расщепляются, уничтожаются и т.д. Таким образом, дискретно-событийную модель можно рассматривать как глобальную схему обслуживания заявок. Аналитические результаты для большого количества частных случаев таких моделей рассматриваются в теории массового обслуживания.
Сегодня существует целый ряд инструментов, поддерживающих такой подход в моделировании: GPSS/PC, GPSS/H, GPSS World, Object GPSS, Arena, SimProcess, Enterprise Dynamics, Auto-Mod и др.
GPSS World – типичный современный представитель GPSS-семейства, реализованный для работы в среде MS Windows. Наличие встроенных инструментов статистической обработки результатов моделирования, встроенного языка программирования расчетов PLUS и др. позволяет создавать средствами GPSS World не только простые обучающие модели, но и более полезные приложения. Однако следует заметить, что GPSS/PC и Simpas предназначены для работы в операционной системе MS-DOS. Поэтому имеются ограничения, которые в ряде случаев не позволяют осуществить разработку и эксплуатацию моделей сложных систем с требуемой степенью детализации.
Отмеченных недостатков практически не имеет новая общецелевая система моделирования GPSS World, разработанная компанией Minuteman (США). Эта система является развитием GPSS/PC, но приобрела комбинированный характер, т.е. может моделировать как дискретные, так и непрерывные процессы. Эти возможности обеспечиваются как новыми объектами языка GPSS, так и включёнными в состав GPSS World языка Plus – языка программирования низкого уровня. Этот язык сделал GPSS World более открытой системой и позволяет взаимодействовать с другими приложениями, а также создавать пользователями свои библиотеки процедур. Язык Plus вместе с другими инструментальными средствами GPSS World позволил автоматизировать весь цикл исследований от разработки моделей до выработки рекомендаций за счёт новых функций планирования экспериментов и обработки статистики. Наконец, GPSS World работает в операционной системе Windows и максимально ориентирована на использование современных технологий, обеспечивающих высокую интерактивность и визуальное представление информации.
Несмотря на изначальную ориентацию GPSS на моделирование систем массового обслуживания, система оказалась удивительно долгоживущей и способной к развитию. Трудоемкость описания моделируемых систем в терминах бизнес-процессов может быть снижена за счет применения таких продуктов, как Object GPSS или ISS 2000. В частности, созданный в НТУУ «КПИ» под руководством В.Н. Томашевского пакет ISS 2000 представляет собой лингвистический процессор, с помощью которого пользователь в диалоговом режиме создает автоматически GPSS-программу и запускает ее на выполнение.
1.2. Моделирование в системе GPSS
1.2.1. Основы построения и принципы функционирования языка имитационного моделирования
Модель разрабатывается на языке GPSS и состоит из операторов, а объект "Модель" создается при помощи встроенного текстового редактора. Объект "Процесс моделирования" - это результат трансляции модели. Далее процесс моделирования запускается с помощью команд GPSS. По завершении моделирования, как правило, автоматически создается объект "Отчет".
Текстовый объект (текстовый файл GPSS World) предназначен для упрощения разработки больших моделей и создания библиотеки исходных текстов. То есть модель может быть разделена на наборы операторов, представляющие собой отдельные текстовые файлы, а затем объектом "Процесс моделирования" собрана из них. Объект "Процесс моделирования" может также создавать новые текстовые файлы с фрагментами модели, результатами моделирования, а также считывать и записывать данные в текстовые файлы.
GPSS World предназначена для имитационного моделирования систем с дискретными и непрерывными процессами. Языком моделирования в ней является язык GPSS, улучшенный встроенным языком программирования низкого уровня PLUS. Язык GPSS построен в предположении, что модель сложной системы можно представить совокупностью элементов и логических правил их взаимодействия в процессе функционирования моделируемой системы. Набор абстрактных элементов, называемых объектами, небольшой. Также набор логических правил ограничен и может быть описан стандартными операциями. Комплекс программ, описывающих функционирование объектов и выполняющих логические операции, является основой для создания программной модели.
Кроме этого комплекса в составе GPSS World имеется программа-планировщик, выполняющая следующие функции:
обеспечение продвижения по заданным разработчиком маршрутам динамических объектов, называемых транзактами;
планирование событий, происходящих в модели, путем регистрации времени наступления каждого события и выполнения их в нарастающей временной последовательности;
регистрация статистической информации о функционировании модели;
продвижение модельного времени в процессе моделирования системы.
Чтобы обеспечить правильную последовательность обработки событий во времени, имеются системные часы, хранящие значения абсолютного модельного времени
Объекты в моделируемой системе предназначены для различных целей. Совершенно не обязательно, чтобы в одной модели участвовали все типы объектов. Необходимо лишь наличие блоков и транзактов, иначе модель работать не будет.
Объекты подразделяются на 7 категорий и 15 типов, которые представлены в Таблице №1 (Приложение 1)
Рассмотрим назначение объектов GPSS.
Динамическими объектами являются транзакты, которые создаются в определенных точках модели, продвигаются планировщиком через блоки, а затем уничтожаются. Транзакты являются аналогами единиц - потоков в реальной системе. Они могут представлять собой различные элементы даже в одной модели. С каждым транзактом связаны параметры, которые используются для конкретных данных. Каждый транзакт может иметь любое число параметров. Параметры нумеруются или им даются имена. Номера параметров и имена используются для ссылок на значения, присвоенные параметрам. Транзактам может присваиваться приоритет. Приоритет определяет предпочтение, которое получает транзакт, когда он и другие транзакты претендуют на один и тот же ресурс.
Объекты аппаратной категории - это абстрактные элементы, на которые может быть декомпозирована реальная система. Воздействуя на эти объекты, транзакты могут изменять их состояние и влиять на движение других транзактов. К объектам этого типа относятся одноканальные устройства, памяти (многоканальные устройства) и логические ключи.
Одноканальные устройства (ОКУ) представляют собой оборудование, которое в любой момент времени может быть занято только одним транзактом. Например, один канал передачи данных, одноканальный ремонтный орган, один станок изготовления деталей, одно транспортное средство.
Многоканальные устройства (МКУ) предназначены для имитации оборудования, осуществляющего параллельную обработку. Они могут быть использованы одновременно несколькими тран-зактами. МКУ можно использовать в качестве аналога, например, многоканального ремонтного органа, нескольких каналов связи.
Для моделирования такого оборудования, как переключатели, имеющие только два состояния, в GPSS используются логические ключи.
Операционные объекты, т. е. блоки, задают логику функционирования модели системы и определяют пути движения транзактов между объектами аппаратной категории. В блоках могут происходить события четырех основных типов:
создание или уничтожение транзактов;
изменение числового атрибута объекта;
задержка транзакта на определенный период времени;
изменение маршрута движения транзакта в модели. Версия GPSS, реализованная в системе GPSS World, содержит 53 типа блоков.
В зависимости от назначения блоки подразделяются на несколько групп.
Блоки, осуществляющие модификацию атрибутов транзак-тов:
генерирование и уничтожение транзактов GENERATE, SPLIT, TERMINATE, ASSEMBLE;
временная задержка ADVANCE;
синхронизация движения двух MATCH и нескольких GATHER транзактов;
изменение приоритета транзакта PRIORITY;
изменение параметров транзактов ASSIGN, INDEX, MARK, PLUS.
Блоки, изменяющие последовательность движения транзак-тов (блоки передачи управления): DISPLACE, TRANSFER, LOOP, TEST, GATE.
Блоки, связанные с группирующей категорией: ADOPT, ALTER, EXAMINE, JOIN, REMOVE, SCAN.
Блоки, описывающие объекты аппаратной категории:
одноканальные устройства (технические средства) SEIZE, RELEASE, PREEMPT, RETURN, FUNAVAIL, FAVAIL;
многоканальные устройства (памяти) ENTER, LEAVE, SAVAIL, SUNAVAIL;
ключи (логические переключатели) LOGIC.
Блоки, сохраняющие необходимые значения для дальнейшего использования: SAVEVALUE, MSAVEVALUE.
Блоки для получения статистических результатов:
очереди QUEUE, DEPART;
таблицы TABULATE.
Блоки для организации списка пользователя: LINK, UNLINK.
Блоки для организации ввода-вывода:
открытие/закрытие файла: OPEN/CLOSE;
считывание/запись в файл: READ/WRITE;
установка позиции текущей строки: SEEK.
Специальные блоки: BUFFER, COUNT, EXECUTE, INTEGRATION, SELECT, TRACE, UNTRACE.
Вычислительная категория служит для описания таких ситуаций в процессе моделирования, когда связи между компонентами моделируемой системы посредством процессом наиболее просто и компактно выражаются в виде математических (аналитических и логических) соотношений. Для этих целей в качестве объектов вычислительной категории введены арифметические и булевы переменные и функции.
Переменные представляют собой сложные выражения, которые включают константы, системные числовые атрибуты (СЧА), библиотечные арифметические функции, арифметические и логические операции.
Выражения могут применяться в переменных и операторах GPSS. При применении в переменных выражения определяются командами GPSS. При применении в операторах GPSS выражения определяются как часть языка PLUS.
Каждому объекту соответствуют атрибуты, описывающие его состояние в данный момент времени. Они доступны для использования в течение всего процесса моделирования и называются системными числовыми атрибутами (СЧА). Например, объект вычислительной категории - генератор случайных чисел имеет СЧА RNn - число, вычисляемое генератором равномерно распределенных случайных чисел номер n; у объекта динамической категории - транзакта СЧА: PR - приоритет обрабатываемого в данный момент транзакта; Pi - значение i-го параметра активного транзакта и др. Всего в GPSS World имеется свыше 50 СЧА.
Булевы переменные позволяют пользователю проверять в одном блоке GPSS одновременно несколько условий, исходя из состояния или значения этих условий и их атрибутов.
С помощью функций пользователь может производить вычисления непрерывных или дискретных функциональных зависимостей между аргументом функции (независимая величина) и зависимым значением функции.
Кроме библиотечных арифметических функций GPSS World имеет 24 встроенных генератора случайных чисел.
Объекты запоминающей категории обеспечивают обращения к сохраняемым значениям. Ячейки сохраняемых величин и матрицы ячеек сохраняемых величин используются для сохранения некоторой числовой информации. Любой активный транзакт может произвести запись информации в эти объекты. Впоследствии записанную в эти объекты информацию может считать любой транзакт. Матрицы могут иметь до шести измерений.
К статистическим объектам относятся очереди и таблицы. В любой системе движение потока транзактов может быть задержано из-за недоступности устройств. В этом случае задержанные транзакты ставятся в очередь - еще один тип объектов GPSS. Учет этих очередей составляет одну из основных функций планировщика. Планировщик автоматически накапливает определенную статистику относительно устройств и очередей. Кроме этого пользователь может собирать дополнительную статистическую информацию, указав специальные точки в модели.
Для облегчения табулирования статистической информации в GPSS предусмотрен специальный объект - таблица. Таблицы используются для получения выборочных распределений некоторых случайных величин. Таблица состоит из частотных классов (диапазонов значений), куда заносится число попаданий конкретного числового атрибута в каждый, тот или иной, частотный класс. Для каждой таблицы вычисляется также математическое ожидание и среднеквадратическое отклонение.
К группирующей категории относятся три типа объектов: числовая группа, группа транзактов и списки.
При моделировании транзакты хранятся в списках. Существует пять видов списков, только в одном из которых в любой момент времени может находиться транзакт:
текущих событий;
будущих событий;
задержки ОКУ или МКУ;
отложенных прерываний ОКУ;
пользователя.
Одноканальное устройство имеет:
список отложенных прерываний - список транзактов, ожидающих занятия ОКУ по приоритету;
список прерываний - список транзактов, обслуживание которых данным ОКУ было прервано;
список задержки - список транзактов, ожидающих занятия ОКУ в порядке приоритета;
список повторных попыток - список транзактов, ожидающих изменения состояния ОКУ.
Многоканальное устройство имеет:
список задержки - список транзактов в порядке приоритета, ожидающих возможность занять освободившиеся каналы МКУ;
список повторных попыток - список транзактов, ожидающих изменения состояния МКУ.
Список пользователя содержит транзакты, удаленные пользователем из списка текущих событий и помещенные в список пользователя как временно неактивные. Списки пользователя используются для организации очередей с дисциплинами, отличными от дисциплины "первым пришел - первым обслужен".
1.2.2 Построение моделей с устройствами
Для представления собственно обслуживания используются определенные элементы. Такими элементами могут быть либо люди, либо какие-то предметы. Независимо от этого подобные элементы в GPSS называют объектами аппаратной категории, к которой относят одноканальные (ОКУ) и многоканальные устройства (МКУ) и логические ключи.
Рассмотрение методов построения моделей с устройствами начнем с имитации функционирования ОКУ.
При моделировании возможны следующие режимы организации функционирования ОКУ:
занятие ОКУ и его освобождение;
прерывание обслуживания ОКУ;
недоступность ОКУ и восстановление доступности.
1.2.2.1 Организация поступления транзактов в модель и удаления транзактов из нее
Потоки, существующие в реальных системах, в моделях имитируют транзакты.
1.2.2.1.1. Поступление транзактов в модель
GENERATE - это блок, через который транзакты входят в модель. Блок GENERATE имеет следующий формат записи:
GENERATE [A],[B],[C],[D],[E]
Скобки [ ] означают, что данный операнд является необязательным. Не существует ограничений на число различных блоков GENERATE в одной модели.
Интервалы времени между последовательными появлениями транзактов блока GENERATE называют интервалом поступления. Все разработчики должны задавать спецификацию распределения интервалов времени поступления в блоке GENERATE. Информация, необходимая для этого, задается операндами А и B. Все возможные виды распределения интервалов времени поступления в GPSS делят на равномерно распределенные и все другие виды распределения.
Операнд А - средний интервал времени между последовательными поступлениями транзактов в модель.
Операнд B - задает модификатор, который изменяет значения интервала генерации транзактов по сравнению с интервалом, указанным операндом А. Есть два типа модификаторов: модификатор-интервал и модификатор-функция.
С помощью модификатора-интервала задается равномерный закон распределения времени между генерацией транзактов.
Операнды А и B могут быть именем, положительным числом, выражением в скобках или непосредственно СЧА.
При вычислении разности значений (А-В), заданных операндами А и B, получается нижняя граница интервала, а при вычислении суммы (А+В) - верхняя граница. После генерации очередного транзакта выбирается число из полученного интервала, это и будет значение времени, через которое следующий транзакт выйдет из блока GENERATE.
Когда операнды А и B задают в виде констант (B - модификатор-интервал), они должны быть неотрицательными числами, т. е. интервал времени может быть выражен числами, например, 4.1,…,12.7. Предположим, что транзакт входит в модель - блок GENERATE - в момент модельного времени 25.6. После того, как этот транзакт попадет в следующий блок модели, планировщик GPSS разыграет случайное значение из распределения интервалов времени, равного 8.4±4.3.
Пусть разыгранным значением будет число 9.7. Тогда планировщик планирует приход следующего транзакта в блок GENERATE в момент времени 25.6+9.7=35.3.
Операнды А и В не обязательно должны быть заданы. Когда один или оба операнда не указаны, по умолчанию предполагается их нулевое значение. Например, А=16.4, В=0. Поскольку операнд В=0, то интервалы времени распределены равномерно, 16.4±0, т. е. интервал времени поступления равен 16.4. Это пример того, как может быть задано детерминированное значение интервалов времени.
Более сложные интервалы времени поступления транзактов (не по равномерному закону) могут быть заданы с использованием модификатора-функции или встроенных генераторов случайных чисел. Под действием модификатора-функции значение операнда А умножается на значение функции, заданной операндом В.
При любом способе вычисления интервала времени значение операнда В не должно превышать значения операнда А, в противном случае в блоке GENERATE может быть получен отрицательный интервал времени, который вызовет останов по ошибке "Отрицательное время задержки".
Рассмотрим три дополнительных операнда: С - смещение интервалов, D - ограничитель, Е - уровень приоритета.
Смещение интервалов (первоначальная задержка) С - это момент времени, в который в блоке GENERATE должен появиться первый транзакт. После этого первого прихода все остальные приходы транзактов возникают в соответствии с распределением интервалов времени, задаваемых операндами А и B. Операнд С можно использовать как для ускорения, так и для замедления прихода первого транзакта или для указания прихода в нужный момент времени. Начальная задержка может быть меньше, равна или больше среднего времени, заданного операндом А. Когда операнд С не используется, интервалы генерирования определяются операндами А и B (они не оказывают влияния на задержку). Операнд С может быть таким же как и операнды А и B.
Операнд D задает граничное значение общего числа транзактов, которые могут войти в модель через данный блок GENERATE в течение времени моделирования. Когда это число достигнуто, данный блок GENERATE перестает быть активным. Если не определено граничное значение (операнд D не используется), блок GENERATE остается активным в течение всего времени моделирования, т. е. по умолчанию ограничения на количество создаваемых транзактов нет.
Операнд Е устанавливает класс приоритета каждого из транзактов, входящих в модель через данный блок GENERATE. Для задания приоритетов c целью повышения эффективности работы GPSS World рекомендуется использовать последовательность целых чисел 0, 1, 2, 3,… вместо, например, 37, 43, 88, 122,... Чем выше число, тем выше приоритет. Если операнд Е не используется, по умолчанию приоритет генерируемых данным блоком GENERATE транзактов равен нулю.
Операнды D и Е могут задаваться также как и операнды А, B и С, но при этом принимать значения только целых положительных и целых чисел соответственно.
В любом блоке GENERATE должен быть обязательно задан либо операнд А, либо операнд D. Нельзя использовать в качествеоперанда параметры транзактов. Необходимо также помнить, что транзакт не должен входить в блок GENERATE. Если транзакт пытается это делать, возникает ошибка выполнения. Приведем примеры записи блоков GENERATE:
с операндом А
GENERATE 38.6
GENERATE X$IntPostTran
GENERATE MX$VrPost(3,6)
GENERATE V$Prom
GENERATE (Exponential(11,0,X$Mat))
GENERATE IntPostTran
с операндами А и B
GENERATE 73.25,X$Otk
GENERATE X$Sredne,FN2
GENERATE Sredne,FN4
GENERATE (V$Post+7.1),FN$Mod
с операндами А и C
GENERATE 7.3,,4.1
GENERATE 7.3,,X$VrSm
GENERATE V$IntP,,MX2(X$Stroka,X$Stolbez)
GENERATE (Normal(3,X$Sre,X$SreOtk)),,Sme
с операндами А, B, E
GENERATE 13.3,2.8,,,1
GENERATE (Normal(8,X$Sr,X$SrOtk)),Post,,1
GENERATE V$IntPostTran,(V1-12.3),,12
Приведенные примеры демонстрируют различные способы задания операндов блока GENERATE. Однако при этом нужно помнить следующее.
В начальный момент времени в каждом блоке GENERATE производится подготовка к выходу одного транзакта. На этой стадии модель еще полностью не инициализирована для выполнения, т. е. не все переменные получили значения. Но описанные в блоке GENERATE, должны быть уже определены - инициализированы. Поэтому в модели блоку GENERATE должны предшествовать команды определения EQU, INITIAL, FUNCTION, VARIABLE, FVARIABLE. Это делается для того, чтобы СЧА в блоке GENERATE, который ссылается на них, давали нужные для ввода транзактов в модель результаты.
Например:
SrIntPost EQU 47.2
StanOtkl EQU 28.6
INITIAL X$KolTrans,43
. . .
GENERATE SrIntPost,StOtk,,X$KolTrans
Как видно из примера, блоку GENERATE предшествуют присвоения командой EQU именам числовых значений и командой INITIAL начального значения сохраняемой ячейке с именем Kol-Trans.
1.2.2.1.2. Удаление транзактов из модели и завершение моделирования
Транзакты удаляются из модели, попадая в блок TERMINATE (завершить). Блоки TERMINATE всегда позволяют войти всем транзактам, которые пытаются это сделать. В модели может быть любое число блоков TERMINATE. Блок имеет следующий формат записи:
TERMINATE [A]
Значением операнда А является число единиц, на которое блок TERMINATE уменьшает содержимое счетчика завершения, определяющего момент окончания моделирования. Операнд А может быть именем, положительным целым числом, выражением в скобках, СЧА или СЧА*<параметр>. По умолчанию значение операнда А равно нулю. В этом случае транзакт уничтожается, а значение счетчика завершения не меняется.
Счетчик завершения представляет собой ячейку памяти с именем TG1, которая хранит положительное целое число. Это число записывается в ячейку TG1 командой START в начале процесса моделирования.
В процессе моделирования транзакты попадают в блок TERMINATE и в соответствии со значением операнда А вычитают определенное число из счетчика завершения. При достижении содержимым счетчика нуля моделирование завершается. В модели может быть много блоков TERMINATE, но счетчик завершения только один.
Когда пользователь подготавливает модель, он задает время моделирования, указывая в операторе START значение счетчика завершения. Поскольку пути прохождения транзактов в модели имеют различный физический смысл, каждый блок TERMINATE может либо уменьшать, либо не уменьшать содержимое счетчика завершения.
Рассмотрим пример, в котором блок TERMINATE и команда START используются для управления временем моделирования. Предположим, что разработчик выбрал в качестве единицы времени 1 мин. Он хочет промоделировать поведение системы в течение 10 часов, затем моделирование должно быть закончено. За единицу модельного времени возьмем 1 мин, тогда время моделирования равно 10*60=600 единицам.
Любая модель на GPSS состоит из одного или нескольких сегментов. Для управления временем моделирования разработчик (см. блок-диаграмму):
включает в модель сегмент из блоков GENERATE и TERMINATE;
в блоке TERMINATE в качестве операнда А использует 1;
во всех прочих блоках TERMINATE модели использует операнд А по умолчанию (однако возможны и другие варианты, т. е. и в других блоках TERMINATE операнд А может быть 1).
В процессе моделирования транзакты, которые двигаются в других сегментах модели, время от времени выводятся из модели в других блоках TERMINATE, но они не оказывают воздействия на счетчик завершения. В момент модельного времени 600 транзакт в приведенном выше сегменте попадает в блок GENERATE и сразу же переходит в следующий блок TERMINATE.
Поскольку операнд А блока содержит 1, то из счетчика завершения вычитается 1. Предположим, что в команде START было указано число 10, т. е. десять прогонов модели, и в счетчик завершений записано число 10: TG1 = 10. После первого вычитания содержимое ячейки TG1 = 9, т. е. не равно нулю. Поэтому моделирование продолжается. После десяти прогонов, т. е. вычитания десяти единиц, TG1 = 0. Планировщик прекращает моделирование.
Команда START используется для запуска процесса моделирования. Она имеет следующий формат записи:
START A,[B],C,[D]
Операнд А задает значение счетчика завершения, определяющего момент окончания прогона модели. Может быть только целым положительным числом. Операнд B - операнд вывода статистики. Он может быть NP ("нет вывода данных") либо опущен. При задании NP стандартный отчет не выводится. По умолчанию выводится стандартный отчет. Операнд С не используется и сохранен для совместимости с описаниями ранних версий GPSS. Операнд D определяет необходимость вывода содержимого списков событий. Если операнд D указать любым положительным целым числом, например, 1, то списки текущих и будущих событий включаются в стандартный отчет и выводятся. Если операнд D опущен, то по умолчанию списки в стандартном отчете не выводятся.
Команду START можно сразу указывать в конце программы модели при ее подготовке и в таком виде записывать на магнитный носитель. Тогда после трансляции модели, т. е. создания объекта "процесс моделирования", сразу начинается моделирование. Этот же оператор можно вводить в программу модели в интерактивном режиме.
Однако может возникнуть необходимость завершить моделирование не по истечении какого-то времени, а после обработки определенного количества транзактов, имитирующих, например, изготовленные детали, переданные по каналу связи сообщения и т. д. В этом случае сегмент задания времени моделирования не нужен. Для организации такого способа завершения моделирования необходимо сделать следующее. В блоках TERMINATE, которые выводят из модели транзакты, имеющие смысл тех же изготовленных деталей или переданных сообщений, указать число, на которое уменьшается счетчик завершения моделирования. В команде START также указать число, деление которого на указанное в блоке TERMINATE число даст требуемое количество изготовленных деталей или переданных сообщений. Например, требуется завершить моделирование после изготовления 100 деталей. В модели это может быть так:
. . .
TERMINATE 1
. . .
TERMINATE 1
. . .
TERMINATE
START 100
Блоков TERMINATE, которые выводят из модели транзакты, соответствующие изготовленным деталям, может быть несколько. Все эти блоки должны иметь 1 в качестве операнда А. У остальных блоков TERMINATE, если они есть в модели, операнд А должен быть опущен.
ГЛАВА 2
МОДЕЛИРОВАНИЕ СИСТЕМЫ УПРАВЛЕНИЯ ЗАПАСАМИ С НЕУДОВЛЕТВОРИТЕЛЬНЫМ СПРОСОМ
2.1 Постановка задачи
Необходимо промоделировать работу склада материалов на предприятии. Вместимость склада составляет 5000 единиц материала. Возможна поставка на склад с периодичностью 5 дней в размере 1500 единиц материала. Начальный запас материалов на складе составляет 1000 единиц. Ежедневный спрос материала варьирует в пределах от 35 до 55 единиц с равной вероятностью. Если текущий запас равен или больше 1200, то никакой поставки материалов на склад в течение недели не производят. Требуется смоделировать работу склада материалов в течение 100 дней.
2.2 Описание модели
Для моделирования работы склада необходимо сформировать входные потоки заказов материала на склад, определить спрос материалов со склада и временной интервал моделирования работы склада. Но перед этим необходимо выбрать единицу измерения времени. Для нашего моделирования работы склада возьмём в качестве единицы измерения времени день.
2.2.1 Создание имитационной модели:
Построим заголовок модели:
;GPSSW Upr_zapasom.GRS
*****************************
* Управление моделями *
*****************************
Создадим четыре сектора:
* Определение входных данных.
RMULT 413
Zapas STORAGE 2500 ; Вместимость склада.
Zapas TABLE S$Zapas,100,100,20 ; Гистограмма запаса.
Material VARIABLE Nach_ur-S$Zapas ; Размер заказа.
Spros_m VARIABLE RN1@20+35 ; Размер ежедневного спроса.
Nach_ur EQU 1500 ; Начальный уровень запаса.
Postavka EQU 1300 ; Размер поставки.
****************************************
*Моделировнаие процесса поставки материала на склад.
GENERATE 5,,,,1 ; Поставка через 5 дней.
TEST L S$Zapas,Postavka,Out ; Нужна ли поставка.
ASSIGN 2,V$Material ; Размер заказа в P2.
ADVANCE 5 ; Интервал поставки.
ENTER Zapas,P2 ; Увеличить запас на Р2.
Out TERMINATE ; Завершение заказа.
*********************************************
* Моделировнаие текущего запаса с учётом спроса.
GENERATE 1 ; Генерирование дня.
ASSIGN 1,V$Spros_m ; Размер спроса в Р1.
TABULATE Zapas ; Запись тек. запаса.
TEST GE S$Zapas,P1,Zapasout ; Можно ли заказать.
LEAVE Zapas,P1 ; Уменьшить запас на Р1.
TERMINATE 1 ; Завершение дня.
Zapasout TERMINATE 1 ; Завершение дня.
*********************************************
* Установление начального размера запаса.
GENERATE ,,,1,10 ; Начальный запас.
ENTER Zapas,Nach_ur ; Установка нач. запаса.
TERMINATE ; Завершение установки.
*********************************************
Оператор RMULT определяет начальное число для генератора случайных чисел.
Оператор STORAGE (Накопитель) с меткой Zapas определяет вместимость склада 2500 единиц.
Оператор TABLE с меткой Zapas предназначен для формирования таблицы текущего (ежедневного) уровня запаса на складе. Текущий уровень запаса определяется с помощью стандартного числового атрибута S$Zapas.
Оператор VARIABLE c меткой Material определяет количество материала как разность начального и текущего запаса.
Оператор VARIABLE с меткой Spros_m характеризует ежедневный спрос, который изменяется от 35 до 55 единиц с равной вероятностью.
Оператор EQU с меткой Nach_ur определяет начальный уровень запасов, который в нашей задаче установлен в размере 1500 единиц. Использование именованной величины облегчает проведение экспериментов с ее различными значениями.
Оператор EQU c меткой Postavka определяет тот критический уровень материалов на складе, который обуславливает необходимость очередного заказа материалов. Этот размер в нашей задаче составляет 1300 единиц.
Оператор GЕNЕRАТЕ - генерирует очередной момент времени, когда возможна доставка материала на склад.
Оператор ТEST L определяет необходимость очередной поставки материала на склад. Очередная поставка материалов на склад производится тогда, когда текущий запас, который определяется с помощью стандартного числового атрибута S$Zapas, меньше размера поставки, определенного оператором ЕQU. с меткой Рostavka в предыдущем секторе. В противном случае поставка отменяется - требование (транзакт) направляется к оператору TERMINATE с меткой Out.
Еcли текущий запас меньше размера поставки, то требование переходит к следующему оператору - ASSIGN (Присвоить). В операторе ASSIGN в параметре требования под номером 2 запоминается' размер заказа, который определяется переменной под именем Material.
Оператор ADVANCE моделирует время ожидания требования (поставки) в течение 5 дней .
Далее оператор ENTER моделирует поставку после истечения 5-дневного срока и увеличивает текущее содержание склада - S$Zapas - на величину, содержащуюся в параметре требования под номером 2.
Оператор ТERMINATE с меткой Out удаляет требование из системы. Этот оператор используется, чтобы определить окончание моделирования состояния.
Оператор GENERATE генерирует очередной день работы склада.
Оператор ASSIGN присваивает параметру требования (очередному дню) под номером 1 размер спроса.
Оператор TABULA ТЕ с меткой Zapas собирает информацию для создания таблицы и гистограммы ежедневных уровней запасов.
Оператор TEST GE проверяет возможность удовлетворения спроса. Если текущий запас - S$Zapas - больше или равен величине спроса, то процесс моделирования переходит к следующему оператору - LEAVE (Оставить):
Если такой возможности нет, то требование направляется к оператору с меткой Zapasout.
Оператор LEAVE уменьшает текущий запас - S$Zapas - на величину спроса в данный день. Это делается так: требование (очередной день), входя в блок LEAVE, несет в параметре требования под номером 1 величину спроса (операнд В). Эта величина спроса и вычитается из величины текущего запаса S$Zapas.
Оператор GENERATE генерирует одно требование (транзакт) с приоритетом. равным 10. Оно имеет наибольший приоритет сведи всех требований, генерируемых оператором GENERATE, и поэтому становится первым активным требованием в системе.
Оператор ENTER определяет величину начального запаса, чтобы установить величину S$Zapas в начале моделирования.
Оператор TERMINATE уничтожает начальное требование без уменьшения индекса завершения.
GPSS позволяет многим требованиям одновременно существовать в различных местах в модели. В этой модели требования создаются в трех секторах.
2.2.2. Моделирование системы
Используя пункт Command главного меню создаём выполняемую модель. Моделирование закончится, когда 100 ежедневных заказов будут выполнены.
Report (Отчёт) в стандартном виде, для нашей задачи выглядит следующим образом:
GPSS World Simulation Report - Untitled Model 2.2.1
Friday, January 28, 2011 16:11:27
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 100.000 16 0 1
NAME VALUE
MATERIAL 10007.000
NACH_UR 1500.000
OUT 6.000
POSTAVKA 1300.000
SPROS_M 10008.000
ZAPAS 10006.000
ZAPASOUT 13.000
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 20 0 0
2 TEST 20 0 0
3 ASSIGN 12 0 0
4 ADVANCE 12 1 0
5 ENTER 11 0 0
OUT 6 TERMINATE 19 0 0
7 GENERATE 100 0 0
8 ASSIGN 100 0 0
9 TABULATE 100 0 0
10 TEST 100 0 0
11 LEAVE 100 0 0
12 TERMINATE 100 0 0
ZAPASOUT 13 TERMINATE 0 0 0
14 GENERATE 1 0 0
15 ENTER 1 0 0
16 TERMINATE 1 0 0
STORAGE CAP. REM. MIN. MAX. ENTRIES AVL. AVE.C. UTIL. RETRY DELAY
ZAPAS 2500 1433 0 1762 5450 1 1299.600 0.520 0 0
TABLE MEAN STD.DEV. RANGE RETRY FREQUENCY CUM.%
ZAPAS 1339.100 199.642 0
900.000 - 1000.000 2 2.00
1000.000 - 1100.000 5 7.00
1100.000 - 1200.000 24 31.00
1200.000 - 1300.000 19 50.00
1300.000 - 1400.000 13 63.00
1400.000 - 1500.000 14 77.00
1500.000 - 1600.000 9 86.00
1600.000 - 1700.000 10 96.00
1700.000 - 1800.000 4 100.00
FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
123 0 101.000 123 0 7
122 1 105.000 122 0 1
116 1 105.000 116 4 5 2 388.000
TABLE MEAN STD.DEV. RANGE RETRY FREQUENCY CUM.%
ZAPAS 1339.100 199.642 0
900.000 - 1000.000 2 2.00
1000.000 - 1100.000 5 7.00
1100.000 - 1200.000 24 31.00
1200.000 - 1300.000 19 50.00
1300.000 - 1400.000 13 63.00
1400.000 - 1500.000 14 77.00
1500.000 - 1600.000 9 86.00
1600.000 - 1700.000 10 96.00
1700.000 - 1800.000 4 100.00
FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
123 0 101.000 123 0 7
122 1 105.000 122 0 1
116 1 105.000 116 4 5 2 388.000
Анализ результатов:
Вместимость – 2500
Максимальное содержимое – 1762
Число входов – 5450
Среднее содержимое – 1299,600
Коэффициент использования – 0,52
Работа с моделью показывает, что чем выше размеры поставок, тем выше коэффициент использования.
ЗАКЛЮЧЕНИЕ
В результате исследования было выяснено, что используя систему имитационного моделирования GPSS, можно составить необходимую модель, и, проанализировав ее, получить искомый результат. То есть, меняя исходные данные и анализируя модель можно прийти к оптимальному решению.
Данная курсовая работа показала, что GPSS является необходимым элементом в портфеле знаний специалистов работающих в любой сфере.
СПИСОК ЛИТЕРАТУРЫ
В.Д. Боев «Моделирование систем. Инструментальные средства GPSS World». Учебное пособие. – СПб.: БХВ-Петербург, 2004.
Имитационное моделирование экономических процессов: учебное пособие / А.А. Емельянов Е.А. Власова Р.В. Дума. – М.: Финансы и статистика, 2002.
3) Игнатов В.Д. Особенности решения задач имитационного моделирования в системе GPSS World: учебно-методическое пособие / Игнатов В.Д. – Смоленск: Изд-во СГУ, 2007.
4) Бычков С.П., Храмов А.А. Разработка моделей в системе моделирования GPSS. М.: МИФИ, 1997.
5) Бражник А.Н. Имитационное моделирование: возможности GPSS World.-СПб.: Реноме. 2006.
6) Гаджинский А.М. Логистика: Учебник. – М.: Маркетинг, 1998. – 228 с.
Логистика: Учебник / Под ред. Б.А. Аникина. – М.: ИНФРА-М, 2005. – 367с.
8) Томашевский В.Н., Жданова В.Т. Имитационное моделирование в среде GPSS.-М.: Бестселлер, 2003
9) Шеннон Р.Дж. Имитационное моделирование систем – искусство и наука. М.: мир, 1978 г.
10) www.gpss.ru
Размещено на