- Как используется графовая модель
- Описание графовых моделей
- Правила сборки графовой модели
- Использование
- Правило - Направление дуг графа
- Правило - Максимальная длина цепочек связей
- Правило - Не включать в модель подцепочки
- Правило - Cвязи между уровнями
- Правило - Значение всех связей иерархии дерева тегов
- Правило - Позиция промежуточного узла
- Правило - Главное направление цепочек
- Правило - Фильтр длин и весов цепочек
- Правило - Информация о цепочках
Как используется графовая модель #
Графовая модель, факторы и целевая функция #
С использованием информации, сохраненной в базе данных модели, можно построить различные графовые модели. Графовая модель связывает факторы модели с целевой функцией. С помощью скрипта пользователь задает правила построения графа и цепочек связей
- теги, из которых будут исходить цепочки связей графа (факторы-источники),
- теги, через которые пройдут цепочки связей (факторы-перекрестки), и
- теги, на которых цепочки связей графа будут завершаться. Такие теги называют «целевая функция» — это такое «целевое» свойство модели, на которые требуется существенно повлиять в результате изменений значений (весов) малого количества факторов.
Скрипты с правилами построения графовых моделей сохраняют в макетах гридов. Например, скрипт

создает графовую модель, которая показывает влияние учтенных в модели факторов на целевую функцию — неплановую остановку предприятия

Цепочки связей и расчет графовой модели #
Цепочки связей исходят из факторов-источников и завершаются на целевой функции модели. Алгоритм ПО almaGRID находит все цепочки связей в соответствии с правилами, заданными в скрипте. Для каждой цепочки связей вычисляется ее значение (или вес).
Значение цепочки рассчитывается исходя из логики решаемой задачи. Например значение цепочки можно получить, как результат перемножения всех входящих в цепочку весов тегов и весов дуг.
Например:
Связь Связь Связь Связь вес=0.6 вес=0.6 вес=0.5 вес=0.6 [Фактор3] -------> [Фактор5] -------> [Прерывание -------> [Прерывание -------> [Остановка операции 5] операции 7] Предприятия] вес=0.3 вес=0.9 вес=1 вес=1 вес=1
ВесЦепочки = 0.3 * 0.6 * 0.9 * 0.6 * 1 * 0.5 * 1 * 0.6 * 1 = 0.02916.
Веса всех цепочек графовой модели суммируются, давая в результате значение целевой функции графовой модели (результат расчета графовой модели).
С помощью обозревателя моделей (Model Explorer) или отчетов almaGRID с настроенными скриптами можно выполнить анализ графовой модели:
- найти факторы, которые наиболее влияют на результат,
- рассмотреть сценарии и проверить гипотезы – как измениться результат при изменении выбранных факторов,
- сформировать план действий – как минимальным воздействием добиться максимального эффекта.
Описание графовых моделей #
Агрегатные функции для сборки графовых моделей #
Графовые модели собирают из агрегируемых объектов используя следующие агрегатные функции:
- «Максимальная связь первых двух Тегов» — максимальное значение среди всех цепочек в графе, построенном из найденных объектов, берущих начало первом параметре скрипта агрегатной функции и заканчивающихся во втором параметре скрипта агрегатной функции.
- «Связь первых двух Тегов» — сумма значений всех цепочек в графе, построенном из найденных объектов, берущих начало первом параметре скрипта агрегатной функции и заканчивающихся во втором параметре скрипта агрегатной функции.
- «Связь первых двух Тегов через третий» — сумма значений всех цепочек в графе, построенном из найденных объектов, берущих начало первом параметре скрипта агрегатной функции, заканчивающихся во втором параметре скрипта агрегатной функции и проходящие через третий параметр скрипта агрегатной функции.
Теги для правил сборки графовой модели #
Теги для описания правил сборки графовой модели расположены в ветвях
- [Служебные Теги] [Теги для агрегирования] [@] [Пути на графе]
- [Служебные Теги] [Теги для агрегирования] [@] [Пути на графе]
Функции ПО almaGRID, элементы правил, служебные теги, не описанные в статьях Базы Знаний и не отраженные в примерах скорее всего являются устаревшими. Они оставлены для сохранения функциональности созданных ранее моделей и не рекомендуются для использования.
Размещение ветвей тегов для сборки графовых моделей #
Описания графовых моделей являются составными тегами, которые начинается с [@]:
[@] Правило сборки графовой модели
Ветвь для описания тегов с описанием графовых моделей можно создать в следующих узлах дерева тегов:
- Рекомендуемое расположение описаний условий поиска: в ветви [Общие Теги] [Условия]. В этой ветви допускается описание тегов, которые могут дублировать теги, определенные в других ветвях проекта, и это не будет приводить к ошибке сборки агрегата при работе с ветвями, для которых необходимо однозначное указание положения в дереве тегов.
- В любой ветви или любых ветвях описания модели в соответствии с логикой и принципом удобочитаемости.
- В ветви [Служебные Теги], как продолжение ветви [@]. В этом случае допускается вхождение в составной тег условия служебных тегов, используемых для группировки тегов в ветви [@], Например, допускается описание [@] [Пути на графе] [Префикс ‘=>’ у Тегов на концах дуг].
Правила сборки графовой модели #
Использование #
Правила построения графовых моделей используются для указания как именно агрегируемые объекты следует объединить в графовую модель.
- Правила построения графовой модели может присутствовать в условии несколько раз.
- Правила построения графовой модели применяется к каждому объекту и его тегам, найденному в соответствии с заданным описанием тегов объектов и условиям поиска объектов для сборки агрегатов.
Правила построения графовых моделей записываются
- в отдельную ячейку заголовка грида, в котором выполняется расчет графовой модели или
- отдельной строкой на панели условий агрегирования Менеджера объектов.
Правило | Тег правила | Применение |
Направление дуг графа | [Префикс ‘=>’ у Тегов на концах дуг] | Устанавливает признак конца дуги (связи) графа |
Максимальная длина цепочек связей | [Макс. количество дуг в пути, кол-во] | Устанавливает максимальную длину цепочек связей графовой модели |
Не включать в модель подцепочки | [Исключать вложенные пути] | В графовой модели будут отсутствовать подцепочки связей между тегами |
Cвязи между уровнями | [Дуги между Тегами ветви ‘От(Знач)До; …[; Strict]’ с корнем в узле] | Устанавливает значения связей от тегов одного уровня к тегам другого уровня в указанной ветви дерева тегов, если это значение явно не задано в гриде. |
Значение всех связей иерархии дерева Тегов | [Значение дуг графа по иерархии дерева Тегов, знач.] | Устанавливает значение связей от дочерних к родительским тегам по всему дереву тегов, если это значение явно не задано в гриде. |
Позиция промежуточного узла | [Позиция промежуточного узла, ‘[FromFirstNode|FromLastNode]; СтартПоз; КонечПоз’] | Цепочки графовой модели, собираемой по правилу «Связь первых двух Тегов через третий» пройдут через тег, занимающий указанное положение в цепочках. |
Главное направление цепочек | [Исключить дуги ‘Расстояние; МаксПоИерархии; МаксПоОбъектам’ от главного направления путей] | В графовую модель включены узлы заданного главного направления и узлы удаленные от него не более, чем на заданное количество дуг |
Фильтр длин и весов цепочек | [Только цепочки с ‘valMin; valMax; nodesCountMin; nodesCountMax’ (Min-включит., Мах-исключ.)’] | Устанавливает диапазоны длин и весов цепочек, которые будут включены в графовую модель. |
Информация о цепочках | [Показать статистику по путям на графе в 3 правых столбцах] | Правило добавляет в трех столбцах справа от грида, в котором рассчитывается агрегат, собирающий графовую модель, статистическую информацию о цепочках графовой модели. |
Правило — Направление дуг графа #
Правило устанавливает признак конца дуги (связи) графа:
- дуга графа начинается на теге-узле, в составе которого отсутствует тег [=>];
- дуга графа завершается на составном теге-узле, начинающемся с тега [=>].
[@] [Префикс '=>' у Тегов на концах дуг]
Правило — Максимальная длина цепочек связей #
Правило устанавливает максимальную длину цепочек связей графовой модели.
[@] [Макс. количество дуг в пути, кол-во] [Значение (копия хххххххххххххххх)]
Значение — целое положительное число — максимальное количество связей в цепочке тегов графовой модели.
Помните о контроле производительности.
Правило — Не включать в модель подцепочки #
Правило запрещает включать в графовую модель подцепочки связей между тегами.
[@] [Исключать вложенные пути]
Пример
См. тег-документ примера базы данных:
[Проекты] [Примеры] [88. Примеры графовых моделей] [88.20: Не включать в модель подцепочки]

