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