Как оптимизировать порядок элементов на основе коэффициентов подобия? - PullRequest
0 голосов
/ 26 марта 2019

Мне нужно переупорядочить последовательность элементов на основе сходства между собой (выраженного коэффициентом), чтобы каждый элемент был максимально похож на каждого из его соседей.Я должен найти алгоритм, а не код.

Пример с 10 элементами и коэффициентами подобия, рассчитанными для каждой пары элементов ниже:

enter image description here

Файл Excel можно найти здесь: https://1drv.ms/x/s!AtmZN4-kjgrPms99fqgaDwAS_F4uYw

Что я пробовал:

  1. Найти пару с самым высоким коэффициентом.В примере: 0,98 для T3 (левый конец) и T5 (правый конец)
  2. Найти максимальный коэффициент между левым концом и оставшимися элементами
  3. Найти максимальный коэффициент между правымконец и остальные элементы
  4. Максимальное значение между 2. и 3.
  5. Если максимальное значение 2. Добавьте слева элемент, соответствующий максимальному коэффициенту для левого конца.Иначе, добавьте справа элемент, соответствующий максимальному коэффициенту для правого конца
  6. Повторяйте точки 2 - 6, пока не останется ни одного элемента.

Вот результат:

enter image description here

Результат неплохой.Один из недостатков, которые я вижу, состоит в том, что 0,99> 0,98 рассматривается так же, как 0,99> 0,01.

Второй вариант, о котором я думал, - максимизировать сумму коэффициентов между всеми соседями, но на самом деле не знаюс чего начать.Особенно, если там значительно больше 10 элементов.Более того, это может привести к более «плоскому» порядку, в котором при более высоком сходстве в целом некоторые чрезвычайно похожие элементы могут быть расположены далеко друг от друга.

Будучи действительно новым для такого рода проблем, я вполне уверен, что это должнобыть довольно стандартной проблемой с существующими решениями.Не могли бы вы указать на них?

Спасибо!

1 Ответ

0 голосов
/ 31 марта 2019

После исследования я обнаружил, что мою проблему можно рассматривать как «Проблема коммивояжера» (TSP). Подробнее здесь: https://en.wikipedia.org/wiki/Travelling_salesman_problem

Чтобы применить его, вы можете видеть «элементы» в моем примере как «города» в TSP и (коэффициент 1-подобия) как «расстояния».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...