Измерение важности узла
использует дополнительные параметры, указанные одним или несколькими аргументами пары Name-Value. Например, C = centrality(___,Name,Value)centrality(G,'closeness','Cost',c) указывает стоимость прохождения каждой кромки.
Создайте и постройте график, содержащий шесть фиктивных веб-сайтов.
s = [1 1 2 2 3 3 3 4 5];
t = [2 5 3 4 4 5 6 1 1];
names = {'http://www.example.com/alpha', 'http://www.example.com/beta', ...
'http://www.example.com/gamma', 'http://www.example.com/delta', ...
'http://www.example.com/epsilon', 'http://www.example.com/zeta'};
G = digraph(s,t,[],names);
plot(G,'NodeLabel',{'alpha','beta','gamma','delta','epsilon','zeta'})
Рассчитайте ранг страницы каждого веб-сайта с помощью centrality функция. Добавить эту информацию в Nodes таблица графа как атрибут узлов графа.
pg_ranks = centrality(G,'pagerank')pg_ranks = 6×1
0.3210
0.1706
0.1066
0.1368
0.2008
0.0643
G.Nodes.PageRank = pg_ranks; G.Nodes
ans=6×2 table
Name PageRank
__________________________________ ________
{'http://www.example.com/alpha' } 0.32098
{'http://www.example.com/beta' } 0.17057
{'http://www.example.com/gamma' } 0.10657
{'http://www.example.com/delta' } 0.13678
{'http://www.example.com/epsilon'} 0.20078
{'http://www.example.com/zeta' } 0.06432
Также определите, какие узлы являются концентраторами и органами власти с помощью centrality и добавить баллы к Nodes таблица.
hub_ranks = centrality(G,'hubs'); auth_ranks = centrality(G,'authorities'); G.Nodes.Hubs = hub_ranks; G.Nodes.Authorities = auth_ranks;
G.Nodes
ans=6×4 table
Name PageRank Hubs Authorities
__________________________________ ________ __________ ___________
{'http://www.example.com/alpha' } 0.32098 0.24995 7.3237e-05
{'http://www.example.com/beta' } 0.17057 0.24995 0.099993
{'http://www.example.com/gamma' } 0.10657 0.49991 0.099993
{'http://www.example.com/delta' } 0.13678 9.1536e-05 0.29998
{'http://www.example.com/epsilon'} 0.20078 9.1536e-05 0.29998
{'http://www.example.com/zeta' } 0.06432 0 0.19999
Создайте и постройте график взвешивания, используя случайную разреженную матрицу смежности. Поскольку существует много ребер, используйте очень маленькое значение для EdgeAlpha сделать края в основном прозрачными.
A = sprand(1000,1000,0.15); A = A + A'; G = graph(A,'omitselfloops'); p = plot(G,'Layout','force','EdgeAlpha',0.005,'NodeColor','r');

Вычислите степень центрованности каждого узла. Укажите важность каждой кромки, используя веса кромки.
deg_ranks = centrality(G,'degree','Importance',G.Edges.Weight);
Использовать discretize чтобы поместить узлы в 7 равноотстоящих ячеек на основе их центральных показателей.
edges = linspace(min(deg_ranks),max(deg_ranks),7); bins = discretize(deg_ranks,edges);
Сделайте размер каждого узла на графике пропорциональным его центральному значению. Размер маркера каждого узла равен номеру ячейки (1-7).
p.MarkerSize = bins;

Загрузить данные в minnesota.mat, который содержит объект graph G представляет сеть дорог в Миннесоте. Узлы графика имеют координаты xy, содержащиеся в XCoord и YCoord переменные G.Nodes таблица.
load minnesota.mat
xy = [G.Nodes.XCoord G.Nodes.YCoord];Добавьте к графу веса ребер, примерно соответствующие длине дорог, рассчитанные с использованием евклидова расстояния между координатами xy конечных узлов каждого ребра.
[s,t] = findedge(G); G.Edges.Weight = hypot(xy(s,1)-xy(t,1), xy(s,2)-xy(t,2));
Постройте график, используя координаты xy для узлов.
p = plot(G,'XData',xy(:,1),'YData',xy(:,2),'MarkerSize',5); title('Minnesota Road Network')

Вычислите централь близости каждого узла. Масштабирование цвета узла NodeCData быть пропорциональным центральному показателю.
ucc = centrality(G,'closeness'); p.NodeCData = ucc; colormap jet colorbar title('Closeness Centrality Scores - Unweighted')

Кроме того, вычислите взвешенную оценку центральной близости, используя веса кромок в качестве стоимости прохождения каждой кромки. Использование длины дороги в качестве веса кромки улучшает качество оценки, поскольку теперь расстояния измеряются как сумма длин всех пройденных кромок, а не количество пройденных кромок.
wcc = centrality(G,'closeness','Cost',G.Edges.Weight); p.NodeCData = wcc; title('Closeness Centrality Scores - Weighted')

Вычислите взвешенные оценки центральности между точками для графика, чтобы определить дороги, чаще всего встречающиеся на кратчайшем пути между двумя узлами. Нормализуйте показатели центральности с помощью коэффициента 2 так, чтобы показатель представлял вероятность того, что путешественник по кратчайшему пути между двумя случайными узлами пройдет через данный узел. Сюжет указывает на то, что есть несколько очень важных дорог, ведущих в город и из него.
wbc = centrality(G,'betweenness','Cost',G.Edges.Weight); n = numnodes(G); p.NodeCData = 2*wbc./((n-2)*(n-1)); colormap(flip(autumn,1)); title('Betweenness Centrality Scores - Weighted')

type - Тип центрального узла'degree' | 'outdegree' | 'indegree' | 'closeness' | 'incloseness' | 'outcloseness' | 'betweenness' | 'pagerank' | 'eigenvector' | 'hubs' | 'authorities'Тип центрального узла, указанный в таблице в качестве одного из параметров. В таблице также перечислены совместимые пары Имя (Name) - Значение (Value), которые работают с каждым типом. Каждое разнообразие узловой центральности предлагает различную меру важности узла в графике.
|
Выбор |
Тип графика |
Описание |
Пары «имя-значение» |
|---|---|---|---|
|
|
Ненаправленный |
При указании | |
|
|
Направленный | ||
|
|
Ненаправленный |
21Ci. Ai - количество доступных узлов из узла
| |
|
|
Направленный | ||
|
|
Неориентированные или направленные |
Nst. ) - число кратчайших путей из
| |
|
|
Неориентированные или направленные |
| |
|
|
Ненаправленный |
| |
|
|
Направленный |
|
Примечание
centrality функция предполагает, что все веса кромок равны 1. Чтобы изменить это, укажите веса кромок для использования с 'Cost' или 'Importance' пары имя-значение.
Пример: centrality(G,'degree')
Пример: centrality(G,'hubs','Tolerance',tol)
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
C = centrality(G,'closeness','Cost',edgeCosts) вычисляет централь близости с помощью edgeCosts как стоимость (вес) прохождения каждого ребра в графике.'Cost' - Стоимость пересечения кромокСтоимость пересечения кромки, указанная как разделенная запятыми пара, состоящая из 'Cost' и вектор положительных краевых весов. Вес i-ой кромки определяет стоимость, связанную с пересечением кромки findedge(G,i). Все веса кромок должны быть больше нуля.
'Cost' вес края меньше, когда соединение короче, быстрее или дешевле. Некоторые примеры 'Cost' веса кромок:
Длина контура
Время в пути
Стоимость билета
Примечание
'Cost' применяется только к 'closeness', 'outcloseness', 'incloseness', и 'betweenness' типы центральности.
Пример: centrality(G,'closeness','Cost',c)
'FollowProbability' - Вероятность выбора следующего узла0.85 (по умолчанию) | скаляр между 0 и 1Вероятность выбора следующего узла, указанного как пара, разделенная запятыми, состоящая из 'FollowProbability' и скаляр между 0 и 1. Следующая вероятность - вероятность того, что следующий узел, выбранный в обходе алгоритмом pagerank, выбирается среди преемников текущего узла, а не случайным образом из всех узлов. Для веб-сайтов эта вероятность соответствует щелчку по ссылке на текущей веб-странице вместо перехода на другую случайную веб-страницу.
Примечание
'FollowProbability' применяется только к 'pagerank' тип центра.
Пример: centrality(G,'pagerank','FollowProbability',0.5)
'Importance' - Краевая важностьВажность кромки, заданная как разделенная запятыми пара, состоящая из 'Importance' и вектор неотрицательных краевых весов. Вес i-го края определяет важность ребра findedge(G,i). Нулевой вес ребра эквивалентен удалению этого ребра из графа.
Для мультиграфов с несколькими ребрами между двумя узлами, centrality добавляет несколько кромок вместе и обрабатывает их как одну кромку с объединенным весом.
'Importance' вес кромки больше, когда соединение прочнее. Некоторые примеры 'Importance' веса кромок:
Число путешественников в день
Количество щелчков по ссылке
Количество опубликованных вместе документов
Примечание
'Importance' применяется только к 'degree', 'outdegree', 'indegree', 'pagerank', 'eigenvector', 'hubs', и 'authorities' типы центральности.
Пример: centrality(G,'degree','Importance',x)
'MaxIterations' - Максимальное число итераций100 (по умолчанию) | скалярМаксимальное количество итераций, указанное как пара, разделенная запятыми, состоящая из 'MaxIterations' и скаляр. centrality алгоритм выполняется до тех пор, пока не будет соблюден допуск или не будет достигнуто максимальное число итераций, в зависимости от того, что наступит раньше.
Примечание
'MaxIterations' применяется только к 'pagerank', 'eigenvector', 'hubs', и 'authorities' типы центральности.
Пример: centrality(G,'pagerank','MaxIterations',250)
'Tolerance' - Критерий остановки итеративных решателей1e-4 (по умолчанию) | скалярКритерий остановки итеративных решателей, определяемый как разделенная запятыми пара, состоящая из 'Tolerance' и скаляр. centrality алгоритм выполняется до тех пор, пока не будет соблюден допуск или не будет достигнуто максимальное число итераций, в зависимости от того, что наступит раньше.
Примечание
'Tolerance' применяется только к 'pagerank', 'eigenvector', 'hubs', и 'authorities' типы центральности.
Пример: centrality(G,'pagerank','Tolerance',1e-5)
C - Показатели централизованности узловПоказатели центральности узлов, возвращаемые в виде вектора столбца. C(i) - показатель централизованности узла i. Интерпретация показателя центральности узла зависит от выбранного типа вычисления центральности. Чем более центральным является узел, тем больше его центральная оценка.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.