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


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(Cnlog⁡n)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))(x2−x1)2+(y2−y1)2.


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

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

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

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

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

Відповіді:


19

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

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

n∈O(|V|)(ui,bj)i,j=1,…,kk≈n4n∈Θ(|V|)Θ(|V|)Θ(|V|2)

n+2uk−1bk−1(u1,b1)Θ(|V|3)

(c1,c2)≈n≈∑i=1ni2∈Θ(n3)=Θ(|V|3)


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