Дизайнерские карнизы hameleon

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

Как видно из графа алгоритма, операции слияния, находящиеся на одной итерации-плоскости главного цикла, не зависят друг от друга, и, следовательно, могут быть выполнены параллельно. Исходя из этого, предлагается следующая схема выполнения параллельного выполнения: каждая операция слияния на одной итерации главного цикла вызывается асинхронно, а в конце одной итерации главного цикла происходит ожидание окончания работы всех операций и подготовка к следующей итерации.

Стоит заметить, что создание числа параллельных потоков, равного текущему количеству кластеров, вряд ли можно считать реальной задачей. Поэтому будем считать, что каждый параллельный поток вычисляет ровно один столбец матрицы-плоскости информационного графа, что означает, что параллельная сложность выполнения одной итерации алгоритма равна O(n). Высота полученного графа (то есть, число позиций по вертикальной оси) будет равна O(log(n)), так как на каждом шаге цикла число кластеров уменьшается в среднем в 2 раза.

Производство

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

Для создания шанжана используется преимущественно полотняное переплетение. Основа и уточные нити обязательно должны быть разных цветов. Используются нити сильной крутки, поэтому полотно получается плотным и очень тонким, такой вид ткани называется тафтой, а хамелеон — ее разновидность.

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

Алгоритм CHAMELEON первые представлен в 1999 департаментом компьютерных наук и инженерии, университет Миннесоты, США. Авторы George Karypis, Eui-Hong (Sam) Han, Vipin Kumar.

Кластеризация – процесс разбиения множества данных по некоторому признаку на такие группы, что в пределах одной группы данные максимально схожи по данному признаку, а в разных группах данные максимально различны. Иерархические алгоритмы кластеризации строят не одно разбиение множества данных на кластеры, а систему вложенных разбиений. CHAMELEON является агломеративным методом (снизу вверх), когда после первого разбиения на мелкие кластеры пары близлежащих кластеров итеративно объединяются в общий кластер. На первом этапе CHAMELEON использует алгоритм разделения графа для получения набора относительно малых кластеров. На втором этапе, для объединения кластеров, полученных на первом этапе, в настоящие кластеры, используется иерархическая агломеративная кластеризация. Таким образом, алгоритм, фактически, является гибридным, построенным комбинацией графо-ориентированных и классических иерархических методов.

На первом этапе, согласно графо-ориентированному подходу, происходит построение графа на матрице сходства объектов по принципу k ближайших соседей. Две вершины такого графа соединяет ребро, если объект, соответствующий любой из этих вершин попадает в число k наиболее близких объектов для объекта, соответствующего другой вершине из данной пары.

На рисунке изображены: объекты в пространстве – слева, граф по принципу 1-го ближайшего соседа – в середине, граф по принципу 3-х ближайших соседей – справа.

Далее, алгоритм разделяет полученный граф на множество сравнительно малых подграфов. Разделение происходит последовательно. На каждом шаге выбирается подграф, содержащий наибольшее число вершин. Этот граф разделяется на два подграфа, так, что разделитель ребер графа минимален и каждый из получаемых подграфов содержит не менее некоторого процента вершин исходного графа. Процесс разделения останавливается, когда наибольший подграф содержит меньше некоторого заданного числа вершин. Полученное множество связных графов считается множеством начальных кластеров, на котором требуется провести последовательное иерархическое объединение.

На втором этапе, алгоритм последовательно объединяет кластеры, используя значение их относительной взаимной связности и относительного взаимного сходства. Только если оба эти значения достаточно высоки у двух кластеров, они объединяются.

Относительная взаимная связность пары кластеров определяется абсолютной взаимной связностью кластеров, нормализованной с учетом внутренней связности каждого кластера (подграфа). Нормализация используется для того, чтобы исключить тенденцию к преимущественному объединению крупных кластеров, у которых, определенно, значение взаимной связности будет больше, вследствие их размера.

На рисунке представлена схема работы алгоритма CHAMELEON.

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

Реализация последовательного алгоритма на псевдокоде выглядит следующим образом:

 // параметры
 // число ближайших соседей в первой фазе алгоритма
 int k;
 // минимальный относительный размер каждого из начальных кластеров
 double MINSIZE;
 // параметры, определяющий, что важнее в определении похожести
 // двух кластеров - относительная взаимосвязанность
 // или относительная близость
 int alpha;
 // порог, определяющий минимальную похожесть кластеров, необходимую
 // для их слияния
 int threshold;
 int n = number_of_vertices;
 double graph_matrixn][n = {};
 // фаза 1 - для каждой вершины найдем k ближайших к ней и соединим 
 // получившиеся наборы ребрами
 for (int i = ; i  n; i++) {
 	double k_nearest_indicesk = findKNearest(i);
 	for (int near_ind = ; near_ind  k; near_ind++) {
 		connect(i, near_ind);
 	}
 }
 // фаза 2 - осуществление начального разбиения на кластеры
 Cluster initial_clusters[] = all(graph_matrix);
 while (1) {
 	Cluster greatest = getGreatestCluster(initial_clusters);
 	if (greatest.size()  n  MINSIZE) {
 		break;
 	} then {
 		Cluster c1;
 		Cluster c2;
 		(c1, c2) = greatest.splitClusterIntoTwo();
 		initial_clusters.remove(greatest);
 		initial_clusters.push_back(c1);
 		initial_clusters.push_back(c2);
 	}
 }
 // фаза 3 - выполним слияние кластеров
 Cluster current_clusters[] = initial_clusters;
 bool already_merged[] = {false};
 Cluster clusters_merged[];
 // возвращает логическую переменную, показывающую,
 // произошло ли слияние или нет
 bool merge(int i, int j) {
 	if (already_merged(i) || already_merged(j)) {
 		return false;
 	}
 
 	Cluster c1 = current_clustersi];
 	Cluster c2 = current_clustersj];
 	
 	double RI = calcRI(c1, c2);
 	double RC = calcRC(c1, c2);
 	double similarity = pow(RI, alpha) * RC;
 	if (similarity > threshold) {
 		already_merged(i) == true;
 		already_merged(j) == true;
 		
 		Cluster merged = connect_clusters(i, j);
 		clusters_merged.push_back(merged);
 		
 		return true;
 	}
 	return false;
 }
 // слияние
 while (1) {
 	bool some_merging_happened = false;
 	for (each pair (i, j) in current_clusters) {
 		some_merging_happened ||= merge(i, j);
 	}
 	if (some_merging_happened) {
 		current_clusters = clusters_merged;
 		clusters_merged = null;
 		
 		already_merged = {false};
 	} else {
 		break;
 	}
 }
 // результат
 print current_clusters

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

3 Литература

CHAMELEON: A Hierarchical Clustering Algorithm Using Dynamic Modeling George Karypis Eui-Hong (Sam) Han Vipin Kumar Department of Computer Science and Engineering University of Minnesota 4-192 EECS Bldg., 200 Union St. SE Minneapolis, MN 55455, USA Technical Report #99–007 {karypis,han,kumar}@cs.umn.edu

International Journal of Computer Applications (0975 – 8887) Volume 79 – No8, October 2013 11 Parallel Algorithm for the Chameleon Clustering Algorithm using Dynamic Modeling

ЭКСПЕРИМЕНТАЛЬНЫЕ РЕЗУЛЬТАТЫ ИССЛЕДОВАНИЯ КАЧЕСТВА КЛАСТЕРИЗАЦИИ РАЗНООБРАЗНЫХ НАБОРОВ ДАННЫХ С ПОМОЩЬЮ МОДИФИЦИРОВАННОГО АЛГОРИТМА ХАМЕЛЕОН Т. Б. Шатовская, А. А. Заремская

Свойства и виды тканей хамелеон

Все виды шанжанов имеют некоторые схожие характеристики, которые определяет тип переплетения:

  • они плотные и обладают водоотталкивающими свойствами;
  • тонкие, так как нити используются крученые;
  • износостойкость;
  • стойкость цвета.

Шелк

Хамелеон из натуральных шелковых волокон отличается благородным переливчатым блеском, легкостью, гигроскопичностью, хорошими гигиеническими свойствами — позволяет телу свободно дышать.

Также обладает хорошими терморегулирующими характеристиками — может согревать в холод и приятно охлаждает в жару. Не вызывает аллергию.

Хлопок

Хлопковый шанжан, как и шелковый, обладает прекрасными гигиеническими свойствами, гипоаллергенный, легкий, но не такой блестящий.

Полиэстер

 Читайте про: ткань перл шифон — доступный блеск модниц. 

Также материал с эффектом шанжан может быть различной плотности и типа кручения нитей:

  • шифон. Плотная полупрозрачная ткань из синтетики или шелка. Плетение полотняное, крутка креповая. Полотно получается легким и струящимся;
  • органза. Прозрачная, плотного переплетения. Так как при ее производстве используется нить сверх сильной крутки, она получается жесткой;

  • дюпон. Тяжелая плотная ткань из натурального шелка, производится из раскрученных основных ниток и резаных уточных;
  • бархат. Для производства ткани используют также натуральный шелк. Бархат хамелеон — дорогой материал с длинным густым и мягким ворсом с лицевой стороны. Он меняет оттенок при изменении освещения и угла обзора, выглядит роскошно.

Применение

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

После дополнительной обработки водоотталкивающими средствами синтетической ткани, из нее шьют куртки, ветровки, плащи.

Домашний текстиль

 Читайте про: асбестовая ткань: как производится и используется. 

  • Они долговечны, прочные, не мнутся и не выгорают.
  • Именно с помощью штор из такого переливающегося материала можно дополнить любой интерьер, где был использован один из цветов шанжана.

  • При подборе цветовой гаммы нужно быть аккуратными — к цвету отделки помещения должны подходить оба оттенка.
  • Недостатком таких изделий является их способность накапливать статическое электричество и притягивать пыль.

На заметку

Шанжан из синтетики часто используют в качестве обивочной ткани для гостиных и ресторанных залов, они стойкие к истиранию и прочные на разрыв, благодаря плотности отталкивают загрязнения. Такая мебель придаст роскошный вид интерьеру в одном их классических стилей.

Добавить комментарий