В математическом подразделе теории графов структура уровней корневого графа представляет собой разбиение вершин на подмножества, которые находятся на одинаковом расстоянии от заданной корневой вершины. [1]
Если задан связный граф G = ( V , E ) с V — множеством вершин и E — множеством ребер , и с корневой вершиной r , структура уровня представляет собой разбиение вершин на подмножества L i , называемые уровнями, состоящие из вершин на расстоянии i от r . Эквивалентно, этот набор можно определить, установив L 0 = { r }, а затем, для i > 0, определив L i как множество вершин, которые являются соседями вершин в L i − 1 , но сами не находятся ни на каком более раннем уровне. [1]
Структуру уровней графа можно вычислить с помощью варианта поиска в ширину : [2] : 176
уровень алгоритма -BFS(G, r): В ← {р} для ℓ от 0 до ∞: process(Q, ℓ) // множество Q содержит все вершины на уровне ℓ отметить все вершины в Q как обнаруженные Q' ← {} для u в Q: для каждого ребра (u, v): если v еще не отмечено: добавить v к Q' если Q' пуст: возврат Q ← Q'
В уровневой структуре каждое ребро графа G либо имеет обе конечные точки на одном уровне, либо две его конечные точки находятся на последовательных уровнях. [1]
Разбиение графа на его уровневую структуру может использоваться в качестве эвристики для решения задач компоновки графа, таких как пропускная способность графа . [1] Алгоритм Катхилла–Макки представляет собой усовершенствование этой идеи, основанное на дополнительном этапе сортировки на каждом уровне. [3]
Уровневые структуры также используются в алгоритмах для разреженных матриц [ 4] и для построения разделителей планарных графов [5] .