Лабораторные работы (2010) (отчет)

Посмотреть архив целиком





Отчет по теории игр.

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

Моделирование в системе РДО.

























Выполнил: Черных А.С.

Группа: А-13-02








Оглавление:


1. Постановка задачи 3

2. Описание предметной области, сеть Петри 3

3. Описание имитационной модели:

3.1 Типы ресурсов 4

3.2 Ресурсы 4

3.3 Образцы операций 4

3.4 Операции 6

3.5 Кадры анимации 6

3.6 Объекты прогона 7

3.7 Статистика 8

4. Заключение 8














































1. Постановка задачи


Промоделировать процесс обработки заказов (заявок) в системе РДО.


2. Описание предметной области, сеть Петри

Обработка заявок встречается во многих бизнес-процессах. Рассмотрим процесс на примере. У нас имеется Интернет-магазин. На странице этого магазина, для оформления покупки требуется заполнить определенную форму, представляющую собой в нашем случае заявку. Затем эта заявка отправляется по линии связи на сервер магазина. У сервера есть специальный буфер, в котором хранятся поступающие заявки. Сервер имеет ограниченные ресурсы, поэтому обработка заявки занимает некоторое время. Обработкой заявок занимается программа, которая имеет возможность одновременно обработать определенное число заявок. По этой же причине, имеют место затраты на получение заявки из буфера заявок. После обработки, заявки поступают в буфер, а далее требуется переслать результаты заказчику или записать их на диск. На этом процесс обработки заявок заканчивается. Ниже на рисунке представлена сеть Петри, отражающая заданную модель.











  1. Описание имитационной модели:

3.1 Типы ресурсов

{ Файл объекта типов ресурсов для модели обработки заявок}

$Resource_type Обработка : permanent

$Parameters

Заявок : integer [0..81] = 80 {Общее число заявок}

Очередь1 : such_as Обработка.Заявок = 0 {Число заявок в очереди }

Обрабатываемые : such_as Обработка.Заявок = 0 {Обрабатываемые заявки |

занятые операторы}

Очередь2 : such_as Обработка.Заявок = 0 {обработанные заявки, ожидающие очередь на вывод}

Обработанные : such_as Обработка.Заявок = 0 {Обработанные заявки}

{Регулирование количества обработчиков заявок}

Свободные_обработчики : integer [0..2] = 2

Приходит : integer [0..1] = 1

На_обработку : such_as Обработка.Приходит = 1

Уходит : such_as Обработка.Приходит = 1

обрабатываю : such_as Обработка.Приходит = 1

$End


$Resource_type Заявки : temporary

$Parameters

Состояние : (Поступила, Выбрана, Обработана)

Время_поступления : real

Время_выдачи : real

$End


    1. Ресурсы

{Файл объекта ресурсов для модели обработки заказов}

$Resources

Об : Обработка trace * * * * * * * * * *

$End


Файл ресурсов определяет глобальное состояние нашей модели. Звездочки служат для указания того, что параметр задан по умолчанию. Значения по умолчанию определяются программистом в файле, описывающем Типы ресурсов.


    1. Образцы операций

{ Файл объекта образцов операций для модели системы обработки заказов }

$Pattern Образец_Начальные_установки : operation trace

$Relevant_resources

_обработка : Об Keep Keep

_заявка : Заявки NonExist Create

$Time = 3.0

$Body

_обработка

Choice from _обработка.Приходит = 1 and _обработка.Заявок > 0

first

Convert_begin

Приходит set 0

Заявок set _обработка.Заявок - 1

Очередь1 set _обработка.Очередь1 + 1

Convert_end

Приходит set 1

_заявка

Convert_end

Время_поступления set Time_now

Состояние set Поступила

Время_выдачи set 0.0

$End


$Pattern Образец_Выборка_заявки : operation

$Relevant_resources

_обработка : Об Keep Keep

_заявка : Заявки NoChange Keep

$Time = 4.0

$Body

_обработка

Choice from _обработка.обрабатываю = 1 and _обработка.Очередь1 > 0 and _обработка.Свободные_обработчики > 0

first

Convert_begin

обрабатываю set 0

Очередь1 set _обработка.Очередь1 - 1

Convert_end

Обрабатываемые set _обработка.Обрабатываемые + 1

Свободные_обработчики set _обработка.Свободные_обработчики - 1

обрабатываю set 1

_заявка

Choice from _заявка.Состояние = Поступила

with_min _заявка.Время_поступления

Convert_end

Состояние set Выбрана

Время_выдачи set Time_now

$End


$Pattern Образец_Обработка_заявки : operation

$Relevant_resources

_обработка : Об Keep Keep

_заявка : Заявки NoChange Keep

$Time = 5.0

$Body

_обработка

Choice from _обработка.Обрабатываемые > 0 and _обработка.На_обработку = 1

first

Convert_begin

На_обработку set 0

Очередь2 set _обработка.Очередь2 + 1

Convert_end

На_обработку set 1

Обрабатываемые set _обработка.Обрабатываемые - 1

Свободные_обработчики set _обработка.Свободные_обработчики + 1

_заявка

Choice from _заявка.Состояние = Выбрана

with_min _заявка.Время_выдачи

Convert_end

Состояние set Обработана

$End


$Pattern Образец_Выдача_заявок : operation

$Relevant_resources

_обработка : Об Keep Keep

_заявка : Заявки NoChange Erase

$Time = 3.0

$Body

_обработка

Choice from _обработка.Очередь2 > 0 and _обработка.Уходит = 1

first

Convert_begin

Уходит set 0

Очередь2 set _обработка.Очередь2 - 1

Convert_end

Уходит set 1

Обработанные set _обработка.Обработанные + 1

_заявка

Choice from _заявка.Состояние = Обработана

first

$End



    1. Операции

{ Файл операций для модели системы обработки заказов }

$Operations

Выдача_заявок : Образец_Выдача_заявок

Обработка_заявки : Образец_Обработка_заявки

Выборка_заявки : Образец_Выборка_заявки

Начальные_установки : Образец_Начальные_установки

$End



    1. Кадры анимации

$Frame kadr1

$Back_picture = <255 255 255>order

Show

text [120, 390, 15, 15, <255 255 0>, <0 0 0>, = Об.Заявок ]

text [120, 170, 15, 15, <255 255 0>, <0 0 0>, = Об.Очередь1 ]

text [340, 170, 15, 15, <255 255 0>, <0 0 0>, = Об.Обрабатываемые ]

text [340, 390, 15, 15, <255 255 0>, <0 0 0>, = Об.Свободные_обработчики ]

text [560, 170, 15, 15, <255 255 0>, <0 0 0>, = Об.Очередь2 ]

text [770, 170, 15, 15, <255 255 0>, <0 0 0>, = Об.Обработанные ]

$End


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




    1. Объект прогона

Model_name = my {Имя модели}

Resource_file = my {имя объекта ресурсов}

OprIev_file = my {имя объекта операций}

Results_file = my {имя объекта результатов}

Trace_file = my {имя объекта трассировки}

Frame_file = my {имя объекта кадров}

Frame_number = 1 {номер кадра}

Show_mode = Animation {режим отображения при запуске модели}

Show_rate = 10000.0 {временной масштаб отображения}


Terminate_if Об.Обработанные >= 80 {Условие окончания прогона}




    1. Статистика и результаты

$Results

Время_окончания_работы : get_value Time_now

Колво_заявок_ожид_исп : watch_state Об.Очередь1 > 5

Кол_заявок_ожид_выдачи : watch_state Об.Очередь2 > 5

$End


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

Results_file = my.pmv Mon May 08 19:00:08 2006

Run_file = my.smr

Model_name = my

Resource_file = my.rss

OprIev_file = my.opr


$Changes



$Status = NORMAL_TERMINATION

$Result_values 0 409 147.262 9998.51

EventCount 642 1.56968 4.35958

OperRuleCheckCounter 2084 5.09535 14.1516

AExpCalcCounter 800 1.95599 5.43249

BExpCalcCounter 9300 22.7384 63.1527


Время_окончания_работы 409

Колво_заявок_ожид_исп FALSE 4 0.572127 53366 0 231

Кол_заявок_ожид_выдачи FALSE 5 0.684597 75090 0 274


Можем сделать следующий вывод:

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


4. Заключение

В данной работе познакомились с системой моделирования РДО. Было произведено моделирование Системы обработки заказов (заявок). Произведено описание модели, как на уровне описания, так и на языке РДО. Была получена статистика и по ней сделаны выводы.

3




Случайные файлы

Файл
129244.rtf
177760.rtf
86060.rtf
24509-1.rtf
112735.rtf




Чтобы не видеть здесь видео-рекламу достаточно стать зарегистрированным пользователем.
Чтобы не видеть никакую рекламу на сайте, нужно стать VIP-пользователем.
Это можно сделать совершенно бесплатно. Читайте подробности тут.