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

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

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

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






Отчет

по Лабораторной работе №3

по дисциплине:

«Теория игр и исследование операций»

Студент: Истомин Д.С.

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

Проверили: Еремеев А.П.

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









Москва 2009 г.

Содержание:


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

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

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

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

3.2.Ресурсы………………………………………………………...4

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

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

3.5.Операции……………………………………………….……..12

3.6.Анимация……………………………………………….…….12

3.8.Статистика……………………………………………………14

3.7.Прогон………………………………………………….……..14

































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


Реализовать в системе имитационного моделирования РДО проезд машины через железнодорожный переезд.


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


В системе присутствуют 5 объектов: машина, поезд, рабочий, светофор, шлагбаум. Поезд едет по рельсам слева направо. Когда он доезжает до первой условной точки загорается желтый сигнал светофора. Рабочий, увидев этот сигнал, выходит из будки. Когда поезд доезжает до второй условной точки загорается красный сигнал светофора и рабочий опускает шлагбаум. Поезд, доехав до платформы, ждет некоторое время, а затем уезжает. При этом загорается зеленый сигнал светофора и рабочий, опустив шлагбаум, уходит обратно в будку. По дороге в это время едет машина снизу-вверх. Если шлагбаум опущен и автомобиль доехал до него, то он ждет, пока рабочий его поднимет, а затем продолжает ехать дальше. В других ситуациях автомобиль спокойно едет.


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


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

В модели присутствует 6 типов ресурсов: Поезда, Машины, Рабочие, Шлагбаумы, Светофоры, Игры. Все эти ресурсы являются постоянными.


Ресурс Поезда – содержит информацию о поезде: его текущее состояние, скорость, длительность остановки на платформе и текущую позицию.

$Resource_type Поезда: permanent

$Parameters

Состояние : (Едет_до, Стоит, Едет_после) = Едет_до

Скорость : integer = 1

Длит_ост : integer = 50

Позиция : integer = -300

$End


Ресурс Машины – содержит информацию машине: его текущее состояние, скорость и текущую позицию.


$Resource_type Машины: permanent

$Parameters

Состояние : (Едет_до, У_линии, Стоит, Едет_после) = Едет_до

Скорость : integer = 1

Позиция : integer = 480

$End



Ресурс Рабочие – содержит информацию о текущем состоянии рабочего.


$Resource_type Рабочие: permanent

$Parameters

Состояние : (В_будке, На_улице) = В_будке

$End


Ресурс Шлагбаумы – содержит информацию о текущем состоянии шлагбаума.


$Resource_type Шлагбаумы: permanent

$Parameters

Состояние : (Поднят, Опущен) = Поднят

$End


Ресурс Светофоры – содержит информацию о текущем состоянии светофора.


$Resource_type Светофоры: permanent

$Parameters

Состояние : (Красный, Желтый, Зеленый) = Зеленый

$End


Ресурс Игры – этот ресурс отражает общую информацию: кто сейчас ходит, состояние игры и сколько машин преодолело переезд.


$Resource_type Игры: permanent

$Parameters

Чей_ход : (Машина, Поезд, Рабочий, Задержка)

Состояние : (Идет_игра, Пауза, Игра_окончена)

Сколько_проехало : integer

$End


Ресурсы.


В модели используется 6 ресурсов: Игра, Машина, Поезд, Рабочий, Шлагбаум, Светофор. Все они описаны в предыдущем разделе и представляют единственные экземпляры каждого из типов ресурсов


$Resources

Игра : Игры Машина Идет_игра 0

Машина : Машины * 5 *

Поезд : Поезда * 5 * *

Рабочий : Рабочие *

Шлагбаум : Шлагбаумы *

Светофор : Светофоры *

$End





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


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


1) Образец_неизвестно – правило которое не меняет ничего, но необходимо для того, чтобы игра ставилась на паузу.


$Pattern Образец_неизвестно : rule

$Relevant_resources

игра : Игра NoChange

$Body

игра

Choice NoCheck

first

$End


2) Образец_машина_едет – эта операция передвигает машину вперед, если выполнены соответствующие условия и передает следующий ход поезду.


$Pattern Образец_машина_едет : operation trace

$Relevant_resources

игра : Игра Keep NoChange

машина : Машина Keep Keep

$Time = 1.0

$Body

игра

Choice from Игра.Состояние = Идет_игра and Игра.Чей_ход = Машина and

Игра.Сколько_проехало < Макс_кол_маш

first

Convert_begin

Чей_ход set Поезд

машина

Choice from Машина.Позиция <= 480 and

