5. Основные конструкции, используемые в Easy Flow

5.2 Последовательная композиция

Последовательная композиция реализуется тогда, когда для запуска определённого шага необходимо завершение одного или нескольких других шагов. Чаще всего для запуска шага требуется результат запуска одного из других шагов. Но иногда необходимо организовать WF так, чтобы запуск конкретного шага начинался только после завершения работы другого шага. При этом, результаты работы другого шага не нужны.

В последнем случае в первой строке описания шага WF обязательна опция after, после которой указывается имя шага (листинг 10). Такую зависимость шага от другого шага называют явной.

Листинг 10. Формальное описание явно зависимого шага

step <имя шага>

runs <wsnp> <имя пакета>[{.<имя класса>}][.<имя метода>]

<wsnp> after <wsnp> <имя предыдущего шага>

Например, заголовочная строка шага «step NetCreate runs CNM after DataPrepare», показывает, что шаг NetCreate запускается только после выполнения шага DataPrepare. Такие два шага на схеме связываются сплошной стрелкой, которая входит в шаг NetCreate.

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

Для решения данной задачи сначала необходимо получить информацию о распределении степеней узлов в виде набора относительных частот, сумма которых равна единице. Здесь каждой степени вершины соответствует своя частота. Такую задачу можно решить с помощью пакета statnet, который на вход принимает файл с информацией о сети и выдаёт файл со строкой относительных частот, разделённых пробелом.

Далее на основе полученных относительных частот необходимо сгенерировать сеть, которая будет содержать существенно большее число узлов – 10000. Мы уже знаем, что такую задачу решает пакет CNM.

И, наконец, нужно промоделировать распространение слухов в полученной большой сети. Данную задачу решает пакет ISM, который описан в приложении 1. На вход он получает файл с информацией о сети, а на выходе – пошаговый отчёт о числе узлов, которые не «знают» о слухе, получили слух и его распространяют и знают о слухе, но его не распространяют.

Рассмотрим, каким образом на текущем шаге определяется «подбор» результатов одного из предыдущих шагов. Формат такого действия представлен в листинге 11.

Листинг 11. Формальное описание шага, зависимого по данным

<имя параметра шага> <wsns>=<wsns>

<имя другого шага>.Result.outs<LSQ>”имя выходного файла”<RSQ>,

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

Скрипт композитного приложения, решающий задачу моделирования сетей представлен в листинге 12.

Листинг 12. Композитное приложение моделирования распространения информации

require realNetwork;

require SpreadConfFile;

step FreqCaculation runs statnet (

inDataFile = realNetwork

);

step NetworkGennerating runs cnm(

in_format = "alt",

NodesCount = 10000,

inData = FreqCaculation.Result.outs["output.out"]

);

step RumorSpreadModelling runs ism (

inDataFile = NetworkGennerating.Result.outs["output.dat"],

inConfigFile = SpreadConfFile

);

Схематически скрипт представлен на рис. 5.2.

В самом начале скрипта приведена файловая переменная SpreadConfFile, через которую передаются необходимые конфигурационные параметры распространения информации в пакет ISM.

Пунктирные стрелки между шагами указывают на зависимость запуска шагов по данным.

Листинг 12. показывает, что при наличии данных реальной сети и конфигурации пакета ISM разработка приложения моделирования распространения информации в сетях с помощью CLAVIRE не сложнее, чем написание программы расчёта объёма призмы по площади основания и высоте.


Рис. 5.2. Схема композитного приложения моделирования распространения информации в сетях

По данному методическому материалу Вы можете найти видеоролик в разделе"Электронные тьюторы".

Для скачивания документа в формате SCORM необходимо обладать правами привилегированного пользователя.





Наш Адрес

НИИ НКТ НИУ ИТМО
Санкт-Петербург,
Биржевая линия, д.4.
Телефон: +7 812 337-6495
E-mail: dukhanov@mail.ifmo.ru