Как вывести FRP из направленных ациклических графов?

В настоящее время я ищу для своего следующего проекта. Это на этапе предварительного планирования, поэтому этот вопрос просто для того, чтобы получить представление о существующих технологиях.

Настроить

У меня есть ориентированный ациклический граф (DAG) с несколькими входами и выходами, подумайте сейчас об искусственной нейронной сети:

Распространенным способом обработки такой структуры является обработка всей сети на каждом (временном) шаге. Я считаю, что это метод, используемый библиотеками frp, такими какnetwire.

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

пример

На изображении выше 5, 7 и 3 являются входами, 11 и 8 являются «скрытыми», а 2, 9 и 10 являются выходными узлами. Изменение в узле 5 повлияет только на узел 11, а в действительности - на узлы 2, 9 и 10. Мне не нужно обрабатывать узлы 7, 3 и 8.

Цель

Обрабатывайте такие сети с минимальной задержкой. Размер графиков, вероятно, достигнет 100 тыс. Узлов, при этом для каждого узла выполняется умеренное количество вычислений.

План

Я надеюсь, что кто-то выйдет и рекламирует библиотеку X, которая просто выполняет свою работу.

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

ВопросыЕсть ли какая-нибудь библиотека, которая просто делает то, что мне нужно?МойPar план осуществим? Насколько это зависит от объема обработки, необходимой в каждом узле?

Ответы на вопрос(1)

Ваш ответ на вопрос