Разработка программы моделирования СМО

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



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

Так как основой процесса имитационного моделирования является счетчик времени (существующий виртуально), то разберем его работу подробно.

while (arrivalTime < renderTime)

{= arrivalTime - 1 / requestIntensity * Math. Log (generator. NextDouble());(events. Count > chCount)

{ratio = 1;= -1 / executIntensity * Math. Log (generator. NextDouble()) / ratio;}{(events. Count!= 0)

{ratio = chCount / events. Count;= -1 / executIntensity * Math. Log (generator. NextDouble()) / ratio;}

{processingTime = -1 / executIntensity * Math. Log (generator. NextDouble());}

Стоит пояснить значения некоторых переменных:

-processingTime - переменная, в которой хранится время обработки заявки;

-arrivalTime - время прихода заявки в систему;

-renderTime - период моделирования, который задается пользователем при запуске алгоритма моделирования.

-ratio - переменная, определяющая отношение количества заявок к количеству каналов работающих в данный момент в системе.

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

Класс Form1

Класс Form1 фактически является основополагающей формой данной разработки.

В системе массового обслуживания с разными диiиплинами взаимопомощи заявка может находиться в четырех состояниях:

-в очереди (в системе);

-на обработке (в системе);

-обработана (не в системе);

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

Некоторые функции, используемые в программе

Функция отрисовки графиков

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

В программе эта универсальная функция используется для построения графиков, основанных на результатах моделирования работы системы. Например, зависимость времени нахождения заявки в системе от общего времени моделирования.

Цикл, обработки поступающих заявок

(events. Count!= 0)

{(events[0] < arrivalTime)

{[events. Count] += events[0] - checkPoint;= events[0];. RemoveAt(0);

}break;

}

Разберем цикл построчно. Условие вхождения в цикл - присутствие невыполненных заявок в списке поступивших заявок. Далее идет проверка: кончилось ли время моделирования, если условие не выполняется, то программа просто завершает свою работу. В обратном же случае мы заносим заявку в список выполненных заявок, при этом увеличивая общее время занятости системы на время, которое требуется на выполнение данной заявки. За этим шагом следует удаление заявки из списка невыполненных заявок и цикл повторяется до тех пор, пока в списке невыполненных заявок остается хотя бы один элемент.

3.3 Описание пользовательского интерфейса

.3.1 Руководство по использованию имитационной системы

Программа имитационного моделирования СМО с разными диiиплинами обслуживания позволяет не только рассчитать экспериментальным путем основные характеристики системы, но и пронаблюдать особенности ее функционирования и выявить некоторые зависимости. Интерфейс программы встречает пользователя главным экраном, стилизованным под экран планшетника фирмы Apple (рисунок 3.7). Это решение было выбрано для того, чтобы придать программе, основной целью которой, все же, является вычислительная функция, удобоваримый вид.

Главный экран программы

При выборе нормального закона распределения мы можем задать параметры, связанные с ним: Мат ожидание и Дисперсия. Данные параметры задаются как для потока обслуживание, так и для потока заявок. Справа от свойств мы видим график, который описывает распределение вероятностей при нормальном законе распределения, данный график не является построенным по заданным параметрам, он служит для того, чтобы пользователь смог оценить примерное поведение функции распределения учитывая выбранный закон распределения.

Нормальный закон распределения

Если выбрать равномерный закон распределения, то входные параметры изменятся на максимальное и минимальное значение. Так же как и в первом случае для потока заявок и потока обслуживания задаются свои значения. График меняется соответственно выбранному закону распределения.

Равномерный закон распределения

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

Экспоненциальный закон распределения

Далее идет выбор диiиплины взаимопомощи. На данной опции стоит остановиться отдельно. В программе можно выбрать одну из трех диiиплин взаимопом