Правило — Cвязи между уровнями #
Правило создает связи между тегами, находящимися на заданных уровнях иерархии указанной ветви дерева тегов.
- Правило создает связи только между тегами, для которых связь явно не задана в гриде.
- Если указано это правило, то на момент сборки агрегата и построения графовой модели создаются виртуальные объекты, описывающие связи между узлами-тегами.
[@] [Дуги между Тегами ветви 'От(Знач)До; ...[; Strict]' с корнем в узле] [ГруппаОписанияСвязей_1; ГруппаОписанияСвязей_2; ...; Strict (копия хххххххххххххххх)] КорневойТегВетви
Strict — необязательный параметр, если его указать, то будут созданы связи только между теми тегами, которые соответствуют заданному описанием тегов в скрипте сборки агрегата.
ГруппаОписанияСвязей — запись вида
НомерУровняОт(ЗначСвязи)НомерУровняДо
где ЗначСвязи — значение связи между тегами уровня НомерУровняОт к тегам уровня НомерУровняДо. Количество записей не ограничено. Записи разделены симыолом «;».
НомерУровняОт, НомерУровняДо — целые положительные числа или 0. Номер уровня в ветви дерева тегов относительно тега КорневойТегВетви. Номер уровня КорневойТегВетви =0.
КорневойТегВетви — простой или составной тег однозначно определяющий положение КорневойТегВетви в дереве тегов (должно быть единственное вхождение этого тега в дерево тегов).
[РодительскийТег1] (не обязательно) [РодительскийТег2] (не обязательно) … (не обязательно) [КорневойТег]
Если в ходе работы над моделью в результате копирования тегов между ветвями дерева тегов однозначность указания адреса будет утрачена, то сборка агрегата приведет к ошибке, которую можно исправить добавляя родительские теги к корневому тегу ветви.
Пример1:
Для ветви тегов,
[Тег1] [Тег2] [Тег4] [Тег5] [Тег6] [Тег3] [Тег8] [Тег7]
См. тег-документ примера базы данных:
[Проекты] [Примеры] [88. Примеры графовых моделей] [88.15: Связи по иерархии дерева тегов - разные для разных уровней]
Правило
[@] [Дуги между Тегами ветви 'От(Знач)До; ...[; Strict]' с корнем в узле] [1(9)0; 2(6)1; 3(3)2 (копия 2107212245039151)] [88. Примеры графовых моделей] [Тег1]
описывает граф

Пример2:
Пример записи правила
[@] [Дуги между Тегами ветви 'От(Знач)До; ...[; Strict]' с корнем в узле] [2(5.5)1; 4(1.3)2; 3(9.8)4; Strict (копия 2107212245056381)] [Элементы модели]
Правило — Значение всех связей иерархии дерева тегов #
Правило устанавливает значение связей от дочерних к родительским тегам по всему дереву тегов, если это значение явно не задано в гриде.
- Правило создает связи только между тегами, для которых связь явно не задана в гриде.
- Если указано это правило, то на момент сборки агрегата и построения графовой модели создаются виртуальные объекты, описывающие связи между узлами-тегами.
[@] [Значение дуг графа по иерархии дерева Тегов, знач.] [ЗначСвязи (копия хххххххххххххххх)]
ЗначСвязи — значение связи от дочерних к родительским тегам по всему дереву тегов.
Пример:
Для ветви тегов,
[Тег1] [Тег2] [Тег4] [Тег5] [Тег6] [Тег3] [Тег8] [Тег7]
См. тег-документ примера базы данных:
[Проекты] [Примеры] [88. Примеры графовых моделей] [88.10: Связи по иерархии дерева тегов - одинаковые для разных уровней]
Правило
[@] [Значение дуг графа по иерархии дерева Тегов, знач.] [10 (копия 2107212220271581)]

описывает граф

Правило — Позиция промежуточного узла #
Правило задает положение в цепочках графовой модели, собираемой по правилу «Связь первых двух Тегов через третий«, положение промежуточного тега.
[@] [Позиция промежуточного узла, '[FromFirstNode|FromLastNode]; СтартПоз; КонечПоз'] [ТочкаОтсчета; НачальныйНомерУзла; КонечныйНомерУзла (копия хххххххххххххххх)]
ТочкаОтсчета — принимает одно из двух значений «FromFirstNode» или «FromLastNode«, указывающее на то, что отсчет узлов при задании положения в цепочках промежуточного узла идет от первого или последнего узла, соответственно.
НачальныйНомерУзла — номер узла, в котором начинается диапазон допустимых положений промежуточного узла.
КонечныйНомерУзла — номер узла, в котором заканчивается диапазон допустимых положений промежуточного узла. НачальныйНомерУзла и КонечныйНомерУзла могут совпадать.
Пример:
Для модели примера базы данных, описанной терминами в ветви,
[Проекты] [Модель непрерывности бизнеса] [Элементы модели]
и связями, в гридах тегов-документов,
[Проекты] [Модель непрерывности бизнеса] [Форматы] [20. Связи] [20.10: Связи: Факторы-Факторы] [20.20: Связи: Факторы-СостояниеПроцесса] [20.30: Связи: СостояниеПроцесса-СостояниеПроцесса] [20.40: Связи: СостояниеПроцесса-ЦелеваяФункция]
тег-документ примера базы данных:
[Проекты] [Примеры] [88. Примеры графовых моделей] [88.25: Позиция промежуточного узла]
для графовой модели

правило
[@] [Позиция промежуточного узла, '[FromFirstNode|FromLastNode]; СтартПоз; КонечПоз'] [FromFirstNode; 2; 3 (копия 2107192246345545)]
оставляет только те цепочки, в которых промежуточных тег [Прерывание операции 5], через который должны проходить все цепочки, находится от второй до третей позиции от первого узла цепочки.

Правило — Главное направление цепочек #
Главное направление цепочек — это множество цепочек графовой модели, берущих начало от выбранного тега-узла.
Правило включает в графовую модель только
- цепочки главного направления и
- цепочки, берущие начало в тегах-узлах, находящиеся на заданном расстоянии от главного направления .
[@] [Исключить дуги 'Расстояние; МаксПоИерархии; МаксПоОбъектам' от главного направления путей] [Расстояние; МаксПоИерархии; МаксПоОбъектам (копия хххххххххххххххх)] КорневойТегВетви
Расстояние — целое положительное число. Узлы, количество дуг в пути до которых от главного направления, меньше или равно Расстоянию будут включены в графовую модель.
МаксПоИерархии — целое положительное число. МаксПоИерархии ≤ Расстояние. Максимальное количество дуг, описанных виртуальными объектами, созданными правилом «Cвязи между уровнями«, в Расстоянии.
МаксПоОбъектам — целое положительное число. МаксПоОбъектам ≤ Расстояние. Максимальное количество дуг, описанных объектами, заданными в гридах, в Расстоянии.
КорневойТегВетви — простой или составной тег однозначно определяющий положение КорневойТегВетви в дереве тегов (должно быть единственное вхождение этого тега в дерево тегов).
[РодительскийТег1] (не обязательно) [РодительскийТег2] (не обязательно) … (не обязательно) [КорневойТег]
Если в ходе работы над моделью в результате копирования тегов между ветвями дерева тегов однозначность указания адреса будет утрачена, то сборка агрегата приведет к ошибке, которую можно исправить добавляя родительские теги к корневому тегу ветви.
Пример:
Для модели примера базы данных, описанной терминами в ветви,
[Проекты] [Модель непрерывности бизнеса] [Элементы модели]
и связями, в гридах тегов-документов,
[Проекты] [Модель непрерывности бизнеса] [Форматы] [20. Связи] [20.10: Связи: Факторы-Факторы] [20.20: Связи: Факторы-СостояниеПроцесса] [20.30: Связи: СостояниеПроцесса-СостояниеПроцесса] [20.40: Связи: СостояниеПроцесса-ЦелеваяФункция]
тег-документ примера базы данных:
[Проекты] [Примеры] [88. Примеры графовых моделей] [88.30: Главное направление цепочек]
правило
[@] [Пути на графе] [Исключить дуги 'Расстояние; МаксПоИерархии; МаксПоОбъектам' от главного направления путей] [1; 0; 1 (копия 2107192302520338)] [Фактор 5]
собирает графовую модель, в которую включены узлы главного направления от [Фактор 5] и узлы удаленные от него не более, чем на одну дугу:

Узлы главного направления от [Фактор 5] выделены синим цветом.
И правило
[@] [Пути на графе] [Исключить дуги 'Расстояние; МаксПоИерархии; МаксПоОбъектам' от главного направления путей] [2; 0; 2 (копия 2107212216595336)] [Фактор 5]
собирает графовую модель, в которую включены узлы главного направления от [Фактор 5] и узлы удаленные от него не более, чем на две дуги:

Правило — Фильтр длин и весов цепочек #
Устанавливает диапазоны длин и весов цепочек, которые будут включены в графовую модель.
[@] [Только цепочки с 'valMin; valMax; nodesCountMin; nodesCountMax' (Min-включит., Мах-исключ.)] [valMin; valMax; lenMin; lenMax (копия хххххххххххххххх)]
valMin, valMax — положительные вещественные числа. valMin может принимать значение 0. В графовую модель будут включены цепочки с весом удовлетворяющей условию: valMin ≤ ВесЦепочки < valMax.
lenMin, lenMax — положительные натуральные числа. lenMin может принимать значение 0. В графовую модель будут включены цепочки с длиной удовлетворяющей условию: lenMin ≤ ДлинаЦепочки < lenMax.
Правило «Фильтр длин и весов цепочек» можно
- задать вручную, создав ветвь с правилом в дереве тегов или
- воспользоваться конструктором фильтра «almaGRID» — «Объекты» — «Вкладка ‘Модели и агрегаты'» — «+Фильтр»:


Границы диапазонов фильтра в конструкторе можно задать
— в форме

— в выпадающих списках с вариантами диапазонов,
— кликнув левой кнопкой мыши на цветовой диапазон столбчатой диаграммы распределения цепочек по весу.
Выбранный диапазон значений длин и весов цепочек добавляется к скрипту сборки графовой модели при нажатии на «Сохранить».
На панели будет показана информация о примененном фильтре и количестве цепочек, включенных в графовую модель.
С помощью элементов управления можно изменять границы диапазона осей графика.
Пример:
Тег-документ примера базы данных:
[Примеры] [88. Примеры графовых моделей] [88.35: Фильтр длин и весов цепочек]
Правило — Информация о цепочках #
Правило применяется при расчете агрегата (сборке графовой модели) в гриде. Правило добавляет в трех столбцах справа от грида статистическую информацию о цепочках графовой модели.
[@] [Показать статистику по путям на графе в 3 правых столбцах]
Пример:
Тег-документ примера базы данных:
[Проекты] [Модель непрерывности бизнеса] [Форматы] [40. Анализ] [40.23: Отчет с информацией по цепочкам]

Number of chains — количество цепочек в графовой модели, собираемой агрегатом.
Mean length of chains — средняя длина цепочек.
StdDev length of chains — стандартное отклонение длины цепочек.