Операции с графовыми моделями • Графовые модели

Операции с графовыми моделями

Как используется графовая модель #

Графовая модель, факторы и целевая функция #

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

  • теги, из которых будут исходить цепочки связей графа (факторы-источники),
  • теги, через которые пройдут цепочки связей (факторы-перекрестки), и
  • теги, на которых цепочки связей графа будут завершаться. Такие теги называют «целевая функция» — это такое «целевое» свойство модели, на которые требуется существенно повлиять в результате изменений значений (весов) малого количества факторов.

Скрипты с правилами построения графовых моделей сохраняют в макетах гридов. Например, скрипт

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

Цепочки связей и расчет графовой модели #

Цепочки связей исходят из факторов-источников и завершаются на целевой функции модели. Алгоритм ПО 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: Не включать в модель подцепочки]

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

  • Правило создает связи только между тегами, для которых связь явно не задана в гриде.
  • Если указано это правило, то на момент сборки агрегата и построения графовой модели создаются виртуальные объекты, описывающие связи между узлами-тегами.
[@]
  [Дуги между Тегами ветви 'От(Знач)До; ...[; 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 — стандартное отклонение длины цепочек.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: