Пусть некоторый полный взвешенный неориентированный граф. Построим второй граф , добавив ребра одно за другим из в . Добавим края для всего.
Каждый раз, когда мы добавляем одно ребро к , мы рассматриваем кратчайшие расстояния между всеми парами в и . Мы посчитаем, сколько из этих кратчайших расстояний изменилось в результате сложения . Пусть будет числом кратчайших расстояний, которые меняются при добавлении th ребро, и пусть будет количеством ребер, которые мы добавим в итоге.
Насколько большой ?
Поскольку , C = O ( n 2 ) . Может ли эта граница быть улучшена? Обратите внимание, что я определяю C как среднее по всем ребрам, которые были добавлены, поэтому один раунд, в котором изменяется большое количество расстояний, не столь интересен, хотя он доказывает, что C = Ω ( n ) .
У меня есть алгоритм для жадного вычисления геометрического t-гаечного ключа, который работает за , поэтому, если C равно o ( n 2 ) , мой алгоритм работает быстрее, чем исходный жадный алгоритм, и если C действительно мал потенциально быстрее, чем самый известный алгоритм (хотя я сомневаюсь в этом).
Некоторые специфические для задачи свойства, которые могут помочь с хорошей границей: добавляемое ребро всегда имеет больший вес, чем любое ребро, уже существующее в графе (не обязательно строго больше). Кроме того, его вес меньше, чем кратчайший путь между u и v .
Можно предположить, что вершины соответствуют точкам в 2d плоскости, а расстояния между вершинами являются евклидовыми расстояниями между этими точками. То есть каждая вершина соответствует некоторой точке ( x , y ) на плоскости, а для ребра ( u , v ) = ( ( x 1 , y 1 ) , ( x 2 , y 2 ) ) ее вес равен к √