Файл: Конспект лекций Для студентов специальности 080801. 65 - приклад.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 30.12.2025

Просмотров: 3330

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Федеральное агентство по образованию

Оглавление

Глава 5. Моделирование вычислительных и операционных систем 289

Глава 6. Основы моделирования процессов 305

Глава 7. Задания для самостоятельной работы 311

Глава 8. Проектирование имитационных моделей 335

Глава 9. Технология имитационного моделирования 361

Глава 10. Примеры принятия решений с помощью имитационного моделирования 433

Глава 11. Задания для имитационных проектов 451

Предисловие

Введение

Глава 1. Модели массового обслуживания

1.1. Системы массового обслуживания и их характеристики

1.2. Системы с одним устройством обслуживания

1.3. Основы дискретно-событийного моделирования смо

1.4. Многоканальные системы массового обслуживания

Глава 2. Вероятностные сети систем массового обслуживания

2.1. Общие сведения о сетях

2.2. Операционный анализ вероятностных сетей

2.3. Операционные зависимости

2.4. Анализ узких мест в сети

Глава 3. Вероятностное моделирование

3.1. Метод статистических испытаний

3.2. Моделирование дискретных случайных величин

3.3. Моделирование непрерывных случайных величин

3.4. Сбор статистических данных для получения оценок характе­ристик случайных величин

Для оценки дисперсии случайной величины ξ используют фор­мулу

3.5. Определение количества реализаций при моделировании случайных величин

По формулам (3.18-3.20) находим

Задачи для самостоятельной работы

Задача 6

Глава 4. Система моделированияgpss

4.1. Объекты

4.2. Часы модельного времени

4.3. Типы операторов

4.4. Внесение транзактов в модель. БлокGenerate

Задание для самостоятельной работы:

4.5. Удаление транзактов из модели. БлокTerminate

4.6. Элементы, отображающие одноканальные обслуживающие устройства

4.7. Реализация задержки во времени. БлокAdvance

Задания для самостоятельной работы:

4.8. Сбор статистики об ожидании. Блоки queue, depart

4.9. Переход транзакта в блок, отличный от последующего. БлокTransfer

Задания для самостоятельной работы:

4.10. Моделирование многоканальных устройств

4.11. Примеры построенияGpss-моделей

Построение модели

4.12. Переменные

4.13. Определение функции вGpss

Пример 4.23

4.14. Стандартные числовые атрибуты, параметры транзактов. Блоки assign, mark, loop

4.15. Изменение приоритета транзактов. БлокPriority

4.16. Организация обслуживания с прерыванием. Блоки pre­empt и return

Задание для самостоятельной работы:

4.17. Сохраняемые величины

4.18. Проверка числовых выражений. Блок test

Пример 4.40

Задание для самостоятельной работы:

4.19. Определение и использование таблиц

Задания для самостоятельной работы:

4.20. Косвенная адресация

4.21. Обработка транзактов, принадлежащих одному семейству

4.22. Управление процессом моделирования в системеGpss

4.23. Списки пользователей

4.24. Блоки управления потоками транзактовLogic,gatelr,gatelSиGate

7 Testne p1,p2,asn2 ; Повторить, если адресат

4.25. Организация вывода временных рядов изGpss-модели

4.26. Краткая характеристика языкаPlus

4.27. Команды gpss World

4.28. Диалоговые возможностиGpssWorld

4.29. Отличия между gpss World и gpss/pc

Глава 5. Моделирование вычислительных и операционных систем

5.1. Операционные системы компьютеров

5.2. Сети и системы передачи данных

5.3. Проблемы моделирования компьютеров и сетей

Глава 6. Основы моделирования процессов

6.1. Производственные процессы

6.2. Распределительные процессы

6.3. Процессы обслуживания клиентов

6.4. Процессы управления разработками проектов

Глава 7. Задания для самостоятельной работы Задание 1. Моделирование разливной линии

Глава 8. Проектирование имитационных моделей с помощью интерактивной системы имитационного моделирования

8.1. Структура интерактивной системы имитационного модели­рования

8.2. Построение концептуальной схемы модели

8.3. Параметрическая настройка модели

8.4. Генератор формул

8.5. Управление экспериментом

8.6. Запуск эксперимента и обработка результатов моделирования

8.7. Управление проектами и общей настройкой системы

8.8. Пример построения модели средствамиIss2000

Глава 9. Технология имитационногомоделирования

9.1. Имитационные проекты

9.2. Организация экспериментов

9.3. Проблемы организации имитационных экспериментов

