на тему рефераты
 
Главная | Карта сайта
на тему рефераты
РАЗДЕЛЫ

на тему рефераты
ПАРТНЕРЫ

на тему рефераты
АЛФАВИТ
... А Б В Г Д Е Ж З И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Э Ю Я

на тему рефераты
ПОИСК
Введите фамилию автора:


Реферат: Разработка и исследование имитационной модели разветвленной СМО (системы массового обслуживания) в среде VB5



          Создание входного массива на текущей станции

                                                                                                                                 Расчет по имита-                                 Расчет по

                                                                                                                               ционной модели                              формулам

                                      Нужна          Д

                                    сортировка?

 


                                                   Сортировка                                                     Вывод рассчитанных

                    Н                                                                                                                показателей

 


Создание выходного массива на текущей станции

                                                                                                                                            Н           Продолжать

                                                                                                                                                              работу?

                                    Н          Последняя                                                                      Конец

                                                 станция?

                   Переход  к                                                                                                                                   Д

                   следующей              Д

                     станции                                                                       рис. 2



Программу можно поделить на две части: имитационная модель системы и расчетно-формульная модель. Для начала функционирования любой модели необходимо задать ряд входных параметров. Пользователь должен выбрать тип распределения времени прихода заявок на первую станцию (экспоненциальное — DistIndex = 0 или нормальное — DistIndex = 1) и тип распределения времени обслуживания заявок по станциям (экспоненциальное — DistIndex1 = 0 или нормальное — DistIndex1 = 1). Выбор осуществляется с помощью связанных пар компонентов OptionButton. Также пользователь задает количество рабочих станций — m (m = 1 — 10), число заявок на входе — n, среднее время между заявками во входном потоке — Ta и, при нормальном распределении на входе, стандартное отклонение (в % от среднего) — DTa (перечисленные параметры вводятся с помощью компонентов TextBox). Затем, при помощи компонентов CommandButton на форме «Задание связей между рабочими станциями», задаются связи между станциями, каждая из которых обозначаются линией, соединяющей две станции с кружком на том конце, куда связь приходит, далее, с помощью матрицы связей на форме «Создание матрицы связей», задаются весовые коэффициенты связей — pi(i). Матрица составлена из компонентов TextBox. Далее, для каждой станции, также при помощи компонентов TextBox, задается среднее время обслуживания — Ts(k), вероятность снятия заявки на выходе i-ой станции — Pr(k) и, при нормальном распределении времени обслуживания, стандартное отклонение (в % от среднего) — DTs(k).

После ввода весовых коэффициентов связей предусмотрена процедура проверки на корректность ввода. В случае некорректного задания коэффициентов, пользователю выдается сообщение об этом — MsgBox, и строка матрицы связей, в которой были заданы некорректные значения, очистится. Корректность проверяется через суммарные коэффициенты перехода: суммарный коэффициент перехода в конце каждой строки должен равняться единице. Так как коэффициенты определены типом Single, то для избежания ошибок, которые могут возникнуть в результате погрешности вычислений, производимых с переменными этого типа, проверка на равенство 1 заменяется проверкой на принадлежность интервалу (0.9999; 1.0001).

Далее, рассмотрим отдельно структуру каждой части.

3.3 Расчетно-формульная модель.

При расчете показателей по формулам, после задания пользователем всех необходимых входных параметров, производится расчет выходных параметров. Вначале рассчитываются доля заявок (от исходного количества заявок, пришедшего на первую станцию), пришедшая на последующие станции — kz(k) и среднее время между заявками на входе каждой станции (величина, обратная интенсивности входного потока) — kf(k).

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

3.4 Имитационная модель

При расчете показателей с помощью имитационного моделирования вначале создается двумерный массив переходов — a1(i, k), где k — номер станции, а i — номер заявки. При создании данного массива с использованием случайных чисел, имитируются процесс прохождения заявок по станциям (на основании заданных коэффициентов переходов) и процесс отбраковки заявок (на основании заданных вероятностей снятия заявок на выходе станций). Если заявка пришла на станцию, то массиву в этой позиции присваивается значение 1; если же заявка не пришла на станцию, то массиву в данной позиции присваивается нулевое значение. Одновременно с созданием массива переходов производится расчет количества снятых заявок по станциям — NumRef(k).

Далее, для каждой станции формируется входной массив (времен прихода заявок на станцию) — a2(i, k) и выходной массив (времен выхода заявок со станции) — a3(i, k), где k — номер станции, а i — номер заявки. Входной массив первой станции образуется с использованием вспомогательной функции Rexp(T As Single) — для экспоненциального распределения (или функции Rnorm(MT As Single, DT As Single) — для нормального распределения). Выходной массив первой станции образуется из входного массива, с использованием тех же функций и функции Gener(nst As Integer). Входные массивы последующих станций образуются в соответствии с массивом переходов из выходных массивов предыдущих станций. В случае, когда заявки попадают на вход данной станции с нескольких станций (sort > 1), производится сортировка времен прихода заявок по возрастанию, с использованием вспомогательной функции Sort1(nst As Integer). После создания входного массива, на каждой последующей станции, создается выходной массив, с использованием входного массива и вспомогательных функций: Gener(nst As Integer), Rexp(T As Single) и Rnorm(MT As Single, DT As Single).

Функции Rnorm(MT As Single, DT As Single) и Rexp(T As Single) преобразуют случайную величину X, равномерно распределенную на интервале (0;1) — Rnd, в случайную величину Y, распределенную, соответственно, по нормальному или экспоненциальному закону и предназначены для генерации нормального и экспоненциального распределения с заданными параметрами.

Функция Sort1(nst As Integer) — реализует алгоритм пирамидальной сортировки. Этот алгоритм требует  операций. В нашем случае, сортируются не элементы, а индексный массив, причем таким образом, чтобы нулевые элементы исключались из сортировки (см. рис. 3).


                                                           Начало

 


                                                   l1 = nr(nst)/2 + 1

                                                   t1=nr(nst)

 


                                                                         Н                                                                                                                         Н

                                                              l1 > 1?                                                                                 j1 < t1?

                    R1 = a2(Ind(t1), nst)                 Д                                                                                 Д

 


          a2(Ind(t1), nst) = a2(Ind(1), nst)                         l1 = l1 - 1                     Н                                 Н         a2(Ind(j1)<

                                                                                                                                      j1 = t1?                           a2(Ind(j1+1)?

                             t1 = t1-1                                  R1 = a2(Ind(l1), nst)

                                                                                                                                      Д                                    Д

                Н                                                                                                                                                           j1 = j1 +1

                              t1 = 1?                                             j1 = l1                            a2(Ind(i1),nst)=R1

 


                                      Д                                             i1 = j1                                            Н           R1 >=

                   a2(Ind(1), nst) = R1                                                                                                  a2(Ind(j1),nst)?

                                                                                      j1 = 2j1

                              Конец                                                                                                                 Д

 



                                                                                                                     a2(Ind(i1), nst) = a2(Ind(j1), nst)

 


рис. 3


Функция Gener(nst As Integer) предназначена для генерации, с учетом нахождения заявок в очереди и простоев станции, выходного массива из входного. Она позволяет, учитывая тип распределения времени обслуживания и отбрасывая не пришедшие на станцию элементы, получить времена выхода заявок со станции(см. стр П2 приложения)

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

Результаты расчета выводятся, как численные показатели — с помощью компонентов TextBox и в виде гистограмм, с использованием компонентов PictureBox.

3.5 Сценарий работы программы

Сразу после старта программы на экране появляется форма «Модель многофазной многопоточной системы обслуживания» Эта форма предназначена для ввода исходных данных. В правом верхнем углу на данной форме расположена надпись «Исходные данные». Ниже помещаются общие параметры, которые пользователь должен ввести для исследования работы системы. Общие параметры включают:

Количество рабочих станций — K;

Распределение времени между заявками (экспоненциальное или нормальное);

Число заявок на входе в систему — N;

Среднее время между заявками;

Стандартное отклонение [в % от среднего] —для нормального распределения.

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

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

После ввода всех необходимых параметров необходимо повторно нажать на кнопку «Ввод» для задания связей между рабочими станциями. В случае ввода количества станций превышающего предусмотренные работой программы 10, после нажатия на кнопку «Ввод» пользователю выдается сообщение об ошибке: «Количество станций не более 10 [десяти]!» и для дальнейшей работы необходимо изменить значение на корректное.

После повторного нажатия на кнопку «Ввод», на экране появляется форма «Задание связей между рабочими станциями». В левом верхнем углу данной формы расположены три кнопки: «Создать связь», «Убрать связь» и «Загрузить связи». В зависимости от количества рабочих станций, заданного пользователем в общих параметрах, на форме расположены от 1 до 10 рабочих станций. Каждая станция представлена в виде двух кнопок (левой и правой), вплотную прилегающих друг к другу. Левая кнопка станции обозначена «S» (Station), а правая показывает номер данной рабочей станции (от 1 до 10). Для задания связей между станциями нужно:

1.   Нажать на кнопку «Создать связь»;

(далее вводятся все необходимые связи)

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10


на тему рефераты
НОВОСТИ на тему рефераты
на тему рефераты
ВХОД на тему рефераты
Логин:
Пароль:
регистрация
забыли пароль?

на тему рефераты    
на тему рефераты
ТЕГИ на тему рефераты

Рефераты бесплатно, реферат бесплатно, курсовые работы, реферат, доклады, рефераты, рефераты скачать, рефераты на тему, сочинения, курсовые, дипломы, научные работы и многое другое.


Copyright © 2012 г.
При использовании материалов - ссылка на сайт обязательна.