Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс лекций МТС (Д,ОБ) очное заочное.docx
Скачиваний:
12
Добавлен:
01.07.2025
Размер:
788 Кб
Скачать
☆
    1. Некоторые синтаксические конструкции языка моделирования системы истра для создания операций

Каждая операция находится в отдельной секции и может состоять из одного или нескольких вариантов.

Разделителем между вариантами служит строка с записью ВАРИАНТ.

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

Каждая запись занимает одну строку. Перед любой записью может находиться метка, которая позволяет ссылаться на эту запись из других записей, находящихся ниже. Ссылка на нижестоящие записи запрещена. Метка имеет вид:

:@метка

Текстовая переменная @метка может состоять из больших и маленьких русских и латинских букв, цифр, а также символа '@' и символа подчеркивания '_'. Концом метки считается символ пробела. Максимальная длина метки - 12 символов, не считая двоеточия. Если задана метка большей длины, то программа автоматически отбрасывает все символы после двенадцатого. Примеры меток:

:Метка_один

:Label123

:21

:@Train

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

      1. Предельное время задержки операции

Предельное время задержки задается при помощи строки:

ПРЕДЕЛЬНАЯ ЗАДЕРЖКА = t

где t - время предельной задержки.

В каждой операции должна быть одна (и только одна!) такая запись, она может находиться в любом месте секции.

Метка перед этой записью не воспринимается программой.

      1. Действия с логическими элементами

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

TYPE n : TIME1 + TIME2

Где n - номер логического элемента,

TYPE - задает тип логического элемента и может принимать следующий вид:

БА - базисный элемент,

БА(Ф) - базисный фиктивный,

ПР - промежуточный,

ПР(С) - промежуточный специальный,

Конструкция TIME1 задает время сдвига, а конструкция TIME2 - время занятости элемента. Они могут принимать следующий вид:

t - когда время задано точно,

t1/t2 LAW - когда время задается как случайная величина,

t1 и t2 - минимальное и максимальное возможное значение времени.

Конструкция LAW указывает закон распределения и может принимать одну из следующих четырех форм:

РАВН () - равномерное распределение,

НОРМ(М m, С s) - нормальный закон (Гаусса), с математическим ожиданием m и среднеквадратичным отклонением s,

ПУАС(И i) - закон Пуассона с интенсивностью i,

ЭРЛН(Е e, И i) - закон Эрланга с параметром Эрланга e и интенсивностью i. Закон Эрланга – частный случай гамма - распределения, когда параметр закона (альфа) – целое положительное число.

Параметры внутри скобок можно менять местами, т.е. конструкции

НОРМ(М100,С10) и НОРМ(С10,М100) эквивалентны.

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

ЭРЛН(Е4,И0.252)

Существуют следующие ограничения на величину параметров:

для НОРМ: 1 <= m <= 12000 , 1 <= s <= 400;

для ПУАС: 1 <= i <= 700;

для ЭРЛН: 1 <= e <=100 , 0.001 <= i <= 2.

Время выбирается на промежутке от t1 до t2 по следующему алгоритму. Для каждой записи с помощью датчика случайных чисел выбрасывается величина, задаваемая конструкцией LAW и проверяется, попадает ли она в промежуток между t1 и t2. Если не попадает, то вычисление случайной величины повторяется, пока она на попадет в требуемые границы.

Пример:

ПРЕДЕЛЬНАЯ ЗАДЕРЖКА=1440

БА1:0+5/10РАВН() * Перегон

БУ11=0+50

Ф80<=7

Ф90<=0

БУ2+1

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

TYPE n : TIME1 + [@метка1 {+ @метка2 {+...}}]

В этом случае конструкции TYPE и TIME1 имеют то же значение и вид, что и в вышеописанном случае, за исключением того, что использование фиктивных элементов не разрешено. Время сдвига вычисляется как сумма времен сдвига в строчках, соответствующих меткам, стоящим в квадратных скобках. Эти метки, очевидно, должны соответствовать строкам, описывающим действия с логическими элементами.

Пример:

БА1:1+5

:m1 ПР(С)3:5+2/4РАВН()

:Метка БА(Ф)2:5/15ПУАС(И10)+5/15ПУАС(И10)

ПР4:15/25НОРМ(С4,М20)+[m1+Метка]