Отношение "доминирует" определяет частичный порядок , поэтому это тесно связано с проблемой сортировки частично упорядоченного множества (poset). Это не та же проблема, что и у вас, потому что вы не хотите размещать узлы в некотором отсортированном порядке - вы хотите найти все ребра. Но они являются связанными проблемами, потому что оба хотят использовать преимущество переходного свойства для тестирования меньшего количества пар узлов.
Сортировка поозет тем быстрее, чем больше ребер, потому что чем больше ребер, тем больше выгоды от переходного свойства, и требуется меньше тестов. В худшем случае сортировка poset занимает Θ (n 2 ), когда есть Θ (n) узлов без ребер между ними.
Однако, поскольку ваш вывод должен быть графом с для всех ребер также потребуется Θ (n 2 ), чтобы на самом деле создать вывод в противоположном случае, когда имеется много ребер. График с ребрами Θ (n 2 ) не может быть выведен за меньшее время, чем это.
Так что даже при использовании умного алгоритма, потребуется четыре квадрата c времени, когда график имеет немного ребер, и это также займет квадратичное c время, когда граф имеет много ребер. Учитывая это, алгоритм грубой силы, вероятно, в порядке.