- •Ю.Н.Алексеев
- •Имитационное моделирование в системе имитак
- •Москва – 2007
- •На заседании кафедры экономической кибернетики
- •7 Ноября 2007 г., протокол № 7
- •Оглавление
- •§1. Концепция системной динамики, реализованная в системе имитак. 4
- •§2. Механизмы визуального мышления в системе имитак. . . 8
- •§3. Встроенные функции системы имитак. . . . . . 17
- •§4. Базы данных и система имитак. . . . . . . 60
- •§1 Концепция системной динамики, реализованная в системе имитак
- •Р ис. 2 Диаграмма потоков контура обратной связи
- •§2 Механизмы визуального мышления в системе имитак
- •§3 Встроенные функции системы имитак
- •Стохастические функции
- •Временные функции
- •Функции имитации систем массового обслуживания
- •§3.1. Элементарные функции
- •§3.2. Переключательные функции
- •§3.3. Стохастические функции
- •§3.4. Встроенные функции работы с массивами
- •§3.5. Временные функции
- •§3.6. Функции имитации систем массового обслуживания
- •§3.7. Графические (маргинальные) функции
- •3.7.1Паутинообразная модель рынка с запаздыванием спроса
- •3.7.2 Паутинообразная модель рынка с запаздыванием предложения.
- •3.7.3 Паутинообразные модели с обучением.
- •§4. Базы данных и система имитак
- •§4.1. Создание базы данных и ее заполнение
- •3)Создание модели, интегрированной с базой данных.
- •§4.2. Создание в операционной системе имени источника данных odbc (dsn- data source name).
- •§4.3. Создание модели, интегрированной с базой данных.
- •Заключение
§3.2. Переключательные функции
Второй группой встроенных функций являются переключательные функции CLIP , SWITCH и LIMIT.
Функция сравнения двух величин (CLIP)
Данная функция имеет следующий общий вид:
Ф.Н=CLIP(А.Н, В.Н, С.Н, Д.Н)
Функция сравнивает между собой значения двух последних аргументов и в зависимости от результата выдает одно из первых двух аргументов:
В Примере 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. Числовые результаты моделирования склада со страховым запасом
ВЫБ |
ПОС |
С |
ВРЕМЯ |
300 |
200 |
1000 |
0 |
300 |
200 |
900 |
1 |
300 |
200 |
800 |
2 |
300 |
200 |
700 |
3 |
300 |
200 |
600 |
4 |
300 |
200 |
500 |
5 |
300 |
200 |
400 |
6 |
0 |
200 |
300 |
7 |
300 |
200 |
500 |
8 |
300 |
200 |
400 |
9 |
0 |
200 |
300 |
10 |
300 |
200 |
500 |
11 |
300 |
200 |
400 |
12 |
0 |
200 |
300 |
13 |
300 |
200 |
500 |
14 |
300 |
200 |
400 |
15 |
0 |
200 |
300 |
16 |
Начиная с седьмого шага моделирования в Примере 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(А.Н, В.Н, С.Н)
Последний аргумент функции сравнивается с нулем; по результатам сравнения (равенству или неравенству) выдается одно из двух первых аргументов:
Иллюстрацией работы встроенной функции 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. Диаграмма потоков модели склада с лимитным ограничением
А модель-программа будет иметь следующий вид:
; Склад
У С.Н=LIMIT((С.П+ПОС.ПН-ВЫБ.ПН),СЗ,МОС)
; Поступление
Т ПОС.НБ=П
; Выборка
Т ВЫБ.НБ=В
Е
И С=1000
; Максимальный объем склада
К МОС=2000
; Страховой запас
К СЗ=300
; Поставка
К П=200
; Выдача
К В=300
Е
Результаты моделирования в табличной форме будут
Таблица 18. Числовые результаты в модели с лимитным ограничением
ВЫБ |
ПОС |
С |
300 |
200 |
1000 |
300 |
200 |
900 |
300 |
200 |
800 |
300 |
200 |
700 |
300 |
200 |
600 |
300 |
200 |
500 |
300 |
200 |
400 |
300 |
200 |
300 |
300 |
200 |
300 |