Скільки найкоротших відстаней змінюється, додаючи край до графіка?


22

Нехай - деякий повний, зважений, непрямий графік. Побудуємо другий графік , додаючи ребра по одному від до . Додасть кромки до в цілому.G = ( V , E ) E E Θ ( | V | ) G G=(V,E)G=(V,E)EEΘ(|V|)G

Кожного разу, коли ми додаємо один край до , ми вважаємо найкоротші відстані між усіма парами в та . Ми підраховуємо, скільки цих коротких відстаней змінилося внаслідок додавання . Нехай - кількість найкоротших відстаней, що змінюються при додаванні го краю, і - кількість ребер, які ми додаємо в загальній складності.E ( V , E ) ( V , E { ( u , v ) } ) ( u , v ) C i i n(u,v)E(V,E)(V,E{(u,v)})(u,v)Ciin

Наскільки великий ?C=iCin

Як , так і . Чи можна покращити цю межу? Зауважте, що я визначаю, що є середнім по всіх доданих ребрах, тому єдиний раунд, в якому змінюється велика кількість відстаней, не такий цікавий, хоча це доводить, що .C = O ( n 2 ) C C = Ω ( n )Ci=O(|V|2)=O(n2)C=O(n2)CC=Ω(n)

У мене є алгоритм для обчислення геометричного t-гайкового ключа, який спрацьовує за час , тож якщо є , мій алгоритм швидший, ніж початковий жадібний алгоритм, і якщо є дійсно невеликий, потенційно швидший, ніж найкращий відомий алгоритм (хоча я сумніваюся в цьому).C o ( n 2 ) CO(Cnlogn)Co(n2)C

Деякі властивості, пов'язані з проблемою, які можуть допомогти добре обмежити: доданий край завжди має більшу вагу, ніж будь-який край, який вже є у графіку (не обов'язково строго більший). Крім того, його вага коротший, ніж найкоротший шлях між та .u v(u,v)uv

Можна припустити, що вершини відповідають точкам у 2d площині, а відстані між вершинами - це евклідові відстані між цими точками. Тобто, кожна вершина відповідає деякій точці у площині, а для ребра її вага дорівнює( x , y ) ( u , v ) = ( ( x 1 , y 1 ) , ( x 2 , y 2 ) ) v(x,y)(u,v)=((x1,y1),(x2,y2))(x2x1)2+(y2y1)2.


2
Візьміть дві кліки, з'єднані стежкою з двома краями. Додавання одного краю безпосередньо між кліками скорочує найкоротших шляхів. Ω(n2)
Луї

1
@Louis: так, є приклади, коли один край призводить до зміни багатьох відстаней, але чи існують графіки, у яких це відбувається для кожного доданого вами краю, або принаймні для багатьох з них? Саме тому я визначив середній рівень для всіх країв :)C
Алекс десять Бринк

1
Більшість ребер цього графіка, які можна додати, мають тип, який я описав ...
Луї,

@Louis True. Кліки містять ребра, що більше, ніж я коли-небудь додаю до свого графіка. O(n2)
Алекс десять Бринк

У мене була така ж проблема і раніше, але Мій графік був на зразок розріджених графіків з і я повинен був довести середні зміни O (1), але я не міг цього зробити :-). Але для вашого випадку я думаю, що якщо ви знайдете зв’язок між цим та рішенням APSP, ви можете отримати певні результати. |E|=O(|V|)

Відповіді:


19

Розглянемо наступний лінійний ланцюг з вузлами, n ребрами і порочно вибраними вагами:n+1n

приклад
[ джерело ]

nO(|V|)(ui,bj)i,j=1,,kkn4nΘ(|V|)Θ(|V|)Θ(|V|2)

n+2uk1bk1(u1,b1)Θ(|V|3)

(c1,c2)ni=1ni2Θ(n3)=Θ(|V|3)


1
Це справді працює, і, крім того, ваш приклад можна трохи змінити, щоб стати Евклідовим. Дякую :)
Олексій десять Бринк
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.