Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
💸 Как сделать бизнес проще, а карман толще?
Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое раписание, но и напоминать клиентам о визитах тоже.
Проблема в том, что средняя цена по рынку за такой сервис — 800 руб/мес или почти 15 000 руб за год. И это минимальный функционал.
Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.⚡️ Для новых пользователей первый месяц бесплатно. А далее 290 руб/мес, это в 3 раза дешевле аналогов. За эту цену доступен весь функционал: напоминание о визитах, чаевые, предоплаты, общение с клиентами, переносы записей и так далее. ✅ Уйма гибких настроек, которые помогут вам зарабатывать больше и забыть про чувство «что-то мне нужно было сделать». Сомневаетесь? нажмите на текст, запустите чат-бота и убедитесь во всем сами! Порядок выполнения работы
Моделирование системы управления запасами
Постановка задачи Допустим, нам надо промоделировать работу склада материалов на предприятии. Вместимость склада составляет 10000 единиц материала. Возможна поставка на склад с периодичностью 5 дней в размере 1000 единиц материала. Начальный запас материалов на складе составляет 1000 единиц. Ежедневный спрос материала изменяется в пределах от 35 до 50 единиц с равной вероятностью. Если текущий запас равен или больше 800, то никакой поставки материалов на склад в течение недели не производят. Требуется смоделировать работу склада материалов в течение 200 дней. Выявление основных особенностей Для моделирования работы склада необходимо сформировать входные потоки заказов материала на склад, определить спрос материалов со склада и временной интервал моделирования работы склада. Но перед этим необходимо выбрать единицу измерения времени. Для моделирования работы склада можно взять в качестве единицы измерения времени день.
Создание имитационной модели процесса Создание имитационной модели начнем с построения заголовка модели, который может быть представлен, например, в таком виде: ; GPSSW Upr_zapasom.GPS Далее в имитационной модели создадим четыре сектора: 1) сектор определения входных данных; 2) моделирование поставки материалов на склад; 3) моделирование текущего запаса с учетом спроса; 4) установление начального размера запаса. Рассмотрим последовательно создание каждого из секторов. Первый сектор может быть представлен в таком виде: RMULT 413 Zapas STORAGE 2000; Zapas TABLE S$Zapas, 100, 100, 20; Material VARIABLE Nach_ur-S$Zapas; Spros_m VARIABLE RN1@15+35; Nach_ur EQU 1500; Postavka EQU 1200; Оператор RMULT определяет начальное число для генератора случайных чисел. Оператор STORAGE (Накопитель) с меткой Zapas определяет вместимость склада – 2000 единиц. Оператор TABLE с меткой Zapas предназначен для формирования таблицы текущего (ежедневного) уровня запаса на складе. Она может быть использована для построения соответствующей гистограммы, если потребуется. Текущий уровень запаса определяется с помощью стандартного числового атрибута S$Zapas. Оператор VARIABLE с меткой Material определяет количество материала как разность начального и текущего запаса. Оператор VARIABLE с меткой Spros_m характеризует ежедневный спрос, который изменяется от 35 до 50 единиц с равной вероятностью. Ежедневный спрос определяется так. Датчик случайных чисел, а точнее датчик псевдослучайных чисел, определяет, используя равномерное распределение вероятностей, значение вероятностей в интервале [0–1]. Допустим, это значение равно 0, 150. Тогда величина спроса будет определяться так: 35 + (50 – 35) × 0, 15 = 37, 25. Оператор EQU с меткой Nach_ur определяет начальный уровень запасов, который в нашей задаче установлен в размере 1500 единиц. Использование именованной величины облегчает проведение экспериментов с ее различными значениями. Оператор EQU с меткой Postavka определяет тот критический уровень материалов на складе, который обуславливает необходимость очередного заказа материалов. Этот размер в нашей задаче составляет 1200 единиц. Рассмотрим теперь второй сектор модели, который обеспечивает моделирование процесса поставки материала на склад. Он будет выглядеть так: GENERATE 5,,,, 1; TEST L S$Zapas, Postavka, Out; ASSIGN 2, V$Material; ADVANCE 5; ENTER Zapas, P2; Out TERMINATE; Оператор GENERATE генерирует очередной момент времени, когда возможна поставка материала на склад. Этот интервал времени составляет, например, 5 дней, обеспечивая еженедельную поставку материала на склад при пятидневной рабочей неделе. Этот интервал времени представляется в операнде A. В операнде E определен уровень приоритетности поставки материала на склад. Он в нашей задаче равен 1. По умолчанию уровень приоритетности для всех требований (транзактов) равен 0. Чем больше число в поле операнда E, тем выше уровень требования. Оператор TEST L определяет необходимость очередной поставки материала на склад. Очередная поставка материалов на склад производится тогда, когда текущий запас, который определяется с помощью стандартного числового атрибута S$Zapas, меньше размера поставки, определенного оператором EQU с меткой Postavka в предыдущем секторе. В противном случае поставка отменяется – требование (транзакт) направляется к оператору TERMINATE с меткой Out. Если текущий запас меньше размера поставки, то требование переходит к следующему оператору – ASSIGN (Присвоить). В операторе ASSIGN в параметре требования под номером 2 запоминается размер заказа, который определяется переменной под именем Material. Оператор ADVANCE моделирует время ожидания требования (поставки) в течение 5 дней. Далее оператор ENTER моделирует поставку после истечения 5дневного срока и увеличивает текущее содержание склада – S$Zapas – на величину, содержащуюся в параметре требования под номером 2. Оператор TERMINATE с меткой Out удаляет требование из системы. Этот оператор используется, чтобы определить окончание моделирования состояния. Рассмотрим теперь третий сектор модели, который обеспечивает моделирование текущего запаса с учетом ежедневного спроса на материал. Он будет выглядеть так: GENERATE 1; ASSIGN 1, V$Spros_m; TABULATE Zapas; TEST GE S$Zapas, P1, Zapasout; LEAVE Zapas, P1; TERMINATE 1; Zapasout TERMINATE 1; Оператор GENERATE генерирует очередной день работы склада. Оператор ASSIGN присваивает параметру требования (очередному дню) под номером 1 размер спроса. Оператор TABULATE с меткой Zapas собирает информацию для создания таблицы и гистограммы ежедневных уровней запасов. Оператор TEST GE проверяет возможность удовлетворения спроса. Если текущий запас – S$Zapas – больше или равен величине спроса, то процесс моделирования переходит к следующему оператору – LEAVE (Оставить): LEAVE Zapas, P1 Если такой возможности нет, то требование направляется к оператору с меткой Zapasout. Оператор LEAVE уменьшает текущий запас – S$Zapas – на величину спроса в данный день. Это делается так: требование (очередной день), входя в блок LEAVE, несет в параметре требования под номером 1 величину спроса (операнд B). Эта величина спроса и вычитается из величины текущего запаса S$Zapas. Рассмотрим теперь четвертый сектор модели, который обеспечивает установление начального размера запаса. Он будет выглядеть так: GENERATE,,, 1, 10; ENTER Zapas, Nach_ur; TERMINATE; Оператор GENERATE генерирует одно требование (транзакт) с приоритетом, равным 10. Оно имеет наибольший приоритет среди всех требований, генерируемых оператором GENERATE, и поэтому становится первым активным требованием в системе. Оператор ENTER определяет величину начального запаса, чтобы установить величину S$Zapas в начале моделирования. Оператор TERMINATE уничтожает начальное требование без уменьшения индекса завершения. GPSS позволяет многим требованиям одновременно существовать в различных местах в модели. В этой модели требования создаются в трех секторах.
Представление имитационной модели Для представления имитационной модели выполните следующие действия: • щелкните по пункту File главного меню системы. Появится выпадающее меню; • щелкните по пункту New (Создать) выпадающего меню. Появится диалоговое окно Новый документ; • выделите пункт Model и щелкните по кнопке ОК. Появится окно модели, в котором введите данную программу, как показано на рис. 4.46. Вызвать окно для представления имитационной модели в системе GPSSW можно также, нажав комбинацию клавиш Ctrl+Alt+S.
Моделирование системы Этот этап включает следующие действия: • щелкните по пункту Command главного меню. Появится выпадающее меню; • щелкните по пункту Create Simulation (Создать выполняемую модель) выпадающего меню. Начнется трансляция модели; • щелкните по пункту Command главного меню. Появится выпадающее меню; • щелкните по пункту START выпадающего меню. Появится диалоговое окно, в котором вместо значения 1 введите 200; • щелкните по кнопке OK. Моделирование закончится, когда 200 ежедневных заказов будут выполнены. Будет выполнено то количество прогонов процесса моделирования системы, которое указано в поле операнда А команды START. Затем появятся окна JOURNAL (Журнал) и REPORT (Отчет) в стандартном виде, как показано на рис. 4.47. Перед началом моделирования можно установить вывод тех параметров моделирования, которые нужны пользователю. Для этого: • щелкните по пункту Edit (Правка) главного меню системы или нажмите комбинацию клавиш Alt+E. Появится выпадающее меню; • щелкните по пункту Settings (Установки) выпадающего меню. Появится диалоговое окно SETTINGS для данной модели, в котором можно установить нужные выходные данные. Для нашего примера это окно может выглядеть так, как показано на рис. 4.48. Наличие галочки в окошках говорит о том, что эта информация будет выведена в окне результатов моделирования. В нашем примере будет выведена информация по следующим объектам: • Tables (Таблицы/гистограммы); • Storages (Накопители); • Logicswitches (Логические переключатели). При таких установках после выполнения моделирования снова появятся окна JOURNAL и REPORT в урезанном виде, как показано на рис. 4.49. В верхней строке окна REPORT указывается: • START TIME (Начальное время) – 0.000; • END TIME (Время окончания) – 200.000; • BLOCKS (Число блоков) – 16; • FACILITIES (Число каналов обслуживания) – 0; • STORAGES (Число накопителей) – 1. Ниже указываются результаты моделирования накопителя (STORAGE) под назначенным именем ZAPAS: • CAP. (Вместимость) – 2000; • REM. – 750; MIN. (Минимальное содержимое) – 0; • MAX. (Максимальное содержимое) – 1972; • ENTRIES (Число входов) – 9725; • AVL. (Доступность) – 1; • AVE.C. (Среднее содержимое) – 1282.935; • UTIL. (Коэффициент использования) – 0.641; • RETRY (Повтор) – 0; • DELAY (Отказ) – 0. Еще ниже указываются результаты моделирования для построения по табличным данным соответствующей гистограммы функционирования склада по имени ZAPAS: • MEAN (Средняя) – 1324.060; • STD.DEV. (Среднее квадратическое отклонение) – 273.629; • RANGE (Область); • RETRY – 0; • FREQUENCY (Частота); • CUM.% (Суммарный процент).
Построение графиков отдельных параметров функционирования системы Перед началом моделирования, а точнее после появления окна JOURNAL, можно построить графики некоторых параметров функционирования системы. Для этого: • щелкните по пункту Window главного меню системы или нажмите комбинацию клавиш Alt+W. Появится выпадающее меню; • щелкните по пункту Simulation Window (Окно моделирования) выпадающего меню. Появится всплывающее меню; • щелкните по пункту Plot Window (Окно графика) всплывающего меню. Появится диалоговое окно Edit Plot Window (Окно редактирования графика), которое необходимо соответствующим образом заполнить. Допустим, мы хотим графически представить на всем периоде моделирования, как меняется размер запаса. Для нашей задачи окно Edit Plot Window может быть заполнено так, как показано на рис. 4.50. После заполнения диалогового окна Edit Plot Window щелкните по кнопкам Plot (График), Memorize (Запомнить), а затем – по кнопке OK. Появится заготовка графика (рис. 4.51). После этого: • щелкните по пункту Command главного меню системы или нажмите комбинацию клавиш Alt+C. Появится выпадающее меню; • щелкните по пункту START. Появится диалоговое окно Start Command; • введите в диалоговом окне Start Command число 200 – количество дней моделирования работы склада – и щелкните по кнопке OK. Появится окно REPORT (Отчет) с результатами моделирования. На заднем плане будет размещаться график; • щелкните по графику, расположенному на заднем плане, – он выйдет на первый план; • используя горизонтальную и вертикальную полосы прокрутки, вы можете просмотреть построенный график. Фрагмент графика для нашего примера представлен на рис. 4.52. При выводе графика на передний план окно REPORT с результатами моделирования переместится на задний план. Для просмотра окна REPORT щелкните по нему мышью. Оно вновь перейдет на передний план. Можно также вывести соответствующую гистограмму. Для этого: • щелкните по пункту Window главного меню системы. Появится выпадающее меню; • щелкните по пункту Simulation Window выпадающего меню. Появится всплывающее меню; • щелкните по пункту Table Window (Окно гистограммы) во всплывающем меню. Появится диалоговое окно Open Table Window (Открыть окно гистограммы). В раскрывающемся списке Table щелкните по нужной гистограмме. Для нашей задачи это окно выглядит так, как показано на рис. 4.53;
•щелкните по кнопке ОК. Появится соответствующая гистограмма. Для нашей задачи она выглядит так, как представлено на рис. 4.54.
Анализ результатов Сначала давайте воспользуемся окном Edit Expression Window (Окно редактирования выражений), чтобы просмотреть две величины сейчас и использовать этот прием в будущем, когда мы пожелаем добавить большее количество переменных для просмотра. Для этого: • щелкните по пункту Window главного меню. Появится выпадающее меню; • щелкните по пункту Simulation Window (Окно моделирования) выпадающего меню. Появится всплывающее меню; • щелкните по пункту Expressions Window. Появится диалоговое окно Edit Expression Window. В диалоговом окне Edit Expression Window: • щелкните по первому текстовому полю сверху – Label (Метка) – и введите следующий текст: «Номер поставки»; • щелкните по второму текстовому полю сверху – Expression – и введите стандартный числовой атрибут N$Out; • щелкните по кнопкам View (Просмотр) и Memorize (Запомнить). Если мы запоминаем введенные выражения и их назначение, то при закрытии окна и повторном его открытии эта информация вновь появляется. Теперь давайте добавим текущий уровень запасов. В диалоговом окне Edit Expression Window: • в первом текстовом поле введите новую запись – «Текущая вместимость», а во втором – S$Zapas; • щелкните по кнопкам View и Memorize. Затем: • введите в первом текстовом поле следующий текст: «Максимальное содержимое склада», а во втором – стандартный числовой атрибут SM$Zapas; • щелкните по кнопкам View и Memorize. Наконец, давайте введем номер дня: • в первом текстовом поле введите надпись «День», а во втором – AC1; • щелкните по кнопкам View и Memorize; • щелкните по кнопке OK. Появится окно EXPRESSIONS с искомыми значениями, показанное на рис. 4.55. После перемещения и изменения размеров окна TABLE WINDOW и EXPRESSIONS могут выглядеть так, как показано на рис. 4.56. Теперь начнем процесс моделирования с новым, общим числом дней моделирования. Например, пусть длительность моделирования составит 100 дней. При этом не будем выводить окно REPORT с результатами моделирования. Выполните следующие действия: • щелкните по пункту Command главного меню. Появится выпадающее меню; • щелкните по пункту START. Появится диалоговое окно Start Command. В этом диалоговом окне вместо 1 введите следующее: 100, NP; • щелкните по кнопке OK. Обратите внимание, как изменяются гистограмма в окне TABLE WINDOW и искомые значения в окне EXPRESSIONS в процессе моделирования. Процесс функционирования данной системы управления запасами весьма прост. Сначала в системе активизируются требования, имеющие наибольший приоритет. В нашей задаче таким является одно требование в четвертом секторе, имеющее приоритет, равный 10. Это наибольший приоритет для всех требований, генерируемых оператором GENERATE. Поэтому данное требование становится первым активным требованием в системе. Оно входит в накопитель STORAGE под именем Zapas с вместимостью 2000 единиц. Во время входа в накопитель в нем устанавливается начальный уровень запаса, величина которого определяется с помощью оператора EQU. В нашей задаче он равен 1500 единицам. Далее активизируются требования (недели), генерируемые оператором GENERATE во втором секторе, так как на данный момент они имеют наибольший приоритет, равный 1. В этом секторе определяется время поставки материалов на склад. Если нет поставки, то активное требование второго сектора задерживается в операторе ADVANCE на пять дней. В это время активизируются требования, генерируемые оператором GENERATE в третьем секторе, которые поступают в систему каждый день. Они имеют нулевой приоритет – самый низкий в системе. Закройте окна TABLE WINDOW и EXPRESSIONS, щелкнув по кнопкам с крестиком, расположенным в правом верхнем углу окон. Теперь откройте окно BLOCK ENTITIES в детальном виде. Для этого: • щелкните по пункту Window главного меню. Появится выпадающее меню; • щелкните по пункту Simulation Window (Окно моделирования) выпадающего меню. Появится всплывающее меню; • щелкните по пункту Blocks Window. Появится окно BLOCK ENTITIES в детальном виде (рис. 4.57). Теперь можно визуализировать процесс моделирования. Для этого: • щелкните по пункту Command главного меню. Появится выпадающее меню; • щелкните по пункту Clear (Очистить). Все значения в окне BLOCK ENTITIES обнулятся; • щелкните по пункту Command главного меню. Появится выпадающее меню; • щелкните по пункту START. Появится диалоговое окно Start Command. Введите в нем такие данные: 100, NP; • щелкните по кнопке OK. Начнется перемещение требований по блокам системы с соответствующим изменением выводимых в окне величин. Наблюдайте действие в различных частях моделирования. Если модель достаточно большая, то для ее просмотра используйте полосы прокрутки, расположенные в правой части и/или внизу окна. Чтобы просмотреть программу, перемещайте бегунок вдоль полосы прокрутки. Это выполняется точно так же, как в текстовых редакторах. Перемещение бегунка можно выполнить тремя способами: • щелкните по стрелкам прокрутки, расположенным вверху (слева) и внизу (справа) на вертикальной (горизонтальной) полосе прокрутки; • щелкните по полосе прокрутки под бегунком или над ним (по горизонтальной полосе прокрутки щелкните соответственно слева и справа); • наведите курсор мыши на бегунок, нажмите левую кнопку мыши и, удерживая ее, перемещайте курсор, а вместе с ним и бегунок. Теперь попробуем изменить некоторые входные данные в первом секторе программы. Для этого: • щелкните по пункту Window главного меню системы. Появится выпадающее меню; • щелкните по пункту Simulation Window выпадающего меню. Появится всплывающее меню; • щелкните по пункту Table Window (Окно гистограммы) во всплывающем меню. Появится диалоговое окно Open Table Window (Открыть окно гистограммы), в текстовом поле которого будет имя Zapas; • щелкните по кнопке ОК. Появится соответствующая гистограмма; • щелкните по пункту Command главного меню системы. Появится выпадающее меню; • щелкните по пункту Custom (Заказать) выпадающего меню. Появится диалоговое окно Simulation Command (Команда моделирования), которое выглядит так, как показано на рис. 4.58; Рис. 4.57. Окно BLOCK ENTITIES BLOCK ENTITIES BLOCK ENTITIES BLOCK ENTITIES BLOCK ENTITIES в детальном виде для модели управления запасами.
Моделирование системы управления запасами •введите две строки: Nach_ur EQU 1000 Postavka EQO 700 • щелкните по кнопке OK; • щелкните по пункту Command главного меню системы. Появится выпадающее меню; • щелкните по пункту Clear выпадающего меню; • щелкните по пункту Command главного меню. Появится выпадающее меню; • щелкните по пункту START. Появится диалоговое окно Start Command. Введите в нем такие данные: 100, NP; • щелкните по кнопке OK. Появится новая гистограмма после моделирования. Она выглядит так, как показано на рис. 4.59.
|