![]() |
|
|
Курсовая работа: Система управления запасами с неудовлетворительным спросомОперанды А и В не обязательно должны быть заданы. Когда один или оба операнда не указаны, по умолчанию предполагается их нулевое значение. Например, А=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: с операндом А 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 . . . 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 состоит из одного или нескольких сегментов. Для управления временем моделирования разработчик (см. блок-диаграмму): 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 Создание имитационной модели: Построим заголовок модели: ;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 является необходимым элементом в портфеле знаний специалистов работающих в любой сфере. 1) В.Д. Боев «Моделирование систем. Инструментальные средства GPSS World». Учебное пособие. – СПб.: БХВ-Петербург, 2004. 2) Имитационное моделирование экономических процессов: учебное пособие / А.А. Емельянов Е.А. Власова Р.В. Дума. – М.: Финансы и статистика, 2002. 3) Игнатов В.Д. Особенности решения задач имитационного моделирования в системе GPSS World: учебно-методическое пособие / Игнатов В.Д. – Смоленск: Изд-во СГУ, 2007. 4) Бычков С.П., Храмов А.А. Разработка моделей в системе моделирования GPSS. М.: МИФИ, 1997. 5) Бражник А.Н. Имитационное моделирование: возможности GPSS World.-СПб.: Реноме. 2006. 6) Гаджинский А.М. Логистика: Учебник. – М.: Маркетинг, 1998. – 228 с. 7) Логистика: Учебник / Под ред. Б.А. Аникина. – М.: ИНФРА-М, 2005. – 367с. 8) Томашевский В.Н., Жданова В.Т. Имитационное моделирование в среде GPSS.-М.: Бестселлер, 2003 9) Шеннон Р.Дж. Имитационное моделирование систем – искусство и наука. М.: мир, 1978 г. 10) www.gpss.ru |
Страницы: 1, 2
![]() |
||
НОВОСТИ | ![]() |
![]() |
||
ВХОД | ![]() |
|
Рефераты бесплатно, реферат бесплатно, курсовые работы, реферат, доклады, рефераты, рефераты скачать, рефераты на тему, сочинения, курсовые, дипломы, научные работы и многое другое. |
||
При использовании материалов - ссылка на сайт обязательна. |