Мой вход - матрица A с vec2, например, с. 6 на 6 полей, означает 36 объектов.
{{{0,0},{1,0},{2,0},{3,0},{4,0},{5,0}},
{{0,1},{1,1},{2,1},{3,1},{4,1},{5,1}},
{{0,2},{1,2},{2,2},{3,2},{4,2},{5,2}},
{{0,3},{1,3},{2,3},{3,3},{4,3},{5,3}},
{{0,4},{1,4},{2,4},{3,4},{4,4},{5,4}},
{{0,5},{1,5},{2,5},{3,5},{4,5},{5,5}}}
Моя цель состоит в том, чтобы создать меньшую матрицу B (например, 3 на 3 поля) со случайным набором объектов из A, который отсортирован в таким образом, что расстояние до соответствующей исходной позиции является как можно меньшим для всех vec2 в среднем.
Мои выбранные vec2, например:
{{2,1},{4,1},{0,3},{3,0},{5,4},{5,0},{2,4},{2,3},{4,5}}
В этом примере { 2,1} будет соответствовать (в мате A):
{2,0},{3,0}
{2,1},{3,1}
{4,1} будет соответствовать:
{4,0},{5,0}
{4,1},{5,1}
{0,3} будет соответствовать:
{0,2},{1,2}
{0,3},{1,3}
поэтому их место в новой матрице будет:
{{{ - },{2,1},{4,1}},
{0,3},{ - },{ - }},
{ - },{ - },{ - }}}
пока все хорошо
следующий объект - {3,0}, он также соответствует (в От Мат) до
{2,0},{3,0}
{2,1},{3,1}
Таким образом, оптимальное место в Матрице будет в первом ряду, втором столбце.
Но есть другой объект ({2,1}). Таким образом, мы должны найти почти альтернативное место. Поле {первая строка, первый столбец} или поле {вторая строка, второй столбец} будут хорошими. Мы выбрали второе:
{{{ - },{2,1},{4,1}},
{0,3},{3,0},{ - }},
{ - },{ - },{ - }}}
и т. Д. Для всех объектов.
, но, думаю, после первого заполнения матрицы B положение будет не подходящим для всех объектов, и некоторые должны меняйте местами снова и снова.
Итак, мой вопрос: какой жадный алгоритм мог бы помочь мне получить наименьшее расстояние для всех матричных объектов до их происхождения?
Я загрузил картинку для лучшего понимания.
Красный - это суперпиксели, черные подпиксели. Расстояние между синим и зеленым наименьшее возможное расстояние => ошибка. Расстояние между желтым и зеленым дает большую погрешность, потому что большее расстояние такси.