Конечная метрика Вложения: хороший алгоритм?

У меня есть конечное метрическое пространство, заданное как (симметричная) матрица расстояний k на k. Я хотел бы, чтобы алгоритм (приблизительно) изометрически встроил это в евклидово пространство R ^ (k-1). Хотя не всегда возможно сделать точно, решая систему уравнений, заданную расстояниями, я ищу решение, которое встраивается с некоторой (очень маленькой) контролируемой ошибкой.

В настоящее время я использую многомерное масштабирование (MDS) с выходным размером, установленным на (k-1). Мне приходит в голову, что в целом MDS может быть оптимизирован для ситуации, когда вы пытаетесь уменьшить размер окружающего встраивания до чего-то меньшего, чем (k-1) (обычно 2 или 3), и что может быть лучший алгоритм для моих ограниченных дело.

Вопрос: Какой хороший / быстрый алгоритм для реализации метрического пространства размера k в R ^ {k-1} с использованием евклидова расстояния?

Некоторые параметры и указатели:

(1) Мои k относительно небольшой. Скажем, 3

(2) Мне все равно, вставлю ли я в R ^ {k-1}. Если он упрощает / ускоряет работу, любой R ^ N также подойдет, если он изометрический. Я буду счастлив, если есть более быстрый алгоритм или алгоритм с меньшим количеством ошибок, если я увеличу до R ^ k или R ^ (2k + 1).

(3) Если вы можете указать на реализацию на Python, я буду еще счастливее.

(4) Все, что лучше, чем MDS, подойдет.

14
задан Anthony Bak 30 September 2011 в 22:42
поделиться