Моделирование работы больничной палаты

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 13.09.2012
Размер файла 1,2 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

}

template <class Type>

int ListCount(ListNode<Type> *head){

int i; i=0;

for (ListNode<Type>* v=head; v!=NULL; v=v->Next()){

v->Print();

i++;

}

return i;

}

Листинг программы функция main()

#include "stdafx.h"

#include "iostream"

#define N 32014 //количество дней - тактов моделирования

#include "7.h" //включение header-файла с описанием классов

//Palata и Pacient. Внутри этого файла

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

//header-файлы

int main()

{

Palata palata;

long int i;

srand((unsigned)time(0)); //инициализация генератора случайных чисел

//открытие файлов для сбора статистики

sojourn=fopen("sojourn","wt");

ro=fopen("ro", "wt");

//основной моделирующий цикл

for(i=0L;i<N;i++)

palata.run();

//закрытие файлов для сбора статистики

fclose(sojourn);

fclose(ro);

setlocale(LC_ALL, "Russian");

//печать результатов "прогона" программы

cout << "Общее число претендентов на лечение - " << total << endl;

cout << "Полностью завершили лечение - " << complete << endl;

cout << "Не приняты не лечение (>41б) - " << reject1 << endl;

cout << "Не приняты на лечение - " << reject2 << endl;

cout << "Выписано досрочно - " << earlier << endl;

cout << "Всего принято на лечение - " << entered << endl;

cout << "Средняя загрузка палаты - " << ro_aver << endl;

cout << "Среднее время пребывания в палате - " << ill_aver << endl;

_gettch();

}

5. Анализ результатов работы программы

Десятикратный прогон программы с последующим усреднением выходных данных принес следующие результаты:

Рис. 1. Снимок работы программы

· общее число претендентов на лечение -- 64 028;

· полностью завершили лечение -- 23 980;

· не приняты на лечение (>41 балла) -- 8375;

· не приняты на лечение -- 23 221;

· выписано досрочно -- 8427;

· всего принято на лечение -- 32 432;

· средняя загрузка палаты -- 0,997;

· среднее время пребывания в палате -- 24,61.

Попробуем оценить реалистичность этих результатов. Оценим «грубой прикид- кой» среднее время пребывания больного в палате. Каждый день оценка состоя- ния больного в среднем увеличивается на 0,5 балла, так как (-0,2 + 1,2)/2 = 0,5. Средняя начальная оценка составляет 37 баллов. Если бы больные не покидали палату досрочно, а только при достижении оценки 50 баллов, среднее время пре- бывания в палате составило бы (50 - 37)/0,5 = 26 дней. Но так как некоторая часть больных выписывается досрочно, среднее время пребывания в палате должно быть несколько меньше этой цифры, что мы и наблюдаем на самом деле.

Далее мы видим, что загрузку палаты можно считать практически равной единице. Из элементарной теории массового обслуживания известно, что это означает превышение интенсивности входного потока над интенсивностью обслужива- ния. Проверим, так ли это. Интенсивность входного потока равна двум. Так как средняя длительность обслуживания заявки равна 26, а в палате 25 мест, то сред няя интенсивность обслуживания равна 25/26, что существенно меньше двух. Следовательно, результаты моделирования вполне реальны.

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

1. Вероятность отказа в приеме на лечение составляет (23221+8372)/64028?0,5.

2. Вероятность отказа при условии, что начальная оценка превышает 41 балл, составляет 8372/(64 028 * (3/15)) ? 0,68.

3. Вероятность отказа при условии, что начальная оценка не превышает 41 балл, составляет 23 221/(64 028 * (12/15)) ? 0,455.

4. Вероятность того, что больной, принятый на лечение, будет выписан досрочно, составляет 8427/32 432 ? 0,26.

5. Вероятность того, что больной, претендующий на место в палате, будет принят и затем выписан досрочно, составляет 8427/64 028 ? 0,131.

6. Вероятность того, что больной, принятый на лечение, завершит его, составляет 23 980/32 432 ? 0,74.

7. Вероятность того, что больной, претендующий на место в палате, будет принят и затем завершит лечение, составляет 23 980/64 028 ? 0,37.

По данным файла sojourn можно построить гистограмму (рис. 2) и функцию распределения (рис. 3) для времени пребывания больного на лечении в палате.

Рис. 2. Гистограмма длительности пребывания пациента в палате

Из гистограммы мы видим, что максимальная частота достигается действитель- но в районе оценки математического ожидания -- 26, а само распределение явля- ется нормальным. Заметим, что задача нахождения распределения этой случайной величины имеет и теоретическое решение, так как она сводится к классической задаче случайных блужданий, однако это решение получить непросто.

