Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Программа выполнения работы




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

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

Провести вычислительные эксперименты с моделью.

Ход работы

Смоделируем СМО событийным методом

Код программы

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Drawing;

using System.Threading;

 

namespace зуевлаб1_V2._0

{

public class Qsystem

{

public List<IOnTickable> ObjsTick { get; private set; }

public List<EndNode> ObjsEnd { get; private set; }

public int ClientsCount { get; set; }

public float dt { get; set; }

public float T { get; set; }

public bool IsEnd

{

get

{

int sum = 0;

foreach (var item in ObjsEnd)

{

sum += item.Count;

}

return sum == ClientsCount;

}

}

public Font font = new Font(FontFamily.GenericSansSerif,6,FontStyle.Regular);

 

public Qsystem()

{

this.ObjsTick = new List<IOnTickable>();

this.ObjsEnd = new List<EndNode>();

}

public void Add(IOnTickable o)

{

((DrawingObj)o).Owner = this;

this.ObjsTick.Add(o);

}

public void Add(EndNode o)

{

((DrawingObj)o).Owner = this;

this.ObjsEnd.Add(o);

}

 

public void PreStart()

{

foreach (var item in this.ObjsTick)

{

Source s = item as Source;

if (s!= null)

{

this.ClientsCount += s.Count;

}

}

}

 

public void StartEvent()

{

PreStart();

while (!IsEnd)

{

StepEvent();

}

}

 

public void StepEvent()

{

this.ObjsTick.Sort((a, b) =>

{

if (a.GetEventTime == b.GetEventTime) return 0;

if (a.GetEventTime > b.GetEventTime) return 1;

return -1;

});

if (this.ObjsTick[0].IsWork)

{

T = this.ObjsTick[0].GetEventTime;

this.ObjsTick[0].OnTick();

}

}

 

public IEnumerable<object> GetEnumerator()

{

foreach (var item in this.ObjsTick)

{

yield return item;

}

foreach (var item in this.ObjsEnd)

{

yield return item;

}

}

 

public void Draw(Graphics g)

{

foreach (DrawingObj item in this.GetEnumerator())

{

item.Draw(g);

}

}

}

}

Результаты работы программы

 

 

 

Лабораторная работа №3

Изучение элементов системы моделирования QPSS

На моделях Q-схем

Цель работы: отработка навыков разработки программных моделей дискретных процессов на языке имитационного моделирования GPSS, экспериментальное исследование систем в ходе статистических вычислительных экспериментов с моделью.

Программные средства: операционная система MS Windows XP/7, система моделирования GPSS World for Windows (студенческая версия) от Minuteman Software.

Код программы на GPSS:

CHANEL STORAGE 2

GENERATE (exponential(1,0,2.0))

QUEUE BUF1

ENTER CHANEL

DEPART BUF1

ADVANCE (normal(2,3.5,0.8))

LEAVE CHANEL

 

TRANSFER 0.7,MMM30,MMM70

MMM30 QUEUE BUF2

SEIZE HDD

DEPART BUF2

ADVANCE 0.5,0.3

RELEASE HDD

MMM70 TERMINATE 1

 

Вывод результатов для 1000 сообщений

 

 

GPSS World Simulation Report - 12312Untitled.9.1

 

 

Thursday, May 05, 2011 14:26:29

 

START TIME END TIME BLOCKS FACILITIES STORAGES

0.000 1989.787 13 1 1

 

 

NAME VALUE

BUF1 10001.000

BUF2 10002.000

CHANEL 10000.000

HDD 10003.000

MMM30 8.000

MMM70 13.000

 

 

LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY

1 GENERATE 1014 0 0

2 QUEUE 1014 12 0

3 ENTER 1002 0 0

4 DEPART 1002 0 0

5 ADVANCE 1002 2 0

6 LEAVE 1000 0 0

7 TRANSFER 1000 0 0

MMM30 8 QUEUE 318 0 0

9 SEIZE 318 0 0

10 DEPART 318 0 0

11 ADVANCE 318 0 0

12 RELEASE 318 0 0

MMM70 13 TERMINATE 1000 0 0

 

 

FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY

HDD 318 0.080 0.499 1 0 0 0 0 0

 

 

QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY

BUF1 21 12 1014 187 2.958 5.805 7.118 0

BUF2 1 0 318 307 0.002 0.010 0.282 0

 

 

STORAGE CAP. REM. MIN. MAX. ENTRIES AVL. AVE.C. UTIL. RETRY DELAY

CHANEL 2 0 0 2 1002 1 1.751 0.876 0 12

 

 

FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE

1015 0 1991.776 1015 0 1

1001 0 1992.227 1001 5 6

1002 0 1992.492 1002 5 6

 

Лабораторная работа № 4





Поделиться с друзьями:


Дата добавления: 2017-02-25; Мы поможем в написании ваших работ!; просмотров: 314 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Жизнь - это то, что с тобой происходит, пока ты строишь планы. © Джон Леннон
==> читать все изречения...

2323 - | 2092 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.01 с.