У меня есть DAG (ориентированный ациклический граф), который имеет более одной допустимой топологической сортировки. Я ищу способ отсортировать его топологически и применить вторичное упорядочение, чтобы всегда получать один и тот же четко определенный результат.
Например, возьмем этот график:
A-->B
A-->C
B-->D
C-->D
Есть два решения топологической сортировки:
1: А, В, С, D и
2: A, C, B, D
Заметим, что B и C можно сортировать в любом порядке. Поэтому мы выбираем алфавитную сортировку в качестве вторичной сортировки, чтобы получить только одно решение: A, B, C, D.
Можно ли это обобщить на любой DAG и как это реализовать?