Учитывая ориентированный граф, мне нужно найти минимальный набор вершин, из которого могут быть получены все остальные вершины.
Таким образом, результатом функции должно быть наименьшее количество вершин, из которого все остальные вершины могут быть получены путем следования за направленными ребрами.
Наибольший возможный результат был бы, если бы не было ребер, поэтому все узлы были бы возвращены.
Если на графике есть циклы, для каждого цикла выбирается один узел. Неважно, какой именно, но он должен быть последовательным, если алгоритм будет запущен снова.
Я не уверен, что для этого существует алгоритм? Если это так, у него есть имя? Я попытался провести свое исследование, и, похоже, самое близкое - найти материнскую вершину
Если это тот алгоритм, может ли быть разработан настоящий алгоритм, так как ответ, приведенный в этой ссылке, немного расплывчат.
Учитывая, что мне нужно реализовать это в javascript, предпочтение будет отдано библиотеке .js или примеру кода javascript.