Силовой алгоритм размещения

Материал из Letopisi.Ru — «Время вернуться домой»
(Различия между версиями)
Перейти к: навигация, поиск
(Новая страница: «Силовой алгоритм размещения предполагает создание красивого графа с ребрами одинаково…»)
 
Строка 1: Строка 1:
 
Силовой алгоритм размещения предполагает создание красивого графа с ребрами одинаковой длины и минимально возможным количеством пересечений. Он представляют граф в виде физической системы. Вершины — электрически заряженные частицы, отталкивающиеся друг от друга при чрезмерном приближении. Ребра ведут себя, как пружины, притягивающие соединенные вершины поближе друг к другу. В результате вершины равномерно распределяются по области графика, а размещение интуитивно в том смысле, что вершины с большим количеством связей находятся ближе друг к другу. Недостаток этих алгоритмов состоит в том, что они довольно медленны, а потому редко используются на графах с количеством вершин больше 1000.
 
Силовой алгоритм размещения предполагает создание красивого графа с ребрами одинаковой длины и минимально возможным количеством пересечений. Он представляют граф в виде физической системы. Вершины — электрически заряженные частицы, отталкивающиеся друг от друга при чрезмерном приближении. Ребра ведут себя, как пружины, притягивающие соединенные вершины поближе друг к другу. В результате вершины равномерно распределяются по области графика, а размещение интуитивно в том смысле, что вершины с большим количеством связей находятся ближе друг к другу. Недостаток этих алгоритмов состоит в том, что они довольно медленны, а потому редко используются на графах с количеством вершин больше 1000.
 +
 +
=== Силовые алгоритмы в [[Netlogo]] ===
 +
 +
layout-spring
 +
 +
=== Силовые алгоритмы в [[R]] ===
 +
 +
R позволяет сохранить размещение графа в одном и том же месте за счет
 +
l <- layout.sphere(net.bg)
 +
Сохранение размещения l позволяет получать один и тот же результат много раз, что может быть полезным, если нужно построить изменение графа во времени или разные отношения — и нужно оставить вершины на одних и тех же местах в нескольких графиках.
 +
 +
==== Фрюхтерман-Рейнгольд - fruchterman.reingold ====
  
 
Вот несколько параметров, которые можно задать для этого размещения: area (по умолчанию — квадрат количества вершин) и repulserad (радиус подавления для отталкивания — area, умноженная на количество вершин). Оба параметра влияют на расположение графика — изменяйте их, пока не останетесь довольны результатом.
 
Вот несколько параметров, которые можно задать для этого размещения: area (по умолчанию — квадрат количества вершин) и repulserad (радиус подавления для отталкивания — area, умноженная на количество вершин). Оба параметра влияют на расположение графика — изменяйте их, пока не останетесь довольны результатом.
  
 +
==== fruchterman.reingold.grid ====
 +
 +
l <- layout.fruchterman.reingold(net.bg, repulserad=vcount(net.bg)^3,
 +
                                      area=vcount(net.bg)^2.4)
 +
 +
==== Камада-Каваи ====
  
 +
l <- layout.kamada.kawai(net.bg)
 +
plot(net.bg, layout=l)
  
 
[[Категория:Сеть]]
 
[[Категория:Сеть]]
[[Категория:Netlogo]]
+
[[Категория:NetLogo]]
 
[[Категория:R]]
 
[[Категория:R]]
 
[[Категория:Графвиз]]
 
[[Категория:Графвиз]]

Версия 13:07, 30 января 2016

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

Содержание

layout-spring

Силовые алгоритмы в R

R позволяет сохранить размещение графа в одном и том же месте за счет

l <- layout.sphere(net.bg)

Сохранение размещения l позволяет получать один и тот же результат много раз, что может быть полезным, если нужно построить изменение графа во времени или разные отношения — и нужно оставить вершины на одних и тех же местах в нескольких графиках.

Фрюхтерман-Рейнгольд - fruchterman.reingold

Вот несколько параметров, которые можно задать для этого размещения: area (по умолчанию — квадрат количества вершин) и repulserad (радиус подавления для отталкивания — area, умноженная на количество вершин). Оба параметра влияют на расположение графика — изменяйте их, пока не останетесь довольны результатом.

fruchterman.reingold.grid

l <- layout.fruchterman.reingold(net.bg, repulserad=vcount(net.bg)^3,

                                     area=vcount(net.bg)^2.4)

Камада-Каваи

l <- layout.kamada.kawai(net.bg) plot(net.bg, layout=l)

Инструменты