Strict Standards: Non-static method mod_db::open_base() should not be called statically in /var/www/clavire-edu/public_html/content/frames/doca.php on line 33

Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /var/www/clavire-edu/public_html/cms/classes/mod_db.php on line 21

Strict Standards: Non-static method mod_db::db_query() should not be called statically in /var/www/clavire-edu/public_html/cms/classes/mod_db.php on line 31

Strict Standards: Non-static method mod_db::db_query() should not be called statically in /var/www/clavire-edu/public_html/cms/classes/mod_db.php on line 32

Strict Standards: Non-static method mod_db::db_query() should not be called statically in /var/www/clavire-edu/public_html/cms/classes/mod_db.php on line 33
CLAVIRE
Strict Standards: Non-static method mod_safe::get_param() should not be called statically in /var/www/clavire-edu/public_html/content/frames/doca.php on line 59

Strict Standards: Non-static method mod_db::escape_string() should not be called statically in /var/www/clavire-edu/public_html/content/frames/doca.php on line 59

Strict Standards: Non-static method mod_db::db_query() should not be called statically in /var/www/clavire-edu/public_html/content/frames/doca.php on line 60

Strict Standards: Non-static method mod_db::db_objects() should not be called statically in /var/www/clavire-edu/public_html/content/frames/doca.php on line 61
КРАТКАЯ ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

В предыдущих лабораторных работах мы разработали одношаговые и многошаговые WF, обрабатывая соответствующие наборы данных. На каждом шаге решали задачу для одного набора данных. Часто возникают задачи, когда требуется обработать более, чем один набор данных, т.е. перебрать варианты. Если такая возможность предусмотрена в пакете, то достаточно ему передать соответствующий набор данных. Если пакет за один сеанс запуска обрабатывает только один набор данных, а требуется обработать несколько наборов, то можно организовать необходимое количество шагов. Если количество наборов не велико (например, в пределах 5-7), то такой подход вполне приемлем. Однако при большом количестве вариантов, которое может достигать сотен и более, описания соответствующего количество шагов сильно увеличиваем размер скрипта WF. Кроме того, в таких ситуациях усложняется задача использования результатов работы шагов, т.к. для всегда нужно знать, в каком шаге обработан соответствующий набор данных.

Вариативный перебор можно реализовать в одном шаге с помощью оператора sweep.

Формат варьирования одного из параметров шага, который предусматривает параллельный запуск соответствующего количества экземпляров пакета, представлен в листинге 4.6.

Листинг 4.6. Формальное описание инструкции вариативного перебора

<параметр шага><wsns>=<wsns>sweep<множество значений>,

Множество значение задаётся традиционно в виде перечисления значений через запятую, заключённого в квадратные скобки.

Например, строка «StepParam = sweep[1, 2, 3, 4]», означает, что произойдёт запуск четырёх экземпляров соответствующего пакета со значениями параметра StepParam равными 1, 2, 3, 4 соответственно.

На схеме, которая обычно отображается справа от скрипта (рис. 3.3.), такой шаг отображается одним прямоугольником. Но на схеме запуска WF отображается варьирование параметра: отображается столько прямоугольников, сколько указал пользователь во множестве после sweep (рис. 4.2.). На данном рисунке очевиден параллельный запуск четырёх экземпляров некоторого пакета TESTP.

Рис. 4.2. Отображение варьирования параметров при запуске шага step1

В CLAVIRE допускает варьировать любое количество и любые типы параметров. При варьировании более одного параметра можно определять режим перебора – перебор всех комбинаций или векторов – с помощью установки значения атрибута потока sweepmode: @default или @zip. Установка значений атрибута определяется синтаксисом, приведённым в листинге ХХ. Значение атрибута @zip действует только на последующем после его установки шаге. Если перед следующим шагом он не устанавливается, то принимается значение по умолчанию.

Значение атрибута по умолчанию (@default) явно не устанавливается. Это означает, что установлен режим перебора всех возможных комбинаций значений параметров, указанных во множествах после оператора sweep. Если в шаге варьируются два параметра, то формируется матрица перебора; если более двух – формируется куб значений соответствующей размерности. Количество перебираемых элементов равно произведению мощностей всех множеств варьируемых параметров.

Если перед шагом указана строка «[flow:sweepmode = @zip]», то устанавливается векторный режим перебора. Если в шаге варьируется только один параметр, оба режима совпадают. Если варьируется более двух параметров, то в режиме @zip количество вариантов перебора в каждом параметре должны быть одинаковым. Это же количество и является общим количеством вариантов перебора на шаге. Поясним на примере. Если шаг построен так, как указано в листинге 4.7, то перебирается три вектора значений параметров par1, par3, par4: (1, “a”, “one”), (3, “s”,two) и (7, “d”, “four”).

Листинг 4.7. Определение работы шага в режиме sweepmode = @zip

[flow:sweepmode = @zip]

step sweep_vect runs package (

...

par1 = sweep [1, 3, 7],

par3 = sweep [“a”, “s”, “d”],

par4 = sweep [“one”, “two”, “four”],

...

);

Теперь опишем пакет, который удаляет узлы из сети. Пакет имеет имя excluder. На вход пакету подаётся два файла: первый с упрощённым описанием графа сети такого же формата, как один из выходных файлов пакета CNM - output.dat (см. описание пакета StatNet в теоретической части лабораторной работы №3). Второй файл содержит одно единственное число, которое определяет количество удаляемых узлов. Если данное число является натуральным (т.е. без разделителя целой и дробной частей - точки), то оно принимается как количество удаляемых узлов. Если число является дробным (т.е. содержит цифры и точку), то они принимается как процент удаляемых узлов. Первый входной файл пакета соответствует файловому параметру WF inDataFile, второй – inConfigFile.

На выходе пакет Excluder предоставляет также два файла: файл описания графа сети без удалённых узлов с именем output.dat того же формата, как у входного файла описания графа исходной сети, файл описания графа той же сети в формате dot output.dot.

Правила использования пакета GraphViz для визуализации сетей на локальном компьютере приведены в теоретической части лабораторной работы 1.


Strict Standards: Non-static method mod_db::db_objects() should not be called statically in /var/www/clavire-edu/public_html/content/frames/doca.php on line 61


обратно к оглавлению
Strict Standards: Non-static method mod_db::close_base() should not be called statically in /var/www/clavire-edu/public_html/content/frames/doca.php on line 77