Лабораторные работы (2011) (Отчет лаб 3)

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

Московский Энергетический Институт

(Технический Университет)





Отчет

к лабораторной работе №3

По предмету: Теория игр и исследование операций








Выполнила: Крамм Е. М.

А-13-07

Преподаватель: Еремеев А.П.

Гречкина П.В.
















Москва 2011г.




Оглавление

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

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

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

Типы ресурсов. 3

Ресурсы. 4

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

Константы, функции, последовательности 6

Операции. 7

Анимация. 7

Статистика 9

Прогон. 10

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

Список литературы. 10





























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

На языке программирования РДО (язык имитационного моделирования) необходимо реализовать какую-либо задачу, включающую в себя модель принятия решения.

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

В библиотеку приходят клиенты, желающие взять синюю или красную книгу. Если в данный момент у прилавка уже есть клиент, то вошедший встает в очередь. В зависимости от желания клиента работник прилавка (иногда для удобства будем называть его «продавец» ) обращается к полке либо с синими, либо с красными книгами. В данной модели будем считать, что книги в библиотеке не кончаются. Пользователь может прервать работу библиотеки, нажав на кнопку «SPACE». В это время клиенты не обслуживаются. Вернуться в исходное состояние можно также, нажав на эту клавишу.

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

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

В модели присутствует 3 типа ресурсов: библиотеки, продавцы, клиенты. Первые два являются постоянными, а третий - временным.


Ресурс библиотеки – содержит информацию о библиотеке : длину очереди, количество обслуженных покупателей и рабочее состояние.


$Resource_type библиотека: permanent

$Parameters

Количество_клиентов_в_очереди : integer

Состояние: (работа, перерыв)

Количество_обслуж_клиентов : integer

$End


Ресурс продавцы – содержит информацию о текущей занятости продавца. Если в библиотеке перерыв, то работник прилавка не работает.


$Resource_type продавцы : permanent

$Parameters

Состояние : (красные, синие, касса) = касса

$End


Ресурс клиенты – содержит информацию о посетителях: цели их прихода в библиотеку, состояние и время прихода в библиотеку.

$Resource_type клиенты : temporary

$Parameters

Цель : (красные, синие)

Состояние : (в_очереди, обслуживание)

Время_прихода : real = 0.0

$End

Ресурсы.


В модели используется 2 ресурса: библиотека и продавец.


$Resources

библиотека : библиотека trace 0 работа 0 // Количество_клиентов_в_очереди=0,

// Состояние=работа,

// Количество_обслуж_покупателей=0


продавец : продавцы касса // Состояние= касса

$End

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


В программе используются 1 нерегулярное событие, 1 клавиатурная операция и 2 операции.


Образец_Встать_в_очередь – нерегулярное событие.

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


$Pattern Образец_Встать_в_очередь : irregular_event trace

$Relevant_resources

библиотека1 : библиотека Keep

клиент : клиенты Create

$Time = Экспоненциальный_интервал(0.8)

$Body

клиент

Convert_event

Состояние set в_очереди

Цель set Желание(Равном)

Время_прихода set Time_now

библиотека1

Convert_event

Количество_клиентов_в_очереди set библиотека1.Количество_клиентов_в_очереди + 1

$End


Образец_Перерыв – клавиатурная операция

Образец, описывающий приостановление/возобновление работы библиотеки. При нажатии клавиши в библиотеке объявляется перерыв. При повторном нажатии – работа возобновляется.


$Pattern Образец_Перерыв: keyboard

$Relevant_resources

библиотека1 : библиотека Keep Keep

$Time = Обсл_ост(0.6)

$Body

библиотека1

Choice NoCheck

first

Convert_begin

Состояние set Изм_перерыв(библиотека1.Состояние)

Convert_end

$End


Образец_выгнать_клиентов – операция

Эта операция предназначена для удаления из модели клиентов, которые пришли в библиотеку во время перерыва.


$Pattern Образец_выгнать_клиентов : operation

$Relevant_resources

библиотека1 : библиотека Keep Keep

клиент : клиенты NoChange Erase

$Time = 0.0

$Body

библиотека1

