Мне нужно переупорядочить последовательность элементов на основе сходства между собой (выраженного коэффициентом), чтобы каждый элемент был максимально похож на каждого из его соседей.Я должен найти алгоритм, а не код.
Пример с 10 элементами и коэффициентами подобия, рассчитанными для каждой пары элементов ниже:
Файл Excel можно найти здесь: https://1drv.ms/x/s!AtmZN4-kjgrPms99fqgaDwAS_F4uYw
Что я пробовал:
- Найти пару с самым высоким коэффициентом.В примере: 0,98 для T3 (левый конец) и T5 (правый конец)
- Найти максимальный коэффициент между левым концом и оставшимися элементами
- Найти максимальный коэффициент между правымконец и остальные элементы
- Максимальное значение между 2. и 3.
- Если максимальное значение 2. Добавьте слева элемент, соответствующий максимальному коэффициенту для левого конца.Иначе, добавьте справа элемент, соответствующий максимальному коэффициенту для правого конца
- Повторяйте точки 2 - 6, пока не останется ни одного элемента.
Вот результат:
Результат неплохой.Один из недостатков, которые я вижу, состоит в том, что 0,99> 0,98 рассматривается так же, как 0,99> 0,01.
Второй вариант, о котором я думал, - максимизировать сумму коэффициентов между всеми соседями, но на самом деле не знаюс чего начать.Особенно, если там значительно больше 10 элементов.Более того, это может привести к более «плоскому» порядку, в котором при более высоком сходстве в целом некоторые чрезвычайно похожие элементы могут быть расположены далеко друг от друга.
Будучи действительно новым для такого рода проблем, я вполне уверен, что это должнобыть довольно стандартной проблемой с существующими решениями.Не могли бы вы указать на них?
Спасибо!