Главная

Категории:

ДомЗдоровьеЗоологияИнформатикаИскусствоИскусствоКомпьютерыКулинарияМаркетингМатематикаМедицинаМенеджментОбразованиеПедагогикаПитомцыПрограммированиеПроизводствоПромышленностьПсихологияРазноеРелигияСоциологияСпортСтатистикаТранспортФизикаФилософияФинансыХимияХоббиЭкологияЭкономикаЭлектроника






Встроенные функции системы ИМИТАК


Расширение аппарата системной динамики связано с тем, что ни все элементы имитационных моделей могут быть представлены линейными выражениями.При построении сложных моделей для адекватного отражения реальных процессов с помощью имитационных моделей недостаточно в правой части операторов модели- программы использовать только арифметические действия над эндогенными и экзогенными переменными. Такие действия как условные переходы, работы с массивами, имитации систем массового обслуживания требуют специальных выражений. Поэтому в системе ИМИТАК (как и в аналогичных программных продуктах, в основу которых положена методика системной динамики) введен ряд встроенных функций. Встроенные функции, не нарушая концепции системной динамики, дают возможность введения специальных функциональных преобразований.

Их немного, и они имеют определенную структуру. Так что понять и запомнить их нетрудно. В дальнейшем будут даны варианты реализаций различных функций, снабженных практическими примерами.

Любая встроенная функция имеет вид:

Ф. н = [имя встроенной функции]([АРГ1],[АРГ2]…)

Имя встроенной функции пишется латинскими буквами.

Аргументы же могут быть представлены:

1. В виде эндогенных переменных (Например, Ф. н =COS(А . н))

2. В виде экзогенных переменных (Например, Ф. н =SIN(КОНСТ))

3. В виде литералов (под литералами понимаются конкретные числа) (Например, Ф. н =CLIP(1,0,А.н, КОН1))

4. В виде других встроенных функций(Например, Ф. н =WHOLE(RAND(1,0),0))

Предлагается следующая классификация встроенных функций системы ИМИТАК:

1. Элементарные функции

2. Переключательные функции

3. Стохастические функции

4. Функции работы с числовыми массивами

5. Временные функции

6. Функции имитации систем массового обслуживания

7. Графические функции

Элементарные функции


В этот класс собраны разнородные, логически несвязанные встроенные функции

Ф. н =SIN(А. н)- Синус

Ф. н = СОS(А. н)- Косинус

Ф. н =LOG(А. н)- Логарифм натуральный

Ф. н =EXP(А. н)- Экспонента

Ф. н =SIGN(А. н)- Анализ знака аргумента

Ф. н =RANGE(А. н, В. н)-Возведение в степень

Ф. н = MAX(А1. н,А2.н…)-Максимальное значение

Ф. н = MIN(А1. н,А2.н…)-Минимальное значение

Ф .н = WHOLE(А.н,К)-Округление

 

Рассмотрение работы отдельных функций мы будем вести на базе простейшей модели склада. При этом используем методику, которую определим как иерархия построения моделей. Иерархия построения моделей – это последовательное усложнение модели на основе ранее разработанных, более простых фрагментов этой модели. В качестве базового фрагмента мы будем использовать следующую модель склада.

Пример 2.На складе (С) первоначально имеется определенный запас продукта (товара; в нашем случае 1000 единиц). Каждый шаг моделирования на него поступает (ПОС) определенная партия товара (П) (в нашем случае 200 ед.) и со склада выбирается (ВЫБ) партия товара (В) (в нашем случае 300 ед.).Построить имитационную модель склада, работающего 20 шагов моделирования.

Начинаем строить имитационную модель, как показано в §2 Главы 1, с диаграммы потоков (Рис. 22):

ис. 22. Диаграмма потоков модели склада

 

По данной диаграмме потоков нетрудно создать модель-программу и , если пропустить модель на компьютере, снабженном транслятором с системой VisualImitak, то мы получим следующие цифровые результаты для трех шагов моделирования:

Таблица 4. Модель-программа склада и результаты первых трех шагов моделирования.

МОДЕЛЬ-ПРОГРАММА ВРЕМЯ=1 ВРЕМЯ=2 ВРЕМЯ=3
; Склад      
У С.Н=С.П+ПОС.ПН-ВЫБ.ПН С.1=1000 С.2=900 С.3=800
; Поступление      
Т ПОС.НБ=П ПОС.12=200 ПОС.23=200 ПОС.34=200
; Выборка      
Т ВЫБ.НБ=В ВЫБ.12=300 ВЫБ.23=300 ВЫБ.34=300
НАЧАЛЬНОЕ ЗНАЧЕНИЕ УРОВНЯ      
И С=1000      
; Поставка      
К П=200      
; Выдача      
К В=300      

 

По умолчанию числовые значения цикла рассчитываются при условии:

И ВРЕМЯ=0 (начальное значение цикла)

И DT=1 (шаг изменения времени внутри цикла)

И ДЛИНА=20 (продолжительность цикла).

Выше мы рассматривали цифровые результаты только для трех шагов, а теперь графические результаты будем анализировать для 20 шагов, как это было объявлено в условии задачи:

 

Рис. 23. Графический результат моделирования склада

На одиннадцатом шаге моделирования запасы на складе становятся отрицательными, что говорит о том, что в таком виде модель не может быть практически использована.

Это подтверждают и числовые результаты моделирования тех же переменных: приведенные в таблице 5.

Таблица 5. Числовые результаты моделирования склада

ВЫБ ПОС С
-100
-200
-300
-400
-500

Разбор элементарных встроенных функций начнем с простейшей адаптации модели склада встроенными функциями синуса и косинуса. Многие из элементарных встроенных функций будем рассматривать попарно. Это не несет никакой смысловой нагрузки, а связано с двумя вспомогательными особенностями:

-они по жизни часто рассматриваются парами (например, SIN и COS, MIN и MAX)

-функции удобно рассматривать при построении модели склада, у которой есть входной темп – поступление и выходной – выборка. Это позволяет рассматривать, если это возможно сразу две функции.

Встроенная функция SIN

Встроенная функция COS

Для данных функций рассмотрим единый пример.

Пример 3. Первой адаптацией модели склада рассмотрим вариант, когда поставка (ПОС) будет функция синус, выборка (ВЫБ) – функция косинус Аргументами для обеих функций будет переменная ВРЕМЯ. Начальное значение склада (С) равным двум.

Диаграмма потоков представлена на Рис. 24.

 

Рис. 24. Диаграмма потоков имитационной модели склада адаптированной тригонометрическими функциями

 

Программная реализация указанной модели-программы приведена в VisualImitak.

 

Таблица 6. Модель-программа склада с тригонометрическими функциями

  ВРЕМЯ=1 ВРЕМЯ=2 ВРЕМЯ =3
; Склад      
У С.Н=С.П+ПОС.ПН-ВЫБ.ПН С.1=2 С.2=1.698 С.3=0.373
; Поступление      
Т ПОС.НБ=COS(ВРЕМЯ) ПОС.12=0.54 ПОС.23=-0.41 ПОС.34=-0.989
; Выборка      
Т ВЫБ.НБ=SIN(ВРЕМЯ) ВЫБ.12=0.84 ВЫБ.23=0.909 ВЫБ.12=0.141
Е      
; НАЧАЛЬНОЕ ЗНАЧЕНИЕ УРОВНЯ      
И С=2      

 

После пропуска имитационной модели на компьютере мы имеем график изменения переменных С, ПОС и ВЫБ на Рис. 25 . Результаты моделирования представленные в числовой форме заданы в Таблице 7

 

Рис. 25. Графики имитациионой модели склада адаптированного тригонометрическими функциями

Таблица 7. Результаты моделирования склада адаптированного тригонометрическими функциями

ВЫБ ПОС С
0.841471 0.540302
0.909297 -0.416147 1.69883
0.14112 -0.989992 0.373387
-0.756802 -0.653644 -0.757725
-0.958924 0.283662 -0.654567
-0.279415 0.96017 0.58802
0.656987 0.753902 1.82761

 

Анализ графических результатов показывает, что если аргументы тригонометрических функций задавать не непрерывно, а в радианах, то мы получим кусочно-линейные аппроксимации функций SIN и COS.

Рассмотрим так же спарено функции MIN и MAX,

 

Функция минимума (MIN)

Данная функция позволяет в каждый момент времени моделирования выбирать минимальное значение аргументов.

Общий вид функции: MIN (A1,A2,...)

Функция определена при любых значениях аргументов. Максимальное количество аргументов 15.

 

Функция максимума (MAX)

Данная функция позволяет в каждый момент времени моделирования выбирать максимальное из значений аргументов.

Общий вид функции: MAX (A1,A2,...)

 

Если для функций максимума и минимума количество аргументов больше 15, то можно использовать вложенность аргументов. Например, имеется следующий оператор:

Ф. н = MAX( А1.н, А2.н,…А15.н, А16.н).

где надо максимум выбрать из 17 аргументов

В этом случае задача решается следующим образом:

А17.н =MAX(А15.н,А16.н)

Ф. н = MAX(А1.н, А2.н,….А14.н, А17.н)

Кроме прямого назначения приведенных выше встроенных функций, они могут быть использованы для имитации некоторых логических ограничений в процессе реализации практических процессов.

Пример 4. Экономически не может быть оправдано наличие на складе отрицательных величин запасов. Для того, чтобы выдача со склада не переводила запасы в отрицательную величину, выходной темп ВЫБ должен быть представлен функцией MIN из текущих запасов на складе С и величины выдачи В. Однако отрицательное значение уровня может быть получено, если входной темп будет равен отрицательной величине. Защита от этого может быть достигнута если входной темп будет определен функцией MAX из поставки П и нуля , т.е. вместо отрицательного значения всегда будет входной темп ПОС будет равняться нулю. С учетом этого Пример 3 будет трансформирован в модель программу, приведенную в Таблице 8.

Таблица 8. Модель-программа склада для исправления семантических ошибок

МОДЕЛЬ-ПРОГРАММА ВРЕМЯ=1 ВРЕМЯ=2 ВРЕМЯ=3 ВРЕМЯ=4
; Склад        
У С.Н=С.П+ПОС.ПН-ВЫБ.ПН С.1=1000 С.2=700 С.3=400 С.4=100
; Поступление        
Т ПОС.НБ=MAX((П-С.Н),0) ПОС.12=0 ПОС.23=0 ПОС.34=0 ПОС.45=100
; Выборка        
Т ВЫБ.НБ=MIN(В,С.Н) ВЫБ.12=300 ВЫБ.23=300 ВЫБ.34=300 ВЫБ.45=100
; НАЧАЛЬНОЕ ЗНАЧЕНИЕ УРОВНЯ        
И С=1000        
; Поставка        
К П=200        
; Выдача        
К В=300        

Приведенная выше таблица показывает, что уровень С уменьшается каждый шаг моделирования на 300 единиц. При этом переменная поступление (ПОС) до четвертого шага моделирования за счет отрицательной разности скобки (П-С.Н) будет равняться нулю. И только на четвертом шаге П-С.Н=200-100=100 , почему ПОС будет равняться 100. На том же четвертом шаге С.н=100 будет меньше чем В=300 и поэтому ВЫБ=100.

Функция экспоненты (EXP)

Экспоненциальная встроенная функция позволяет получать экспоненциальную зависимость от аргумента, который сам изменяется во времени. Общая форма представления этой функции:

Ф.Н= EXP(А.Н)

Механизм работы этой функции математически может быть выражен как

Ф(t)=еА(t)

где е – основание натурального логарифма. При использовании функции возможно прерывание процесса при больших значениях А(t).

Функция возведение в степень (RANGE)

Функция возведения в степень осуществляет возведение некоторой переменной, являющейся функцией от времени, в степень задаваемой переменной, которая также зависит от времени. Общая форма записи функции:

Ф.Н=RANGE(А.Н,В.Н)

Механизм работы этой функции можно представить в следующем виде:

Ф(t)=А(t)В(t)

При отрицательных значениях аргумента А(t) выходом функции будет иррациональное число, что не имеет смысла при моделировании реальных процессов, т. е. если А(t) меньше нуля при любом В(t) , то происходит программное прерывание. Прерывание, кроме того , происходит при достаточно больших А(t) и В(t) при переполнении разрядной сетки и если одновременно А(t)=0 и В(t)=0.

Чтобы проиллюстрировать использование этих функций рассмотрим пример имитации склада (Пример2), даже не прибегая к методике иерархии построения модели, а просто заменив в диаграмме потоков (Рис. 22) программное наполнение. В результате мы будем иметь следующую модель-программу, представленную в Таблице 9:

Таблица 9. Модель-программа склада с экспонентой и степенью

  ВРЕМЯ=1 ВРЕМЯ=2 ВРЕМЯ=3
; Склад      
У С.Н=С.П+ПОС.ПН-ВЫБ.ПН С.1=100 С.2=153.598 С.3=270.011
; Поставка      
Т ПОС.НБ=EXP(ВРЕМЯ+3) ПОС.12=54.5981 ПОС.23=148.413 ПОС.34=403.429
; Выборка      
Т ВЫБ.НБ=RANGE(ВРЕМЯ,5) ВЫБ.12=1 ВЫБ. 23=32 ВЫБ.34=243
Е      
И С=100      

 

Функция логарифма (LOG)

Функция позволяет получать логарифм от аргумента, изменяющегося во времени. Общий вид этой функции:

Ф.Н=LOG(А.Н)

Функция математически не определена в произвольном диапазоне изменения аргумента, и поэтому введено ограничение на аргумент. Так, если аргумент становится отрицательным или равным нулю, то машинный счет прерывается. Такое же прерывание может быть и при положительном аргументе, но близком к нулю. В этом случае прерывание происходит потому, что логарифм достигает значения, которое не помещается в разрядную сетку машины.

Функция знака (SIGN)

Результат данной функции зависит от знака аргумента: +1, если аргумент положителен, или -1, если аргумент отрицателен. Общая форма записи функции:

Ф.Н=SIGN (А.Н)

Математически действие, выполняемое данной функцией, можно выразить следующим образом:

, при А(t) 0   , при А(t) <0

Эта функция условно отнесена к классу элементарных функций, хотя, по сути, она является прообразом переключательных функций. С помощью этой функции можно реализовать условные переходы. Чтобы проиллюстрировать использование этих функций рассмотрим пример имитации склада (Пример 3) заменив в диаграмме потоков (Рис. 22) программное наполнение. В результате мы будем иметь следующую модель-программу в таблице 10:

Таблица 10. Модель-программа склада с логарифмом и знаком

  ВРЕМЯ=1 ВРЕМЯ=2 ВРЕМЯ=3 ВРЕМЯ=4
; Склад        
У С.Н=С.П+ПОС.ПН-ВЫБ.ПН С.1=100 С.2 =50 С.3=0.6931 С.4=-48.2
; Поступление        
Т ПОС.НБ=LOG(ВРЕМЯ) ПОС.12=0 ПОС.23=0.69 ПОС.34=1.09 ПОС.45=1.38
; Выборка        
Т ВЫБ.НБ=SIGN(С.Н)*50 ВЫБ.12=50 ВЫБ.23=50 ВЫБ.34=50 ВЫБ.45=-50
Е        
; НАЧАЛЬНОЕ ЗНАЧЕНИЕ        
И С=100        

Функция округления (WHOLE )

Значение первого аргумента округляется до целого числа в зависимости от значения второго аргумента. Общий вид функции:

Ф. Н = WHOLE (A,K)

где А - округляемая величина;

К - константа, задающая режим округления.

Если К=1, то значение А округляется до ближайшего целого числа; если К<1, то округление происходит в меньшую сторону отбрасыванием дробной части; если К > 1, то выполняется округление до большего целого.

Пример 5. В некоторых случаях фрагмент имитационной модели может быть связан со следующей задачей: имеется объем товара, который должен быть расфасован на фиксированные группы (заказы) с определенным числом единиц товара в каждой группе. ( В качестве практического примера можно взять распределение конфет в новогодние подарки).Для решения этой задачи необходимо сначала определить, на какое максимально возможное число групп может быть разбит данный объем. Потом целое (максимальное) количество полученных групп передается из данного фрагмента в другие части имитационной модели. (Как вариант такая задача может состояться и при определении максимальной поставки товара в качестве заказов, т.е. максимально возможное число заказов. После определения максимального числа групп в текущем объеме нам может быть известен остаток товара, который меньше чем количество товара в одной группе). Если рассматривать это на примере производства, то это можно интерпретировать как количество готовой продукции – это целое число групп полученных при разбиении объема товара, а остаток - незавершенное производство. Рассмотрим это на простом примере. Пусто объем товара равняется 100 единицам, а число единиц в одной группе – 30 штук. Тогда число групп будет 100/30=3.В результате объем товара уменьшается на 3*30=90, при этом в остатке будем иметь 100-90=10.

 

Рассмотрим еще пример, но уже с выходом на модель-программу. Предположим, что мы имеем склад, с которого товара поступает на рынок только в виде массива сгруппированного товара. В результате в каждом шаге изымается максимальное число групп, а на складе остается только то, что мы имеем после изымания. Диаграмма потоков такой модели будет выглядеть как на Рис. 25.

Модель-программа, соответствующая данной диаграмме потоков

Рис. 25. Диаграмма потоков модели склада с группированием товара

Будет выглядеть следующим образом

Таблица 11. Модель-программа группирования заказов

  ВРЕМЯ=1 ВРЕМЯ=2 ВРЕМЯ=3
; Склад      
У С.Н=С.П+ПОС.ПН-ВЫБ.ПН С.1=400 С.2=309 С.3=303
; Число товарных групп      
Д ЧТГ.Н=С.Н/КТГ ЧТГ.1=23.52 ЧТГ.2=18.17 ЧТГ.3=17.82
; Целое число товарных групп      
Д ЦЧТГ.Н=WHOLE(ЧТГ.Н,0) ЦЧТГ.1=23 ЦЧТГ.2=18 ЦЧТГ.3=17
; Поступление      
Т ПОС.НБ=П ПОС.12=300 ПОС.23=300 ПОС.34=300
; Выборка      
Т ВЫБ.НБ=ЦЧТГ.Н*КТГ ВЫБ.12=391 ВЫБ.23=306 ВЫБ.34=289
Е      
; НАЧАЛЬНОЕ ЗНАЧЕНИЕ УРОВНЯ      
И С=400      
; Поставка      
К П=300      
; Количество товара в группе      
К КТГ=17      

Результат пропуска модели на компьютере приведен на Рис. 26. Полученное в результате пилообразное графическое изображение можно объяснить следующим образом: пополнение запасов переменной на каждом шаге компенсируется восстановлением числа групп и, соответствующим повышенной выборки со склада. Так как поступление постоянно, то указанный процесс повторяется периодически.

 

Рис. 26. Графические результаты модели с группировкой товара

Числовые результаты указанного моделирования приводятся в Таблице 12

Таблица 12. Числовые результаты модели с группировкой

ВЫБ ПОС С

Переключательные функции

Второй группой встроенных функций являются переключательные функции CLIP , SWITCH и LIMIT.

 

Функция сравнения двух величин (CLIP)

Данная функция имеет следующий общий вид:

Ф.Н=CLIP(А.Н, В.Н, С.Н, Д.Н)

Функция сравнивает между собой значения двух последних аргументов и в зависимости от результата выдает одно из первых двух аргументов:

, при D C   , при D<C
В Примере 3 после одиннадцатого шага моделирования (Рис. 23) на складе образуются отрицательные значения. Это экономически необъяснимо, но исправимо в модели

Пример 6. В качестве словесного описания адаптируем, рассмотренную в Примере 3 модель склада фрагментом, который не позволяет складу принимать величины меньше страхового запаса (СЗ) и больше максимального объема склада (МОС). Диаграмма потоков этого примера будет иметь следующий вид:

 

Рис. 27. Диаграмма потоков адаптации склада страховым запасом

Таблица 13. Модель – программа и результаты 5 шагов моделирования склада со страховым запасом и максимальным объемом склада

  ВРЕМЯ=1 ВРЕМЯ=2 ВРЕМЯ=3 ВРЕМЯ=4 ВРЕМЯ=5
; Склад          
У С.Н=С.П+ПОС.ПН-Б.ПН С.1=700 С.2=300 С.3=400 С.4=0 С.5 =100
; Ключ по максимуму          
Д КМАКС.Н=CLIP(1,0,С.Н,МОС) КМАК.1=1 КМАК.2=1 КМАК.3=1 КМАК.4=1 КМАК.5=1
; Ключ по минимуму          
Д КМИН.Н=CLIP(0,1,С.Н,СЗ) КМИН.1=1 КМИН.1=0 КМИН.1=1 КМИН.1=0 КМИН.1=0
; Поставка          
Т ПОС.НБ=П*КМАКС.Н ПОС.12=100 ПОС.12=100 ПОС.12=100 ПОС.12=100 ПОС.12=100
; Выборка          
Т ВЫБ.НБ=В*КМИН.Н ВЫБ.12=500 ВЫБ.12=0 ВЫБ.12=500 ВЫБ.12=0 ВЫБ.12=0
           
И С=700          
; Поступления          
И П=100          
; Выдача          
И В=500          
; Максимальный объем склада          
И МОС=2000          
;Страховой запас          
И СЗ=300          

 

Если запустить модель, то мы будем иметь следующий графический результат

Рис. 28. Графическая интерпретация результатов моделирования склада со страховым запасом

 

И соответственно числовой результат этих графических результатов

 

Таблица 14. Числовые результаты моделирования склада со страховым запасом

ВЫБ ПОС С ВРЕМЯ

Начиная с седьмого шага моделирования в Примере 5, мы имеем пилообразный график запасов на складе. Это объясняется тем, что при достижении страхового запаса выборка через шаг моделирования «запрещалась» переменной КМИН.

Рассмотрим более сложный пример, где используется встроенная функция CLIP.

 

 

Пример 7: Предположим, что необходимо в модель склада, приведенной в Примере 3, добавить блок, который определяет максимальное и минимальное значение запасов товаров на складе за 20 шагов моделирования.

Для фиксации минимального (МИН) и максимального (МАКС) запаса товаров в текущий шаг моделирования создаются два уровня. К базовой модели (Рис. 22) добавляются два дополнительных выражения сравнения (СРМИН) и (СРМАКС) уровня склада (С) в указанными выше уровнями (МИН и МАКС). Если текущее значение на складе меньше, чем значение уровня МИН, то уровень МИН очищается и в него заносится текущее минимальное значение. Аналогично проделывается с уровнем МАКС, но только при работе с максимальным значением.

По данному словесному описанию можно построить с помощью механизмов визуального мышления следующую диаграмму потоков (Рис. 29)

 

Рис. 29. Диаграмма потоков минимакса

И соответственно по данной диаграмме потоков составить модель-программу.

 

Таблица 15. Модель-программа минимакса и результаты моделирования первых трех шагов

  ВРЕМЯ=1 ВРЕМЯ=2 ВРЕМЯ=3
; Склад      
У С.Н=С.П+ПОС.ПН-ВЫБ.ПН С.1=1000 С.2=900 С.3=800
; Минимум продукции      
У МИН.Н=МИН.П+ВХМИН.ПН-ВЫМИН.ПН МИН.1=10000 МИН.1=1000 МИН.1=10000
; Максимум продукции      
У МАК.Н=МАК.П+ВХМАК.ПН-ВЫМАК.ПН МАК.1=0 МАК.1=1000 МАК.1=0
; Сравнение минимума      
Д СРМИН.Н=CLIP(0,1,МИН.Н,С.Н) СРМИН.1=1 СРМИН.1=1 СРМИН.1=1
; Сравнение максимума      
Д СРМАКС.Н=CLIP(0,1,С.Н,МАК.Н) СРМАКС.1=1 СРМАКС.1=0 СРМАКС.1=1
; Поступление      
Т ПОС.НБ=П ПОС.12=200 ПОС.12=200 ПОС.12=200
; Выборка      
Т ВЫБ.НБ=В ВЫБ.12=300 ВЫБ.12=300 ВЫБ.12=300
; Входной темп минимума продукции      
Т ВХМИН.НБ=СРМИН.Н*С.Н ВХМИН.12=1000 ВХМИН.12=900 ВХМИН.12=1000
; Выходной темп минимума продукции      
Т ВЫМИН.НБ=СРМИН.Н*МИН.Н ВЫМИН.12=10000 ВЫМИН.12=1000 ВЫМИН.12=10000
; Входной темп максимума продукции      
Т ВХМАК.НБ=СРМАКС.Н*С.Н ВХМАКС.12=1000 ВХМАКС.12=0 ВХМАКС.12=1000
; Выходной темп максимума продукции      
Т ВЫМАК.НБ=СРМАКС.Н*МАК.Н ВЫМАКС.12=0 ВЫМАКС.12=0 ВЫМАКС.12=0
Е      
; Начальные значения уровней      
И С=1000      
И МИН=10000      
И МАК=0      
; Поставка      
К П=200      
; Выдача      
К В=300      
Е      

 

Модификацией такой задачи может служить еще один пример, когда нужно определить не величину минимальных (максимальных) запасов, а номер (шаг) когда запасы были минимальными.

Пример 8. Надо проимитировать склад, у которого необходимо определить шаг, на котором запасы будут минимальными. Предположим, что шаг будет идентифицирован с функцией ВРЕМЯ. Задача, которая решается при изучении программирования на алгоритмических языках в средней школе, в данном случае может служить фрагментом в иерархии построения имитационной модели. В качестве основы возьмем часть модели, приведенной на Рис. 29 и добавим к ней определитель номера шага, на котором мы будем иметь минимальное значение склада. В результате диаграмма потоков будет выглядеть, приведенной на Рис. 30:

 

Рис. 30. Диаграмма потоков выбора шага, когда склад будет иметь минимальный запас.

 

Модель-программа, соответствующая данной диаграмме потоков:

; Склад

У С.Н=С.П+ПОС.ПН-ВЫБ.ПН

;

У МИН.Н=МИН.П+ВХМИН.ПН-ВЫМИН.ПН

; Номер минимума

У НМИН.Н=НМИН.П+ВХНМИН.ПН-ВЫНМИН.ПН

; Сравнение минимума

Д СРМИН.Н=CLIP(0,1,МИН.Н,С.Н)

; Поступление

Т ПОС.НБ=П

; Выборка

Т ВЫБ.НБ=В

; Входной темп номера минимума

Т ВХНМИН.НБ=ВРЕМЯ*СРМИН.Н

; Выходной темп номера минимума

Т ВЫНМИН.НБ=СРМИН.Н*НМИН.Н

; Входной темп минимума

Т ВХМИН.НБ=СРМИН.Н*С.Н

; Выходной темп номера минимума

Т ВЫМИН.НБ=СРМИН.Н*МИН.Н

Е

;------ Конец 1-ого раздела -----------------------

И С=1000

; Поставка

К П=200

; Выдача

К В =300

И МИН=1000

И НМИН=1

; Время

К ВРЕМЯ=1

Е

Рассмотрим еще одну переключательную функцию, а именно SWITCH/

Функция сравнения с нулем (SWITCH)

Общий вид функции:

Ф.Н =SWITCH(А.Н, В.Н, С.Н)

Последний аргумент функции сравнивается с нулем; по результатам сравнения (равенству или неравенству) выдается одно из двух первых аргументов:

, при C=0   , при C 0

Иллюстрацией работы встроенной функции SWITCH может быть несколько иная адаптация модели, приведенной в Примере 3.

 

Пример 9. Предположим, что возобновление запасов кроме пошагового действия наряду с выдачей товаров в каждом шаге, производилось в момент, когда запасы равнялись нулю. В этом случае, кроме каждого пошагового поступления в 50 единиц, поступало сразу 90 единиц товаров.

Тогда диаграмма потоков могла выглядеть следующим образом (Рис31):

 

Рис. 31. Диаграмма потоков модели со скачкообразным возобновлением запасов

А соответствующая модель-программа будет представлена в Таблице 16:

Таблица 16. Модель-программа(SWITCH ) и результаты моделирования четырех шагов

  ВРЕМЯ=1 ВРЕМЯ=2 ВРЕМЯ=3 ВРЕМЯ=4  
; Склад          
У С.Н=С.П+ПОС.ПН +ВОЗ.ПН-ВЫД.ПН С.1=100 С2=50 С3=0 С4=40  
; Выходной темп склада          
Т ВЫД.НБ=В ВЫД.12=100 ВЫД.23=100 ВЫД.34=100 ВЫД.45=100
; Входной темп склада          
Т ПОС.НБ=П ПОС.12=50 ПОС.23=50 ПОС.34=50 ПОС.45=59  
;Темп возобновления запасов          
Т ВОЗ.НБ=SWITCH(90,0,С.Н) ВОЗ.12=0 ВОЗ.23=0 ВОЗ.34=90 ВОЗ.45=0  
Е          
И С=100          
; Поставка          
К П=50;          
; Выборка          
К В=100          
К ДЛИНА=4          

 

Результаты моделирования целесообразно представить в числовой форме:

 

Таблица17. Результаты возмещения в числовой форме

ВОЗ ВЫД ПОС С
0 100 50 100
0 100 50 50
90 100 50 0
0 100 50 40

И наконец последняя переключательная функция LIMIT.

Функция ограничения (LIMIT)

Функция позволяет ограничивать диапазон изменения первого аргумента пределами, заданными вторым и третьим аргументами. Общий вид функции:

Ф.Н= LIMIT(А.Н, В.Н, С.Н)

Математически это выглядит следующим образом:

В качестве иллюстрации можно переформулировать Пример 6, убрав ключ КМИН и КМАКС.

Пример 10. В этом случае диаграмм потоков будет выглядеть следующим образом:

 

Рис. 32. Диаграмма потоков модели склада с лимитным ограничением

А модель-про



Последнее изменение этой страницы: 2016-08-11

headinsider.info. Все права принадлежат авторам данных материалов.