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

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

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

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

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

Размещено на http://www.allbest.ru/

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

Усть-Каменогорский колледж Экономики и Финансов

Специальность: Программное обеспечение автоматизированных систем и вычислительной техники.

Пояснительная записка к курсовому проекту

«Моделирование экономических и производственных процессов»

2012г.

Задание для курсового проектирования

В вычислительном центре работает 9 персональных компьютеров (ПК).

Простейший поток неисправностей имеет интенсивность 0,3 отказа в день. Среднее время устранения одной неисправности одним инженером равно 1,5 час. Компьютеры обслуживают три инженера с одинаковой производительностью. Все потоки событий простейшие. Возможны следующие варианты организации обслуживания ПК:

- три инженера обслуживают все 9 компьютеров, так, что при отказе ПК его обслуживает один из свободных инженеров, в этом случае R = 3; N = 9;

- каждый из трех инженеров обслуживает по три закрепленных за ним ПК. В этом случае R = 1; N = 3.

Необходимо выбрать наилучший вариант организации обслуживания ПК

График выполнения курсового проекта

этапа

Содержание этапа

Сроки выполнения

План

Факт

1

Раздача тем. Обзор рекомендуемой литературы

30.01

30.01

2

Готовность 30%.

Подбор литературы. Определение метода решения. Расчет модели по аналитическим формулам.

7.02

15.02

3

Готовность 60%.

Подготовка программной реализации.

15.02

20.02

4

Готовность 100%.

Подготовка отчета и доклада к защите.

24.02

28.02

5

Защита курсового проекта.

29.02

29.02

Введение

моделирование программный обслуживание поток

В задании на курсовое проектирование было выдано задание в котором необходимо произвести расчёты замкнутой модели СМО и написать программную реализацию в Delphi позволяющую производить расчёты по любым исходным данным замкнутой СМО.

Необходимо произвести расчёты по формулам и определить при каком варианте СМО будет работать эффективнее.

Целью исследования задачи является рациональный выбор структуры системы обслуживания и процесса обслуживания на основе изучения потоков требований на обслуживание, поступающих в систему и выходящие из неё, длительности ожидания и длины очередей.

1. Общие описания по программной реализации

1.1 Общая постановка задачи

В вычислительном центре работает 9 персональных компьютеров (ПК).

Простейший поток неисправностей имеет интенсивность 0,3 отказа в день. Среднее время устранения одной неисправности одним инженером равно 1,5 час. Компьютеры обслуживают три инженера с одинаковой производительностью. Все потоки событий простейшие. Возможны следующие варианты организации обслуживания ПК:

- три инженера обслуживают все 9 компьютеров, так, что при отказе ПК его обслуживает один из свободных инженеров, в этом случае R = 3; N = 9;

- каждый из трех инженеров обслуживает по три закрепленных за ним ПК. В этом случае R = 1; N = 3.

Необходимо выбрать наилучший вариант организации обслуживания ПК.

В задаче представлена замкнутая СМО, для решения которой необходимо произвести расчёт по формулам и выяснить, при каком из вариантов СМО будет более эффективна.

1.2 Описание модели и метода её реализации

Общая постановка и определения СМО.

В задаче используется замкнутая СМО, которая может работать после заполнения очереди как СМО с отказами.

Замкнутой СМО называется система, в которой интенсивность потока зависит от состояния системы. У данной СМО имеются отличия от других тем, что число заявок в очереди ограниченно (не может превосходить количества обслуживаемых машин). Таким образом заявка не может остаться не обслуженной (получить отказ).

m - интенсивность обслуживания

l - интенсивность поступления заявок

N - количество машин

R - количество инженеров обслуживающих ПК

t - время обслуживания

Параметр обслуживания

(1.1)

Приведённая интенсивность

(1.2)

Вероятности перехода в k - тое состояние системы

(1.3)

Число ПК в очереди на обслуживание:

(1.4)

Среднее число ПК, находяшихся в системе:

(1.5)

Среднее число инженеров, простаивающих из-за отсутсвия работы:

(1.6)

Коэффициэнт простоя машины в очереди:

(1.7)

Коэффициэнт использования машин:

(1.8)

Коэффициэнт простоя обсуживающих инженеров:

(1.9)

Среднее время ожидания машины обслуживания:

(1.10)

1.3 Решение задачи

Вариант 1

Исходные данные:

l = 0,0375 в час = 0,3 в день

N = 9

R = 3

t = 1,5 часа

Высчитанные показатели:

m = 0,6666667

p = 0,05625

P0=0,61088902232602

P1=0,30926256755

P2=0,06958407770

P3=0,00913291020

P4=0,00102745240

P5=0,00009632366

P6=0,00000722427

P7=0,00000040637

P8=0,00000001524

P9=0,00000000029

Lq = 0,0012434

Ls = 0,4804

Rn = 2,52

a1 = 0,0001381

a2 = 0,94666

a3 = 0,8402

Wq = 0,00389

Вариант 2

Исходные данные:

l = 0,0375 в час = 0,3 в день

N = 3

R = 1

t = 1,5 часа

Высчитанные показатели:

m = 0,6666667

p = 0,05625

P0=0,841182798304655

P1=0,14194959721

P2=0,01596932969

P3=0,00089827479

Lq = 0,017765

Ls = 0,176583

Rn = 0,841182

a1 = 0,005921

a2 = 0,9411389

a3 = 0,841182

Wq = 0,1677955

1.4 Описание программной реализации модели

Программа должна обеспечить растёт замкнутой модели СМО по формулам, отрисовку графа состояния. Исходные данные вводятся в поля Edit, по нажатию кнопки Рассчитать выполняется процедура по расчёту значений. Вывод производится в виде надписи (label) и в поля Memo.

Интерфейс программы был сделан наиболее просто, содержит всего 1 форму, все действия интуитивно понятным. Для реализации программной части были использованы счётные циклы, для однотипных данных использованы одномерные массивы. Ввод данных осуществляется в поля Edit, вывод производится в виде надписей Label и поля Memo.

Заключение

Поставленную задачу выполнил, произвел расчёты по формулам, сделал программную реализацию. Выполнил условие задачи - выяснить при каком варианте СМО будет работать эффективнее. После решения задачи мои предположения по эффективности 1 варианта подтвердились. В первом варианте ПК ожидает обслуживания 0,00389 часа, а во 2 варианте 0,1677 часа. Таким образом закрепление за 1 инженером 3-х ПК приведет к увеличению времени обслуживании всей системы. Данную программу можно будет применять экономистам, в предприятиях которых используется схожая с условием задачи система обслуживания.

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

1. Исследование операций в экономике: Учеб. пособие для вузов / Н.Ш. Кремер, Б.А. Путко, И.М. Тришин, М. Н. Фридман; Под ред. Проф. Н.Ш. Кремер. - М.: ЮНИТИ, 2004.

2. Бережная Е. В., Бережной В.И. Математические методы моделирования экономических систем: Учеб. пособие. - М.: Финансы и статистика, 2001

3. Шелобаев С.И. Математические методы и модели в экономике, финансах, бизнесе: Учеб. пособие для вузов. - М.: ЮНИТИ-ДАНА, 2001.

4. Вентцель Е. С. Исследование операций. Задачи, принципы, методология: Учеб. пособие для вузов. - 3-е изд., стереотип. - М.: Дрофа, 2004.

5. Косоруков О.А., Мищенко А.В. Исследование операций: Учебник / Косоруков О.А., Мищенко А.В. // Под общ. ред. д.э.н., проф. Н.П. Тихомирова. - М.: Издательство «Экзамен», 2003.

Приложения

Приложение А

Рис. 1 Главная форма

Приложение Б

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls, ShellAPI;

type

TForm1 = class(TForm)

Label1: TLabel;

GroupBox1: TGroupBox;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Button1: TButton;

GroupBox2: TGroupBox;

Memo1: TMemo;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

Label9: TLabel;

Label10: TLabel;

Label11: TLabel;

Label12: TLabel;

Label13: TLabel;

Label14: TLabel;

Label15: TLabel;

Label16: TLabel;

Label17: TLabel;

Label18: TLabel;

Label19: TLabel;

Label20: TLabel;

Label21: TLabel;

Label22: TLabel;

Label23: TLabel;

Label24: TLabel;

Label25: TLabel;

Memo2: TMemo;

Label26: TLabel;

Button2: TButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

Nu,t,lyanda,P:extended;

N,R:integer;

implementation

uses Math;

{$R *.dfm}

function faktor(x:integer):integer;

var i,otvet:integer;

begin

otvet:=1;

for i:=1 to x do

otvet:=otvet*i;

faktor:=otvet;

end;

procedure TForm1.Button1Click(Sender: TObject);

var

mas:array[1..100] of Extended;

mdb:array[1..100] of Extended;

x7,y7:integer; // ??????? ? ?????

step: integer;

x1,y1,x2,y2: integer; // ????? ??? ????????? ????????? ?????

x3,y3,x4,y4,x5,y5,x6,y6,k: integer;

z,i:integer;

Lq,Ls,Rn1,a1,a2,a3,Wq:Extended;

Rn:real;

v:real;

temp:string;

begin

R:=StrToInt(Edit1.Text);

N:=StrToInt(Edit2.Text);

Lyanda:=StrToFloat(Edit3.Text)/8;

t:=StrToFloat(Edit4.Text);

{R:=3;

N:=9;

Lyanda:=0.0375;

t:=1.5; }

Nu:=1/t;

if Form1.Width<(n+1)*100+100 then

Form1.WindowState:=wsMaximized;

P:=lyanda/Nu;

Label7.Caption:=FloatToStr(Nu);

Label9.Caption:=FloatToStr(P);

k:=1;

for i:=0 to n+1 do

begin

Form1.Memo2.Lines.Add(FloatToStr(lyanda)+'P'+ FloatToStr(k-1) +' = '+ FormatFloat('0.0000',nu) + 'P' + FloatToStr(k)+CHR(13));

inc(k);

end;

for i:=0 to n+2 do

begin

if (i=n+2) then temp:=temp+'P'+IntToStr(i)+' = 1'

else temp:=temp+'P'+IntToStr(i)+' + ';

end;

Form1.Memo2.Lines[n+2]:=temp;

for k:=1 to N do begin

if k<R then begin mas[k]:=(faktor(N)*power(p,k))/(faktor(k)*faktor(N-k)); v:=v+mas[k]; end

else begin mas[k]:=(faktor(N)*power(p,k))/(faktor(R)*power(r,k-r)*faktor(N-k)); v:=v+mas[k]; end;

//Memo1.Lines.Add('P'+IntToStr(k)+'='+FloatToStr(mas[k]));

end;

mas[n+1]:=1/(v+1);

Memo1.Lines.add('P0='+FloatToStr(mas[n+1]));

for k:=1 to n do begin

mas[k]:=mas[k]*mas[n+1];

Memo1.Lines.Add('P'+IntToStr(k)+'='+FormatFloat('0.00000000000',mas[k]));

end;

for k:=r to n do begin

Lq:=(k-r)*mas[k]+Lq;

end;

Label11.Caption:=FormatFloat('0.00000000000',Lq);

for k:=1 to n do

Ls:=Ls+k*mas[k];

Label14.Caption:=FormatFloat('0.00000000000',Ls);

For k:=0 to r-1 do

if k=0 then Rn:=(R-k)*mas[n+1]+Rn else

Rn:=(R-k)*mas[k]+Rn;

Label16.Caption:=FormatFloat('0.00000000000',Rn);

a1:=lq/n;

a2:=1-(ls/N);

a3:=Rn/r;

Label18.Caption:=FormatFloat('0.00000000000',a1);

Label20.Caption:=FormatFloat('0.00000000000',a2);

Label22.Caption:=FormatFloat('0.00000000',a3);

Wq:=(1/lyanda*(1-a2)/a2)-1/Nu;

Label24.Caption:=FormatFloat('0.00000000000',Wq);

begin

// эта часть процедуры отвечает за канву

// PatBlt(Form1.Canvas.Handle, 0, 0,0, 0, WHITENESS);

//Form1.Width:=488;

x1:=15; y1:=510;

x2:=55; y2:=550;

x3:=55; y3:=520;

x4:=115; y4:=520;

x5:=105; y5:=515;

x6:=105; y6:=525;

x7:=28; y7:=520;

step:=100;

// шаг для стрелок

for i:=0 to n+1 do // цикл для отрисовки графа на канве

begin

Form1.Canvas.Brush.Color:=RGB(233,233,233); // задаем цвет фона текста - серый

Form1.Canvas.Rectangle(x1,y1,x2,y2); // рисуем элемент графа

Form1.Canvas.TextOut(x7,y7,'S'+IntToStr(i)); // подписываем граф состояний S1,S2..SN

x1:=x1+step; // увеличиваем шаг отрисовки графа

x2:=x2+step;

x7:=x7+step;

end;

x7:=28;

for i:=0 to n do

begin

// рисуем верхнюю стрелку

Form1.Canvas.MoveTo(x3,y3); // основание

Form1.Canvas.LineTo(x4,y4);

Form1.Canvas.MoveTo(x5,y5); // верхняя линия

Form1.Canvas.LineTo(x4,y4);

Form1.Canvas.MoveTo(x6,y6); // нижняя линия

Form1.Canvas.LineTo(x4,y4);

// рисуем нижнюю стрелку

Form1.Canvas.MoveTo(x3,y3+20); // основание

Form1.Canvas.LineTo(x4,y4+20);

Form1.Canvas.MoveTo(x5-35,y5+20); // верхняя линия

Form1.Canvas.LineTo(x3,y4+20);

Form1.Canvas.MoveTo(x6-35,y6+20); // нижняя линия

Form1.Canvas.LineTo(x3,y4+20);

// Form1.Canvas.Brush.Color:=clWhite; // задаем цвет фона текста - белый

Form1.Canvas.TextOut(x7+50,y7-15,FormatFloat('0.000',(n-i)*lyanda)); // подписываем лямбды

Form1.Canvas.TextOut(x7+50,y7+21,FormatFloat('0.000',Nu*(i+1))); // подписываем мю

x3:=x3+step;

x4:=x4+step;

x5:=x5+step;

x6:=x6+step;

x7:=x7+step;

end;

if (x2 > Form1.Width) then // входит ли граф в форму

begin

Form1.Width:=x2-70; // если нет, увеличиваем форму

x1:=15; y1:=180; // и заново отрисовываем граф

x2:=55; y2:=220;

for i:=1 to n+2 do

begin

Form1.Canvas.Rectangle(x1,y1,x2,y2);

x1:=x1+step;

x2:=x2+step;

end; // конец отрисовки графа

for i:=0 to n+1 do

begin

// рисуем верхнюю стрелку

Form1.Canvas.MoveTo(x3,y3); // основание

Form1.Canvas.LineTo(x4,y4);

Form1.Canvas.MoveTo(x5,y5); // верхняя линия

Form1.Canvas.LineTo(x4,y4);

Form1.Canvas.MoveTo(x6,y6); // нижняя линия

Form1.Canvas.LineTo(x4,y4);

// рисуем нижнюю стрелку

Form1.Canvas.MoveTo(x3,y3+20); // основание

Form1.Canvas.LineTo(x4,y4+20);

Form1.Canvas.MoveTo(x5-35,y5+20); // верхняя линия

Form1.Canvas.LineTo(x3,y4+20);

Form1.Canvas.MoveTo(x6-35,y6+20); // нижняя линия

Form1.Canvas.LineTo(x3,y4+20);

x3:=x3+step;

x4:=x4+step;

x5:=x5+step;

x6:=x6+step;

end;

end;

end;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

ShellExecute(Handle,'open','help.html',nil,nil, SW_SHOWNORMAL);

end;

end.

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


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

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

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

  • Построение имитационной модели системы массового обслуживания в среде Borland Delphi 7.0 с учетом того, что параметры модели – детерминированные величины. Моделирование случайных независимых величин и процессов. Оптимизация системы массового обслуживания.

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

  • Построение имитационной модели системы массового обслуживания, список и содержание ее активностей. Блок-схема алгоритма моделирования и текст процедуры. Моделирование случайных независимых величин и процессов. Оптимизация системы массового обслуживания.

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

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

    курсовая работа [154,1 K], добавлен 19.05.2011

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

    курсовая работа [818,7 K], добавлен 23.05.2013

  • Характеристика системы массового обслуживания, куда поступают заявки обслуживания. Особенности моделирования системы массового обслуживания. Имитация работы системы массового обслуживания с относительными приоритетами. Отчеты полного факторного плана.

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

  • Построение модели системы массового обслуживания с помощью ЭВМ с использованием методов имитационного моделирования. Моделирование проводилось с помощью GPSS World Student version, позволяющего достоверно воссоздать систему массового обслуживания.

    курсовая работа [555,7 K], добавлен 29.06.2011

  • Моделирование дневного стационара - многоканальной системы массового обслуживания с ожиданием. Определение оптимального числа койко-мест для данного количества клиентов. Практическое решение задачи с помощью программы, реализованной в среде Delphi 7.

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

  • Система GPSS World как мощная универсальная среда моделирования как дискретных, так и непрерывных процессов, предназначенная для профессионального моделирования самых разнообразных процессов и систем. Системы массового обслуживания. Листинг программы.

    курсовая работа [499,6 K], добавлен 25.12.2013

  • Методика системного исследования реальной динамической сложной системы посредством разработки ее имитационной модели. Разработка программы реализации алгоритма имитационного моделирования системы массового обслуживания "Интернет-провайдерская фирма".

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

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