Вопрос возник из желания программировать задачи динамического программирования. В программировании достаточно хорошо изучена структура данных дерево. Имея ее можно быстро писать простые рекурсивные функции обхода по дереву (правый, левый и др). Хотелось бы применить в общих задачах динамического программирования. В ДП есть вроде подход представления блоков вычислений в виде графа. Вроде есть классификация т.н сериальных (стандартных) схем и несериальных. Есть также деление на монадические и полиадические.
Как я представляю типичный случай задачи ДП с конечным числом альтернатив выбора управления каждого этапа приводит все таки не к древовидному графу а графу-сети. Эту структуру программно реализовывать сложнее. Один математик мне предложил такой подход: Если в вершину
входят K путей то можно "расчленить эту вершину на K разных вершин
т.е граф превратить в дерево. Тогда использовать стандартные приемы программирования. Но где-то в программе задать изоморфизм (совпадение) этих расчлененных вершин).
Нормальный ли это подход и известен он кому-либо?