41 1. Избират се два опорни (pivot) обекта O
a и O
b
. Линията,
която минава през тях, се разглежда като първата ос на търсеното k-мерно пространство.
2. За всеки обект O
i неговата координата x i по тази ос се изчислява по следната формула:
(1) където d a,b е разстояние между O
a и O
b
, d a,i и d b,i са разстояния между O
i и O
a и O
b
,
съответно, които са вече изчислени (предварително или на предишната стъпка от рекурсията). Тази формула следва от косинусовата теорема и е илюстрирана на фигура 3.1.
Фигура
3.1. Прилагане
на
косинусовата
теорема
за
проектиране
върху
правата
Oa Ob 3. За да бъдат изчислени координатите на обекти по следващата (в примера - втора) ос е необходимо предварително да бъдат преизчислени взаимните разстояния между всички обекти в намаленото (в случая n-1-мерно) пространство. Тези разстояния се изчисляват на базата на разстоянията в текущото пространство (в примера n-мерното) и координатите на обектите върху предишната (в случая – първата) ос по следната формула, която е следствие от Питагоровата теорема:
(2) където е разстояние между обектите O
i и O
j в редуцираното пространство, е разстоянието между обектите O
i и O
j в оригиналното (от предишната стъпка) пространство, а x i
и x j
са координати на съответните обекти върху първата
(предишната) ос. По същество тази стъпка представлява проектиране на n-мерните обекти върху (n-1)-мерна хипер-равнина H, така както е илюстрирано на фигура 3.2.
42
Фигура
3.2. Проектиране
върху
хипер
-равнина
H, перпендикулярна
на
правата
Oa Ob Описаните три точки се повтарят рекурсивно докато не бъдат изчислени координати на всички обекти върху k-тата координатна ос.
Опорните обекти O
a и O
b се избират по такъв начин, че да
максимизират разстоянието D(O
a ,
O
b
). За да намали броя на необходимите за тази цел изчисления, които са O(N
2
), авторите използват следния евристичен алгоритъм със сложност O(N) само за избор на опорни обекти:
Алгоритъм
избери
_обекти
(O, D()) Сподели с приятели: