Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответник по Урусову.docx
Скачиваний:
104
Добавлен:
09.02.2015
Размер:
648.91 Кб
Скачать

17. Язык Arena. Блок проверки и ветвления. Примеры использования

По структуре алгоритмы разделяют на линейные, разветвляющиеся и циклические.

При составлении схем алгоритмов часто возникает необходимость проведения анализа исходных данных или промежуточных результатов вычислений и определения дальнейшего порядка выполнения вычислительного процесса в зависимости от результатов этого анализа. Алгоритмы, в которых в зависимости от выполнения некоторого логического условия происходит разветвление вычислений по одному из нескольких возможных направлений, называют разветвляющимися. Подобные алгоритмы предусматривают выбор одного из альтернативных путей продолжения вычислений. Каждое возможное направление вычислений называется ветвью. Логическое условие называют простым, если разветвляющийся процесс имеет две ветви, и сложным, -если процесс разветвляется на три и более ветви.

Любое сложное логическое условие может быть представлено в виде простых.

Рассмотрим пример разветвляющегося алгоритма с простым логическим условием.

Пример 1.2. Даны два числа а и b.

 

Найти

 

Очевидно, что для определения ветви , по которому необходимо производить процесс вычисления значения х, достаточно проверить выполнение одного из условий, например а>b. Если условие а>b не выполняется, то очевидно и без дополнительной проверки, что будет выполнено условие а < b. Следовательно, вариант схемы алгоритма будет выглядеть следующим образом (рис 1).

Рис 1. Схема простого разветвляющегося алгоритма

В “Арене” за блок ветвления и проверки отвечает Decide (в Basic process).

Поле: Type – тип (по условию вероятность) [1) 2way by chance; 2) 2way by condition; 3) Nway by chance; 4) Nway by condition]

Condition – условия/вероятности

If – тип сравниваемого

Named – имя сравниваемого

Is– условие выполнения

Value – условие выполнения

При выборе Type номер:

  1. Percent true (%)

  2. If(Entity type)/ Named (Entity 1)

  3. Percentages (Add, Edit, Delete list)

  4. Conditions -//-

From Help of Arena: This module allows for decision-making processes in the system/ it include options to make decisions based on one or more conditions (e.g., if entity type is Gold Card) or based on ie or more probabilities (e.g. 75% true; 25% false), variable values (e.g., Number Denied), the entity type, or an expression(e.g. NQ(ProcessA.Queue)

Decide — ветвление

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

  • Name — имя блока.

  • Type — тип ветвления:

    • 2-way by Chance — вероятностное ветвление, выбор одной из двух ветвей. В поле Percent True записывается вероятность перехода транзакта на ветвь True (в процентах);

    • 2-way by Condition — условное ветвление, выбор одной из двух ветвей. В поле If записывается то, что подлежит проверке:

      • Variable — переменная. Определяется в масштабах всей модели;

      • Attribute — атрибут. Определяется в масштабах конкретного транзакта;

      • Entity Type — тип сущности, к которой относится транзакт. Если тип сущности совпадает с указанным в поле Named, то условие считается выполненным;

      • Expression — выполнение условия определяется выражением, записываемым в поле Expression.

    • N-way by Chance — вероятностное ветвление, выбор одной из N ветвей. В поле Percentages с помощью кнопок Add, Edit и Delete заносятся вероятности перехода в каждую из ветвей. Вероятность перехода на ветвь Else равна 100% – Sum, где Sum — сумма всех заданных значений вероятностей перехода.

    • N-way by Condition — условное ветвление, выбор одной из N ветвей. В поле Conditions заносятся условия переходов в каждую из ветвей. Набор условий в этом случае тот же, что и для условного ветвления с 2 ветвями. Транзакт переходит в ветвь Else, если ни одно из условий не выполнено.

Все числовые значения могут быть как константами, так и выражениями.