Choice from библиотека1.Состояние = перерыв and библиотека1.Количество_клиентов_в_очереди > 0

first

Convert_begin

Количество_клиентов_в_очереди set 0

Convert_end

Количество_клиентов_в_очереди set 0

клиент

Choice from клиент.Состояние = в_очереди and библиотека1.Состояние = перерыв

first

$End


Образец_Работа_продавца – операция

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


$Pattern Образец_Работа_продавца : operation

$Relevant_resources

клиент : клиенты Keep Erase

библиотека1 : библиотека Keep Keep

Продавец1 : продавцы Keep Keep


$Time = Нормальное_распределение_обслуживания(0.4, 0.2)

$Body

библиотека1

Choice from библиотека1.Состояние = работа and библиотека.Количество_клиентов_в_очереди > 0

first

Convert_begin


Convert_end

Количество_клиентов_в_очереди set библиотека.Количество_клиентов_в_очереди - 1

Количество_обслуж_клиентов set библиотека.Количество_обслуж_клиентов + 1

клиент

Choice from клиент.Состояние = в_очереди and библиотека1.Состояние = работа

with_min клиент.Время_прихода

Convert_begin

Состояние set обслуживание

Продавец1

Choice from Продавец1.Состояние = касса and библиотека1.Состояние = работа

first

Convert_begin

Состояние set клиент.Цель

Convert_end

Состояние set касса

$End


Константы, функции, последовательности


Используется одна константа – максимальное число обслуживаемых клиентов.

$Constant

Макс_кол_пос : such_as библиотека.Количество_обслуж_клиентов = 15

$End


3 последовательности:

равномерный интервал, экспоненциальный интервал, нормальное распределение.


$Sequence Равном : integer[1..2]

$Type = by_hist

$Body

1 1 0.5

2 2 0.5

$End


$Sequence Экспоненциальный_интервал : real

$Type = exponential 123456789

$End


$Sequence Нормальное_распределение_обслуживания : real [0.0..1.0]

$Type = normal 234567891

$End


3 функции:

функция «Желание» определяет цель посетителя (красная либо синяя книга ).


$Function Желание : such_as клиенты.Цель

$Type = table

$Parameters

Цель1 : integer [1..2]

$Body

красные синие

$End


функция «Обсл_ост» необходима, чтобы при остановке библиотеки на перерыв, уже стоящие в очереди клиенты все-таки были обслужены.

$Function Обсл_ост : real

$Type = algorithmic

$Parameters

пар : real

$Body

Calculate_if 2 > 1 Обсл_ост = пар * библиотека.Количество_клиентов_в_очереди

$End


функция «Изм_перерыв»: изменение состояния библиотеки (перерыв или возобновление работы).


$Function Изм_перерыв : such_as библиотека.Состояние

$Type = algorithmic

$Parameters

пар : such_as библиотека.Состояние

$Body

Calculate_if пар = работа Изм_перерыв = перерыв

Calculate_if пар = перерыв Изм_перерыв = работа

$End


Операции.


Используются 4 образца:

Образец_Встать_в_очередь, Образец_выгнать_клиентов, Образец_Работа_продавца, Образец_Перерыв, которые описаны в разделе образцы операции.


$Operations

Встать_в_очередь : Образец_Встать_в_очередь

Выгнать : Образец_выгнать_клиентов

Работа_продавца : Образец_Работа_продавца

Перерыв : Образец_Перерыв 'SPACE'

$End


Анимация.

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

Вид библиотеки во время работы:


Вид библиотеки во время перерыва:




$Frame Кадр_1

$Back_picture = <255 255 255> фон

Show

text [180, 40, 150, 30, <255 255 255>, <0 0 0>, 'Состояние продавца:']

text [100, 300, 140, 15, <255 255 255>, <0 0 0>, 'Сейчас в очереди ']

text [250, 300, 20, 15, <255 255 255>, <0 0 0>,библиотека.Количество_клиентов_в_очереди]

text [100, 350, 140, 15, <255 255 255>, <0 0 0>, 'Всего обслужено']


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

Файл
026-0029.doc
20617.rtf
28840-1.rtf
70318.rtf
139941.rtf




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