Министерство образования и науки РоссийскойФедерации
ФИЛИАЛ ГОСУДАРСТВЕННОГО ОБРАЗОВАТЕЛЬНОГО УЧРЕЖДЕНИЯ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«БАЙКАЛЬСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ЭКОНИМИКИ И ПРАВА» В Г. УСТЬ – ИЛИМСКЕ
(Филиал ГОУ ВПО в г. Усть–Илимске)
Кафедраэкономики
Специальность002779 Автоматизированные системы обработки информации и управления»
Курсовая работа
по дисциплине
«Имитационное моделирование экономических процессов»
«Система управления запасами с неудовлетворительнымспросом»
Руководитель
Г.П. Куклин
Исполнитель
студент группы АИ 08
Тян Е.Е.
Усть-Илимск 2011
СОДЕРЖАНИЕ
Введение
Глава 1. Система имитационногомоделирования GPSS WORD
1.1. Общие сведения
1.2. Моделирование всистеме GPSS
Глава 2. Моделирование системыуправления запасами с неудовлетворительным спросом
2.1. Постановка задачи
2.2. Описание модели
Заключение
Список литературы
ВВЕДЕНИЕ
Товарно-материальныйзапас- это запас какого-либо ресурса или предметов, используемых в организации.
С точки зрения практикипроблема управления запасами является чрезвычайно серьезной. Потери, которыенесут предприятия (особенно промышленные) вследствие нерационального управлениязапасами, очень велики. Плохо, когда запас мал, недостаточен. Это может привестик нарушению ритмичности производства, росту себестоимости продукции, срывусроков выполнения работ по договорам, потере прибыли. Однако же, крайненежелательной является и ситуация, когда запас чрезмерно велик. В этом случаепроисходит «замораживание» оборотных средств организации. Врезультате те деньги, которые могли бы «работать», приносить доходпокоятся на складах в виде запасов сырья, материалов, комплектующих.
Для эффективногорешения проблем, связанных с управлением товарно-материальными запасамитребуется применение соответствующих методов. Такие методы существуют, однако,к сожалению, на практике (особенно в России) они пока не находят должногораспространения.
Очень показательнымявляется высказывание одного из зарубежных исследователей:
"… Слишком многиепредприятия, к сожалению, управляют запасами совершенно неудовлетворительно;это говорит о том, что руководство не осознает всей важностиматериально-технических запасов производства. Но еще чаще бывает, что осознаниепроблемы существует. Не хватает понимания того, что надо делать и как этоделать".
Итак, управлениезапасами на рациональной основе — весьма актуальная задача. Определяющеезначение при построении системы управления запасами имеет характер потребностив хранимом продукте.
Внастоящее время решение задач повышения эффективности управления предприятиемневозможно без применения современных вычислительных систем и программныхкомплексов. Как показывает практика, автоматизация управления предприятием безинноваций в собственно сами методы управления не дает значительного эффекта.Необходима адаптация, проработка методик и моделей управления, в том числе иуправления запасами.
Внедрениематематических моделей, алгоритмов, предназначенных для решения задачиуправления запасами и новых информационных технологий, позволяетавтоматизировать процесс получения оптимального решения для многопродуктовогоассортимента современного торгового предприятия.
Моделирование – один изспособов исследования и устранения проблем, возникающих в окружающем нас мире.Говоря более строго, модель является реальным или абстрактным объектом, которыйзаменяет (представляет) объект исследования в процессе его изучения, находитсяв отношении сходства с последним (аналогия, физическое подобие и т.п.) и болееудобен для экспериментов. Наиболее естественная и важная сфера применениямоделирования – анализ сложных систем, в том числе социотехнических(производственных, финансовых и т.д.).
Традиционно различаютаналитическое и имитационное моделирование.
Аналитическая модель,как правило, статическая (ее выходы функционально зависят от входов) и поэтомув ряде практических случаев может быть реализована даже с помощью электронныхтаблиц.
К имитационным моделямприбегают тогда, когда объект моделирования настолько сложен, что адекватноописать его поведение математическими уравнениями невозможно илизатруднительно. Имитационное (динамическое) моделирование рассматривает моделькак совокупность правил (дифференциальных уравнений, конечных автоматов, сетейПетри и т.п.), которые определяют, в какое состояние в будущем перейдетмоделируемый объект из некоторого предшествующего состояния.
Сложныефункции моделирующего алгоритма могут быть реализованы средствами универсальныхязыков программирования (Паскаль, Си), что предоставляет неограниченныевозможности в разработке, отладке и использовании модели. Однако подобнаягибкость приобретается ценой больших усилий, затрачиваемых на разработку ипрограммирование весьма сложных моделирующих алгоритмов, оперирующих сосписковыми структурами данных. Альтернативой этому является использованиеспециализированных языков имитационного моделирования
Объект исследования:система управления запасами с неудовлетворительным спросом
Предмет исследования:внедрение имитационных моделей, предназначенных для решения задачи управлениязапасами.
Целью выполненияданной курсовой работы является получение навыков системного исследованияреальной динамической сложной системы посредством разработки её имитационноймодели. В качестве таковой взята система управления запасами на предприятии.
Задачи:
1. Изучитьучебно-методическую и научную литературу по теме исследования.
2. ИзучитьGPSS World.
3. Поставитьи решить конкретную задачу по управления запасами с неудовлетворительнымспросом с помощью GPSSWorld.
Курсовая работа состоитиз двух глав и списка литературы.
ГЛАВА 1
Система имитационногомоделирования GPSSWORD
1.1. Общиесведения
имитационное моделирование товарный материальный запас
Дискретно-событийноемоделирование обязано своим рождением Дж. Гордону, который в начале 1960-хспроектировал и реализовал на мэйнфреймах IBMсистему GPSS. Основной объект вэтой системе – пассивный транзакт (заявка на обслуживание), который можетопределенным образом представлять собой работников, детали, сырье, документы,сигналы и т.п. «Перемещаясь» по модели, транзакты становятся в очереди кодноканальным и многоканальным устройствам, захватывают и освобождают этиустройства, расщепляются, уничтожаются и т.д. Таким образом,дискретно-событийную модель можно рассматривать как глобальную схемуобслуживания заявок. Аналитические результаты для большого количества частныхслучаев таких моделей рассматриваются в теории массового обслуживания.
Сегодня существуетцелый ряд инструментов, поддерживающих такой подход в моделировании: GPSS/PC,GPSS/H,GPSS World,Object GPSS,Arena, SimProcess,Enterprise Dynamics,Auto-Modи др.
GPSSWorld – типичный современныйпредставитель GPSS-семейства,реализованный для работы в среде MSWindows. Наличие встроенныхинструментов статистической обработки результатов моделирования, встроенногоязыка программирования расчетов PLUSи др. позволяет создавать средствами GPSSWorld не только простыеобучающие модели, но и более полезные приложения. Однако следует заметить, что GPSS/PCи Simpas предназначены дляработы в операционной системе MS-DOS.Поэтому имеются ограничения, которые в ряде случаев не позволяют осуществитьразработку и эксплуатацию моделей сложных систем с требуемой степеньюдетализации.
Отмеченных недостатковпрактически не имеет новая общецелевая система моделирования GPSSWorld, разработаннаякомпанией Minuteman (США). Этасистема является развитием GPSS/PC,но приобрела комбинированный характер, т.е. может моделировать как дискретные,так и непрерывные процессы. Эти возможности обеспечиваются как новыми объектамиязыка GPSS, так и включёнными всостав GPSSWorld языка Plus– языка программирования низкого уровня. Этот язык сделал GPSSWorld более открытойсистемой и позволяет взаимодействовать с другими приложениями, а также создаватьпользователями свои библиотеки процедур. Язык Plusвместе с другими инструментальными средствами GPSSWorld позволилавтоматизировать весь цикл исследований от разработки моделей до выработкирекомендаций за счёт новых функций планирования экспериментов и обработкистатистики. Наконец, GPSSWorld работает воперационной системе Windowsи максимально ориентирована на использование современных технологий,обеспечивающих высокую интерактивность и визуальное представление информации.
Несмотря на изначальную ориентациюGPSS на моделирование систем массовогообслуживания, система оказалась удивительно долгоживущей и способной кразвитию. Трудоемкость описания моделируемых систем в терминах бизнес-процессовможет быть снижена за счет применения таких продуктов, как Object GPSS или ISS2000. В частности, созданный в НТУУ «КПИ» под руководствомВ.Н. Томашевского пакет ISS2000 представляет собой лингвистический процессор, с помощью которогопользователь в диалоговом режиме создает автоматически GPSS-программу и запускает ее на выполнение.
1.2. Моделирование всистеме GPSS
1.2.1. Основыпостроения и принципы функционирования языка имитационного моделирования
Модель разрабатываетсяна языке GPSS и состоит из операторов, а объект "Модель"создается при помощи встроенного текстового редактора. Объект "Процессмоделирования" — это результат трансляции модели. Далее процессмоделирования запускается с помощью команд GPSS. По завершении моделирования,как правило, автоматически создается объект "Отчет".
Текстовый объект (текстовыйфайл GPSS World) предназначен для упрощения разработки больших моделей исоздания библиотеки исходных текстов. То есть модель может быть разделена нанаборы операторов, представляющие собой отдельные текстовые файлы, а затемобъектом «Процесс моделирования» собрана из них. Объект «Процессмоделирования» может также создавать новые текстовые файлы с фрагментамимодели, результатами моделирования, а также считывать и записывать данные втекстовые файлы.
GPSS Worldпредназначена для имитационного моделирования систем с дискретными инепрерывными процессами. Языком моделирования в ней является язык GPSS,улучшенный встроенным языком программирования низкого уровня PLUS. Язык GPSSпостроен в предположении, что модель сложной системы можно представить совокупностьюэлементов и логических правил их взаимодействия в процессе функционированиямоделируемой системы. Набор абстрактных элементов, называемых объектами,небольшой. Также набор логических правил ограничен и может быть описанстандартными операциями. Комплекс программ, описывающих функционированиеобъектов и выполняющих логические операции, является основой для созданияпрограммной модели.
Кроме этого комплекса всоставе GPSS World имеется программа-планировщик, выполняющая следующиефункции:
· обеспечениепродвижения по заданным разработчиком маршрутам динамических объектов,называемых транзактами;
· планированиесобытий, происходящих в модели, путем регистрации времени наступления каждогособытия и выполнения их в нарастающей временной последовательности;
· регистрациястатистической информации о функционировании модели;
· продвижениемодельного времени в процессе моделирования системы.
Чтобы обеспечитьправильную последовательность обработки событий во времени, имеются системныечасы, хранящие значения абсолютного модельного времени
Объекты в моделируемойсистеме предназначены для различных целей. Совершенно не обязательно, чтобы водной модели участвовали все типы объектов. Необходимо лишь наличие блоков итранзактов, иначе модель работать не будет.
Объекты подразделяютсяна 7 категорий и 15 типов, которые представлены в Таблице №1(Приложение 1)
/>Рассмотримназначение объектов GPSS.
Динамическими объектамиявляютсятранзакты, которые создаются в определенных точках модели, продвигаютсяпланировщиком через блоки, а затем уничтожаются. Транзакты являются аналогамиединиц — потоков в реальной системе. Они могут представлять собой различныеэлементы даже в одной модели. С каждым транзактом связаны параметры,которые используются для конкретных данных. Каждый транзакт может иметь любоечисло параметров. Параметры нумеруются или им даются имена. Номера параметров иимена используются для ссылок на значения, присвоенные параметрам. Транзактамможет присваиваться приоритет. Приоритет определяет предпочтение,которое получает транзакт, когда он и другие транзакты претендуют на один и тотже ресурс.
Объекты аппаратнойкатегории — это абстрактные элементы, на которые может бытьдекомпозирована реальная система. Воздействуя на эти объекты, транзакты могутизменять их состояние и влиять на движение других транзактов. К объектам этоготипа относятся одноканальные устройства, памяти (многоканальные устройства) илогические ключи.
Одноканальныеустройства (ОКУ) представляют собой оборудование,которое в любой момент времени может быть занято только одним транзактом.Например, один канал передачи данных, одноканальный ремонтный орган, одинстанок изготовления деталей, одно транспортное средство.
Многоканальныеустройства (МКУ) предназначены для имитации оборудования,осуществляющего параллельную обработку. Они могут быть использованыодновременно несколькими тран-зактами. МКУ можно использовать в качествеаналога, например, многоканального ремонтного органа, нескольких каналов связи.
Для моделирования такогооборудования, как переключатели, имеющие только два состояния, в GPSSиспользуются логические ключи.
Операционные объекты,т. е. блоки, задают логику функционирования модели системы и определяют путидвижения транзактов между объектами аппаратной категории. В блоках могутпроисходить события четырех основных типов:
1. созданиеили уничтожение транзактов;
2. изменениечислового атрибута объекта;
3. задержкатранзакта на определенный период времени;
4. изменениемаршрута движения транзакта в модели. Версия GPSS, реализованная в системе GPSSWorld, содержит 53 типа блоков.
В зависимости отназначения блоки подразделяются на несколько групп.
1. Блоки,осуществляющие модификацию атрибутов транзак-тов:
o генерированиеи уничтожение транзактов GENERATE, SPLIT, TERMINATE, ASSEMBLE;
o временнаязадержка ADVANCE;
o синхронизациядвижения двух MATCH и нескольких GATHER транзактов;
o изменениеприоритета транзакта PRIORITY;
o изменениепараметров транзактов ASSIGN, INDEX, MARK, PLUS.
2. Блоки,изменяющие последовательность движения транзак-тов (блоки передачи управления):DISPLACE, TRANSFER, LOOP, TEST, GATE.
3. Блоки,связанные с группирующей категорией: ADOPT, ALTER, EXAMINE, JOIN, REMOVE, SCAN.
4. Блоки,описывающие объекты аппаратной категории:
o одноканальныеустройства (технические средства) SEIZE, RELEASE, PREEMPT, RETURN, FUNAVAIL,FAVAIL;
o многоканальныеустройства (памяти) ENTER, LEAVE, SAVAIL, SUNAVAIL;
o ключи(логические переключатели) LOGIC.
5. Блоки,сохраняющие необходимые значения для дальнейшего использования: SAVEVALUE,MSAVEVALUE.
6. Блокидля получения статистических результатов:
o очередиQUEUE, DEPART;
o таблицыTABULATE.
7. Блокидля организации списка пользователя: LINK, UNLINK.
8. Блокидля организации ввода-вывода:
o открытие/закрытиефайла: OPEN/CLOSE;
o считывание/записьв файл: READ/WRITE;
o установкапозиции текущей строки: SEEK.
9. Специальныеблоки: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. будущихсобытий;
3. задержкиОКУ или МКУ;
4. отложенныхпрерываний ОКУ;
5. пользователя.
Одноканальноеустройство имеет:
· список отложенных прерываний — список транзактов, ожидающих занятия ОКУ по приоритету;
· список прерываний — списоктранзактов, обслуживание которых данным ОКУ было прервано;
· список задержки — списоктранзактов, ожидающих занятия ОКУ в порядке приоритета;
· список повторных попыток — списоктранзактов, ожидающих изменения состояния ОКУ.
Многоканальноеустройство имеет:
· список задержки — списоктранзактов в порядке приоритета, ожидающих возможность занять освободившиесяканалы МКУ;
· список повторных попыток — списоктранзактов, ожидающих изменения состояния МКУ.
Список пользователя содержиттранзакты, удаленные пользователем из списка текущих событий и помещенные всписок пользователя как временно неактивные. Списки пользователя используютсядля организации очередей с дисциплинами, отличными от дисциплины «первымпришел — первым обслужен».
/>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 целью повышения эффективности работы GPSSWorld рекомендуется использовать последовательность целых чисел 0, 1, 2, 3,…вместо, например, 37, 43, 88, 122,… Чем выше число, тем выше приоритет. Еслиоперанд Е не используется, по умолчанию приоритет генерируемых данным блокомGENERATE транзактов равен нулю.
Операнды D и Е могутзадаваться также как и операнды А, B и С, но при этом принимать значения толькоцелых положительных и целых чисел соответственно.
В любом блоке GENERATEдолжен быть обязательно задан либо операнд А, либо операнд D. Нельзяиспользовать в качествеоперанда параметры транзактов. Необходимо также помнить,что транзакт не должен входить в блок GENERATE. Если транзакт пытается этоделать, возникает ошибка выполнения. Приведем примеры записи блоков GENERATE:
с операндом А
1. GENERATE 38.6
2. GENERATE X$IntPostTran
3. GENERATE MX$VrPost(3,6)
4. GENERATE V$Prom
5. GENERATE (Exponential(11,0,X$Mat))
6. GENERATE IntPostTran
с операндами А и B
7. GENERATE 73.25,X$Otk
8. GENERATE X$Sredne,FN2
9. GENERATE Sredne,FN4
10. GENERATE (V$Post+7.1),FN$Mod
с операндами А и C
11. GENERATE 7.3,,4.1
12. GENERATE 7.3,,X$VrSm
13. GENERATE V$IntP,,MX2(X$Stroka,X$Stolbez)
14. GENERATE (Normal(3,X$Sre,X$SreOtk)),,Sme
с операндами А, B, E
15. GENERATE 13.3,2.8,,,1
16. GENERATE (Normal(8,X$Sr,X$SrOtk)),Post,,1
17. 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
.. .
GENERATESrIntPost,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состоит из одного или нескольких сегментов. Для управления временеммоделирования разработчик (см. блок-диаграмму):
1. включаетв модель сегмент из блоков GENERATE и TERMINATE;
2. вблоке TERMINATE в качестве операнда А использует 1;
3. вовсех прочих блоках 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Созданиеимитационной модели:
Построим заголовокмодели:
;GPSSWUpr_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 дней.
TESTL 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 ;Запись тек. запаса.
TESTGE 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(Отчёт)в стандартном виде, для нашей задачи выглядит следующим образом:
GPSSWorld Simulation Report — Untitled Model 2.2.1
Friday,January 28, 2011 16:11:27
STARTTIME 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
FECXN 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
FECXN 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 является необходимымэлементом в портфеле знаний специалистов работающих в любой сфере.
/>СПИСОКЛИТЕРАТУРЫ
1) В.Д. Боев«Моделирование систем. Инструментальные средства GPSSWorld». Учебное пособие. –СПб.: БХВ-Петербург, 2004.
2) Имитационноемоделирование экономических процессов: учебное пособие /А.А. Емельянов Е.А. Власова Р.В. Дума. – М.:Финансы и статистика, 2002.
3) Игнатов В.Д. Особенностирешения задач имитационного моделирования в системе GPSSWorld: учебно-методическоепособие / Игнатов В.Д. – Смоленск: Изд-во СГУ, 2007.
4) Бычков С.П.,Храмов А.А. Разработка моделей в системе моделирования GPSS. М.:МИФИ, 1997.
5) Бражник А.Н. Имитационноемоделирование: возможности GPSSWorld.-СПб.: Реноме. 2006.
6) Гаджинский А.М. Логистика: Учебник. –М.: Маркетинг, 1998. – 228 с.
7) Логистика:Учебник / Под ред. Б.А. Аникина. – М.: ИНФРА-М, 2005. – 367с.
8) Томашевский В.Н.,Жданова В.Т. Имитационное моделирование в среде GPSS.-М.:Бестселлер, 2003
9) Шеннон Р.Дж. Имитационноемоделирование систем – искусство и наука. М.: мир, 1978 г.
10) www.gpss.ru