Машина.Позиция >= -40 and

Машина.Состояние <> Стоит

first

Convert_begin

Позиция set машина.Позиция - машина.Скорость

Состояние set Определить_состояние_машины(машина.Позиция)

Convert_end


$End


3) Образец_может_тронуться – эта операция нужна для случая, если машина находится у стоп-линии. Если шлагбаум поднят она едет, иначе стоит. Ход также передается поезду.


$Pattern Образец_может_тронуться : operation trace

$Relevant_resources

игра : Игра Keep NoChange

шлагбаум : Шлагбаум Keep Keep

машина : Машина Keep Keep

$Time = 150.0

$Body

игра

Choice from Игра.Состояние = Идет_игра and Игра.Чей_ход = Машина and

Игра.Сколько_проехало < Макс_кол_маш

first

Convert_begin

Чей_ход set Поезд

шлагбаум

Choice NoCheck

first

Convert_begin

Convert_end

машина

Choice from Машина.Позиция = Стоп_линия and Машина.Состояние <> Едет_после

first

Convert_begin

Состояние set Определить_состояние_машины2(шлагбаум.Состояние)

Convert_end

$End


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


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

$Relevant_resources

игра : Игра Keep NoChange

поезд : Поезд Keep Keep

светофор : Светофор Keep Keep

$Time = 150.0

$Body

игра

Choice from Игра.Состояние = Идет_игра and

Игра.Сколько_проехало < Макс_кол_маш and

Игра.Чей_ход = Поезд

first

Convert_begin

Чей_ход set Рабочий

поезд

Choice from Поезд.Позиция >= -300 and

Поезд.Позиция < 640 and

Поезд.Состояние <> Стоит

first

Convert_begin

Позиция set поезд.Позиция + поезд.Скорость

Состояние set Определить_состояние_поезда(поезд.Позиция)

Convert_end

светофор

Choice NoCheck

first

Convert_begin

Состояние set Определить_состояние_светофора(поезд.Позиция)

Convert_end

Состояние set Определить_состояние_светофора(поезд.Позиция)

$End


5) Образец_можно_тронуться – эта операция нужна для ситуации, когда поезд доехал до остановки. Она отсчитывает, какое время нужно еще стоять поезду и когда оно закончится, то поезд уезжает. Ход передается рабочему.


$Pattern Образец_можно_тронуться : operation trace

$Relevant_resources

игра : Игра Keep NoChange

поезд : Поезд Keep Keep

$Time = 10.0

$Body

игра

Choice from Игра.Состояние = Идет_игра and

Игра.Сколько_проехало < Макс_кол_маш and

Игра.Чей_ход = Поезд

first

Convert_begin

Чей_ход set Рабочий

поезд

Choice from Поезд.Состояние = Стоит

first

Convert_begin

Длит_ост set поезд.Длит_ост - 1

Состояние set Определить_состояние_поезда2(поезд.Длит_ост)

Convert_end

$End


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


$Pattern Образец_работа : operation trace

$Relevant_resources

игра : Игра Keep NoChange

светофор : Светофор NoChange NoChange

рабочий : Рабочий Keep Keep

шлагбаум : Шлагбаум Keep Keep

$Time = 150.0

$Body

игра

Choice from Игра.Состояние = Идет_игра and

Игра.Чей_ход = Рабочий and

Игра.Сколько_проехало < Макс_кол_маш

first

Convert_begin

Чей_ход set Машина

светофор

Choice NoCheck

first

рабочий

Choice NoCheck

first

Convert_begin

Состояние set Определить_состояние_рабочего(светофор.Состояние)

Convert_end

шлагбаум

Choice NoCheck

first

Convert_begin

Состояние set Определить_состояние_шлагбаума(светофор.Состояние)

Convert_end

Состояние set Определить_состояние_шлагбаума(светофор.Состояние)

$End


7) Образец_изменение_паузы – клавиатурная операция, которая ставит игру на паузу.


$Pattern Образец_изменение_паузы : keyboard trace

$Relevant_resources

игра : Игра Keep NoChange

$Time = 0.1

$Body

игра

Choice NoCheck

first

Convert_begin

Состояние set Определить_состояние_игры(игра.Состояние)

$End


8) Образец_заново_машина – эта операция предназначена для случая, если машина доехала до конца и нужно запустить его заново. Также увеличивается количество машин пройденных переезд. Ход передается Поезду.


$Pattern Образец_заново_машина : operation trace

$Relevant_resources

игра : Игра Keep Keep


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

Файл
145497.doc
10164-1.rtf
45883.rtf
145977.doc
184857.doc




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