Це дуже цікаве питання. На високому рівні ви запитуєте, чи можна попередньо обробити графік таким чином, щоб найкоротші запити шляху стали незалежними від щільності графіка, не використовуючи зайвого простору - цікаво, але, як ви кажете, невирішене.
Якщо ви задоволені приблизними відстанями, ось спосіб отримати 2 апроксимацію. Нехай Г - зважений непрямий графік з н вузлами та м ребрами. У наступному документі показано, що для запитів на приблизну відстань проектування структур даних для графіків з м ребрами не складніше, ніж графіки, у яких кожен вузол має ступінь, обмежену м / н :
Р. Агарвал, П. Б. Годфрі, С. Хар-Пелед, Приблизні запити на відстань і компактна маршрутизація в розріджених графіках, ІНФОКОМ 2011
Отже, припустимо, що - графік, обмежений m / n -градусом. Зразок α = O ( m / n ) вузлів рівномірно; викликати ці орієнтири. Під час фази попередньої обробки зберігайте на графіку відстань від кожного вузла орієнтиру до кожного іншого вузла; для цього потрібен O ( m ) простір. Для кожного вузла u зберігайте його найближчий орієнтирний вузол ℓ ( u ) . Крім того, зберігайте графік у структурі даних, скажімо, як список суміжності.Гм / нα = O ( м / н )O ( м )уℓ ( u )
За запитом на відстань між та v , зростайте кулі навколо обох вузлів - куля вузла w визначається як набір вузлів, які суворо ближче до w, ніж до його найближчого орієнтиру, наприклад, ℓ ( w ) . Можна показати, що розмір кожної кулі дорівнює O ( n 2 / м ) в очікуванні. Нехай Γ ( u ) = B ( u ) ∪ N ( B ( u ) ) , де B ( u)уvшшℓ ( w )О ( н.)2/ м)Γ ( u ) = B ( u ) ∪ N( B ( u ) ) - куля вузла u і N ( B ( u ) ) - сукупність сусідів вузлів у B ( u ) . Можна показати, що розмір Γ ( u ) дорівнює O ( n ) в очікуванні.B ( u )уN( B ( u ) )B ( u )Γ ( u )O ( n )
Γ ( u ) ∩ Γ ( v ) ≠ ∅d ( u , ℓ ( u ) ) ≤ d ( v , ℓ ( v ) ) d ( u , ℓ ( u ) ) + d ( ℓ ( u)minx∈Γ(u)∩Γ(v){d(u,x)+d(v,x)}d(u,ℓ(u))≤d(v,ℓ(v))d ( v , ℓ ( v ) ) + d ( ℓ ( v ) , u ) 2d(u,ℓ(u))+d(ℓ(u),v)d(v,ℓ(v))+d(ℓ(v),u)2
З точки зору часу запиту, зауважте, що вирощування кульок займає час для графіка, обмеженого градусом; побудова та заданих кульок займає час (оскільки сусіди зберігаються в структурі даних); і перевірити, чи порожній чи не потребує також часу .m / n Γ ( u ) Γ ( v ) O ( n ) Γ ( u ) ∩ Γ ( v ) O ( n )O(n)m/nΓ(u)Γ(v)O(n)Γ(u)∩Γ(v)O(n)
Наведені вище межі очікуються; Я думаю, що дерандомізувати конструкцію легко. На жаль, ця методика, здається, не дозволяє отримати апроксимацію кращою за . Дуже цікаве питання, хоча….2