Нехай - деякий повний, зважений, непрямий графік. Побудуємо другий графік , додаючи ребра по одному від до . Додасть кромки до в цілому.G ′ = ( V , E ′ ) E E ′ Θ ( | V | ) G ′
Кожного разу, коли ми додаємо один край до , ми вважаємо найкоротші відстані між усіма парами в та . Ми підраховуємо, скільки цих коротких відстаней змінилося внаслідок додавання . Нехай - кількість найкоротших відстаней, що змінюються при додаванні го краю, і - кількість ребер, які ми додаємо в загальній складності.E ′ ( V , E ′ ) ( V , E ′ ∪ { ( u , v ) } ) ( u , v ) C i i n
Наскільки великий ?
Як , так і . Чи можна покращити цю межу? Зауважте, що я визначаю, що є середнім по всіх доданих ребрах, тому єдиний раунд, в якому змінюється велика кількість відстаней, не такий цікавий, хоча це доводить, що .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 ) ) √