Имитационное моделирование процесса работы Интернет-кафе

Тип работы:
Курсовая
Предмет:
Экономические науки


Узнать стоимость

Детальная информация о работе

Выдержка из работы

Министерство образования и науки РФ

Государственное образовательное учреждение

Высшего профессионального образования

Дагестанский Государственный Технический Университет

Факультет Информационных Систем

Моделирования и математических методов в экономике

Курсовая работа

по дисциплине:

Имитационное моделирование экономических процессов

на тему:

Имитационное моделирование процесса работы Интернет-кафе

Выполнила: ст-ка 4 курса гр. И-713

Шахпеленгова Н.В.

Проверила: ассист. каф. МиММвЭ

Глоба Т.С.

Махачкала 2010

Задание

Провести имитационное моделирование работы Интернет — кафе. Период моделирования n минут. Интервал времени между двумя посещениями Интернет — кафе посетителями моделировать дискретной случайной величиной, равномерно распределенной в интервале []. Общее число мест в кафе Средний пользовательский трафик (объем переданных и полученных данных) за единицу времени моделируется дискретной случайной величиной с дискретным равномерным распределением в диапазоне значений [] мегабайт/мин. Длительность пребывания в кафе посетителя моделируется дискретной случайной величиной, имеющей показательное распределение с параметром минут. Цена 1 мегабайта трафика в рублях tax.

Рассчитать:

· общий объем трафика по Интернет — кафе за период моделирования в мегабайтах в стоимостном выражении (руб.).

· доход Интернет — кафе за период моделирования

· пиковое и минимальное значение трафика в единицу времени (мин.) в системе за период моделирования.

· число отказов r в доступе посетителям в случае отсутствия слабых мест.

Параметры модели:

·

·

·

·

·

·

Оценить методом машинного эксперимента величину, максимизирующую доход Интернет — кафе при сохранении.

Средства реализации модели — программа на языке С++.

Аннотация

В данной курсовой работе я разработала имитационную модель работы Интернет-кафе. Объем курсового проекта 35 страницы. Данная курсовая работа содержит 2 раздела, каждый из которых разбит на подразделы, 8 рисунков (6 из которых графики), 1 таблица, заключение, приложение.

Введение

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

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

Глава 1. Теоретический анализ методов решения задачи

1. 1 Анализ предметной области

Популярность сети Интернет растет со скоростью геометрической прогрессии. Те, кто испытал современную скорость передачи информации по сети, может оценить прелесть путешествий по Web-сайтам. Тем, кто еще никогда не работал в сети Интернет, нужна приятная и благожелательная атмосфера, в которой они могли бы осваивать новые технологии.

Интернет-кафе обеспечивает своим клиентам полный доступ к сети Интернет, предоставляя им популярные компьютерные программы и современное оборудование. В частности, Интернет-кафе оказывает своим посетителям следующие услуги:

· доступ к внешним почтовым ящикам электронной почты;

· аренда внутреннего почтового ящика;

· доступ к популярным компьютерным программам и утилитам, в частности, FTP, Telnet, Gopher и другие;

· доступ к Интернет-браузерам Opera, Firefox или Интернет Explorer;

· доступ к лазерным и струйным принтерам;

· доступ к популярным компьютерным программам, таким как, Adobe Photoshop и пакету программ Microsoft Office.

Средства связи позволят посетителям Интернет-кафе получить высокоскоростной доступ в Интернет.

1. 2 Теоретический обзор методов решения поставленной задачи

В данной курсовой работе мы применили следующие распределения: нормальное и показательное. Интервал времени между двумя последовательными посещениями Интернет-кафе посетителями распределен по показательному закону распределения. Средний пользовательский трафик за единицу времени имеет нормальное распределение. Длительность пребывания в кафе посетителя имеет показательное распределение.

1. 3 Генерация псевдослучайных чисел на ЭВМ

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

