Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

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






Программа модели. ; Модель разгрузки транспортов





; Модель разгрузки транспортов

; Задание исходных данных

IntTp EQU 720; Средний интервал поступления транспортов

MOTip EQU 6; Матожидание типов автомобилей в транспорте

SOTip EQU 1; Стандартное отклонение типов автомобилей

MatA EQU 11; Матожидание автомобилей одного типа

SOtkA EQU 2; Стандартное отклонение автомобилей одного типа

KolPun EQU 10; Количество пунктов выгрузки

VrMod EQU 1440; Время моделирования

; Определение функций и булевых переменных

SrVrA FUNCTION P3,D10; Среднее время выгрузки

1,8/2,10/3,12/4,7/5,6/6,9/7,11/8,5/9,13/10,10

TipAvt FUNCTION RN64,C2; Число типов автомобилей

0,1/1,7

; Сегмент имитации поступления и обработки сообщений

GENERATE (Exponential(33,0,IntTp)); Источник транспортов

SAVEVALUE 1,0; Обнуление счетчика

ASSIGN 5,AC1; Абсолютное модельное время входа транспорта

ASSIGN 2,(INT(Normal(77,MOTip,SOTip)-1));Число типов

SPLIT *2; Транзактов - по числу типов автомобилей

ASSIGN 2+,1; Запомнить число типов автомобилей

ASSIGN 4,(INT(Normal(55,MatA,SOtkA)-1));Автомобили

SPLIT *4; Транзактов - по числу автомобилей

ASSIGN 4+,1; Запомнить число автомобилей одного типа

TEST L X1,KolPun,Met1; Есть свободные пункты выгрузки?

SAVEVALUE 1+,1

Met2 SELECT MIN 3,1,KolPun,,FR; Выбор пункта с min загрузкой

TEST NE P3,0,Met1; Есть пункты с min загрузкой?

QUEUE P3; Встать в очередь

SEIZE P3; Занять пункт выгрузки

DEPART P3; Покинуть очередь

ADVANCE (Exponential(73,0,FN$SrVrA)); Выгрузка

RELEASE P3; Освободить АРМ

UNLINK PunSb,Met2,1; Автомобиль на выгрузку

ASSEMBLE *4; Собрать автомобили одного типа

ASSEMBLE *2; Собрать автомобили всех типов

ASSIGN 6,AC1; Время выхода транспорта

SAVEVALUE VrVigS+,(P6-P5); Суммарное время выгрузки

VigTr TERMINATE; Выгруженные транспорта

Met1 LINK PunSb,FIFO; Автомобили, ожидающие выгрузки

; Сегмент задания времени моделирования

GENERATE VrMod TEST NE N$VigTr,0,Met3

SAVEVALUE VrVig,(X$VrVigS/N$VigTr); Среднее время выгрузки

Met3 TERMINATE 1

Замысел построения модели заключается в следующем. Блок GENERATE имитирует поступление транзактов. Один транзакт - один транспорт. Затем случайным образом определяется количество типов автомобилей в транспорте и заносится в параметр 2 транзакта. Исходный (порождающий) транзакт - транспорт копируется блоком SPLIT и результат копирования - число автомобилей различных типов в прибывшем транспорте копируется вторым блоком SPLIT. Результат копирования - число транзактов, равное числу автомобилей в транспорте. Число автомобилей одного типа заносится в параметр 4 всех транзактов, имитирующих автомобили данного типа.

Далее первые десять транзактов-автомобилей (по числу пунктов выгрузки) поступают на блок SELECT, остальные - в список пользователя с именем PunSb. По мере освобождения пунктов выгрузки из списка пользователя выводятся транзакты и направляются на блок SELECT с меткой Met2. Результат работы блока SELECT - номер пункта выгрузки с минимальным коэффициентом загрузки заносится в параметр 3 вошедшего транзакта. Если результатом поиска блока SELECT является P3=0, т. е. номер нужного блока не найден, то транзакт блоком TEST снова отправляется в список пользователя. При успешном поиске транзакт занимает соответствующий пункт выгрузки.

Разгруженные автомобили первым блоком ASSEMBLE сначала собираются по каждому типу автомобилей отдельно, а вторым блоком ASSEMBLE - по всем типам.

При входе транзакта-транспорта в модель и выходе из нее в параметры 5 и 6 записывается соответствующее модельное время. Оно используется для расчета времени разгрузки транспорта. Суммарное время разгрузки всех транспортов накапливается в ячейке VrVigS.

Для работы с GPSS-моделью можно создать в какой-либо другой системе программирования, например, Delphi, интерфейс, который должен позволять осуществлять ввод исходных данных и вывод результатов моделирования. Например, в приведенной программе модели разгрузки транспортов вводить посредством интерфейса характеристики, для ввода которых используется команда EQU, а также среднее время выгрузки из одного автомобиля. При этом, естественно, необходимо разработать процедуры, формирующие в Delphi соответствующие строки программы GPSS-модели. Сама GPSS-программа также потребует модификации, для проведения которой нужно будет использовать команду INCLUDE и рассмотренные в п. 8.1 блоки OPEN, CLOSE, READ, WRITE для работы с текстовыми объектами и потоками данных.







Date: 2015-07-17; view: 468; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.008 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию