Ищу название алгоритма

 

Задача такова - есть набор точек с неким набором свойств каждая. С помощью сложной функции можно посчитать "расстояние" между двумя любыми точками. Требуется расположить точки в одну линию так, чтобы соблюсти максимально точно отношения расстояний между ними. Т.е. близкие точки должны быть рядом. Есть ли готовый алгоритм для этого?

Плаваю немного в нейросетях, но, кажется, для плоскости (не линии) используется сеть Кохонена.

 
wmlab:

Требуется... близкие точки должны быть рядом. Есть ли готовый алгоритм для этого?


сортировка методом пузырька подойдет?
 
wmlab:

Задача такова - есть набор точек с неким набором свойств каждая. С помощью сложной функции можно посчитать "расстояние" между двумя любыми точками. Требуется расположить точки в одну линию так, чтобы соблюсти максимально точно отношения расстояний между ними. Т.е. близкие точки должны быть рядом. Есть ли готовый алгоритм для этого?

Плаваю немного в нейросетях, но, кажется, для плоскости (не линии) используется сеть Кохонена.


А МНК не поможет?

 

Их не только отсортировать нужно, но и "расположить".

Для начала, в условиях задачи нужно определить, вокруг какой точки начать плясать.

Модифицированную пузырьковую сортировку и выбор по методу "рулетка" можно взять тут.

Правда, придется доводить под конкретно Вашу, wmlab, задачу.

 
sergeev:

сортировка методом пузырька подойдет?

Возможно. Нужно подумать. Просто если решать в лоб, то это задача минимизации ошибки. Ведь многомерное простанство нельзя свернуть в линию без искажений, точного решения нет. Поэтому склоняюсь к генетике либо какой-то НС. Вот и, чтобы не изобретать велосипед, спросил у общественности =)
 
Vinin:


А МНК не поможет?



Т.е., добавляем точки по одной, выбирая пошагово место с наименьшей ошибкой? Интересная мысль, спасибо.
 
joo:

Их не только отсортировать нужно, но и "расположить".

Для начала, в условиях задачи нужно определить, вокруг какой точки начать плясать.

Модифицированную пузырьковую сортировку и выбор по методу "рулетка" можно взять тут.

Правда, придется доводить под конкретно Вашу, wmlab, задачу.


Поясните, пожалуйста, уточнение по поводу главной точки.
 
wmlab:

Поясните, пожалуйста, уточнение по поводу главной точки.

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

Хотя, возможно, я не верно истолковал условия поставленной задачи. Нарисуйте хотя бы схематические пояснительные пояснилки. :)

 
wmlab:
Т.е., добавляем точки по одной, выбирая пошагово место с наименьшей ошибкой? Интересная мысль, спасибо.

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

Так что ждем более конкретных условий.

Кохонен кластеризует, линию Кохоненом вряд ли получится...

 
joo:

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

Хотя, возможно, я не верно истолковал условия поставленной задачи. Нарисуйте хотя бы схематические пояснительные пояснилки. :)


Задачу сформулировать нетрудно. У нас есть объекты ABCDE... (это рыночные ситуации). Каждый из них содержит большое кол-во свойств. Есть функция расстояния между любыми двумя объектами. Например, F(A,B) = 0.9; F(A,C) = 0.78; F(B,D) = 0.03 и т.п.

Требуется расставить объекты в порядке, максимально отражающем их расстояния. Например, DEACB.... Т.е. рядом стоящие объекты в строчке имеют малое расстояние по F, далеко стоящие - большое расстояние по F.

Как-то так.

Это нужно для класификации новой рыночной ситуации.

 

Мурад, простите, если не так понял вашу задачу, но м.б. эта ссылка поможет Вам ответить на Ваш стартовый вопрос?... http://cgm.computergraphics.ru/content/view/41 (Line fitting, или методы аппроксимации набора точек прямой)

Интересно, если поможет, сообщите, пож.8)-

Причина обращения: