Силовой алгоритм размещения
(Новая страница: «Силовой алгоритм размещения предполагает создание красивого графа с ребрами одинаково…») |
|||
Строка 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]] |
[[Категория:R]] | [[Категория:R]] | ||
[[Категория:Графвиз]] | [[Категория:Графвиз]] |
Версия 13:07, 30 января 2016
Силовой алгоритм размещения предполагает создание красивого графа с ребрами одинаковой длины и минимально возможным количеством пересечений. Он представляют граф в виде физической системы. Вершины — электрически заряженные частицы, отталкивающиеся друг от друга при чрезмерном приближении. Ребра ведут себя, как пружины, притягивающие соединенные вершины поближе друг к другу. В результате вершины равномерно распределяются по области графика, а размещение интуитивно в том смысле, что вершины с большим количеством связей находятся ближе друг к другу. Недостаток этих алгоритмов состоит в том, что они довольно медленны, а потому редко используются на графах с количеством вершин больше 1000.
Содержание |
Силовые алгоритмы в Netlogo
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)