Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- На сильно связном орграфе, сильная связность требуется для обратного распространения информации о состоянии вершин и рёбер.
- Существенным является то, что:
- 0) Сильная связность может быть осуществлена за счёт проброски обратных дуг от детей к корню (передача информации происходит _именно_ по дугам).
- 1) Добавляемые "скрытые" вершины в самом начале восстанавливаются по связи с изменением атрибутов: *-->fork()-->**-->найденные сис. вызовы (паттерны для них)-->***
- 2) Рёбра (**)-->..-->(***) могут быть переброшены как внутри одной области восстановления, так и между разными областями (см. пример с вычислением отложенного setsid)
- (I) - Подход с КЗ-агентами и 1 сборщиком.
- Роли агентов:
- 1) в любой вершине - агент (КА), переключающий состояние в зависимости от состояния вершины + входящих рёбер
- 2) Сборщик в корневой вершине - все состояния --> вычисление (не лучше, чем со строчной нотацией, ИМХО)
- а)Разбор: восходящий, но нужен будет спуск на 1 уровень вниз (для обработки переупорядочивания потомков)
- *переприсоединение на восстановлении exit
- б)Разбор: нисходящий - по аналогии с атрибутными грамматиками (SECR-2018), также отметить upbranch с отложенной переброской дуги.
- (II) - На графе зависимостей (DG).
- Используется схема нумерации {n_вершины PStree, attr_node_num}
- class AttrNode:
- def __init__(...):
- attr_node_num = Enum(...)
- # optionally: glob_node_num =
- def glob_num_calc()
- ...
- class PNode:
- def __init__(...):
- self.pid = AttrNode(AttrNodeEnum.pid)
- ...
- потом нужно прокинуть связи между вершинами
- def link():
- поиск и добавление связи
- На выходе: Граф DG.
- Далее на нём уже сбор значений.
- После сбора - вычисление функции.
- (См. аггрегирующие функции)
Add Comment
Please, Sign In to add comment