- •1. Стадии построения имитационных моделей.
- •Словесное описание Алгоритм Блок-схема Программа
- •Словесное описание дпсс дп Модель - программа
- •2. Основные концепции системной динамики.
- •3. Размеченная диаграмма дпсс.
- •4. Построение концептуальной модели в системе имитак.
- •5. Работа с моделью программой в системе имитак и диагностика ошибок.
- •6. Расширение аппарата формализации системной динамики.
- •7. Функции имитации систем массового обслуживания.
- •8. Адаптация имитационных моделей одноканальной смо.
- •9. Имитация многоканальной смо.
- •10. Основные концепции работы с матричными переменными в системе имитак.
- •11. Векторные встроенные функции.
- •12. Имитация детерминированных цепей Маркова (putty - clay).
- •13. Этапы имитационного исследования.
- •14. Регрессионный анализ планирования экстремального эксперимента.
- •15. Полный факторный эксперимент.
- •16. Дробный факторный эксперимент.
- •17. Исследование уравнения регрессии, полученного при помощи дробных реплик.
- •18. Крутое восхождение по поверхности отклика.
- •19. Ортогональное планирование 2 - го порядка.
- •20. Анализ экономической ситуации (программная реализация курсового проекта).
- •21. Графические встроенные функции системы имитак.
- •22. Паутинообразная модель рынка №1.
- •23. Паутинообразная модель рынка №2 (с обучением).
- •24. Паутинообразная модель рынка №3 (с учетом запасов непроданного товара).
- •25. Имитация удовлетворения спроса скоропортящейся продукции.
- •26. Имитация кредитно – финансовых операций фирмы.
- •27. Моделирование производственной деятельности фирмы.
- •28. Деятельность фирмы и её издержки в краткосрочном периоде.
- •29. Имитационная модель фирмы в краткосрочном периоде (схема маржинального анализа).
- •30. Модель функционирования коммерческого банка.
- •31. Тактическое планирование эксперимента (л.Р. №4)
8. Адаптация имитационных моделей одноканальной смо.
Задача: Адаптировать модель бензоколонки блоком, определяющим для каждой заявки ожидание её в очереди (это время длится от прихода заявки до поступления её на обслуживающий элемент, при этом собственное время обслуживания не учитывается). Решение: 1. ДП; 2. Модель - программа
9. Имитация многоканальной смо.
Для имитации МСМО используется функция FIFON, которая в принципе работает как функция FIFO, но приспособлена к тому, что на входе имеется несколько исходных заявок, а на выходе несколько обслуживающих элементов. Вид функции: FIFON (А.Н, В.Н, С.Н, N, Д), где N – номер зарезервированного массива, остальное – как FIFO.
Введение аргумента N связано с тем, что в трансляторе под массивы очередей заранее выделяется несколько групп ячеек памяти (в отличие от этого в FIFO группы выделяются по ходу трансляции). В связи со спецификой формирования очереди МСМО в модели – программе имеются 2 модификации функции FIFON: входная FIFON (А.Н, В.Н, 1, N, Д) и выходная FIFON (0, 1, С.Н, N, Д)
10. Основные концепции работы с матричными переменными в системе имитак.
Одной из версий системы ИМИТАК – ИМИТАК2 является вариант, когда мы работаем с векторными переменными. При этом введение многомерных массивов (1,2 и 3-х мерные) не должно нарушать основные концепции системной динамики. Основным действием ИМИТАК2 является представление в виде 1 оператора (уравнения) нескольких однообразных (одинаковых) операторов и наборов исходных данных (матриц). Такой набор операторов и исходных данных будем называть массивом. При реализации массивов в ИМИТАК2 объявление размерностей ведется не с помощью специального оператора, а внутри самого уравнения. Т.о. при адаптации модели упрощено введение новых массивов.
|
ИМИТАК1 |
ИМИТАК2 |
|
У А1.Н = …. |
|
|
У А2.Н = …. |
У А: (3).Н = … |
|
У А3.Н = …. |
|
|
- варианты одномерного массива | |
|
Д А11.Н = … |
|
|
Д А12.Н = … |
|
|
Д А21.Н = … |
Д А: (3, 2).Н = … |
|
Д А22.Н = … |
|
|
Д А31.Н = … |
|
|
Д А33.Н = … |
|
|
- варианты многомерного массива | |
Считается, что если массив стоит в левой части оператора, то правая часть используется многократно для расчета любого элемента этого массива. В правой части такого уравнения могут быть как скаляры, так и массивы с той же размерностью, что и в левой части. Для выделения какого – нибудь одного элемента массива используется знак #. Например:
У А: (3).Н = …
Д В.Н = А#(2).Н*К1 – используется только второй элемент массива А при расчете В.
В 2-х и 3-х мерных массивах могут использоваться несколько переменных, объединенных в группу – так называемое сечение (строка, столбец в матрице). Причем указание на сечение ведется с использованием значка (*). Пример: Есть следующий фрагмент модели – программы:
Д А: (3,3).Н = …. (1)
Д В: (3).Н = А#(2,*).Н (2)
Д С: (3).Н = RANGE (А#(*, 1).Н, А#(*, 3).Н) (3)
Ф.Н = RANGE (А.Н, В.Н), т.е. Ф (t) = (А (t))^B (t) – степенная функция.
При расчете правой части в матричных выражениях необязательно в правой части могут быть одинаковые алгоритмы. Тогда работает следующий механизм задания специфических алгоритмов: после написания (общей части) одинаковых алгоритмов для всего массива или сечений строго следующим оператором вводится «во изменении» специфический алгоритм. Пример:
|
ИМИТАК1 |
ИМИТАК2 |
|
Д А1.Н = RAND (20, 40) |
|
|
Д А2.Н = sin (время) |
Д А: (3).Н = RAND (20, 40) |
|
Д А3.Н = RAND (20, 40) |
Д А#(2).Н = sin (время) |
Т.е. 1 и 3 элемент массива А1 и А3 рассчитываются как случайная величина, а А2 как синусоидальная. При этом между 2 операторами ИМИТАК2 не должно стоять никакого значимого оператора (к незначимым относят комментарии).
При введении сечения мы используем значок * для отображения всех индексов элементов, входящих в сечение. Если необходимо использовать определенный порядок движения индексов, то вводятся 3 скалярные ячейки: I1, I2, I3, что соответствует ортам i, j, k соответственно.
I1, I2, I3 могут использоваться в правой части, причем для каждого оператора задается свой вариант, где максимальные значения индекса объявляются в левой части оператора.
Пример: Пусть имеется матрица А: (20, 10). Задача – её надо транспонировать, т.е. получить матрицу В(10,20).
У А: (20, 10).Н = (1)
Д В: (10, 20).Н = А#(I2, I1).H (2)
Следствия:
1. В первый момент времени уровням присваиваются начальные значения, соосветственно объявленным значениям.
2. Для массивов констант объявление размерностей ведется не в левой части оператора, а непосредственно в правой части в момент его использования.
Пример:
У А: (3, 2).Н = А.П + ТВХ.ПН - ТВП.ПН (1)
Т ТВХ: (3, 2).НБ = А#(I1, I2).H * К: (3, 2)#(I1, I2) (2)
Т ТВП: (3, 2).НБ = А#(I1, I2).H - К: (2, 3)#(I2, I1) (3)
Е
И А = 3/4/6/7/3/2
И К = 1/2/3/4/5/6
При использовании матричных переменных сталкиваются с понятием «массивы необъявленной размерности». Массивы необъявленной размерности возникают потому, что в скалярных встроенных функциях типа TABLE и QUANT обязательно используются одномерные массивы. При работе с векторными (встроенными) функциями (операторами) в правых частях оператора могут встретиться функции TABLE или QUANT, размерность которых в левой части оператора не может быть объявлена. Кроме того, если в левой части оператора объявляется размерность меньше, чем объявленная ранее размерность массива, используемого в правой части, то фактически используется только часть массива, находящегося в правой части.
Пример:
Д В: (3).Н = TABLE (MAC: (5, 4)#(I1,*), время, 0,1)
Е
И МАС = 10/20/30/40/0.1/0.2/0.3/0.4/1/2/3/4/9/8/7/6/30/25/20/15
Предположим, что имеется другой фрагмент: пусть вместо В записана следующая строчка, т.е. надо рассчитать С.
Д С: (4) = QUANT (MAC: (5, 4)#(I1,*),0)
