|
имитнов2008. Учебнометодический комплекс по дисциплине Имитационное моделирование для студентов Казнту имени К. И. Сатпаева по специальности
Рисунок 21 - Схема алгоритма процедур обработки прерываний
После нажатия на панели инструментов кнопки «Start» активизируется стартовая форма. С этого момента программа находится в режиме ожидания действий пользователя.
Цифрой 1 обозначено действие, заключающееся в корректировке исходных данных. Необходимые изменения вносятся в соответствующие текстовые поля.
Цифрой 2 обозначено действие, заключающееся в нажатии кнопки «Расчет». В процедуре, связанной с этой кнопкой, оператор 3 осуществляет перевод исходных данных из символьной формы в числовую. Затем оператор 4 обращается к модулю общего назначения «Model4». Схема алгоритма этого модуля приведена на рисунке 22. После окончания работы модуля и выдачи на экран результатов моделирования работа процедуры, связанной с кнопкой «Расчет», заканчивается. Программа вновь переходит в режим ожидания действий пользователя.
Цифрой 5 на схеме обозначено действие пользователя, заключающееся в нажатии кнопки «Очистка». В процедуре, связанной с ней, производится очищение текстовых полей для вывода показателя эффективности и значения числового фактора. Затем может быть произведено изменение исходных данных и проведены новые расчеты с использованием кнопки «Расчет».
Цифрой 7 на схеме обозначено действие пользователя, заключающееся в нажатии кнопки «Выход». В результате работа программы прекращается. В состав базового комплекта исходных данных входят:
Lz - среднее число заказов в день;
T обл.j (j =1, 2, 3, 4) - среднее время работы с изделием в j -м цехе для выбранного варианта структуры предприятия (дней);
Р - прибыль от изготовления одного изделия ($);
С - издержки производства за период функционирования фирмы (в $);
TD - период функционирования фирмы (дней);
- относительная величина разброса времени работы в каждом цехе;
NP - число случайных реализаций моделируемого процесса.
Оператор 1 служит для обнуления глобальных переменных, к которым относятся:
Mprof - суммарная величина прибыли для всех случайных реализаций;
Sum2- сумма квадратов прибыли для всех случайных реализаций.
Оператор 2 является началом цикла случайных реализаций. Оператор 3 служит для обнуления локальных переменных, к числу которых относятся:
Nz - число заказов для текущей реализации;
Nобс. - число выполненных заказов для текущей реализации;
Тkj (j=1, 2, 3, 4) — время окончания работы с очередным изделием в j-м цехе;
ТZ0 - время поступления предыдущего заказа.
Рисунок 22 - Схема алгоритма модуля «Model 4»
Оператор 4 является началом циклического перебора поступающих заказов. Оператор 5 обращается к датчику случайных чисел с равномерным распределением в интервале (0,1). Оператор 6 служит для определения возможного значения случайной величины времени поступления заказа при условии, что время между соседними заказами имеет показательное распределение. Оператор 7 фиксирует новое значение переменной ТZ0
Условный оператор 8 проверяет условие прекращения функционирования производственной фирмы. Если это условие не выполняется, оператор 9 увеличивает на единицу счетчик числа поступивших заказов. В противном случае расчет данной случайной реализации заканчивается и управление передается оператору 13.
Операторы 10 и 11 описывают циклический процесс работы цехов предприятия по обслуживанию очередной заявки.
После того как изделие покинет последний цех, оператор 12 подсчитывает число изготовленных изделий. После окончания периода функционирования предприятия оператор 13 производит расчеты по формулам:
Prof=Nобс*P-C;
Mprof =M prof +Prof;
Sum2 = Sum2 + Prof Prof
После окончания цикла случайных реализаций оператор 14 производит расчеты показателя эффективности по формулам: Cprof=Mprof / NP;
Cprof = Cprof –1.28 Основная литература: 1[55-111]
Контрольные вопросы:
1.Как определяется случайная прибыль?
Чему равно количество цехов?
Тема лекции № 7. Моделирование процессов и систем управления.
Модель управления запасами.
Имеется склад, где хранится запас однотипного товара. Начальный уровень запаса равен Nyp. В результате удовлетворения ежедневного спроса происходит уменьшение запаса на случайную величину, имеющую нормальное распределение с известными характеристиками: математическим ожиданием Мд и средним квадратическим отклонением д. Затраты на хранение единицы товара в течение суток составляют $С1,.
Если на складе не останется товара, то администрации склада придется уплатить прибывшим покупателям компенсацию в размере $С3 за каждую недостающую единицу товара по отношению к заказанному количеству.
Чтобы избежать затрат, вызванных дефицитом товара, администрация склада периодически подает заявки на поставку дополнительных партий товара выбранного объема Part. Подача заявки производится в момент, когда уровень запаса товара снизится до выбранного уровня URmin. Время выполнения заявки является случайной величиной с нормальным распределением и известными характеристиками Мт и т. Затраты на поставку единицы товара составляют $С2. Цикл работы склада составляет TD дней.
Требуется разработать математическую модель, которая бы описывала возможный реальный процесс, позволяла изучать его закономерности и выбирать наивыгоднейший режим работы склада, обеспечивающий минимальные затраты на его содержание.
В частности, требуется установить:
- оптимальный уровень запаса URmin, при достижении которого необходимо подавать заявку на поставку партии товара;
- оптимальный объем партии товара Part.
В качестве показателя эффективности моделируемого процесса целесообразно выбрать максимальные гарантированные затраты на содержание склада (с заданным уровнем гарантии), определяемые по формуле
Cgar = Мс +R - с,
где Мс - средние затраты на содержание склада в течение периода TD дней;
с - среднее квадратическое отклонение затрат на содержание склада;
Ка - квантиль, зависящий от уровня гарантии а (Kа=1,28 при а=0,9).
В качестве критерия выбора оптимального режима работы склада может быть принят минимум максимальных гарантированных затрат:
К(UR min., Part*) ; MIN { Cgar (URmin Part) },
где URmin - оптимальное значение уровня запаса товара, при достижении , которого необходимо подавать заявку на поставку новой партии;
Part*- оптимальный объем партии товара.
Схема алгоритма процедур обработки прерываний, связанных с объектами стартовой формы, показана на рисунке 23.
После нажатия кнопки «Start» активизируется стартовая форма. С этого момента программа находится в режиме ожидания действий пользователя.
Цифрой 1 обозначено действие, заключающееся в корректировке исходных данных. Необходимые изменения вносятся в соответствующие текстовые поля.
Цифрой 2 обозначено действие, заключающееся в нажатии (с помощью мыши) кнопки «Расчет». В процедуре, связанной с этой кнопкой, оператор 3 осуществляет перевод исходных данных из символьной формы в числовую. Затем оператор 4 обращается к модулю общего назначения «Model3». Схема алгоритма этого модуля приведена на рисунке 25.
После окончания работы модуля и выдачи на экран результатов моделирования работа процедуры, связанной с кнопкой «Расчет», заканчивается. Программа вновь переходит в режим ожидания действий пользователя.
Цифрой 5 на схеме обозначено действие пользователя, заключающееся в нажатии кнопки «Очистка». В процедуре, связанной с ней, производится очищение текстового поля для вывода результата моделирования. Затем может быть произведено изменение исходных данных и проведены новые расчеты с использованием кнопки «Расчет».
Цифрой 7 на схеме обозначено действие пользователя, заключающееся в нажатии кнопки «Выход». В результате работа программы прекращается.
В состав базового комплекта исходных данных входят:
начальный уровень запаса товара - Nур; средний ежедневный спрос товара - Mд; среднее квадратическое отклонение ежедневного спроса - д; объем партии товара - Part; уровень запаса, при котором должна оформляться заявка на поставку дополнительной партии товара, - URmin; среднее время поставки партии товара - Мт дней; среднее квадратическое отклонение времени поставки товара - T дней; стоимость хранения единицы товара в течение суток - $С1; стоимость поставки единицы товара - $С2; стоимость затрат на компенсацию отсутствия товара на складе - $С3 за каждую недостающую единицу; период функционирования склада - TD дней; число случайных реализаций - Np.
Блок 1 обеспечивает обнуление глобальных переменных, к которым относятся:
MSC - начальное значение суммы случайных величин общих затрат на содержание склада для различных реализаций моделируемого процесса; SSC - начальное значение суммы квадратов случайных величин общих затрат.
Кроме того, в этом же блоке устанавливается начальное значение времени поставки дополнительной партии товара, которое выходит за пределы периода работы склада и равняется
Тпост.0= ТD+ 1.
Оператор 2 представляет собой заголовок цикла случайных реализаций.
Блок 3 производит обнуление локальных переменных, к которым относятся:
SC1 - начальное значение суммарных затрат на хранение товара в течение всего периода работы склада для одной реализации;
SC2 - начальное значение суммарных затрат, связанных с нехваткой товара в течение всего периода работы склада для одной реализации;
SC3 - начальное значение суммарных затрат на поставку дополнительных партий товара в течение всего периода работы склада для одной реализации;
Т - исходное значение счетчика дней (модельное время);
Zajav - числовой признак отсутствия заявки на поставку дополнительной партии товара (если заявка подана, то Zajav =1).
В этом же блоке планируемое время поставки партии товара приравнивается к его начальному значению, т. е. Tпост = Tпост.0. Наконец, текущий уровень запаса товара приравнивается к его начальному уровню: V=Nyp.
Оператор 4 является началом циклического перебора дней работы склада. Оператор 5 увеличивает модельное время на один шаг (на одни сутки). Условный оператор 6 проверяет условие продолжения работы склада для каждой случайной реализации.
Оператор 7 обращается к процедуре «Norm», формирующей возможное значение нормированной, центрированной случайной величины с нормальным распределением. Оператор 8 определяет возможное значение величины случайного ежедневного спроса при заданном его математическом ожидании Мд и среднем квадратическом отклонении д. Результат расчета округляется до целого числа.
Рисунок 25 - Схема алгоритма модуля «ModeI3»
Условный оператор 9 проверяет условие наступления срока поставки дополнительной партии товара. Если этот срок наступил, то оператор 10 увеличивает текущий запас товара на величину объема партии Part. Одновременно здесь же числовой признак отсутствия заявки на поставку партии товара устанавливается на нуль. Кроме того, планируемое время поставки вновь выводится за пределы периода работы склада.
Оператор 11 определяет текущий уровень запаса товара на складе с учетом удовлетворения ежедневного спроса. В дальнейшем оператор 14 определяет затраты на содержание склада в текущие сутки.
Если количество заявок превысит текущий запас товара на складе, то в операторе 11 будет получено отрицательное число. В этом случае оператор 13 определяет затраты, связанные с дефицитом товара, и устанавливает значение текущего запаса на нуль.
Оператор 15 проверяет выполнение одновременно двух условий: превышает ли текущий запас минимально допустимый (критический) уровень и была ли уже оформлена заявка на поставку дополнительной партии товара. Если хотя бы одно из этих условий не выполняется, то в алгоритме происходит передача управления на начало цикла, т. е. оператору 4.
Если же одновременно выполняются оба условия, то группа операторов с 16-го по 19-й определяет затраты на поставку дополнительной партии товара.
Оператор 16 увеличивает текущие затраты на величину стоимости партии товара. Оператор 17 обращается к процедуре формирования возможного значения нормированной, центрированной случайной величины с нормальным распределением. Оператор 18 определяет возможное значение случайной величины времени выполнения заявки на поставку партии товара с учетом заданных параметров: среднего времени поставки и среднего квадратического отклонения времени поставки. При этом результат расчета округляется до целого числа. Оператор 19 устанавливает на единицу числовой признак подачи заявки.
Блок 20 служит для расчета суммарных характеристик затрат на содержание склада по формулам:
SC=SC1+SC2+SC3;
MSC=MSC+SC;
SSC=SSC+Sc+SC.
Блок 21 служит для определения показателя эффективности по формулам:
Мс = MSC/Np;
= ;
Gar = Mc+ 1,28 * .
График изменения уровня запаса товара. Типовой график изменения уровня запаса товара на складе с учетом дополнительных поставок показан на рисунке 26.
Рисунок 26 - График изменения запаса товара на складе
В начальный момент на складе имеется Nyp единиц товара. В этот момент числовой признак подачи заявки на поставку дополнительного товара Zajav=0, а время поставки превышает время окончания работы склада.
В результате удовлетворения случайного ежедневного спроса уровень запаса товара снижается. Если уровень запаса товара снизится ниже величины URmin, то подается заявка на поставку дополнительной партии товара объемом Part единиц. В этот момент числовой признак Zajav становится равным единице, а время выполнения поставки определяется по формуле
Tпост= Т+ пост= Т+Мт+n- т,
где Т - текущее модельное время (в днях);
пост - период выполнения заказа;
Мт - среднее время выполнения заказа;
т — среднее квадратическое отклонение времени выполнения заказа;
n - возможное значение нормированной, центрированной случайной величины с нормальным распределением.
Когда модельное время становится равным Tпост, поступает партия товара, и текущий уровень запаса товара скачком увеличивается на величину Part. В этот момент числовой признак Zajav становится равным нулю, а время поступления партии товара вновь приравнивается величине Тпосг/0.
Модель торговой точки
Имеется подвижная торговая точка, которая производит торговлю в трех различных пунктах. Торговая точка реализует три вида товаров. Выручка, полученная от продажи каждого вида товара, является случайной величиной с усеченным нормальным распределением. Предполагается также, что на каждом пункте с некоторой заданной вероятностью торговой точке будет причинен внеплановый убыток. Размер этого убытка можно считать случайной величиной, имеющей усеченное нормальное распределение с заданными параметрами.
Для каждого пункта торговли задан комплект входных параметров:
Тср.ij- среднее значение дневной выручки от продажи j-ro товара на i-м пункте (i= 1, 2, 3 и j= 1, 2, 3); Pi- вероятность того, что на данном пункте торговой точке будет причинен внеплановый убыток;
3) Ui-средняя величина внепланового убытка.
Кроме того, в число входных параметров входят:
4) - относительная величина среднего квадратического отклонения дневной выручки, одинаковая для всех пунктов торговли и всех видов товара и используемая для определения возможного значения случайной выручки Тijпо формуле
Тij = Tcp.ij(l + ), (i=1,2,3; j=1, 2, 3),
где -возможное значение случайной величины с усеченным нормальным распределением;
5) -относительная величина среднего квадратического отклонения внепланового убытка, одинаковая для всех пунктов торговли и используемая для определения возможного значения случайного убытка Ui, по формуле
Ui = Uср.i (1 + ), (i=1, 2, 3; j=1, 2, 3);
6) Tmin - заданное минимальное значение случайной величины для эталонного усеченного нормального распределения (используемое при генерировании величины );
7) Tvах - заданное максимальное значение случайной величины для эталонного усеченного нормального распределения (используемое при генерировании величины ).
Величины Tmin и Tvах используются в процедуре, вырабатывающей возможные значения случайной величины, имеющей усеченное нормальное распределение.
Примем дополнительное допущение:
= = .
Суммарная выручка от продажи всех видов товара с учетом убытка составляет случайную прибыль. В качестве показателя эффективности работы i-й торговой точки примем минимальную гарантированную прибыль, определяемую по следующей зависимости:
Garпр.i = Мпр.i - Ка
где Мпр.i - математическое ожидание (среднее значение) прибыли для i –го пункта торговли;
= среднее квадратическое отклонение прибыли для i -го пункта торговли;
Ка - квантиль нормального распределения, соответствующий заданной надежности а (АГа=1,28 при а=0,9).
Задача исследования может заключаться в определении условий, при которых все пункты торговли будут равноценными по величине приносимой прибыли. В этих условиях необходимо установить, какова функциональная связь между увеличением среднего убытка и компенсирующим его уменьшением вероятности причинения убытка.
Схема алгоритма процедур обработки прерываний показана на рисунке 27.
Рисунок 27- Схема алгоритма процедур обработки прерываний
После нажатия кнопки «Start» активизируется стартовая форма. С этого момента программа находится в режиме ожидания действий пользователя.
Цифрой 1 обозначено действие, заключающееся в корректировке исходных данных. Необходимые изменения вносятся в соответствующие текстовые поля.
Цифрой 2 обозначено действие, заключающееся в нажатии (с помощью мыши) кнопки «Расчет». В процедуре, связанной с этой кнопкой, оператор 3 осуществляет перевод исходных данных из символьной формы в числовую. Затем оператор 4 обращается к модулю общего назначения «Model 5». Схема алгоритма этого модуля приведена на рисунке 28. После окончания работы модуля и выдачи на экран результатов моделирования работа процедуры, связанной с кнопкой «Расчет», заканчивается. Программа вновь переходит в режим ожидания действий пользователя.
Цифрой 5 на схеме обозначено действие пользователя, заключающееся в нажатии кнопки «Очистка». В процедуре, связанной с ней, производится очищение текстовых полей для вывода показателя эффективности и значения числового фактора. Затем может быть произведено изменение исходных данных и проведены новые расчеты с использованием кнопки «Расчет».
Цифрой 7 на схеме обозначено действие пользователя, заключающееся в нажатии кнопки «Выход». В результате работа программы прекращается.
Оператор 1 обнуляет глобальные переменные:
-суммарную прибыль для каждого пункта торговли для всех случайных реализаций моделируемого процесса Tsumi (i=l, 2, 3);
-сумму квадратов прибыли для каждого пункта торговли для всех случайных реализаций моделируемого процесса TSUm2.i (i=1, 2, 3).
.
Рисунок 28 - Схема алгоритма модуля «Model J»
Оператор 2 является началом циклического перебора случайных реализаций, а оператор 3 осуществляет циклический перебор пунктов торговли.
Оператор 4 обращается к процедуре, вырабатывающей возможные значения случайной величины с усеченным нормальным распределением при заданных нормированных параметрах Tmin и Tmax
Оператор 5 определяет возможное значение выручки для 1-го пункта торговли от продажи 1-го вида товара и помещает результат в сумматор:
Ts =Ti1 = Tср,i1(1+ ,)
где - возможное значение случайной величины с усеченным нормальным распределением.
Операторы 6 и 7 определяют случайное приращение выручки для i-го пункта торговли от продажи 2-го вида товара и помещают результат в сумматор:
Ts = Ts + Ti2 = Ts + Tcp.i2 (1 + )
Аналогичным образом операторы 8 и 9 определяют случайное приращение выручки для i-го пункта торговли от продажи 3-го вида товара и помещают результат в сумматор:
TS=TS +Ti3 = Ts+Tcp.i3(1+ ).
Операторы 10 и 11 моделируют появление случайного события с заданной вероятностью. Оператор 10 с помощью датчика случайных чисел с равномерным распределением в интервале (0,1) вырабатывает возможное значение этой величины z. Если в операторе 11 выполняется условие z < Pi то считается, что в данном пункте торговли имели место внеплановые убытки.
Операторы 12 и 13 определяют возможное значение внепланового убытка, который вычитается из накопленной суммарной выручки:
Ts =Ts-Ui = Тs-Uсрi (1+ ).
В операторе 14 определяются:
• суммарная величина прибыли для всех случайных реализаций моделируемого процесса, определяемая по рекурсивной формуле : Tsum.i = Tsum i + Ts
• сумма квадратов величин прибыли для всех случайных реализаций моделируемого процесса, определяемая по рекурсивной формуле: Tsum2.i = Tsum2 i + TsTs
После этого управление в алгоритме передается оператору 3 для моделирования процесса продажи товаров на 2-м, а затем и на 3-м пункте торговли.
Оператор 15 служит для расчета показателя эффективности моделируемого процесса по следующим зависимостям:
Mnp.i = * Tsum.i;
Garпp,i = Mnp.i - Ка-
где Mnp.i - математическое ожидание (среднее значение) прибыли для 1-го пункта торговли;
-среднее квадратическое отклонение прибыли для i-го пункта торговли;
Garпp,i - минимальная гарантированная прибыль с уровнем гарантии а (при а=0,95 квантиль нормального распределения Ка= 1,645).
Оператор 16 выводит на экран значения показателей эффективности для всех трех пунктов торговли. Основная литература:1 [ 83-123]
Контрольные вопросы
Чему равны затраты на содержание склада? Перечислить характеристики затрат. Чему равна гарантированная прибыль? Чему равно математическое ожидание?
2.3 Планы практических занятий
Практическое занятие №1. Моделирование базовой последовательности
Задание 1. Метод усечения: Разряды очередного случайного числа получают путем отбрасывания или «усечения» части разрядов у результата нелинейного преобразования над одним или несколькими предыдущими числами.
Методические рекомендации: Практическая реализация этого метода осуществляется с помощью алгоритма «середины квадратов» (алгоритм Дж.Неймана) и модифицированного алгоритма Дж.Неймана. В этих алгоритмах случайные числа предполагаются 2К-значными
Алгоритм «середины квадратов».
Шаг 1. Возвести в квадрат zn:
Шаг 2. Отобрать средние 2К цифр квадрата и считать следующей реализацией последовательности число
Пример.
z0 = 0.3124; ; z1 = 0.7593; ;
z2 = 0.6536; ; z3 = 0.7192; ;
z4= 0.7248 и т. д.
Модифицированный алгоритм Неймана отличается от алгоритма «середины квадратов» тем, что вместо операции возведения в квадрат используется операция умножения двух предыдущих чисел последовательности.
Задание 2. Метод вычетов. Метод основан на реализации линейной формулы
, (1.3)
где Zn*, a, c, M – неотрицательные целые числа, Z*n+1 – наименьший положительный вычет а Zn* + c по модулю М, а – множитель, с – приращение. По формуле (1.3) получают псевдослучайные числа, равномерно распределенные в интервале [0,М]. Чтобы получить числа, равномерные в интервале [0,1], необходимо выполнить дополнительное преобразование:
(1.4)
Методические рекомендации: Рассмотрим численный пример.
Пусть а = с = Z0* = 7, М = 10.
Z1* = 7*7+7(mod10) = 6; Z1 =0.6;
Z2* = 7*6+7(mod10) = 9; Z2 =0.9;
Z3* = 7*9+7(mod10) = 0; Z3 =0;
Z4* = 7*0+7(mod10) = 7; Z4 =0.7 и т. д.
Алгоритм формирования базовой последовательности по методу вычетов состоит из следующих шагов:
- ввод начальных значений;
расчет очередного значения случайного числа по (1.3) и (1.4).
С помощью алгоритма «середины квадратов» и метода вычетов получить случайные числа. Составить блок-схему алгоритма «середины квадратов». Основная литература: 5.9
Контрольные вопросы:
1. Просчитать численные примеры для начальных значений методом усечения: Z0 = 0.1542 и Z0 = 0.4500. Сравнить полученные результаты.
2.Просчитать численный пример для следующих начальных значений: а = с=6, М = 18, Z0* = 2 методом вычетом
3. Просчитать численный пример для следующих начальных значений: а=с=4 Z0* = 4, М=10 методом вычетов. Составить блок-схему алгоритма метода вычетов.
4.Просчитать численный пример для следующих начальных значений:
Z0 = 3,14159, Z1 = 0.542102, n=10 алгоритмом Дэвиса. Практическое занятие № 2. Моделирование базовой последовательности
Задание 1. Метод суммирования. Основная формула метода имеет вид :
.
Частным случаем этого метода являются аддитивные алгоритмы, использующие формулу:
где k 16.
При соответствующем выборе начальных значений Z0, Z1, …, Zk эта формула является хорошим источником случайных чисел.
Следует также отметить алгоритм Дэвиса, который принял к=1 и, удачно выбрав первые два начальные числа (Z0= , Z1= 517*2-42 = 0,542101887), получил хорошую последовательность равномерных чисел. Алгоритм Дэвиса использует формулу
Методические рекомендации: Практическую реализацию алгоритма Дэвиса удобно осуществить по следующим шагам:
Шаг 1. Вычислить Т = Z0+Z1 и принять Z0=Z1.
|
|
|