Моделирование кластеризации многомерных объектов в Visual C++ - page 6

З.Н. Русакова, А.В. Орел
6
class ListOfNearElementz{
public:
NearElement *first, *last;
// указатели на начало и
конец списка
NearElement *cur, *sel; ;
// текущие указатели
double distance;
//радиус сферы включения
ListOfNearElementz(){
// конструктор
first=0;
last=0;cur=0; sel=0; distance=0; }
~ListOfNearElementz(){}
//деструктор
// методы класса – добавить элемент в хвост или голову списка
void copyElementToEnd(Pointz *v);
void copyElementToHead(Pointz *v){
};
Основная структура моделирования — класс ListOfElementz,
описывающий двунаправленный горизонтальный список элементов,
который объединяет все описанные и представленные на рис. 1 клас-
сы. Каждый элемент горизонтального списка включает ссылку на
двунаправленный список локального окружения, формирующего
список ближайших соседей. В методах этого класса осуществляется
кластеризация: формируются списки ближайших соседей, из списка
ближайших удаляются те, у которых расстояние превышает среднее
по всем классам ближайших, а также метод, в котором реализуется
классификация, т. е. кластерам назначаются точки, вычисляются цен-
тры кластеров и объединяются цепочки ближайших элементов. Класс
можно описать следующим образом:
class ListOfElementz{
public:
Element *first, *last;
// первый, последний
Element *cur, *sel;
// текущий, выбранный
ListOfElementz(){first=0;last=0;cur=0;sel=0;}
// методы класса, реализация методов вне класса
void nearElements();
// метод формирования списков
локальных сгущений
void deleteLongDistance();
// метод удаления связей
между кластерами
// метод слияния списков локальных сгущений в кластер — клас-
теризация
void clustering();
};
В методы класса включены методы вычисления ближайших со-
седей, метод удаления связей между кластерами, метод кластериза-
ции, в котором точкам назначаются номера кластеров и объединяют-
ся цепочки ближайших элементов.
1,2,3,4,5 7,8,9,10,11,12,13
Powered by FlippingBook