Для получения псевдослучайной последовательности Фон Нейманом был придуман простой в вычислительном отношении алгоритм, известный как метод квадратов. Метод состоит в многократном повторении процедуры, состоящей в возведении в квадрат некоторого числового значения и взятия средних цифр полученного результата. Пусть, например, мы выбрали в качестве исходного значения число. Тогда и и, и так далее. Однако, вскоре у метода обнаружился недостаток, заключающийся в существенной неравномерности статистических частот различных числовых значений элементов получаемой этим методом последовательности.

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

Формально схема вычисления может быть определена следующим образом:, где — i-й член псевдослучайной последовательности, с — некоторая константа, т —разрядность целочисленного регистра ЭВМ. Качество полученной псевдослучайной последовательности зависит от выбранного значения константы с. Установлено, что хороший результат достигается при выборе её значения равным максимальной нечётной степени числа 5, помещающегося в числовом регистре фиксированной разрядности. Для 32-х разрядного регистра ЭВМ это будет число 513. Ниже приведён исходный текст процедуры генерации указанным методом псевдослучайной последовательности чисел, равномерно распределённых в интервале [0,1], и гистограмма распределения, построенная по первой тысяче вычисленных с помощью этой функции значений.

#define C (125*125*125*125*5)

// C=122 070 3125ul

float rand (void)

{

static unsigned long int u=C;

u=u*C;

return u/(float (0xfffffffful)+1);

}

Среднее значение по таблице = 0. 494 231.

Оценка дисперсии =0. 836 967.

Рис. 1. Гистограмма распределения

1. 4 Показательное распределение

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

Рис. 2. Показательное распределение

Данное распределение появляется в случае, когда для некоторого малого вероятность появления события на этом интервале пропорциональна величине этого интервала с коэффициентом:

,

а появление на этом интервале более 1 события есть величина более высокого порядка малости, чем:

.

Математическое ожидание:

М

Преобразованная

М

Таким образом, — это среднее время между последовательными событиями простейшего потока. Дисперсию вычислим по определяющей её формуле:

Первообразная и интеграл в первом слагаемом:

- во втором:

— в третьем:

Подставив эти значения в первое выражение, получим:

D

Таким образом, дисперсия показательного распределения равна, то есть квадрату его математического ожидания.

1. 5 Равномерное распределение

Случайная величина о, с равномерным распределением на отрезке [а,b] описывается функцией плотности вероятности:

P(x)=

a b

Математическое ожидание

Для вычисления дисперсии вначале вычислим математическое ожидание квадрата этой случайной величины:

Теперь:

=

1. 6 Моделирование СМО с N обрабатывающими устройствами без очереди с отказами

Рис. 4. Моделирование СМО с N обрабатывающими устройствами без очереди с отказами

Первый этап моделирования состоит в определении происходящих в системе событий и логики их обработки. В нашей системе происходят события двух типов. Первый — поступление в систему очередного требования. Второй — завершение обслуживания требования устройством. Логическая последовательность обработки событий этих двух типов следующая — сначала обрабатывается завершение обслуживания требования устройством, затем — распределение очередного поступившего в систему требования обрабатывающему устройству. Эта последовательность диктуется логикой обслуживания требований в системе. Если в какой-либо дискретный момент времени в систему поступает очередное требование и одновременно с этим завершается обработка какого-либо из уже находящихся в системе, то вначале необходимо обработать завершение обслуживания, и лишь затем поступление нового требования в систему. Это диктуется тем, что вновь поступившему требованию требуется свободное устройство, которое появится, возможно, лишь в результате завершения обслуживания какого-либо из уже обрабатывающихся системой требований. В самом общем виде завершение обработки состоит в высвобождении занятого устройства и увеличении на единицу счётчика числа обработанных требований. Точно так же, обработка поступления состоит в выборе свободного устройства и передаче ему требования на обработку, или, в случае отсутствия такового устройства, в отказе в обработке данного требования. Указанные два обработчика событий включаются в основной цикл отсчёта дискретных моментов времени периода моделирования, как показано ниже:

//инициализация:

{… }

//основной цикл:

for (t=0; t< T; t++)

{

//обработка завершения обслуживания требования:

{… }

//обработка поступления нового требования в систему:

{… }

// завершение: {… }

В качестве параметров модели используем следующие константы и макроопределения:

· Т — время моделирования (в сек.);

* N — число обрабатывающих устройств в системе;

* RIN — генератор случайного потока поступающих в систему требований;

* RON — генератор интервалов времени обработки требования обрабатывающим устройством;

Программная реализация алгоритма и результат её выполнения приведены ниже. Исходный текст программы начинается с определения параметров модели и прочих исходных данных. Все они определяются с помощью директивы препроцессора «#define». Макросы RIN и RON определяют вызовы функций, моделирующих распределение интервалов времени между событиями входного потока требований и интервалов времени от начала до завершения обслуживания требования обрабатывающим устройством, соответственно. Сами функции моделирования случайных последовательностей, распределенных по различным законам, определены в файле Rand. срр, текст которого подключается к тексту модели процесса с помощью директивы препроцессора «#include» в первой строке текста программной реализации модели. Константа «Т» определяет длительность периода моделирования в единицах дискретного времени моделирования. Константа «N» задаёт число обрабатывающих устройств. Константа «VACANCY» определяет специальное значение для элемента массива ton[ ], означающее, что обрабатывающее устройство, сопоставленное данному элементу массива свободно. Поскольку массив ton[ ] предназначен для хранения моментов времени завершения обслуживания требования соответствующим устройством, которые могут принимать лишь неотрицательные значения, то в качестве такого, сигнализирующего о незанятости устройства значения, взято первое неиспользуемое отрицательное число — «-1». Программа начинается с описания типов следующих используемых переменных:

* i, j, k — используются для хранения вспомогательных индексных значений;

* n — число обработанных требований;

* m — число отказов в обслуживании;

* t — дискретные отсчёты времени периода моделирования;

* tin — момент поступления в систему следующего требования;

* ton[ ] - моменты завершения обработки требований соответствующими элементам массива обрабатывающими устройствами.

Все переменные определяются как беззнаковые длинные целочисленные переменные. Это связано с тем, что диапазона значений простого типа int — от -32 768 до 32 767 может быть недостаточно для представления используемых значений данных модели. Далее следует собственно моделирующий алгоритм:

1. Инициализация переменных:

1.1. Инициализация массива ton[ ] - все обрабатывающие устройства поме-

чаются как свободные присваиванием элементам массива метки

«VACANCY»: «for (i=0; i< N; i++) ton[i]= VACANCY; «;

1.2. Инициализация числа обработанных требований «n» и отказов «m» нулевыми значениями: «n=о ; m=о ; »;

1.3. Генерация момента времени поступления в систему первого требования и сохранение его значения в переменной tin: «tin=RIN; «

2. Цикл перебора дискретных отсчётов времени периода моделирования:

2.1. Определение числа итераций цикла перебора дискретных отсчётов пе-

риода моделирования: «for (t=0; t< T; t++)» и вход в тело цикла «{»;

2.1.1. Обработка завершения обслуживания требования:

2. 1.1.1. Определение числа итераций цикла перебора устройств:

" for (i=0; i< N; i++) «и вход в тело цикла «{»;

2.1.1.2. Если текущий момент времени t совпадает с моментом, ус-

тановленным для завершения обслуживания требования i-м

устройством ton[i]: «if (ton[i]==t)», TO

2. 1.1. 2.1. освобождение 1-го устройства: «ton[i]= VACANCY; «;

2. 1.1. 2. 2. увеличение на единицу числа обработанных требова-

ний: «n++; «;

2. 1.1.3. Конец цикла перебора устройств 2.1.1.1.: «}».

2.1.2. Обработка очередного поступающего в систему требования:

2.1.2.1. Поиск первого свободного обрабатывающего устройства:

«i = 0; while (ton[i]≠ VACANCY & & i< N) i + +; «

2.1.2.2. Если свободное устройство найдено: «if (i< N)»,

2. 1.2.2.1. то передача требования на обработку этому устройству,

которая в нашем случае заключается просто в генерации

момента времени завершения обслуживания этого требо-

вания «t+RON» и сохранение его в соответствующем най-

денному свободному устройству i-м элементе массива

ton[ ]: «ton[i]=t+RON; «,

2. 1.2.2.2. иначе отказ в обслуживании требования; обработка отка-

за здесь состоит просто в увеличении на единицу счётч-

ка числа отказов m: «m++;».

2. 1.2.3. Генерация момента поступления в систему нового требования

и сохранение его в переменной tin: «tin=t+RIN; «

2.2. Конец блока цикла 2.1.: «}»

3. Завершение процесса моделирования:

3.1. Вывод результатов моделирования — в данном случае значений заданного числа обрабатывающих устройств N, числа обработанных требований n, и числа отказов m.

Глава 2. Имитационное моделирование процесса

2. 1 Постановка задач (Вариант № 8)

Задание: Провести имитационное моделирование работы Интернет — кафе. Период моделирования n минут. Интервал времени между двумя посещениями Интернет — кафе посетителями моделировать дискретной случайной величиной, равномерно распределенной в интервале []. Общее число мест в кафе Средний пользовательский трафик (объем переданных и полученных данных) за единицу времени моделируется дискретной случайной величиной с дискретным равномерным распределением в диапазоне значений [] мегабайт/мин. Длительность пребывания в кафе посетителя моделируется дискретной случайной величиной, имеющей показательное распределение с параметром минут. Цена 1 мегабайта трафика в рублях tax.

Рассчитать:

· общий объем трафика по Интернет — кафе за период моделирования в мегабайтах в стоимостном выражении (руб.).

· доход Интернет — кафе за период моделирования

· пиковое и минимальное значение трафика в единицу времени (мин.) в системе за период моделирования.

· число отказов r в доступе посетителям в случае отсутствия слабых мест.

Параметры модели:

·

·

·

·

·

·

Оценить методом машинного эксперимента величину, максимизирующую доход Интернет — кафе при сохранении.

Средства реализации модели — программа на языке С++.

2. 2 Общий алгоритм моделирования процесса

Алгоритм имитационного моделирования процессов данного типа структурируется вокруг следующих групп основных компонентов:

1. Организация цикла перебора отсчетов дискретного времени моделирования, т. е. собственно организация процесса как последовательности отдельных состояний системы в дискретном времени;

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

Таким образом, мы имеем общий способ построения алгоритмов подобного типа, который включает следующие основные компоненты:

1. Анализ событий в системе и проектирование структур данных необходимых для хранения информации связанный с этими событиями;

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

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

2.3 Моделирование программы с заданными параметрами

В данной курсовой работе необходимо провести имитационное моделирование работы Интернет-кафе. Для моделирования данной задачи мы используем СМО с N обрабатывающими устройствами без очереди с отказами. Алгоритм поставленной задачи, которая рассмотрена в п. 2.2. необходимо реализовать на языке программирования С++.

В качестве параметров модели используем следующие компоненты и макроопределения:

· Т — время моделирования (в мин.);

· RIN — генератор случайного потока поступающих в систему требований;

· RОN — генератор интервалов времени обработки требования обрабатывающим устройством;

· Сmax — общее число мест в кафе.

Исходный текст программы начинается с определения параметров модели и прочих исходных данных. Все они определяются с помощью директивы препроцессора «#define». Макросы RIN и RОN определяют вызовы функций, моделирующих распределение интервалов времени между событиями прихода посетителей и интервалов времени от начала до завершения обслуживания посетителей, соответственно. А макрос Trafik определяет вызов функции, моделирующую средний трафик пользователей. Сами функции моделирования случайных последовательностей, распределенных по различным законам, определены в файле Rand. срр, текст которого подключается к тексту модели процесса с помощью директивы препроцессора «#include» в первой строке текста программной реализации модели. Константа «Т» определяет длительность периода моделирования в единицах дискретного времени моделирования (в минутах). Константа «n» задаёт число обрабатывающих посетителей. ton[i]=-1 определяет специальное значение для элемента массива ton[ ], означающее, что место освободилось (компьютер свободен). Поскольку массив ton[ ] предназначен для хранения моментов времени ухода посетителя, которые могут принимать лишь неотрицательные значения, то в качестве такого, сигнализирующего о незанятости компьютера значения, взято первое неиспользуемое отрицательное число — «-1».

