Стандартный отчет включает в себя результаты моделирования системы, например такие, как:
- коэффициент использования канала обслуживания;
- средняя длина очереди;
- среднее время пребывания требования в очереди и ряд других.
1.2 Разработка концептуальной модели системы
Разработка концептуальной модели подразумевает в себе определение структуры моделируемой системы, свойства ее элементов и причинно-следственные связи, присущие этой системе.
На этапе построения концептуальной модели проводится разбиение системы на элементы, допускающиу удобное математическое или алгоритмическое описание, определяются связи между элементами.
В данном курсовом проекте рассматриваются различные вариации систем массового обслуживания (СМО). СМО являются подклассом стохастических сетевых моделей (ССМ).
СМО состоит:
- из обслуживающих узлов(используются только устройства);
- из маршрутных узлов(используются только вероятностные или вообще не используются).
СМО подразделяются на линейные и нелинейные. Сеть массового обслуживания является линейной, если выполняется условие:интенсивность заявок на входе в любую СМО определяется линеной суперпозицией потоков других СМО. Другими словами, не должно быть дулирования или удаления элементов потоков.
Линейные сети масового обслуживания в свою очередь подразделяются на разомкнутые и замкнутые. Вразомкнутой СМО есть только одиночные генераторы. Взамкнутой СМО могут быть только одиночные генераторы.
Рисунок 1.2.1 Модель замкнутой СМО
В замкнутых СМО (рисунок1.2.1) обслуженные заявки в общем случае после некоторой временной задержки , снова поступают на вход СМО.
Разомкнутые и замкнутые СМО могут быть как однородными, так и неоднородными. В однородных сетях может быть только один тип заявок. В неоднородных сетях соответственно может быть несколько типов заявок.
СМО подразделяются так же на экспоненциальные и неэкспоненциальные.В экспоненциальных сетях входные потоки Пуасоновские, законы распределения длительности обслуживания в каждом устройстве экспоненциальные. В неэкспоненциальных сетях массового обслуживания входной закон или длительности обслуживания в каждом устройстве, или и то и другое распределены не по экспоненциальным законам.
В рамках выполнения курсовой работы ограничимся рассмотрением линейных замкнутых и разомкнутых СМО. В них используются следующие узлы:
- генератор;
- вероятностный узел;
- приёмник.
Вероятностный узел определяет маршрут прохождения заявки, в зависимости от вероятности перехода, заданной в матрице переходов.
Режимы перехода рассматриваются следующие:
- режим безусловной передачи;
- режим статистической передачи;
- режим BOTH;
- режим ALL;
Сеть считается заданной, если задана структура сети и потоки заявок.
Структура сети определяется через задание количества узлов и матрицу вероятностей перехода между узлами.
Для источников (генераторов) заявок указываемзакон поступления заявок (входной поток):
- бета (Beta);
- биномиальное (Binomial);
- Вейбулла (Weibull);
- дискретно-равномерное (DiscreteUniform);
- гамма (Gamma);
- геометрическое (Geometric);
- Лапласа (Laplace);
- логистическое (Logistic);
- логлапласово (LogLaplace);
- логлогистическое (LogLogistic);
- логнормальное (LogNormal);
- нормальное (Normal);
- обратное Вейбулла (InverseWeibull);
- обратное Гаусса (InverseGaussian);
- отрицательное биномиальное (NegativeBinomial);
- Парето (Pareto);
- Пирсонатипа V (Pearson Type V);
- Пирсонатипа VI (Pearson Type VI);
- Пуассона (Poisson);
- равномерное (Uniform);
- треугольное (Triangular);
- экспоненциальное (Exponential);
- экстремального значения A (ExtremeValue A);
- экстремального значения В (ExtremeValue В).
Приемник уничтожает заявки по одной.
Структура соединения узлов задается с помощью матрицы переходов, размером N*N, где N – количество узлов в сети. Элемент матрицы показывает, с какой вероятностью заявка после обслуживания в одном устройстве перейдет к обслуживанию в другом устройстве.
Так же необходимо указать количество заявок, которые полностью пройдут через сеть.
Для упрощения реализации задания сперва смоделируем различные вариации СМО на GPSS WORLD и затем на основе полученного результата помтроим программу на MicrosoftVisualStudio C++.
Рассмотрим следующие виды СМО:
- одноканальная замкнутая смо с одним устройством;
- одноканальная замкнутаясмо с несколькими устройствами;
- одноканальная замкнутая смо с несколькими устройствами;
- одноканальная разомкнутая смо с одним устройством;
- одноканальная разомкнутая смо с несколькими устройствами;
- одноканальная разомкнутая смо с обратной связью;
- одноканальная разомкнутая смо с обратными связями и несколькими устройствами;
- одноканальная разомкнутая смо с вероятностным узлом;
- одноканальная разомкнутая смо с двумя входными потоками;
- многоканальная замкнутая смо;
- многоканальная разомкнутая смо;
- многоканальная разомкнутая смо с несколькими устройствами.
2 Разработка имитационной модели
При имитационном моделировании необходимо заменить исходный объект новым, в котором воспроизведены все черты исходного объекта: состав объекта, информационные потоки, управление.
Имитационное моделирование – это способ получения с помощью ЭВМ статистических данных о процессах, происходящих в моделируемом объекте.
Реализуемая система должна должна генерировать входной язык (GPSS) для системы моделирования GPSSWorld.
Входной язык GPSS будет включать операторы (блоки), которые служат для описания модели, управляют редактором и режимом моделирования.
Текст нашей программы будит состоять только из управляющих операторов, которые описывают блоки модели. Они приводят к определенному действию и влияют на процесс моделирования.
Рассмотрим управляющие операторы, которые будем использовать для описания системы.
2.1 Операторы управления модельным временем
В разрабатываемой модели будем использовать только оператор START.
Формат оператора:START A, где А – значение счетчика завершения (количество заявок, которое должно пройти через сеть до завершения моделирования).
2.2 Датчики или генераторы транзактов
Формат оператора:GENERATE A, B, C, D, E,где А – определяет время, через которое появляется новый транзакт,В – модификатор времени, через которое появляется новый транзакт.
Если В не вызов функции, то В задает разбежку генерируемых по равномерному закону значений.
С – время задержки первого транзакта.
D – предельное количество генерируемых заявок (по умолчанию бесконечность).
Е – приоритет всех генерируемых транзактов.
Вместо параметра А так же могут задаваться специальные встроенные функции GPSS.
2.3 Для имитации обслуживания в устройстве используем оператор ADVANCE.
Формат оператора:ADVANCE A, В, гдеА – среднее время обслуживания заявки на устройстве, В – разбежка среднего времени обслуживания при равномерном обслуживании в устройстве (если отсутствует, то используется дискретный закон) .
2.4 Операторы управления маршрутными узлами
В программе оператор TRANSFER:TRANSFER А, В, где В – метка,А – вероятность перехода по метке В.
2.5 Операторы управления объектами сбора статистики
QUEUE A – войти в очередь А.
DEPART A – выйти из очереди А.
При прохождении транзакты не задерживаются. Эти операторы не влияют на логику работы модели. Любой транзакт может войти во сколько угодно очередей без ограничений.
2.6 TERMINATE (Уничтожить, терминировать)
Служит для удаления транзактов из модели по завершении их обработки. Производит подсчет выведенных из модели транзактов, уменьшая величину специального счетчика - счетчика завершений.
Формат: <TERMINATE [A]>, где: А - величина, на которую будет уменьшен счетчик завершений.
2.7 SEIZE (завладеть), RELEASE (освободить)
Оператор SEIZE, является парным с оператором RELEASE, использование их по одиночке не допустимо. Имена, записываемые в операнде А пары должны быть идентичны. Оператор служит приглашением ко входу в одно из устройств модели. Транзакт, подойдя к блоку SEIZE, пытается занять устройство, названное в операторе. Если устройство занято, транзакт ожидает освобождения устройства перед этим оператором. Перед оператором SEIZE может находиться любое количество транзактов. При попадании первого транзакта на обслуживание в устройство, происходит переключение, осуществляемое программой, запрещающее вход в устройство до окончания обслуживания.
Формат:< SEIZE А>,где А - имя (или номер) устройства.
Функция оператора RELEASE - моделировать освобождение устройства. Пройдя обслуживание в операторе ADVANCE, и исполнив, оператор RELEASE, транзакт переключает поименованное в операторе устройство из положения «занято» в положение «свободно» и разрешает вход в ADVANCE, первому из транзактов, ожидающих перед оператором SEIZE .
Формат: <RELEASE А>,где А - имя (или номер) устройства.
2.8 ENTER ( войти), LEAVE (отпустить)
Эта пара операторов выполняет те же функции, что и SEIZE и RELEASE, но не для устройств, а для STORAGE - «хранилищ», то есть для ресурсов, к которым может обращаться более одного транзакта. Такие объекты могут быть полезны при моделировании, например, распараллеленного процесса: обработки потока деталей на нескольких одинаковых станках, выхода публики из театра через несколько дверей и т.д. Эти «хранилища», или устройства параллельной обработки, должны быть предварительно описаны в программе при помощи оператора описания STORAGE (см. ниже). По логике своей работы связки операторов SEIZE – ADVANCE – RELEASE; ENTER- ADVANCE- LEAVE; абсолютно одинаковы, но употребляются для разных объектов.
2.9 FUNCTION ( функционировать )
Используется для определения характера функции, связывающей независимую переменную с рядом зависимых величин. Эта связь может иметь непрерывный или дискретный вид. Кроме того функция может быть представлена в символьном виде, когда значение функции вычисляется из выражения, приводимого в списке. Формат FUNCTION имеет вид: