최단 경로를위한 데이터 구조


19

하자 함께 가중 무향 그래프 될 정점과 가장자리. 시간 O (n)에서 " 와 사이의 거리"형식의 쿼리에 응답 할 수 있도록 를 사전 처리 하고 크기의 데이터 구조를 생성 할 수 있습니까?n m G m p o l y l o g ( n ) u vGnmGmpolylog(n)uv

문제가 너무 기본적으로 해결되지 않은 것 같습니다.


1
"너무 기본이 해결되지 않았습니다"에 대한 최종 의견에 대한 답변 : 일정 시간 내에 쿼리에 응답해야하는 경우 실제로 잘 연구됩니다. 그러나 질문의 ​​요점은 쿼리에 O (n) 시간을 허용한다는 것입니다 (O (1) 또는 사소한 O (m) 대신). 나는 그것이 흥미로운 질문이라고 생각하지만, 그 질문이 근본적으로 중요하다고 생각하지 않습니다.
Ito Tsuyoshi

1
@TsuyoshiIto-질문이 초고속이지만 하위 선형 쿼리 시간을 허용하는 경우 왜 질문이 "기본적 중요성"을 잃는 지 알 수 없습니다. 예를 들어, 일부 대해 거리 쿼리가 시간 내에 응답 될 수 있고 처리 시간이 최대 -이것이 가장 짧은 경로를 계산하기위한 하위 큐브 알고리즘을 제공하지 않습니까? 나는 개인적으로 이것이 매우 흥미로운 질문이라고 생각합니다. ε > 0 O ( n 3 - ε )O(n1ε)ε>0O(n3ε)
Rachit

일반적인 방법이 있는지 모르겠지만 경계 트리 폭 그래프에는 좋은 방법이 있습니다. 경계 트리 폭 그래프의 최단 경로 쿼리
Saeed

또한 경우 가장 짧은 경로 트리 (각 노드에서 시작)를 만든 다음 에서 가장 짧은 경로 쿼리 (관련 루트로)에 응답 하거나 비슷한 방법으로 구성 할 수 있습니다 메모리 크기가 적은 데이터 구조 O ( n )m=Ω(n2)O(n)
Saeed

답변:


9

이것은 매우 흥미로운 질문입니다. 높은 수준에서, 더 많은 공간을 사용하지 않고도 가장 짧은 경로 쿼리가 그래프의 밀도와 독립적이되도록 그래프를 전처리 할 수 ​​있는지 묻습니다.

대략적인 거리에 만족하는 경우 근사값을 구하는 방법이 있습니다. 하자 함께 가중 무향 그래프 될 노드와 가장자리. 근사 거리 쿼리의 경우, 모서리를 가진 그래프에 대한 데이터 구조를 설계 하는 것이 각 노드가 제한되는 그래프보다 어렵지 않다는 것이 다음 문서에 나와 있습니다.G n m m m / n2Gnmmm/n

R. Agarwal, PB Godfrey, S. Har-Peled, 희소 그래프의 대략적인 거리 쿼리 및 간단한 라우팅, INFOCOM 2011

따라서 는 도 경계 그래프 라고 가정합니다 . 샘플 노드는 무작위로 균일합니다. 이 랜드 마크 노드를 호출하십시오. 전처리 단계 동안 각 랜드 마크 노드에서 다른 노드까지의 거리를 그래프에 저장하십시오. 여기에는 공간 이 필요 합니다. 각 노드 에 대해 가장 가까운 랜드 마크 노드 . 또한 인접 목록과 같은 데이터 구조 내에 그래프를 저장하십시오.m / N α = O ( m / N ) O ( m ) U 자 ( U )Gm/nα=O(m/n)O(m)u(u)

와 사이의 거리를 쿼리 할 때 두 노드 주위에 공을 키우십시오.-노드 볼은 가장 가까운 랜드 마크 노드에 비해 더 가까운 노드 세트로 정의됩니다 예 : . 각 볼의 크기가 인 것으로 예상 할 수 있습니다. 하자 , 여기서 노드의 공은 및 노드의 이웃들의 세트이고 . 크기 것을 나타낼 수 인 을 예상.v에 w w ( w ) O ( N 2 / m ) Γ ( U ) = B ( U ) N ( B ( U ) ) B ( U ) U N ( B ( U ) ) B ( U ) Γ ( u ) O ( n )uvww(w)O(n2/m)Γ(u)=B(u)N(B(u))B(u)uN(B(u))B(u)Γ(u)O(n)

쿼리 응답 : 경우 ; 그렇지 않으면 이면 반환합니다 . 그렇지 않으면 반환 합니다. 이것이 근사 임을 쉽게 알 수 있습니다.Γ(u)Γ(v)차원minxΓ(u)Γ(v){d(u,x)+d(v,x)}d ( u ,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 ) OO(n)m/nΓ(u)Γ(v)Γ ( U ) Γ ( V ) O ( N )O(n)Γ(u)Γ(v)O(n)

위의 한계는 기대하고 있습니다. 나는 건설을 무작위 화하기가 쉽다고 생각한다. 불행히도,이 기술은 근사치가 보다 나아지는 것을 허용하지 않는 것 같습니다 . 매우 흥미로운 질문이지만 ....2


위의 기술은 입력 그래프에 가중치가 없다는 사실을 이용하지 않습니다. 그 사실을 악용하여 할 수있는 흥미로운 것이있을 수 있지만 정확한 거리를 검색하는 방법을 생각할 수 없습니다. 예를 들어, 쿼리 시간을 로 줄이고 거리를 제한 할 수 있습니다 . 여기서 는 와 사이의 정확한 거리 입니다. 2 d + 1 d u vO(n2/m)2d+1duv
Rachit

왜 이것이 2 근사인지 이해하지 못한다는 것을 깨달았습니다. 같은 상황에서 Thor-Zwick은 약 3을 제공합니다.
ilyaraz

@ilyaraz : Thorup-Zwick 구성표는 를 확인할 필요가 없으므로 거의 일정한 시간에 쿼리에 응답합니다. 스트레치 증명에 대해서는 위에서 언급 한 논문을 참조하십시오 . (2)Γ(u)Γ(v)2
Rachit

4

필요한 것을 "거리 오라클"이라고합니다. 불행히도, 나는 원거리 오라클에 익숙하지 않기 때문에 Thorup과 Zwick으로 인해 중요한 종이 만 참조 할 수 있습니다.

Mikkel Thorup과 Uri Zwick. 대략적인 거리 oracles. STOC '01, 2001.

초록에서 발췌 한 내용은 다음과 같습니다.

하자 갖는 가중 무향 그래프 될 및 . 정수로 하자 . 우리는 것을 보여준다 로 전처리 될 수 크기의 데이터 구조 구축 예상 시간 같은 후속 것을 거리 쿼리는 대략 시간 으로 응답 할 수 있습니다 . 반환 된 대략적인 거리는 최대 이며, 즉 추정 거리를 실제 거리로 나눈 몫은 사이 입니다. [...] 알고리즘의 공간 요구 사항은 [...] 본질적으로 최적입니다.| V | = n | 전자 | = m k G = ( V , E ) O ( k m n 1 / k ) O ( k n 1 + 1 / kG=(V,E)|V|=n|E|=mkG=(V,E)O(kmn1/k)O ( k ) 2 k - 1 2 k - 1O(kn1+1/k)O(k)2k12k1

선택 그들의 결과에 따라 어떤 요청한 심지어 가중 그래프 대해 행할 기본적 사이즈의 거리 오라클 수율 예상 시간에 수득 과 최단 경로 쿼리에 응답 할 수있는, 시간에 스트레칭 !O ( N 2 ) O ( m , N ) 1 O ( 1 )k=1O(n2)O(mn)1O(1)

디스턴스 오라클은 매우 잘 연구 된 분야이므로 더 깊이 파고들 수있을 것입니다.


2
저널 버전 : JACM 2005 .
Tsuyoshi Ito

3
사용 소박 룩업 테이블을 저장할 수있는 공간 일. 따라서이 논문 (내가 알고있는)은 여기서 관련이 없습니다. O(n2)
ilyaraz

1
그럴 수 있지. AFAIK에 요청한 결과와 가장 가까운 결과 는 쿼리 에서 공간으로 스트레치 -2 경로를 제공 하는 평균 정도 그래프에 대한 것입니다. 시각. (왈 R., P. 실어 및 S. 하르 - 펠 레드 "희소 그래프에서 대략 거리 쿼리 및 컴팩트 라우팅"INFOCOM 2011)O ( n 3 / 2 ) O ( Θ(logn)O(n3/2)O(n)
가버 Retvari

Bourgain의 메트릭을 임베드하면 공간 , 쿼리 시간 및 곱하기 오류 인 오라클이 발생할 수 있습니다. O ( n log 2 n ) O ( log 2 n ) O ( log n )1O(nlog2n)O(log2n)O(logn)
ilyaraz
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.