Алгоритм Камада-Кавай
Алгоритм Камада-Кавай (T. Kamada-S. Kawai)) относится к семейству силовых алгоритмов (forced-directed) укладки графов на плоскости, в котором используется пружинная физическая модель, где вершины определяются как тела системы, а ребра как пружины. Силы могут действовать только на вершины, вес пружин при этом не учитывается.
Постановка задачи
Имеется простой неориентированный граф
Описание алгоритма
- Рассчитываются расстояния по графу между всеми вершинами
- Вершины графа помещаются в случайные координаты
- Выбирается вершина
, на которую действует максимальная сила - Остальные вершины фиксируются, энергия системы минимизируется
- Повторяются шаги 3-4
Алгоритм не имеет механизма остановки, а значит пользователь сам решает, когда закончить работу алгоритма. Обычно при реализации ограничивают количество итераций.
Описание модели
Функция энергии
Свойства
Алгоритм является вычислительно затратным, так как для расчета кратчайших путей между вершинами требует
Также алгоритму требуется более 100 итераций для получения хорошего результата, что делает его неэффективным для применения на больших графах
Демонстрация
Литература
- Kamada T., Kawai S. An algorithm for drawing general undirected graphs. Information Processing Letters. – 1989. – Vol. 31, N 1. – pp. 7–15.