Все переменные определяются как длинные целочисленные переменные. Это связано с тем, что диапазона значений простого типа int — от -32 768 до 32 767 может быть недостаточно для представления используемых значений данных модели. Далее следует собственно моделирующий алгоритм:

1. Инициализация переменных:

1.1. Инициализация массива ton[ ] - все компьютеры помечаются как свободные присваиванием элементам массива значения «-1»:

" for (i=0; i<N;i++) ton[i]=-1; «;

2. Цикл перебора дискретных отсчётов времени периода моделирования:

2.1. Определение числа итераций цикла перебора дискретных отсчётов периода моделирования: «for (j=0; j<N;j++)» и вход в тело цикла «{»;

2.1.1. Обработка ухода посетителя кафе:

2. 1.1.1. Определение числа итераций цикла перебора устройств:

«for (i=0; i<N;i++)». Если текущий момент времени t сов-

падает с уходом посетителя ton[i]: «if (ton[j]==i)», и вход в

тело цикла «{»,

2.1.1.1.1. освобождение места (компьютера): «ton[j]=-1; «;

2. 1.1. 2. 2. увеличение на единицу числа обслуживаемых посетителей: «nPos++»;

2. 1.1.3. Конец цикла 2.1.1.1.: «}».

2.1.2. Обработка прихода нового посетителя:

2. 1.2.1. Поиск первого свободного обрабатывающего устройства:

«j=0; while (ton[j]≠-1) j++;

2. 1.2.2. Генерация момента прихода в кафе нового посетителя и сохранение его в переменной tin: «tin=ceil (RIN)+i; «

2.2. Конец блока цикла 2.1.: «}».

3. Завершение процесса моделирования:

3.1. Вывод результатов моделирования.

2. 4 Разработка программной реализации алгоритма

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

В программной реализации используются следующие частные переменные:

· tax — один мегабайт трафика в рублях;

· i, j — используются для хранения вспомогательных индексных значений;

· t — дискретные отсчёты времени периода моделирования;

· t_traf — значение трафика в единицу времени;

· obtraf — общий объем трафика в мегабайтах;

· vpr — время пребывания посетителя;

· kzan — количество занятых мест;

· tin — входящий поток, время прихода посетителя (момент поступления в систему следующего требования);

· ton [ ] - моменты завершения обработки требований соответствующими элементам массива обрабатывающими устройствами, то есть массив для сохранения интервалов времени ухода посетителей;

· Trafik -средний пользовательский трафик;

· m — число отказов пользователям;

· n — число обслуживающих посетителей;

· max_traf — максимальное значение трафика в единицу времени;

· min_traf — минимальное значение трафика в единицу времени;

· wt — суммарное время работы клиентов.

Программная реализация алгоритма производится в несколько этапов:

1. Подключение в программу заголовочных файлов:

#include //включение в программу текстов заранее подготовленных файлов

#include< iostream. h> //содержит потоки данных ввода/вывода

#include< math. h> //хранятся математически функции

# include < values. h> //содержит описания данных

#define //определение параметров модели и прочих исходных данных на глобальном уровне, описанной в п.

#define RIN uniform (10,120) //объявление функции нормального распределения

#define CRAND (125*125*125*125*5) //объявление мультипликативного конгруэнтного метода, которое описывается в п. 1.3.

2. Генерация мультипликативным конгруэнтным методом псевдослучайной последовательности чисел:

float Rand (void) //генерация псевдослучайной последовательности с равномерным распределением

{

static unsigned long int u=C;

// static — модификатор для того, чтобы локальная переменная u сохраняла значение между двумя последующими обращениями к этой функции

u=u*C; //С — константа

return u/float (0xfffffffful); // (0xfffffffful) — максимально беззнаковые целое число, заданное в шестнадцатеричной форме.

}

3. Вызов функций моделирования:

//функция моделирования показательного распределения, описанная в п. 1.6.

float exponential (float lambda)

{

return -log (Rand ())/lambda;

}

//функция моделирования нормального распределения, описанная в п. 1.8.

float gauss (float m, float sigma)

{

return sqrt (-2*log (Rand ()))*sin (2*M_PI*Rand ())*sigma+m;

}

4. Объявление переменных:

//объявление переменных целого длинного типа

unsigned long int nPos=0,n, i, j, nOtkaz, nMest, nSvMest, tin, ton[N], nTrafTotal=0;

//объявление переменных вещественного типа

float t, r, max, min, tr[N];

5. Цикл перебора i-го места (описывается в п. 1. 9):

for (i=0; i<N;i++) {ton[i]=-1; tr[N]=0;

6. Запуск процесса:

if (nSvMest< N)

for (j=0; j<N;j++) if (ton[j]==i)

{

nSvMest++;

ton[j]=-1;

nPos++; //основной цикл процесса

//

{

if (i==tin)

{

if (nSvMest==0) nOtkaz++;

else

{

nSvMest--;

j=0; while (ton[j]≠-1) j++;

t=ceil (RDL); //длительность пребывания одного посетителя

ton[j]=t+i;

r=RTRAF;

tr[j]=r;

nTrafTotal+=t*r; //общий трафик

}

tin=ceil (RIN)+i; ;

}

}

7. Вывод результатов.

2. 5 Моделирование программы с заданными параметрами

Запустив программу, написанную на языке С++, мы получили следующие результаты согласно исходным данным:

При данном количестве компьютеров — 10, общий трафик составляет 1072Мб, доход Интернет-кафе за данный период моделирования составил 5360 руб. Также было отказано 0 клиентам. Пиковое значение трафика в единицу времени (мин.) в системе за период моделирования составляет 0,342 835.

2. 6 Машинный эксперимент с разработанной моделью

В результате машинного эксперимента с разработанной моделью мы получили следующие данные, приведенные в таблице 1:

кол-во мест

общий трафик

доход

пиковое значение

кол-во отказов

мин. Значение

1

488

2440

0,059

264

0

2

814

4070

0,112

132

0

3

1217

6085

0,168

96

0

4

1252

6260

0,191

34

0

5

1428

7140

0,247

14

0

6

1236

6180

0,251

1

0

7

1221

6105

0,258

1

0

8

1292

6460

0,298

0

0

9

1292

6460

0,298

0

3,7

10

1292

6460

0,298

0

0

Изменяя количество мест в Интернет-кафе, мы получаем следующий график:

Рис 6. График зависимости дохода Интернет-кафе от количества мест.

По данным таблицы и графика мы видим, что максимальный доход Интернет-кафе достигается при количестве мест равных 5. Также мы видим, что при количестве мест больше 7, у нас прибыль остается такая же, что и при 7 местах. Это объясняется тем, что в Интернет-кафе остаются свободные устройства.

Изменяя размер общего трафика, получим следующий график:

Рис. 7. График зависимости дохода от размера общего трафика.

Здесь мы можем заметить, что при увеличении общего трафика до значения 1072Мб доход увеличивается, а затем он остается неизменным.

Изменяя число отказов поступающим требованиям, получим следующий график:

Рис. 8. График зависимости дохода от числа отказов поступающим требованиям.

Видно, что максимальный доход мы получим при количестве отказов равном 1.

Заключение

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

В данном курсовом проекте была построена имитационная модель процесса работы Интернет-кафе с использованием программы С++, которая рассчитывает общий объем полученных и переданных данных (трафик), их стоимость, пиковую и минимальную нагрузки в системе.

Результатом данного курсового проекта является имитационная модель работы процесса обслуживания клиентов в Интернет кафе. Модель реализована на языке программирования высокого уровня Си++. Текст программы состоит из следующих функций:

Программа является рабочей. Выдает на экран вероятностные и статистические характеристики работы процесса обслуживания клиентов в Интернет — кафе в соответствии с постановкой задачи.

На основании проделанной работы, можно сделать следующие выводы:

1. Математическая модель системы массового обслуживания, созданная нами, адекватна реальному объекту;

2. Проведенные исследования показали эффективность нашей модели и способов «приведения её в действие» при определении необходимых нам параметров по сравнению с ручным способом моделирования и расчетов параметров;

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

Список использованной литературы

1. Гаджиев Ю. А. Методическое указание по выполнению курсового проекта по дисциплине «Имитационное моделирование экономических процессов» 2008.

2. «Машинные имитационные эксперименты с моделями экономических систем» под ред. Нейлера;

3. Кеольтон В., Лод А. «Имитационное моделирование. Классика CS» издание 3-е, 2004 г. ;

4. Варфоломеев В. И. «Алгоритмическое моделирование элементов экономических систем». — М.: Финансы и статистика, 2000 г.

5. Клейнрок Л. «Теория массового обслуживания» — М.: Машиностроение, 1979. -432 с.

6. Прицкер А. «Введение в имитационное моделирование» — М.: Мир, 1987. -644с.

7. Емельянов А. А., Власова Е. А., «Имитационное моделирование экономических процессов» — М. Финансы и статистика, 2002.

8. Соболь И. М. «Численные методы Монте-Карло». -М. Наука, 1973.

9. Бахвалов Н. С. «Численные методы» — М.: Наука, 1973

Приложение. Программа, реализующая моделирование работы Интернет-кафе

# include < iostream. h>

# include < math. h>

# include < values. h>

# define T (12*60*30)

# define N 5

# define RTRAF uniform (0. 01,0. 06)

# define RIN ceil (exponential (1. 0/60))

# define RDL ceil (exponential (1. 0/120))

# define TAX 5

/*====================================*/

#define CRAND (125*125*125*125*5)

float rand (void)

{

static unsigned long int u=CRAND;

u*=CRAND;

return u/(float (0xFFFFFFFF)+1. 0);

}

/*====================================*/

int discrete (float p[])

{

float s, r;

int k=0;

s=p[0]; r=rand ();

while (s< r)

{

k++;

s+=p[k];

}

return k;

}

/*====================================*/

float uniform (float a, float b)

{

return rand ()*(b-a)+a;

}

/*====================================*/

float exponential (float lambda)

{

return -log (rand ())/lambda;

}

/*====================================*/

float gauss (float mean, float stdev)

{

return sqrt (-2*log (rand ()))*sin (2*M_PI*rand ())*stdev+mean;

}

/*====================================*/

void main (void)

{

float t, r, max, min, tr[N];

unsigned long int nPos=0,n, i, j, nOtkaz, nMest, nSvMest, tin, ton[N], nTrafTotal=0;

tin=RIN, nPos=0, nOtkaz=0;

for (i=0; i<N;i++) {ton[i]=-1; tr[N]=0;}

nSvMest=N;

max=0;

min=MAXLONG;

for (i=0; i<T;i++)

{

if (nSvMest< N)

for (j=0; j<N;j++) if (ton[j]==i)

{

nSvMest++;

ton[j]=-1;

tr[j]=0;

nPos++;

}

if (i==tin)

{

if (nSvMest==0) nOtkaz++;

else

{

nSvMest--;

j=0; while (ton[j]≠-1) j++;

t=ceil (RDL);

ton[j]=t+i;

r=RTRAF;

tr[j]=r;

nTrafTotal+=t*r;

}

tin=ceil (RIN)+i;

}

r=0; for (j=0; j<N;j++) r+=tr[j];

if (max< r) max=r;

if (min> r) min=r;

}

cout < < «==========» < < endl;

cout< <"kolichestvo mest «< <N<<endl;

cout< <"obshii traffic «< <nTrafTotal<<» megabait"< <endl;

cout< <"dohod «< <nTrafTotal*TAX<<» rub"< <endl;

cout< <"picovoe znachenie «< <max<<endl;

cout< <"min znachenie «< <min<<endl;

cout< <"kol otkazov «< <nOtkaz<<endl;

}

ПоказатьСвернуть
Заполнить форму текущей работой