Моделирование систем массового обслуживания с использованием универсального алгоритмического языка
Скачать 0.51 Mb.
|
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «ДОНЕЦКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ» Д.27.03.03-САУ-18.21/6096-ЛР Кафедра искусственного интеллекта и системного анализа Лабораторная работа №4 по дисциплине «Моделирование сложных систем» тема: «Моделирование систем массового обслуживания с использованием универсального алгоритмического языка» Проверил: __________ ст.преп. Ю.К. Орлов (дата, подпись) __________ acc. А.В. Левкина (дата, подпись) Выполнил: __________ ст.гр. САУ-18 Д.О. Шапошник (дата, подпись) Донецк-2021 Моделирование - это одна из основных категорий теории познания. Моделирование - это исследование, каких-либо явлений, процессов или систем объектов путем построения и изучения их моделей; использование моделей для определения или уточнения характеристик и рационализации способа построения вновь конструируемых объектов. Модель представляет собой аналог определенного фрагмента природной или социальной реальности, являющейся оригиналом модели. Модель может служить для хранения и расширения знания об оригинале, преобразования или управления им. Замещение оригинала моделью производится с целью упрощения, удешевления, ускорения, фиксации или изучения свойств оригинала. Моделирование становится одной из основных функций вычислительных систем. Сами вычислительные системы также являются объектами моделирования. Моделирование целесообразно использовать на этапе проектирования вычислительных систем и для анализа функционирования действующих систем в экстремальных условиях или при изменении их состава, структуры, способов управления или рабочей нагрузки. Применение моделирования на этапе проектирования позволяет анализировать варианты проектных решений, определять производительность и работоспособность, выявлять дефицитные и мало загруженные ресурсы, вычислять ожидаемые времена реакции и принимать решения по рациональному изменению состава и структуры вычислительной системы или по способу организации вычислительного процесса. При анализе действующих систем с помощью моделирования определяют границы работоспособности системы, выполняют имитацию экстремальных условий, которые могут возникнуть в процессе функционирования системы. Применение моделирования может быть полезным при разработке стратегии развития вычислительных систем, их усовершенствования и образования связей при создании сетей, при изменении состава, числа и частоты решаемых задач. Целесообразно использовать моделирование для действующих вычислительных систем, так как можно опытным путем проверить адекватность модели и оригинала и точнее определить те параметры системы и внешних воздействий на неё, которые служат исходными данными для моделирования. Моделирование реальной вычислительной системы позволяет выявить ее резервы и прогнозировать качество функционирования вычислительной системы при любых изменениях. Цель работы: приобрести практические навыки исследования систем массового обслуживания (СМО) методом имитационного моделирования с использованием универсальных алгоритмических языков. Так же приобрести практические навыки исследования систем массового обслуживания (СМО) методом имитационного моделирования с использованием метода особых состояний. Таблица 1 – Задания на лабораторную работу по моделированию СМО методом последовательной проводки заявок
Листинг программы #include "pch.h" #include "math.h" #include "iostream" #include "stdio.h" #include "stdlib.h" #include "conio.h" using namespace std; int main() { setlocale(LC_ALL,"rus"); double u[6], t=0,to=0,tog=0,r,r1,r2,T,k,l[1],min,p,p0,potk,lam = 0,tobs=0.5; int s; cout << "Введите время работы программы "; cin >> T; cout << endl; for(int i = 0; i<6;i++) { u[i] = 0; } l[0] = 0; k=0; while(t { r=0.01*(rand()%100); r1=(0.2)*(pow(2.71,((0.2)*r))); r=(rand()%100); r2=(r*5/2)+4; cout << r1 << " " << r2 << endl ; lam +=1; metka: if(u[0]==0) { l[0] = r1; u[0] = 1; k++; to=to+r1; } else{ if(u[1]==0 { l[0]=r1; u[1] = 1; k++; to=to+r1; } else { if(u[2]==0) { l[0] = r1; u[2] = 1; k++; to=to+r1; } u[3]=1; k++; to=to+r1; } else { if(u[4]==0) { l[0]=r1; u[4] = 1; k++; to=to+r1; } else { if(u[5]==0) { l[0] = r1; u[5] = 1; k++; to=to+r1; } else { t=to+r1; tog=tog+1; t=t+r2; min = l[0]; s=0; u[s] = 0; goto metka; } } } } } } } cout << endl; cout << "Среднее время простоя "; tog = tog/k; cout << to << endl; cout << "Вероятность отказа "; p=lam*tobs; p0 = 1/((1)+(p)); potk = p*p0; cout << potk<< endl; system("pause"); return 0; } Экранные формы Рисунок 1 – Работа программы при Т = 250 Рисунок 2 – Работа программы при Т = 10 Таблица 2 – Задания на лабораторную работу по моделированию СМО методом особых состояний
Листинг программы nakopitel STORAGE 1 GENERATE (Normal (1,0.065,0.02)) TEST NE S$nakopitel,6,term ENTER nakopitel QUEUE otchered TRANSFER all,stanok_1,O,6 stanok_1 SEIZE stanok1 LEAVE nakopitel DEPART otchered ADVANCE (Normal (1,0.065,0.02)) RELEASE stanok1 TRANSFER ,term stanok_2 SEIZE stanok2 LEAVE nakopitel DEPART otchered ADVANCE (Normal (1,0.065,0.02)) RELEASE stanok2 TRANSFER ,term stanok_3 SEIZE stanok3 LEAVE nakopitel DEPART otchered ADVANCE (Normal (1,0.065,0.02)) RELEASE stanok3 TRANSFER ,term stanok_4 SEIZE stanok4 LEAVE nakopitel DEPART otchered ADVANCE (Normal (1,0.065,0.02)) RELEASE stanok4 TRANSFER ,term stanok_5 SEIZE stanok5 LEAVE nakopitel DEPART otchered ADVANCE (Normal (1,0.065,0.02)) RELEASE stanok5 TRANSFER ,term stanok_6 SEIZE stanok6 LEAVE nakopitel DEPART otchered ADVANCE (Normal (1,0.065,0.02)) RELEASE stanok6 TRANSFER ,term O SEIZE och LEAVE nakopitel DEPART otchered ADVANCE (Exponential (1,0,10)) RELEASE och term TERMINATE 1 START 1000 Экранные формы GPSS World Simulation Report - Untitled Model 1.7.1 Wednesday, November 30, 2021 23:24:25 START TIME END TIME BLOCKS FACILITIES STORAGES 0.000 64.853 47 3 1 NAME VALUE NAKOPITEL 10000.000 O 42.000 OCH UNSPECIFIED OTCHERED 10001.000 STANOK1 10002.000 STANOK2 10003.000 STANOK3 10004.000 STANOK4 UNSPECIFIED STANOK5 UNSPECIFIED STANOK6 UNSPECIFIED STANOK_1 6.000 STANOK_2 12.000 STANOK_3 18.000 STANOK_4 24.000 STANOK_5 30.000 STANOK_6 36.000 TERM 47.000 LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY 1 GENERATE 1000 0 0 2 TEST 1000 0 0 3 ENTER 1000 0 0 4 QUEUE 1000 0 0 5 TRANSFER 1000 0 0 STANOK_1 6 SEIZE 650 0 0 7 LEAVE 650 0 0 8 DEPART 650 0 0 9 ADVANCE 650 0 0 10 RELEASE 650 0 0 11 TRANSFER 650 0 0 STANOK_2 12 SEIZE 333 0 0 13 LEAVE 333 0 0 14 DEPART 333 0 0 15 ADVANCE 333 0 0 16 RELEASE 333 0 0 17 TRANSFER 333 0 0 STANOK_3 18 SEIZE 17 0 0 19 LEAVE 17 0 0 20 DEPART 17 0 0 21 ADVANCE 17 0 0 22 RELEASE 17 0 0 23 TRANSFER 17 0 0 STANOK_4 24 SEIZE 0 0 0 25 LEAVE 0 0 0 26 DEPART 0 0 0 27 ADVANCE 0 0 0 28 RELEASE 0 0 0 29 TRANSFER 0 0 0 STANOK_5 30 SEIZE 0 0 0 31 LEAVE 0 0 0 32 DEPART 0 0 0 33 ADVANCE 0 0 0 34 RELEASE 0 0 0 35 TRANSFER 0 0 0 STANOK_6 36 SEIZE 0 0 0 37 LEAVE 0 0 0 38 DEPART 0 0 0 39 ADVANCE 0 0 0 40 RELEASE 0 0 0 41 TRANSFER 0 0 0 O 42 SEIZE 0 0 0 43 LEAVE 0 0 0 44 DEPART 0 0 0 45 ADVANCE 0 0 0 46 RELEASE 0 0 0 TERM 47 TERMINATE 1000 0 0 FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY STANOK1 650 0.653 0.065 1 0 0 0 0 0 STANOK2 333 0.330 0.064 1 0 0 0 0 0 STANOK3 17 0.019 0.071 1 0 0 0 0 0 QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY OTCHERED 1 0 1000 1000 0.000 0.000 0.000 0 STORAGE CAP. REM. MIN. MAX. ENTRIES AVL. AVE.C. UTIL. RETRY DELAY NAKOPITEL 1 1 0 1 1000 1 0.000 0.000 0 0 FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE 1001 0 64.853 1001 0 1 Вывод: В ходе выполнения лабораторной работы были получены практические навыки исследования систем массового обслуживания (СМО) методом имитационного моделирования с использованием универсальных алгоритмических языков. Так же приобретены практические навыки исследования систем массового обслуживания (СМО) методом имитационного моделирования с использованием метода особых состояний. |