У меня есть коллекция узлов, которые случайным образом связаны весами в режиме прямой связи. В настоящее время я итеративно проверяю каждый узел по порядку с помощью значения с плавающей запятой, которое определяет, какие узлы должны быть оценены перед какими другими узлами.
Это достигается путем назначения значения 0,0 для входных узлов и значения 1,0 для выходных узлов и усреднение между двумя концами соединения для вновь созданного узла в середине. Например, узел непосредственно между входом и выходом будет иметь значение 0,5, а соединение между этим узлом и другим выходом будет равным 0,75, и соединения между узлами с одинаковым значением недопустимы. (что также препятствует соединению узла с самим собой)
Я веду список всех узлов и сортирую их по этому значению, а затем я могу знать, что я не вычисляю их значения не по порядку.
В этой настройке я достиг узкого места. Циклический просмотр каждого узла один за другим для вычисления различных входящих значений, вероятно, не идеален. Я пытаюсь проработать способ использования массивов numpy на более высоком уровне, чтобы я мог вместо этого выполнять умножение или другие операции по всему вектору или матрице, но природа случайных связей со свободным потоком делает это трудным для меня, чтобы разобраться.
Существуют ли какие-либо шаблоны или уже известные решения, которые могут мне помочь? Часть моей проблемы в том, что я не совсем уверен, какие термины использовать для поиска такого рода проблем.