Имитационное моделирование сетей на языке SLAM: методы, операторы и обработка событий

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ
РЕСПУБЛИКИ КАЗАХСТАН
КАЗАХСКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
ИМЕНИ КАНЫША ИМАНТАЕВИЧА САТПАЕВА
КАФЕДРА «ТЕХНИЧЕСКАЯ ЭКСПЕРТИЗА и ОЦЕНКА»
Реферат
Тема: Имитационное моделирование как средство анализа сетей
Специальность 541530 - «Информационные системы в экономике» (бакалавриат)
Выполнила: студентка 3 курса
дневного отделения
группы ИСЭб - 03 - 2р
Быкова У.
Приняла:
Исмаилова Р. Т.
Алматы
2005
Оглавление. стр.
Введение 3
I Имитационное моделирование как средство анализа сетей. 6
II Входные операторы СЛАМ. 10
2. 1 Форматы входных операторов. 10
2. 2 Форматы сетевых операторов. 11
2. 3 Форматы управляющих операторов. 13
2. 4 Результаты сообщения СЛАМ. 13
Заключение 16
Список использованной литературы. 17
Введение.
Проблемы, с которыми приводится сталкивается в различных сферах нашей жизни, постоянно усложняются. Это определяет необходимость совершенствования имеющихся и разработки новых методов и процедур их решения. Имитационное моделирование является эффективным средством решения сложных проблем. Имитационные модели могут применяться для:
- исследования границ и структур систем с целью решения конкретных проблем;
- определения и анализа критических элементов, компонентов и точек в исследуемых системах и процессах;
- синтеза и оценки предполагаемых решений;
- прогнозирования и планирования будущего развития исследуемых систем.
Процесс имитационного моделирования начинается с определения подлежащих решению проблем, что в свою очередь определяет состав и границы исследуемой системы.
Модель.
Модель - это описание системы. В физических науках модели обычно разрабатываются на основе теоретических законов и принципов. Моделями могут быть масштабированные физические объекты, математические уравнения и взаимосвязи. Модели эффективно используются, в частности, при описании, проектировании и анализе систем.
Разработка модели - сложный процесс, который во многом является искусством, но, однако, упрощаются, если: 1) известны физические законы, описывающие функционирование системы; 2) может быть разработано графическое представление системы; 3) можно управлять входами, элементами и выходами системы.
Построение моделей. Модель представляет собой абстрактное описание системы, уровень детализации которого определяет сам исследователь. Человек принимает решение о том, является ли данный элемент системы существенным, а следовательно, будет ли он включен в описание системы. Это решение принимается с учетом цели, лежащей в основе разработки модели. От того, насколько хорошо исследователь умеет выделять существенные элементы и взаимосвязи между ними, зависит успех моделирования.
Итак, процесс моделирования начинается с определения цели разработки модели, на основе которой затем устанавливается границы системы и необходимый уровень детализации моделируемых процессов. Выбранный уровень детализации должен позволять абстрагироваться от неточно определенных из-за недостатка информации аспектов функционирования реальной системы. В описание системы, кроме того, должны быть включены критерии эффективности функционирования системы и оцениваемые альтернативные решения, которые могут рассматриваться как часть модели или как ее входы. Оценка альтернативных решений по заданным критериям эффективности рассматриваются как выходы модели. Обычно оценка альтернатив требует внесения изменений в описание системы и, следовательно, перестройки модели. После того как на основе полученных оценок альтернатив могут быть выработаны рекомендации, можно приступать к внедрению результатов моделирования. При этом в рекомендациях должны быть четко сформулированы как основные решения, так и условия их реализации.
Имитационные модели.
Имитационной моделью будем называть логико-математическое описание системы, которое может быть исследовано в ходе проведения экспериментов на ПЭВМ и, следовательно, может считаться лабораторной версией системы. После окончания разработки имитационной модели с ней проводятся машинные эксперименты, которые позволяют сделать выводы о поведении системы:
- без ее построения, если это проектируемая система;
- без вмешательства в ее функционирование, если это действующая система, экспериментирование с которой или слишком дорого, или небезопасно;
- без ее разрушения, цель эксперимента состоит в определении пределов воздействия на систему.
Таким образом, имитационные модели могут использоваться для проектирования, анализа и оценки функционирования систем. В настоящее время имитационное моделирование используется для исследования разнообразных систем, в частности городских, экономических, коммерческих, производственных, биологических, социальных, транспортных систем и другие.
Имитационное моделирование - это представление динамического поведения системы посредством продвижения ее от одного состояния к другому в соответствии с хорошо определенными операционными правилами.
Изменения состояния системы могут происходить либо непрерывно, либо в дискретные моменты времени. Хотя процедура описания динамического поведения дискретно и непрерывно изменяющихся моделей различны, основная концепция имитации системы - отображение изменений ее состояния с течением времени - остается той же.
Процесс имитационного моделирования.
Процесс последовательной разработки имитационной модели начинается с создания простой модели, которая затем постепенно усложняется в соответствии с требованиями, предъявляемыми решаемой проблемой. В процессе имитационного моделирования можно выделить следующие основные этапы:
1. Формулирование проблемы; описание исследуемой проблемы и определение целей исследования.
2. Разработка модели: логико-математическое описание моделируемой системы в соответствии с формулировкой проблемы.
3. Подготовка данных: идентификация, спецификация и сбор данных.
4. Трансляция модели: перевод модели на язык, приемлемый для используемой ПЭВМ.
5. Верификация: установление правильности машинных программ.
6. Валидация: оценка требуемой точности и соответствия имитационной модели реальной системе.
7. Стратегическое и тактическое планирование: определение условий проведения машинного эксперимента с имитационной моделью.
8. Экспериментирование: прогон имитационной модели на ПЭВМ для получения требуемой информации.
9. Анализ результатов: изучение результатов имитационного эксперимента для подготовки выводов и рекомендаций по решению проблемы.
10. Реализация и документирования: реализация рекомендаций, полученных на основе имитации, и составление документации по модели и ее использованию.
Основываясь на принципах имитационного моделирования и используя программы языка СЛАМ можно делать анализ сетей.
I Имитационное моделирование как средство анализа сетей.
На основе языка СЛАМ и на принципах имитационного моделирования, которые интерпретируют и выполняют описывающие сеть операторы, имитируют тем самым реальную систему.
При сетевом моделировании исследуемая система представляется в виде множества компонентов, проходящих через сеть, состоящую из узлов и действий. По мере прохождения по сети компоненты занимают обслуживающие устройства, продвигают время, ожидают, захватывают и освобождают ресурсы, открывают и закрывают затворы, образуют очереди, изменяют значения переменных, т. е. вызывают изменения состояния модели системы. Основное предположение, на котором базируется реализованный подход к сетевому имитационному моделированию, заключается в том, что изменения состояния системы могут происходить только в момент поступления какого-либо ее компонента в узел. Процессор СЛАМ генерирует полную картину изменений состояния сетевой модели в процессе обработки упорядоченной во времени последовательности событий, моделирующих поступление компонентов в узлы.
Механизмом обработки упорядоченной во времени последовательности событий поступления компонентов в узлы является календарь событий. Календарь состоит из списка событий поступления компонентов, каждое из которых характеризуется «временем свершения» и «узлом завершения». Время свершения события определяет момент времени, в который компонент должен поступить в узел. Узел, в который затем следует компонент, называется узлом завершения. События в календаре ранжируются во времени свершения в соответствии с правилом LVF (low-value-first - меньшее значение первым) .
На рисунке 1 приведена блок-схема процедуры обработки следующего события, применяемой в СЛАМ при имитации сетей. Работа процессора начинается с интерпретации операторов СЛАМ. Затем осуществляется фаза инициализации, которая завершается до начала фазы выполнения имитации. В течение фазы инициализации процессор помещает в календарь все события, которые должны произойти в каждом узле CREATE в момент первого его освобождения. Кроме того, генерируются компоненты в узлах QUEUE и, где необходимо, планируются события окончания обслуживания. Следовательно, календарь событий первоначально содержит по одному событию поступления компонента для каждого узла CREATE и по одному событию окончания обслуживания для каждого занятого обслуживающего устройства в сети.
Фаза выполнения имитации начинается с извлечения первого события из календаря. Процессор при этом увеличивает текущее имитационное время TNOW так, чтобы оно стало равным моменту наступления первого события. Затем происходит обработка события с выполнением всех действий, предусмотренных логической процедурой, связанной с типом узла, в который поступил компонент. Например, если компонент поступил в узел
Рисунок 1. Блок-схема процедуры обработки следующего события в сетевой имитации.
AWAIT, процедура обработки данного события состоит в следующем: первоначально проверяется наличие необходимого ресурса; если имеется необходимое количество ресурса, компонент захватывает его и покидает узел; в противном случае компонент помещается в определенный файл и ожидает поступления необходимого количества ресурса. Хотя логические процедуры обработки событий в разных узлах различны, они всегда приводят к одному из трех следующих результатов:
1) компонент направляется в другой узел;
2) компонент уничтожается в узле;
3) компонент задерживается в узле в зависимости от состояния системы.
При направлении компонента в другой узел осуществляется проверка действий, начинающихся в узле, из которого он направляется. Если в нем не начинается ни одно из действий, в текущий момент времени TNOW планируется поступление компонента в следующий узел. Если следующего узла нет, компонент уничтожается. Если в данном узле начинается несколько действий, для выполнения выбираются только М из них (М - заданное для этого узла число) . Выбор осуществляется в соответствии с определенными для этих действий условиями и вероятностями. Пусть выбрано некоторое действие; тогда компонент или его дубликат направляется в узел, в котором это действие завершается. Компонент поступит в завершающий узел в момент времени, равный TNOW плюс продолжительность действия.
После того как все события запланированы, процессор СЛАМ осуществляет проверку следующих условий завершения имитационного прогона:
- TNOW больше или равно заданного пользователем времени завершения имитационного прогона;
- календарь событий пуст;
- узел TERMINATE освобожден, т. е. пуст.
Если ни одно из условий завершения имитации не выполняется, процессор СЛАМ переходит к обработке следующего события поступления, выбранного из календаря событий. При завершении имитационного прогона вычисляются статистические оценки, и печатается заключительный отчет. Затем осуществляется проверка необходимости выполнения дополнительных имитационных прогонов. Если такая необходимость есть, инициируется следующий прогон. При завершении всех прогонов работа процессора СЛАМ прекращается, и управление передается операционной системе.
Описанная выше процедура обработки следующего события хорошо определена для всех случаев, кроме случая, когда на один и тот же момент времени запланированы два или больше событий поступления. Чтобы лучше понять проблему, рассмотрим пример, в котором имеется затвор DOOR. Этот затвор в текущий момент времени открыт. Имеются также компоненты, поступление которых запланировано в один и тот же момент времени следующими операторами:
оператор 1 оператор 2
AWAIT, DOOR; CLOSE, DOOR;
Если первым обрабатывается оператор 1, то затвор DOOR будет открыт, а компонент покинет узел AWAIT. Напротив, если первым обрабатывается оператор 2, поступление компонента в операторе 1 будет задержано в узле AWAIT, т. к. затвор DOOR только что был закрыт. Следовательно, порядок обработки одновременных событий поступления компонентов в узел может влиять на результаты имитации. Эта проблема важна только в имитационных языках с целочисленным счетчиком времени.
При описании правил развязки в узле одновременных событий поступления, применяемых в СЛАМ, удобно разбивать все события, содержащиеся в календаре, на «текущие» и «будущие». Текущими являются те события, наступление которых запланировано на текущий момент имитационного времени, тогда как будущие события запланированы на некоторые моменты в будущем. Причиной основного различия между текущими и будущими событиями поступления является различие применяемых при этом процедур развязки.
Планирование события поступления как текущего может быть результатом планирования либо поступления в следующий узел, либо поступления в узел окончания операции в случае, когда операция имеет нулевую продолжительность. В обоих случаях момент наступления события равен текущему имитационному времени. Процедура планирования события в СЛАМ всегда помещает текущие события в начало календаря независимо от других находящихся в нем событий. Следовательно, текущие события помещаются в календарь по правилу LIFO (last-in, first-out - «последним вошел - первым вышел») . В том случае, когда из одного и того же узла начинаются несколько действий с нулевой продолжительностью выполнения, события поступления, соответствующие окончанию каждого действия, помещаются в начало календаря в порядке, предусмотренном последовательностью операторов событий, т. е. первое событие соответствует первому действию с нулевой продолжительностью, второе событие - второму подобному действию и т. д.
Поскольку единственным механизмом продвижения имитационного времени в сетевых моделях СЛАМ является завершение действия, планирование будущих событий обязательно связано с событием поступления, вызванным завершением действия с ненулевой продолжительностью. Процедура развязки при планировании будущих событий использует вторичное ранжирование, которое в СЛАМ определяется по умолчанию правилом FIFO (first-in, first-out - «первым вошел - первым вышел») . Вторичное ранжирование может задаваться разработчиком в соответствии с правилами FIFO; LIFO; LVF (NATR) (меньшее значение атрибута с номером NATR - первым, или HVF (NATR) ), (большее значение атрибута с номером NATR - первым) . Если при вторичном ранжировании по правилам LVF или HVF связка событий остается, то она разбивается с помощью ранжирования по правилу FIFO.
II Входные операторы СЛАМ.
Имитационная программа сетевой модели состоит не только из операторов описания узлов и действий. Для задания таких параметров, как продолжительность прогона, начальные значения, выходные спецификации правила ранжирования файлов, необходимы входные операторы.
2. 1 Форматы входных операторов.
Процессор СЛАМ считывает входные операторы с терминала или его эквивалента. Первые три символа имени каждого входного оператора его однозначно идентифицируют. Каждое поле оператора разделяется запятой или косой чертой либо заключается в скобки. Выбор разделителя зависит от особенностей типа оператора и записи поля и указывается в описании каждого типа оператора. Косая черта и скобки используются в основном для разделения необязательных спецификаций; поэтому они сами необязательны. Запятыми разделяются поля, которые надо указывать обязательно. Специальные знаки ( +, -, *, / ) применяются для обозначения арифметических операций, а точка с запятой обозначает конец оператора. Эти знаки не должны употребляться в метках сетевых операторов или в задаваемых пользователем алфавитно-цифровых именах.
Поле в операторе может отсутствовать из-за того, что нет соответствующей записи. Например, действие нулевой продолжительности условий. заканчивающееся в узле с меткой EXIT, может быть задано с помощью умолчания полей продолжительности и условий следующим образом:
ACTIVITY,, , EXIT;
Поля, оставшиеся неопределенными в операторе принимают значения по умолчанию. Например, действие ACTIVITY с продолжительностью 1, не имеющее условий и заканчивающееся в следующем узле, может быть задано с умолчанием двух последних полей таким образом:
ACTIVITY, 1;
Узлом завершения данного действия считается узел следующего по порядку оператора.
Входные операторы считываются по свободному формату, который позволяет размещать один оператор в любом месте строки и на нескольких строках. Единственным ограничением является то, что одно поле не может быть разнесено на разные строки. Предполагается, что оператор продолжается на следующей строке в том случае, если последним, отличным от пробела символом оператора на данной строке являются [, / (+ - *) ] или последняя точка логического оператора (. AND. ) . Если последний, отличный от пробела символ строки является любым другим, предполагается, что оператор закончился. Тем не менее предпочтительнее, если оператор заканчивается явно, т. е. с использованием завершающей точки с запятой, которая позволяет добавлять комментарии после текста самого оператора. Игнорируются все пробелы, кроме встретившихся внутри алфавитно-цифрового поля, что позволяет улучшить читабельность операторов. Например, оператор:
ACTIVITY, 10, ATRIB (1) . EQ. 1 . AND. TNOW. LT. 100, LOOP;
может быть разнесен на три строчки следующим образом:
ACTIVITY, 10,
ATRIB (1) . EQ. 1. AND.
TNOW. LT. 100, LOOP;
Следует отметить, однако, что три строки потребуют большего времени на интерпретацию, чем одна.
Числовые данные могут вводиться в целом и десятичном виде, со знаком или без него. Кроме того, очень большие или очень малые числа могут вводиться в форме с плавающей запятой с использованием формата Е. Например, число 10 может быть введено как 10, 10., +10, 1. Е+1, 1Е1 или 100Е-1. Если десятичное число вводится в поле, определенное как целое, то дробная часть отбрасывается. Аналогично, если целое число вводится в десятичное поле, оно переводится в десятичный формат. Таким образом, входной процессор СЛАМ не отличает 1. от 1 независимо от заданного типа поля.
Алфавитно-цифровые поля воспринимаются при вводе как некоторые последовательности символов, начинающиеся с буквы, но не содержащие специальных знаков, перечисленных выше. Пробелы внутри алфавитно-цифровых полей воспринимаются как значащие символы, т. е. Ь 1 и Ы будут рассматриваться как разные последовательности. Поскольку поля не могут быть разнесены на несколько строк, длина алфавитно-цифрового поля не должна превышать 80 символов. Кроме того, т зависимости от введенного поля читаются только первые 3, 4, 8, 16 или 20 символов. В качестве примера допустимых алфавитно-цифровых полей можно привести следующие: ВАКВЕК, СКАЫЕ, 5927, К. 1. или Л. ООЕ.
2. 2 Форматы сетевых операторов
Сетевые операторы, записываются, начиная с 7-й колонки, причем в колонках с 1 по 5 указывается метка узла. Из пяти знаков метки узла принимаются во внимание только первые четыре. Так, например, метки ЬАЫЕ1 и ЬАЫЕ2 не различаются.
Сетевым операторам должен предшествовать оператор МЕТ\УОКК, а за последним сетевым оператором должен стоять оператор ЕМОМЕТ\\ЮКК. Ключевыми в имени оператора КЕТ\\ЮКК являются символы МЕТ, располагаемые в любом месте строки, которые сообщают процессору СЛАМ, что в последующих строках стоят сетевые операторы. Оператор - МЕТШОКК имеет два дополнительных поля:
ЫЕТ\\ЮКК, опция, устройство;
которые определяют способ запоминания декодированной сети для последующей загрузки. Если опция принимает значение 5АУЕ, декодированная сеть запоминается на устройстве с указанным логическим номером (накопитель на магнитной ленте или магнитном диске) . Следовательно, оператор
ТШОКК, ЗАУЕ, 3;
определяет, что декодированная сеть будет записана на устройстве с логическим номером 3. При последующем использовании сети оператор
ЫЕТШОКК, ЬОАО. З;
... продолжение- Информатика
- Банковское дело
- Оценка бизнеса
- Бухгалтерское дело
- Валеология
- География
- Геология, Геофизика, Геодезия
- Религия
- Общая история
- Журналистика
- Таможенное дело
- История Казахстана
- Финансы
- Законодательство и Право, Криминалистика
- Маркетинг
- Культурология
- Медицина
- Менеджмент
- Нефть, Газ
- Искуство, музыка
- Педагогика
- Психология
- Страхование
- Налоги
- Политология
- Сертификация, стандартизация
- Социология, Демография
- Статистика
- Туризм
- Физика
- Философия
- Химия
- Делопроизводсто
- Экология, Охрана природы, Природопользование
- Экономика
- Литература
- Биология
- Мясо, молочно, вино-водочные продукты
- Земельный кадастр, Недвижимость
- Математика, Геометрия
- Государственное управление
- Архивное дело
- Полиграфия
- Горное дело
- Языковедение, Филология
- Исторические личности
- Автоматизация, Техника
- Экономическая география
- Международные отношения
- ОБЖ (Основы безопасности жизнедеятельности), Защита труда
