Алгоритмы семейства FOREL [1,2] использует критерий F, основанный на гипотезе компактности: в  один  таксон  должны  собираться объекты, "похожие"  по  своим  свойствам на некоторый ╚центральный╩ объект.  Мера  похожести  определяется   через Евклидово расстояние в пространстве характеристик. 
    Если координаты центра j-того таксона обозначить  символом  Сj,  то сумма расстояний  (Сj,Xi) между центром и всеми  lj  точками  Xj  этого таксона будет равна  rj = Sr(Сj,Xi), где i=1--lj,  а сумма  таких  внутренних  расстояний  для всех k таксонов равна F =  Srj ,  j=1--k. Нужно найти такое разбиение m объектов на k таксонов, чтобы величина  F была  минимальной. Опишем базовую версию  и  некоторые  модификации  алгоритма  FOREL,  предназначенных  для  поиска такого разбиения. 

Алгоритм  FOREL.

 Таксоны,  получаемые   этим   алгоритмом,   имеют сферическую форму. Вначале признаки объектов нормируются так, чтобы  их значения находились в диапазоне от 0 до 1.  Затем  строится  гиперсфера минимального радиуса R0, которая охватывает все m точек.  Если  бы  нам был нужен один таксон, то он был бы представлен именно  этой  начальной сферой. Для получения большего числа таксонов  радиус  сфер  постепенно уменьшается. Берется радиус 0,9*R0 и центр сферы помещается в  любую  из имеющихся точек. Находим точки, расстояние до которых меньше радиуса, и вычисляем координаты центра тяжести этих "внутренних" точек.  Переносим центр сферы в этот центр тяжести  и  снова  находим  внутренние  точки. Сфера как  бы  плывет  в  сторону  локального  сгущения  точек.  Такая процедура  определения  внутренних  точек  и  переноса   центра   сферы продолжается до тех пор,  пока  сфера  не  остановится,  т.е.  пока  на очередном  шаге  мы  не  обнаружим,  что  состав  внутренних  точек,  а следовательно и их центр тяжести, не меняются. Это  значит,  что  сфера остановилась  в  области  локального  максимума   плотности   точек   в признаковом пространстве. 
    Точки,  оказавшиеся  внутри  остановившейся  сферы,  мы   объявляем принадлежащими  таксону  номер  1  и  исключаем   их   из   дальнейшего рассмотрения. Для оставшихся точек описанная выше процедура повторяется до тех пор, пока все точки не окажутся включенными в таксоны. 
    Если количество получившихся таксонов оказалось  меньшим,  чем  нам хотелось бы, мы повторяем процесс таксономии при радиусе сферы, меньшем предыдущего на 10 % . 
    Доказана сходимость алгоритма  за  конечное  число  шагов. 

Алгоритм FOREL-2.

    Эта модификация описанного выше  базового  алгоритма предназначена для получения таксономии с точно заданным числом таксонов k. Здесь радиус сферы по мере надобности увеличивается или  уменьшается на величину dR, которая на каждой очередной  i-ой  итерации  становится все меньше, например, уменьшается вдвое.  Этот  метод  последовательных приближений  позволяет  быстро  подойти   к   шагу,   при    котором получаемое число таксонов ki равно заданному  числу k. 
    Функционал качества таксономии в этом алгоритме выглядит  следующим образом: F = f(ki)* Srj , j=1--k. 

Здесь f(ki) = 1, если ki=k  и 

Алгоритм SKAT.

    Если при  многократном  случайном  выборе  начальной точки получается большое число неодинаковых таксономий или если таксоны сильно отличаются друг от друга по количеству своих точек, то это может означать, что наш материал наряду с  несколькими  локальными  сгустками точек содержит  еще  и  одиночные  точки  или небольшие  их  скопления, случайно  разбросанные  в  пространстве  между   сгустками.   Создается ощущение того, что имеется несколько "самостоятельных" таксонов  и  ряд случайно образовавшихся, "несамостоятельных" таксонов, которые  было  бы целесообразно присоединить к ближайшим "самостоятельным". 
  На  вход программы SKAT подается множество m объектов и результаты его таксономии S с помощью  алгоритма  FOREL  при  радиусе  сферы, равном R. Процедуры таксономии повторяются с таким же радиусом сфер,  но с тем отличием,  что  теперь  в  качестве  начальных  точек  выбираются центры, полученные в  таксономии  S,  и  новая  таксономия  делается  с участием всех m точек. 
    В   результате   обнаруживаются   неустойчивые   таксоны,   которые скатываются  к  таксонам-предшественникам.  Решение  выдается  в   виде перечня устойчивых  таксонов  и  указания  тех  неустойчивых  таксонов, которые к ним тяготеют. Если мы хотим ограничиться  только  устойчивыми таксонами, тогда мы должны стремиться к такому варианту таксономии, при котором количество точек l в устойчивых таксонах было бы  максимальным, т.е. максимизировать такой функционал: 
     F =  SLj*f(j), где j=1--k,  f(j) =1, если j-тый таксон устойчив,  и f(j)=0, если   j-тый таксон неустойчив.

Алгоритм BIGFOR.

    Иногда  встречаются  такие  большие  таблицы данных,  которые   не умещаются целиком в  оперативную  память  и  должны  обрабатываться  по частям. Для таксономии таких массивов предназначен итеративный алгоритм BIGFOR. 
    Вначале в оперативную память вводится массив из V объектов  (V<<m), который с помощью алгоритма FOREL-2 делится на  k'  таксонов.  Описание таксона состоит из координат его центра и количества lj' его внутренних точек ("веса" центра). Затем в память вводится следующая порция данных, с которой проделывается та же процедура. После повторения этих шагов  t раз, где t = m/V, получается массив из q = t*k'  точек,  представляющих собой центры таксонов, возникавших на каждом из шагов. Группировка  этих точек в k таксонов  делается  с  помощью  варианта  алгоритма  FOREL-2, который  при  вычислении  координат  центра  тяжести  внутренних  точек учитывает вес этих точек. 
    Если число исходных объектов m слишком велико, процедура укрупнения таксонов может быть не двух-, а многоступенчатой, "скатывание" таксонов во все более крупные "шарики" делается несколько раз. 
    Критерий качества таксономии, получаемой алгоритмом BIGFOR, тот же, 
что и  у  алгоритма  FOREL. 
     Алгоритм  BIGFOR  можно  использовать  для получения иерархической таксономии. На первом его шаге выбирается небольшой радиус R>0, дающий k1<m таксонов первого уровня. На втором шаге происходит  слияние некоторых близких друг к другу мелких таксонов в более крупные таксоны, в результате чего появляются k2 таксонов второго уровня  (k2<k1).  Если эти шаги продолжать, то на некотором шаге p будет получена  таксономия, объединяющая все точки в один единственный таксон. 
     Отношения между таксонами разных уровней можно представить себе  в виде иерархической структуры или дерева, состоящего из  m  объектов  на нулевом уровне (уровне "листьев") и ki таксонов (i=1,...p) на каждом из p уровней. 
    Последовательность шагов работы алгоритма FOREL можно наблюдать на демонстрационном примере.


Литература:

1. Загоруйко Н.Г. Методы распознавание и их применение. Изд. ╚Сов. Радио╩, М., 1972.
2.Загоруйко Н.Г. , Елкина В.Н., Лбов Г.С., Емельянов С.В. Пакет прикладных программ ОТЭКС. Изд."Финансы и статистика". М., 1986.