Участник:Guryanovak/Алгоритм кластеризации, основанный на минимальном остовном дереве: различия между версиями

Материал из Алговики
Перейти к навигации Перейти к поиску
Строка 6: Строка 6:
  
 
== Математическое описание алгоритма ==
 
== Математическое описание алгоритма ==
 +
 +
На вход алгоритму подается набор <math>N</math> векторов размерности <math>m</math> : <math>(a_{k,1}, a_{k,2}, ..., a_{k,m})</math>, где  <math> a_j \in \mathbb {R} \quad \forall j \in [1,m], k \in [1..N] </math> и количество кластеров <math>K</math>, на которые необходимо разбить множество точек.
 +
 +
На выход алгоритм должен вывести <math>N</math> чисел от <math>1</math> до <math>K</math>, показывающих принадлежность входных векторов кластерам.
 +
 +
=== Основные обозначения ===
 +
 +
* <math>E</math> - множество рёбер.
 +
* <math>V</math> - множество вершин.
 +
* <math>G = (V,E) </math> - неориентированный граф, заданный множеством вершин <math>V</math> и множеством рёбер <math>E</math>
 +
* <math>MST(G)</math> (Minimum Spanning Tree) - минимальное остовное дерево графа <math></math>. Остовное дерево — ациклический связный подграф данного связного неориентированного графа, в который входят все его вершины. Минимальное остовное дерево в связанном взвешенном неориентированном графе — это остовное дерево этого графа, имеющее минимальный возможный вес, где под весом дерева понимается сумма весов входящих в него рёбер.
 +
 +
=== Функция веса ===
 +
 +
Для решения задачи допускаются различные функции веса, используемые для построения минимального основного дерева. Подобные функции будут влиять на структура построенных кластеров и могут меняться в соответствии с требованиями к решению.
 +
 +
В данной статье будет рассматриваться евклидова метрика:
 +
* <math> | x , y | = \sqrt{\sum_i^m (x_i - y_i)^2)}
  
 
== Вычислительное ядро алгоритма ==
 
== Вычислительное ядро алгоритма ==

Версия 18:06, 15 октября 2016

Основные авторы описания: Гурьянов Алексей Константинович, Кибитова Валерия Николаевна

1 Свойства и структура алгоритмов

1.1 Общее описание алгоритма

1.2 Математическое описание алгоритма

На вход алгоритму подается набор [math]N[/math] векторов размерности [math]m[/math] : [math](a_{k,1}, a_{k,2}, ..., a_{k,m})[/math], где [math] a_j \in \mathbb {R} \quad \forall j \in [1,m], k \in [1..N] [/math] и количество кластеров [math]K[/math], на которые необходимо разбить множество точек.

На выход алгоритм должен вывести [math]N[/math] чисел от [math]1[/math] до [math]K[/math], показывающих принадлежность входных векторов кластерам.

1.2.1 Основные обозначения

  • [math]E[/math] - множество рёбер.
  • [math]V[/math] - множество вершин.
  • [math]G = (V,E) [/math] - неориентированный граф, заданный множеством вершин [math]V[/math] и множеством рёбер [math]E[/math]
  • [math]MST(G)[/math] (Minimum Spanning Tree) - минимальное остовное дерево графа [math][/math]. Остовное дерево — ациклический связный подграф данного связного неориентированного графа, в который входят все его вершины. Минимальное остовное дерево в связанном взвешенном неориентированном графе — это остовное дерево этого графа, имеющее минимальный возможный вес, где под весом дерева понимается сумма весов входящих в него рёбер.

1.2.2 Функция веса

Для решения задачи допускаются различные функции веса, используемые для построения минимального основного дерева. Подобные функции будут влиять на структура построенных кластеров и могут меняться в соответствии с требованиями к решению.

В данной статье будет рассматриваться евклидова метрика:

  • <math> | x , y | = \sqrt{\sum_i^m (x_i - y_i)^2)}

1.3 Вычислительное ядро алгоритма

1.4 Макроструктура алгоритма

1.5 Схема реализации последовательного алгоритма

1.6 Последовательная сложность алгоритма

1.7 Информационный граф

1.8 Ресурс параллелизма алгоритма

1.9 Входные и выходные данные алгоритма

1.10 Свойства алгоритма

2 Программная реализация алгоритма

2.1 Особенности реализации последовательного алгоритма

2.2 Локальность данных и вычислений

2.3 Возможные способы и особенности параллельной реализации алгоритма

2.4 Масштабируемость алгоритма и его реализации

2.5 Динамические характеристики и эффективность реализации алгоритма

2.6 Выводы для классов архитектур

2.7 Существующие реализации алгоритма