Лабораторные работы (2010) (РДО_Отчет)

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

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

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













Отчет по лабораторной работе №3

По курсу: «Теория Игр и Исследование Операций»







Выполнила:

Студентка группы А-13-06

Смирнова Александра

Проверил:

Старший преподаватель


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















Москва 2010

Оглавление

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

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

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

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

3.2. Объект ресурсов 4

3.3. Объект образцов операций 4

3.4. Объект операций. 7

3.5. Константы 7

3.6. Последовательности 7

3.7. Функции 8

3.8. Анимация 9

3.9. Статистика 11

3.10. Прогон. 12

































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



Моделирование с помощью системы интеллектуального имитационного моделирования РДО.

Моделирование ситуации «Занятия в тренажерном зале»



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



Клиенты приходят в тренажерный зал. В тренажерном зале работает один тренер. Клиенты выстраиваются в очередь, а тренер последовательно обслуживает каждого клиента. Он подводит его к одному из тренажеров по выбору клиента и объясняет суть упражнения. Тренер может взять перерыв, для этого пользователь должен нажать пробел (‘space’). Для выхода из режима отдыха производится аналогичная операция.



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



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



(файл .rtр)

Тип ресурсов Залы.

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

$Resource_type Залы : permanent

$Parameters

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

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

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

$End

Тип ресурсов Клиенты.

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



$Resource_type Клиенты : temporary

$Parameters

Цель : (вел, бег, штанга)

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

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

$End

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

Тип ресурсов является постоянным (не может быть уничтожен или создан во время прогона) и содержит информацию о состоянии тренера – нахождение около велотренажера, беговой дорожки или штанги. Если клиентов нет, тренер находится около гантелей.



$Resource_type Тренеры : permanent

$Parameters

Состояние : (вел, бег, штанга, гантели) = гантели

$End



    1. Объект ресурсов



В программе существует 2 объекта ресурсов – зал и тренер.

$Resources

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

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

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


Тренер : Тренеры гантели //Состояние = гантели

$End



    1. Объект образцов операций



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

Это событие происходит через интервал времени распределенный по экспонециальному интервалу с параметром 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.9)

$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.7, 0.4)

$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




    1. Объект операций.



Описываются все операции, имеющие место в СДС.

$Operations

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

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

Работа_тренера : Образец_Работа_тренера

Отдых : Образец_Отдых 'SPACE'

$End



    1. Константы



Константа – количество обслуженных клиентов = 15. Когда число обслуженных покупателей станет равно 15, рабочий день тренажерного зала закончится.

$Constant

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

$End



    1. Последовательности



Равномерный интервал

$Sequence Равномерный_интервал : integer[1..3]

$Type = uniform

$End


Последовательное перечисление

$Sequence Посл_переч : integer[1..3]

$Type = enumerative

$Body

1 2 3 3 2 1 1 2 1 3 2 3 3 3 1 2 1 3 1 3 2 3 1 2 3 1 1 1 2 1 3 3 2 3 1

$End


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

$Type = by_hist

$Body

1 1 0.333333

2 2 0.333333

3 3 0.333334

$End


Экспоненциальный интервал

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

$Type = exponential 123456789

$End


Нормальное распределение

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

$Type = normal 234567891

$End


    1. Функции



Выбор тренажера клиентом

$Function Тренажер : such_as Клиенты.Цель

$Type = table

$Parameters

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

$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


    1. Анимация

Поле:











Пример анимации:

Работа зала:

Перерыв: