Каков наиболее эффективный алгоритм для нахождения самой длинной цепочки из набора упорядоченных пар (x, y)?

У меня есть набор упорядоченных пар (x, y), где x! = Y, но в остальном произвольно.
Как найти самую длинную цепочку, не повторяя упорядоченные пары?

Например пусть

S = {(-1, 1.2), (4, 2), (1.2, 3), (3, 5.2), (4.2, -1), (5.2, 1), (3, 2)}.

Самая длинная цепь состоит из (-1, 1.2), (1.2, 3), (3, 5.2), (5.2, 1).
Есть еще одна цепочка (-1, 1,2), (1,2, 3), (3, 2), но она не самая длинная.

Итерации по всему набору — это одно решение, но оно неэффективно.

0

Решение

Я не собираюсь кодировать. Но это может помочь вам.

Вы должны посмотреть на алгоритмы графа. Думайте, что ваша пара — это узел с входной и выходной сторонами. Затем подумайте обо всех краях, которые вы можете нарисовать. затем упростите график и используйте алгоритм поиска самого длинного пути для графиков. https://en.wikipedia.org/wiki/Longest_path_problem

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector