Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Проведение экспериментов





Вначале проведите эксперимент согласно варианту 1 (см. п. 7.3.3 и рис. 7.14).


Рис. 7.14. Диалоговое окно (заполненное) Screening Experiment Generator (Генератор отсеивающего эксперимента)

Ранее (п. 4.9) отмечалось, что из трех подходов получения достоверной статистики наиболее удобен подход сброса статистики на определенном этапе моделирования с последующим его продолжением без модификации модели. Для реализации этого подхода в GPSS World имеется команда RESET.

Однако остается открытым вопрос: сколько нужно выполнить предварительных прогонов модели до сброса статистики?

Для получения ответа на этот вопрос проведите несколько экспериментов с моделью, меняя в каждом из них только количество предварительных прогонов модели.

В первой команде START генератора экспериментов укажите 20 прогонов. Во второй команде START - 170 прогонов, которые были определены ранее (п. 7.3.4). Результаты экспериментов - оценку матожидания времени TDet изготовления Det деталей - заносите в табл. 7.5.

Таблица 7.5.  
Оценка Количество прогонов модели  
               
TDet 3,988 3,975 4,007 4,024 3,986 3,995 4,044  

Согласно табл. 7.5 изменяйте и количество прогонов модели. Для сокращения времени проведения экспериментов изменяйте их непосредственно в процедуре запуска генератора экспериментов.

По окончании экспериментов получите (табл. 7.5). Видно, что изменения результата моделирования столь малы, что ими для данной модели практически можно пренебречь.

Повторите эксперимент, указав, например, 100 предварительных прогонов. Получите результаты дисперсионного анализа, представленные на рис. 7.15.

Видно, что все четыре фактора существенные. Наибольшее влияние на функцию отклика оказывает фактор В, что вполне логично, так как из первых трех имеет наибольший верхний уровень, т. е. наибольшую долю брака. Ожидаемое время изготовления четырех деталей DET = 4 деталей составляет ТDet = 3,986 ч.


увеличить изображение
Рис. 7.15. Результаты отсеивающего эксперимента (вариант1)

Теперь проведите эксперимент согласно варианту 2 (см. п. 7.3.3) при том же количестве предварительных и основных прогонов. Получите (рис. 7.16), что ожидаемое время изготовления четырех деталей ТDet = 4,518 ч. Все факторы, кроме фактора D (время выполнения третьей операции), несущественные.

Уменьшите верхний уровень фактора D: возьмем, например, K1 = 1,5. Проведите эксперимент с новым значением фактора D. Получите, что время изготовления ТDet ожидается 3,992 ч, а все факторы можно считать практически не существенными.


увеличить изображение
Рис. 7.16. Результаты отсеивающего эксперимента (вариант 2)

Вопросы для самоконтроля

  1. Что понимается под компьютерным экспериментом?
  2. Каковы цели стратегического и тактического планирования эксперимента?
  3. Какова цель и средства проведения дисперсионного анализа (отсеивающего эксперимента) в GPSS World?
  4. В каком виде выводятся результаты дисперсионного анализа? Дайте характеристику выводимых величин.
  5. Как изучить группы смешивания с целью осуществления стратегического планирования эксперимента?
  6. Какова цель и средства проведения оптимизирующего эксперимента в GPSS World?
  7. Дайте характеристику метода поверхности отклика.
  8. Как должны быть представлены в программе модели характеристики моделируемой системы, которые будут использоваться при проведении исследований с применением генераторов экспериментов?
  9. Можно ли при проведении отсеивающего или оптимизирующего эксперимента указывать, например, для нормального или равномерного распределения, по отдельности в качестве факторов среднее значение и среднеквадратическое отклонение? Если да, приведите примеры. Если нет, обоснуйте причину, к каким ошибкам это может приводить, как их избежать.
  10. Может ли пользователь изменять условия проведения отсеивающего и оптимизирующего экспериментов? Если да, какие?
  11. Измените условия примера 6.1 так, чтобы сервер стал однофазной системой массового обслуживания с ожиданием разомкнутого типа (добавьте входной накопитель емкостью на L сообщений). В соответствии с этим откорректируйте программу модели решения прямой задачи (п. 6.3.1). Проведите дисперсионный анализ. Исследуйте влияние на вероятность обработки запросов сервером четырех факторов: три указаны в табл. 6.1, а четвертый фактор - емкость входного накопителя сервера.
  12. В программу модели, измененную при ответе на вопрос 7.11, добавьте сегмент имитации сбоев сервера. Проведите дисперсионный анализ. Исследуйте влияние на вероятность обработки запросов сервером пяти факторов: четыре указаны в вопросе 7.11, а пятый фактор - среднее значение интервалов времени наработки на отказ.
  13. Проведите оптимизирующий эксперимент, используя те же факторы, что и в дисперсионном анализе (вопрос 7.11). Попробуйте получить регрессионную зависимость, изменяя, при необходимости, значения уровней факторов.
  14. Проведите оптимизирующий эксперимент согласно условиям варианта 1 (п. 6.4.1.3). Попробуйте получить регрессионную зависимость, изменяя, при необходимости, значения уровней факторов.
  15. Проведите оптимизирующий эксперимент согласно условиям варианта 2 (п. 6.4.1.3). Попробуйте получить регрессионную зависимость, изменяя, при необходимости, значения уровней факторов.
  16. Измените исходные данные задачи (п. 6.5.2): добавьте телефонные аппараты третьей категории (ТА3). Откорректируйте в соответствии с этим программу модели (п. 6.5.4). Проведите дисперсионный анализ. Исследуйте зависимость вероятностей разговоров абонентов ТА по категориям и в целом от интенсивности заявок на звонки и длительности ведения разговоров.
  17. Проведите оптимизирующий эксперимент по условиям вопроса 7.16. Попробуйте получить регрессионную зависимость, изменяя, при необходимости, значения уровней факторов.
  18. Проведите дисперсионный анализ согласно постановке п. 7.3.1. Но при этом решите прямую задачу, т. е. определите количество деталей, которое будет изготовлено за четыре часа. Для этого замените сегмент завершения моделирования и расчета результатов сегментом задания времени моделирования и расчета результатов:

19. GENERATE TMod; Время моделирования


20. TEST L X$Prog,TG1,Met11; Если условие выполняется, то

21. SAVEVALUE Prog,TG1; X$Prog=TG1 содержимому счетчика завершений

22. SAVEVALUE Prog1,TG1; X$Prog1=TG1 содержимому счетчика завершений

23.Met11 TEST E TG1,1,Met12; Если содержимое счетчика завершений равно 1,

24.то расчет результатов моделирования

25. SAVEVALUE NDet,(INT(N$EndOper1/X$Prog1)); Количество готовых деталей, шт.

26. SAVEVALUE Brak,(INT(N$EndOper/X$Prog1)); Количество забракованных деталей, шт.

27. SAVEVALUE DoljaBrak,(X$Brak/(X$Brak+X$NDet)); Общая доля брака

28. SAVEVALUE DoljaDet,(X$NDet/(X$Brak+X$NDet)); Доля готовых деталей

29. SAVEVALUE TDet,((AC1-X$AC2)/N$EndOper1); Среднее время изготовления одной детали, мин

30. SAVEVALUE AC2,AC1

31. SAVEVALUE Prog,0

32.Met12 TERMINATE 1

Остальную необходимую корректировку модели выполните самостоятельно.

 

 

8. Лекция: Разработка имитационных моделей в виде приложений с интерфейсом: версия для печати и PDA Подробно рассматривается разработка моделей. Разработка модели в GPSS World. Создание стартовой формы приложения - имитационной модели. Добавление компонент в стартовую форму имитационной модели. События и процедуры обработки событий.
8.1. Применение текстовых объектов и потоков данных Модель представляет собой набор операторов, содержащихся в одном объекте "Модель" и в любом количестве необязательных текстовых объектов. Текстовые объекты с наборами операторов модели подключаются к объекту "Модель" командой INCLUDE. Формат команды: INCLUDE A Операнд А - спецификация файла (полный путь доступа к файлу). Допустимые значения - String. Например: INCLUDE "DanDon.txt" INCLUDE "D:\Primer\DanZad.txt" В первом примере путь доступа к файлу не приводится, так как предполагается, что файл с указанным именем находится в папке модели. Во втором примере указан путь доступа к файлу. Команда INCLUDE является срочной командой. При трансляции она заменяется файлом. Поэтому располагать в модели команду INCLUDE нужно там, где должны быть операторы или команды, содержащиеся в файле. Все дополнительно вводимые файлы нумеруются транслятором целыми числами, начиная с 0. Номер 0 присваивается объекту-модели. Нескольким вводам одного файла также присваиваются уникальные номера, т. е. каждый ввод файла приводит к созданию отличающихся наборов блоков. Команда INCLUDE допускает пять уровней вложенности файлов модели. Нельзя помещать команду INCLUDE в Plus-процедуру. Операторы INCLUDE можно также закреплять за функциональными клавишами. Это позволяет одним нажатием клавиши объекту "Процесс моделирования" передать набор команд и (или) Plus-операторов, содержащихся в текстовом файле. Текстовые объекты применяются и вместе с потоками данных. Потоки данных позволяют процессу моделирования считывать из файлов и записывать данные в файлы, а также создавать файлы результатов моделирования для последующего использования. Поток данных - это последовательность текстовых строк, используемых процессом моделирования. Существуют два типа потоков данных:
  • потоки ввода-вывода (I/O или "файловые" потоки) для доступа к файлам;
  • потоки в памяти для тестирования или прямого доступа к внутренним данным.
Основной элемент потока данных - текстовая строка, которая является строкой печатных символов, включая пробелы. Для обработки потоков данных существуют пять блоков GPSS World: OPEN, CLOSE, READ, WRITE, SEEK. Три из них - READ, WRITE, SEEK - выполняют операции только с одной отдельной строкой текста. Перейдем к рассмотрению блоков обработки потоков данных. 8.1.1. Блок OPEN Блок OPENпредназначен для инициализации потока данных. Формат блока: OPEN A,[B],[C] Операнд А - дескриптор потока данных. Операнд определяет тип потока данных. Он обрабатывается как строка. Если это нулевая строка, создается поток в памяти. Если это канальное имя, такое как "\pipe\mypipe", создается канальный поток. В противном случае создается поток ввода-вывода и предполагается, что операнд А является спецификацией файла. Операнд В - номер потока данных, произвольное положительное число, задаваемое пользователем. Нумерация потоков введена с целью использования одновременно в одном процессе моделирования нескольких потоков данных. По умолчанию номер потока данных равен 1. Операнд С - метка блока, в который направляется транзакт в случае ошибки инициализации потока данных. Коды ошибок:
  • 0 - нет ошибки;
  • 10 - длинное имя файла;
  • 11 - ошибка чтения внешнего файла;
  • 12 - во время попытки открыть файл был запрещен доступ к памяти.
OPEN ("Plan.txt"),3,Kon1 OPEN ("G\Model\NorPogr.txt") OPEN ("") В первом примере открывается поток ввода-вывода, потоку присваивается номер 3 и в случае ошибки открытия активный транзакт направляется к блоку с меткой Kon1. Операндом А указан неполный путь доступа к файлу, поэтому подразумевается, что используется папка объекта "Процесс моделирования". Если файл с указанным именем не найден, то предполагается, что файл создается, и ошибка не возникает. Во втором примере операндом А указан полный путь доступа к файлу, открываемому потоку ввода-вывода по умолчанию присваивается номер один. В случае ошибки открытия активный транзакт направляется к следующему по порядку блоку. В третьем примере открывается поток в памяти. Замечание. Если указанный операндом А файл найден, во время обработки блока OPEN он полностью загружается в виртуальную память. Все находившиеся в файле данные хранятся как часть объекта "Процесс моделирования" до тех пор, пока поток данных не будет закрыт. Все изменения данных отражаются в файловой системе только после того, как поток данных закрывается блоком CLOSE или библиотечной Plus-процедурой Close(). 8.1.2. Блок CLOSE Блок CLOSEпредназначен для закрытия потока данных. Формат блока: CLOSE A,[B],[C] Операнд А - номер или имя параметра транзакта, в который записывается код ошибки закрытия потока данных. Если такой параметр не существует, он создается. Операнд В - номер закрываемого потока данных, по умолчанию равен 1, т. е. если операнд В не используется, закрывается поток номер один. Операнд С - метка блока, в который направляется транзакт в случае ошибки закрытия потока данных. Коды ошибок:
  • 0 - нет ошибки;
  • 41 - запись файла на диск не произведена из-за ошибки ввода-вывода;
  • 42 - файл не был открыт.
Например: CLOSE Parm_Error,(P1+1) В примере блок CLOSE закрывает поток данных, номер которого задан выражением в скобках. Это выражение вычисляется, округляется и используется в качестве номера потока данных (должен быть положительным целым числом). Блок CLOSE для потоков ввода-вывода записывает данные из виртуальной памяти в дисковый файл. 8.1.3. Блок READ Блок READпредназначен для считывания из потока данных текстовой строки. Формат блока: READ A,[B],[C] Операнд А - номер или имя параметра транзакта, в который записывается считанная из потока ввода или потока в памяти строка, находящаяся на позиции текущей строки. После считывания позиция текущей строки увеличивается на единицу. Если такой параметр активного транзакта не существует, он создается. Операнд В - номер потока данных, из которого производится считывание. По умолчанию равен 1, т. е. если операнд В не используется, считывание производится из потока номер один. Операнд С - метка блока, в который направляется транзакт в случае ошибки считывания. Если операнд С не используется, код ошибки все равно сохраняется. Для его получения нужно использовать блок CLOSE. Коды ошибок:
  • 21 - во время попытки выполнить чтение был запрещен доступ к памяти;
  • 22 - файл не был открыт.
Например: READ Stroka_Text,4,Kon5 В примере блок READ считывает текстовую строку из потока данных номер 4 и записывает в параметр транзакта с именем Stro-ka_Text. Если текстовая строка считывается без ошибки, а параметр активного транзакта не существует, он создается. В случае ошибки строка не считывается и активный транзакт направляется к блоку с меткой Kon5. 8.1.4. Блок WRITE Блок WRITEпредназначен для передачи текстовой строки потоку данных. Формат блока: WRITE A,[B],[C],[D] Операнд А - текстовая строка, которая должна быть передана потоку данных. Операнд В - номер потока данных, по умолчанию равен 1. Операнд С - метка блока, в который направляется транзакт в случае ошибки записи. Коды ошибок:
  • 0 - нет ошибки;
  • 31 - во время попытки выполнить запись был запрещен доступ к памяти;
  • 32 - файл не был открыт.
Операнд D - задает режим работы блока WRITE. Если операнд D не используется (по умолчанию) или равен ON, блок WRITE работает в режиме вставки. Если операнд D равен OFF - в режиме замены. Режим вставки:
  • все текстовые строки, находящиеся на или за позицией текущей строки, сдвигаются на одну позицию;
  • если позиция текущей строки находится далеко за последней текстовой строкой, она устанавливается сразу после последней строки потока данных;
  • копия новой текстовой строки помещается на позицию текущей строки;
  • позиция текущей строки увеличивается на единицу. Режим замены:
  • если позиция текущей строки находится далеко за последней текстовой строкой, все промежуточные позиции заполняются нулевыми текстовыми строками;
  • текстовая строка, находящаяся на позиции текущей строки, удаляется;
  • копия новой текстовой строки помещается на позицию текущей строки;
  • позиция текущей строки увеличивается на единицу. Пример:
WRITE "INITIAL MX$TDon(1,1),420",5,Met3 В этом примере блок WRITE передает текстовую строку потоку данных с номером 5. Если происходит ошибка, активный транзакт переходит к блоку с меткой Met3. Иначе он переходит к следующему по порядку блоку. Если в данном случае поток данных является потоком вывода или потоком в памяти, запись производится в режиме вставки, так как операнд D не используется. Замечание 1. Если операнды С блоков OPEN, CLOSE, READ и WRITE не используются, ошибка игнорируется. Обычно эти операнды используются для того, чтобы направить активный транзакт на блок CLOSE, который код ошибки помещает в параметр транзакта. Из параметра можно записать код ошибки в сохраняемую ячейку и завершить моделирование. Значение ячейки будет выведено в стандартном отчете. Замечание 2. При построчном считывании данных из файла может оказаться, что на позиции текущей строки нет строки данных. Это происходит тогда, когда из файла считаны все текстовые строки. В данном случае активный транзакт входит в блок READ и далее направляется к блоку, метка которого указана операндом С. Код ошибки при этом не сохраняется. 8.1.5. Блок SEEK Блок SEEKустанавливает позицию текущей строки потока данных. Формат блока: SEEK A,[B] Операнд А - новая позиция текущей строки. Операнд В - номер потока данных, по умолчанию равен 1. Позиция текущей строки - это односвязный индекс, указывающий позицию следующей строки, которую необходимо считать или записать. Она не может быть меньше единицы. При попытке установить ее меньше единицы позиция текущей строки устанавливается равной единице. 31 - код ошибки: файл не был открыт. Пример: SEEK (Stroka+P1),(Potok+3) В этом примере, когда транзакт входит в блок SEEK, операнд А вычисляется, округляется и используется как номер потока данных. Операнд В также вычисляется, округляется и используется как номер потока данных. 8.2. Разработка модели в GPSS World 8.2.1. Постановка задачи На склад, имеющий 10 пунктов выгрузки, прибывают транспорта с материальными средствами (МС). В транспорте могут быть автомобили различной грузоподъемности. Всего количество типов автомобилей, отличающихся грузоподъемностью, которое может быть в транспорте, распределено по нормальному закону с математическим ожиданием 6 автомобилей и стандартным отклонением 1 автомобиль. Количество автомобилей одного типа в транспорте также распределено по нормальному закону с математическим ожиданием 11 автомобилей и стандартным отклонением 2 автомобиля. Интервалы времени прибытия транспортов распределены по экспоненциальному закону со средним значением 9 часов. Время разгрузки автомобиля зависит от его типа и подчиняется экспоненциальному закону. Среднее время выгрузки МС приведено в табл. 8.1. После выгрузки из тех же автомобилей вновь формируется транспорт. Построить модель функционирования пунктов выгрузки в течение трех суток с целью определения среднего времени выгрузки транспортов и коэффициентов загрузки пунктов выгрузки при рациональной организации работ на складе.
Таблица 8.1. Среднее время выгрузки МС из автомобилей различных типов  
Характеристики Тип автомобиля  
                     
Среднее время выгрузки, мин                      

Для имитации транспорта в целом и одного автомобиля следует использовать транзакты. Пункты выгрузки в модели будут представлять ОКУ.









Date: 2015-07-17; view: 554; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.01 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию