Выдержка из текста работы
Провести имитационное моделирование работы Интернет — кафе. Период моделирования 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=1220703125ul
float rand (void)
static unsigned long int u=C;
u=u*C;
return u/(float(0xfffffffful)+1);
Среднее значение по таблице = 0.494231.
Оценка дисперсии =0.0836967.
Рис.1. Гистограмма распределения
1.4 Показательное распределение
Показательное распределение — это распределение случайной величины с областью значений и плотностью (величина интервала времени между двумя событиями), где — параметр распределения. По показательному закону распределены интервалы времени между двумя последовательными событиями простейшего пуассоновского потока с интенсивностью .
Рис.2. Показательное распределение
Данное распределение появляется в случае, когда для некоторого малого вероятность появления события на этом интервале пропорциональна величине этого интервала с коэффициентом :
а появление на этом интервале более 1 события есть величина более высокого порядка малости, чем :
Математическое ожидание:
Преобразованная
Таким образом, — это среднее время между последовательными событиями простейшего потока. Дисперсию вычислим по определяющей её формуле:
Первообразная и интеграл в первом слагаемом:
— во втором:
— в третьем:
Подставив эти значения в первое выражение, получим:
Таким образом, дисперсия показательного распределения равна , то есть квадрату его математического ожидания.
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 — от -32768 до 32767 может быть недостаточно для представления используемых значений данных модели. Далее следует собственно моделирующий алгоритм:
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 — от -32768 до 32767 может быть недостаточно для представления используемых значений данных модели. Далее следует собственно моделирующий алгоритм:
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,342835.
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;