9.4. Оценка точности результатов моделирования

9.5. Факторный план

9.6. Дисперсионный анализAnovAв планированииэкспериментов

9.7. Библиотечная процедураAnova

9.8. Технология проведение дисперсионного анализа в системеGpss World

9.9. Особенности планирования экспериментов

9.10. Нахождение экстремальных значений на поверхности отклика

9.11. Организация экспериментов вGpssWorld

9.12. Выбор наилучшего варианта структуры системы

Глава 10. Примеры принятия решений с помощью имитационного моделирования

10.1. Моделирование производственного участка

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

Глава 11. Задания для имитационных проектов

Приложение Системные сча

Сча транзактов

Сча блоков:

Сча одноканальных устройств:

Сча очередей

Сча таблиц

Сча ячеек и матриц ячеек сохраняемых величин:

Сча вычислительных объектов

Сча списков и групп

Список литературы

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

Добавим к модели программный текст на языке PLUS, реали­зующий вышеприведенный алгоритм поиска оптимального количест­ва работников.

Переменная Flag1 используется для управления циклом. Сначала ей присваивается значение 1, условие выхода из цикла: Flag1 = 0. В переменной Prev1 хранится значение дохода на предыдущем шаге. Вначале ей присваивается очень большое по модулю отрицательное значение, чтобы получаемый доход на первом шаге заведомо был больше. На каждой итерации цикла количество работников NWorkers увеличивается на 1. Перед входом в цикл оно устанавливается рав­ным 0.

Переменная Curl получает значение дохода на текущем шаге. Если предыдущее значение дохода больше текущего, то выдается ре­зультат и осуществляется выход из цикла.

Для запуска эксперимента сначала нужно оттранслировать мо­дель вместе с написанным программным текстом. Для этого выпол­няем пункт меню Command/Create Simulation. Все написанные про­цедуры регистрируются в системе. Затем в меню нужно выбрать пункт Command/CONDUCT. В результате появится диалоговое окно 'Conduct Experiment' Command (рис. 9.16).

Для запуска пользовательского эксперимента, осуществляющего поиск оптимального числа работников, нужно в поле окна дописать название эксперимента Seek_Opt(). Если же нас интересует оценка величины прибыли для конкретного числа рабочих, например, для трех, то необходимо вызвать эксперимент Go(3).

В результате выполнения эксперимента Seek_Opt() в журнале сессии появится множество записей, соответствующих выполняемым прогонам и, в конце концов, такой результат:

02/10/03 01:15:21 " Optimum. Profits 298.8888888888889. Number of workers 5."

Понятно, что при желании можно выдавать любые промежуточ­ные данные. Таким образом, оптимальное количество рабочих со­ставляет 5, а доход равен 298,89 единиц стоимости, что совпадает с оптимизирующим экспериментом (отличие в величине дохода объяс­няется разными подходами к формированию этой величины).


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

Пример 9.7 [10]. Рассмотрим швейное производство, в котором используются 40 собственных станков для изготовления продукции. Эти станки работают 150 + 26 часов, после чего ломаются. Поломав­шийся станок забирается в ремонтную мастерскую, где работает не­которое число рабочих, каждый из которых может ремонтировать один станок. Ремонт осуществляется в течение 8 ± 3 часов, после чего станки снова готовы к работе. Недозагрузка производственных мощ­ностей обходится в 140 единиц стоимости в час за один станок из-за потерь, которые несет производство по недовыпуску продукции. Оп­лата одного рабочего составляет 4,75 единиц стоимости в час.

Кроме 40 собственных станков, имеющихся у предприятия, можно для подмены ломающихся арендовать аналогичные станки, Это обходится в 2,5 единицы стоимости в час за станок. Если в рабо­те уже задействовано 40 станков, то отремонтированный станок ста­новится в резерв.

Определить количество арендуемых станков и количество ра­ботников в ремонтной мастерской, при которых средние затраты на производство были бы минимальными.

Для поиска оптимума будем «разрезать» поверхность отклика плоскостями, которые соответствуют фиксированным значениям ко­личества арендуемых станков и нанятых ремонтников. При фиксиро­ванном значении одного параметра график функции затрат будет представлять собой кривую в двумерном пространстве с одним ми­нимумом (его можно найти точно так же, как в предыдущем приме­ре). Таким образом, если мы будем последовательно изменять один параметр, по которому производится разрезание поверхности, то по­лучаемые значения функции затрат при этом фиксируемом параметре будут сначала уменьшаться, а потом в какой-то момент снова пойдут на увеличение. Самое маленькое значение и будет наилучшим. Это следует из предполагаемого вида поверхности.

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


(40-SA$MANUF)#140+4 .75#N_WRK+2. 5#M_HIRED

Среднее число работающих станков за все время моделирования определяет СЧА SA$MANUF. Начальное количество ремонтников в модели может не задаваться. Оно нужно только для автономного за­пуска модели без подключенного эксперимента.

Внешний цикл эксперимента Seek_Opt() организует изменение количества арендуемых станков. Внутренний цикл последовательно изменяет количество работников (чтобы найти минимум функции за­трат, становящейся двумерной). Переменные Flag1, Flag2 управляют выходом из циклов. Переменные Prev1, Cur1, Flag1 соответствуют внешнему циклу; Prev2, Cur2, Flag2 - внутреннему. Переменная Prev_N_WRK хранит значение количества рабочих на предыдущем шаге внешнего цикла (при меньшем фиксированном значении коли­чества арендуемых станков), соответствующее наименьшему значе­нию функции затрат. Процедура Show_l предназначена для отобра­жения промежуточных наименьших значений функции затрат и при каких значениях параметров они достигаются.

Для данной модели выполним два пользовательских экспери­мента. Первый (Go) позволяет определить затраты на производство при конкретных значениях числа арендуемых станков и ремонтников, которые задаются как параметры в процедуре. Как и в предыдущем примере, средние затраты рассчитываются по 10 прогонам модели. Для выполнения этого эксперимента необходимо оттранслировать модель с подключенными процедурами, выполнить пункт меню Command/CONDUCT и в диалоговом окне 'Conduct Experi­ment' Command вызвать процедуру GO

CONDUCT Go(5,3),

где 5 - число арендуемых станков и 3 - число ремонтников. Результат этого эксперимента:

02/20/03 09:28:32 ' Losses 100.3012130170936. Hired machines 5. Repairers 3. •

Второй эксперимент Seek_Opt() запускается командой

CONDUCT Seek_Opt()

и позволяет методом направленного перебора найти вариант, соот­ветствующий минимальным затратам. Для каждого нового варианта сочетания числа станков и рабочих при старте в операторе STORAGE переопределяется емкость МКУ для нового значения количества ре­монтников. Опустив промежуточные результаты, приведем конечный результат для этого эксперимента.

02/20/03 10:44:20 " Cur. losses 52.7758888547009. Cur. hired machines 8. Cur. repairers 6." 02/20/03 10:44:20 * Optimum. Losses 52.54681494444466. Hired machines 7. Repairers 6."

Из приведенных результатов видно, что на предыдущем шаге рассматривался вариант с 8 станками и 6 рабочими, однако, затраты при этом сочетании оказались больше, чем при 7 станках и 6 рабочих. Поэтому в качестве окончательного был принят вариант с 7 станками и 6 рабочими при средних часовых затратах на производство 52.5568 единиц стоимости.



9.12. Выбор наилучшего варианта структуры системы

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

Не существует единого подхода к формулированию гипотез, по­скольку такая процедура зависит от конкретной модели и проблемы, которая решается с помощью этой модели. Поэтому можно лишь пред­ложить некоторые общие методы формулирования гипотез [17].

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

2. Выявление резко отличающихся значений. Такие значения часто могут приводить к правильным гипотезам. Их следует игнориро­вать только после тщательного изучения и объяснения.

3. Выявление закономерностей. В модели определяют интерес­ные закономерности во времени, такие как циклы или тенденции. Для этого целесообразно применять графические методы: диаграмму со­стояний системы, временные ряды и диаграммы Ганта.

4. Выявление корреляций. Корреляция между параметрами и показателями критерия эффективности системы может привести к пра­вильным гипотезам.

Выявление и анализ несоответствий. Существование очевидных взаимосвязей между данными, которые проверяются, с данными, взя­тыми из разных источников; между данными, связанными с системой; между полученными данными на модели и их ожидаемыми значения­ми. Выявленные несоответствия с большой вероятностью приводят к гипотезам.

Решение задачи анализа системы с помощью имитационной мо­дели сводится большей частью к выявлению так называемых «узких мест». Пусть S- система, Р- показатель эффективности, х12,..., xi ..., хп - п параметров модели. Величины xt - это параметры окружающей среды и внутренние параметры модели. Допустим, что увеличение Р приводит к улучшению показателя. Функция P(xi), i=1,...,n обычно характеризуется явно выраженными нелинейностями, которые приоб­ретают форму узких мест.