Рис 3. Функция распределения длительности пребывания пациента в палате

Покажем теперь, как имитационное моделирование может использоваться в ка- честве инструмента синтеза систем. Предположим, необходимо ответить на во- прос: какою должно быть число мест в палате, чтобы вероятность отказа в прие- ме на лечение не превышала заданной величины, к примеру 0,1? Чтобы ответить на этот вопрос, необходимо построить график зависимости вероятности отказа от вместимости палаты. Каждая точка этого графика получается многократным прогоном (скажем, 10 раз) программы при одном и том же значении Palata.volume с последующим усреднением по значениям искомой вероятности для всех прогонов. Подобная процедура проводится для всех значений Palata.volume в некотором диапазоне, который мы выбираем в качестве области определения экспериментально вычисляемой функции.

Конкретно, если речь идет о вероятности отказа в приеме на лечение, получаем следующий график (рис. 4). Из графика видно, что для обеспечения вероятно- сти отказа не более 0,1 необходимо расширить палату довольно существенно -- до 47 мест.

Такие же зависимости можно получить и для остальных вероятностей (рис. 5-7).

Рис. 4. Зависимость вероятности 1 от числа мест в палате

Рис. 5. Зависимость вероятности 2 от числа мест в палате

Рис. 6. Зависимость вероятности 3 от числа мест в палате

Рис. 7. Зависимость вероятности 4 от числа мест в палате

Рис. 8. Зависимость вероятности 5 от числа мест в палате

Рис. 9. Зависимость вероятности 6 от числа мест в палате

Рис. 10. Зависимость вероятности 7 от числа мест в палате

Рис. 11. Зависимость коэффициента загрузки от числа мест в палате

Наибольший интерес среди зависимостей представляет изображенная на рис. 8, так как эта функция единственная из всех является немонотонной. Объясним, почему это так. Проанализируем, какие факторы влияют на вероятность того, что больной будет принят и затем досрочно выписан. Здесь следует уяснить, что увеличение числа мест в палате приводит, с одной стороны, к увеличению вероят- ности того, что больной будет принят в палату, а с другой -- к уменьшению веро- ятности того, что он затем будет выписан досрочно. При малых значениях числа мест в палате первая вероятность растет быстрее, чем уменьшается вторая, по- этому функция в целом возрастает. Рост первой вероятности постепенно замед- ляется, а уменьшение второй, наоборот, увеличивается. Поэтому в некоторой точке (примерно 25-26 мест) исследуемая вероятность достигает максимума, после чего монотонно убывает.

Задачу синтеза объекта Палата можно поставить и по-другому: при какой вместимости палаты коэффициент ее загрузки не менее заданного значения (например, 0,95)? Чтобы найти ответ на вопрос с помощью многократных прогонов имита- ционной программы, строим зависимость коэффициента загрузки от числа мест (см. рис. 11). Интересно, что коэффициент загрузки убывает с ростом числа мест значительно медленнее, чем рассмотренные ранее вероятности. Объясним и этот результат. Мы уже выяснили, что средняя длительность лечения больного 26 дней. Учитывая то, что каждый день поступает двое больных, необходимо иметь палату как минимум на 52 места, чтобы место в палате не было предметом дефицитного спроса. Действительно, если обратить внимание на график, можно заметить, что в районе значения 52 имеется точка перегиба, начиная с которой скорость убывания резко возрастает и значения функции начинают быстрее от- даляться от единицы. Но так как среднее число больных не может быть сущест- венно меньше 52, функция в асимптотическом приближении не может убывать быстрее, чем гипербола у = k/x, где k = 52(c довольно хорошим приближением).

Из графика видим, что загрузку не менее 95% обеспечивает палата на 50 мест, при большем количестве мест палата будет недогружена с точки зрения постав- ленного требования.

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

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

2. В методе run( ) сначала принимать новых больных, затем разыгрывать новые оценки, после чего выписывать выздоровевших.

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

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

5. В метоле arrival( ) досрочно выписывать не первого пациента с оценкой, достигшей 47 баллов, встреченного в порядке обхода списка, а случайным образом выбирать его из всех пациентов, для которых выполняется это условие.

6. В файле 6.h объявить глобальную переменную ignore, означающую число начальных тактов, которое следует пропустить, прежде чем начинать сбор статистики. Оценить ее можно так: сделать несколько пробных запусков программы с ignore=0 и по последовательности записанных в файл значений характеристики, зависящей от установления стационарного режима (например, коэффициента загрузки), оценить значение Ignore. Дальнейшие прогоны программы при том же наборе входных данных следует проводить уже с ненулевым значением Ignore. Например, при входных данных, заданных в условии рассмотренной задачи, это значение равно 14-15, и при количестве тактов моделирования 32 000 оно практически не влияет на итоговый результат. Поэтому, чтобы не утомлять себя излишними экспериментами и не зависеть от времени вхождения в стационарный режим, длительность моделирования следует выбирать как можно большей.

Разумеется, объектно-событийная модель системы при этом не изменяется. Упомянутые эксперименты с моделью оставляем читателю в качестве упражнения.

Заключение

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

· изучены метод имитационного моделирования экономических объектов;

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

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

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

1. Труб И. И. «Объектно-ориентированное моделирование на С++»: Учебный курс.-СПб.:Питер, 2006.-411с.:ил.

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

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

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

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

6. Дубров А.М., Лагоша Б.А., Хрусталев Е.Ю. Моделирование рискованных ситуаций в экономике и бизнесе. -М.: Финансы и статистика, 2008. -224 с.

7. Князевская Н.В., Князевский В.С. Принятие рискованных решений в экономике и бизнесе. -М.: Контур, 2008. -160 с.

8. Шикин Е.В. Математические методы и модели в управлении. -М.: Финансы и статистика, 2005. -430 с.

9. Федосеева В.В. «Экономико-математические методы и прикладные модели», под ред., Москва «Юнити» 2009 г.

7. Гинзбург А.И. Экономический анализ: Предмет и методы. Моделирование ситуаций. Оценка управленческих решений: учебное пособие. -СПб.: Питер, 2008. -622 с.

8. Грабовый П.Г. Риски в современном бизнесе. -М.: Финансы и статистика, 2010. -200 с.

Размещено на Allbest.ru


Подобные документы

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

    курсовая работа [563,8 K], добавлен 13.09.2012

  • Понятие и принципы моделирования. Специфика систем и основных моделей управления запасами. Создание программы на языке C++, обеспечивающей ввод исходной информации, ее обработку, реализацию алгоритма имитации процесса и выдачу необходимой информации.

    курсовая работа [1,0 M], добавлен 13.09.2012

  • Процесс моделирования имитационной модели функционирования класса персональных компьютеров на языке GPSS World. Поиск линейной зависимости и оценка полученного уравнения. Отчет по результатам работы имитационной модели. Листинг разработанной программы.

    курсовая работа [49,2 K], добавлен 07.09.2012

  • Создание имитационной модели работы госпиталя при поступлении потерпевших от катастрофы. Определение среднего времени пребывания пациентов в госпитале и необходимого количества мест в палатах. Разработка программы на языке GPSS, ее листинг и тестирование.

    контрольная работа [1,1 M], добавлен 26.11.2013

  • Анализ и формализация задачи моделирования: построение концептуальной модели, ее формализация в виде Q-схемы. Построение имитационной модели: создание блок-схемы, представление базовой исходной имитационной модели. Исследование экономических процессов.

    контрольная работа [156,0 K], добавлен 21.11.2010

  • Понятие стратегического планирования, разработка схем программных блоков и основной программы. Структурная схема имитационной модели, создание модели на языке моделирования General Purpose Simulation System. Математическое описание моделируемой системы.

    дипломная работа [2,6 M], добавлен 12.08.2017

  • Создание имитационной модели для регистрации транспортных средств. Построение Q-схемы модели. Базовый алгоритм программы в виде блок-схемы. Проектирование программы на языке GPSS. Обработка результатов работы. Планирование модельных экспериментов.

    курсовая работа [490,5 K], добавлен 18.12.2013

  • Создание имитационной модели системы массового обслуживания с помощью языка имитационного моделирования GPSS/PC - моделирование обработки на участке 500 деталей. Определение загрузки второго станка на вторичной обработке и вероятности появления отходов.

    курсовая работа [602,3 K], добавлен 30.11.2010

  • GPSS как один из эффективных и распространенных языков моделирования сложных дискретных систем. Возможности языка GPSS. Построение имитационной модели "Моделирование мини-АТС". Разработка программы работы диспетчерского пункта в торговом предприятии.

    курсовая работа [118,8 K], добавлен 19.01.2016

  • Определение назначения и описание функций имитационных моделей стохастических процессов систем массового обслуживания. Разработка модели описанной системы в виде Q-схемы и программы на языке GPSS и C#. Основные показатели работы имитационной модели.

    курсовая работа [487,4 K], добавлен 18.12.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.