가중치가 주어진 경우, 각 가중치를 상위 가중치의 합으로 대체하는 O (V + E) 알고리즘이 있습니까?


34

물론 문제는 이중 계산입니다. 특정 클래스의 DAG = 트리 또는 직렬 병렬 트리에 대해 수행하기가 쉽습니다. 합리적인 시간에 일반 DAG에서 작동하는 유일한 알고리즘은 대략적인 알고리즘 (시놉시스 확산)이지만 정밀도를 높이는 것은 비트 수에 기하 급수적이며 많은 비트가 필요합니다.

배경 :이 작업은 BBChop (http://github.com/ealdwulf/bbchop)의 확률 계산의 일부로 간헐적 인 버그 (예 : '베이지 버전' git bisect '). 따라서 해당 DAG는 개정 내역입니다. 즉, 모서리 수가 노드 수의 제곱에 접근 할 가능성이 적다는 것을 의미합니다. 일부 작은 k의 경우 노드 수의 k 배보다 작을 수 있습니다. 불행히도 개정판 DAG의 다른 유용한 속성을 찾지 못했습니다. 예를 들어, 가장 큰 triconnected 구성 요소가 노드 수의 제곱근으로 만 커지기를 바랐지만 슬프게도 (최소한 Linux 커널 역사에서는) 선형으로 커졌습니다.


명확히하기 위해 : 가장자리가 아닌 가중치가있는 노드 만입니까?
Heinrich Apfelmus

예, 노드 만 있습니다.
Ealdwulf

4
이것은 cstheory.stackexchange.com/questions/553/ 과 거의 중복되는 것 같습니다 .
Jukka Suomela

모든 정점에 단위 가중치를 할당하면이 문제가 도달 가능성 문제로 줄어들 기 때문에 실제로는 더 일반적으로 보입니다.
Suresh Venkat

근사화는 일부 추가 폴리 로그 요인과 관련이없는 것 같습니다 ...
Har-Peled

답변:


17

정점 가중치는 임의의 양의 정수일 수 있고,보다 정확하게는 최대 2 n 인 양의 정수일 수 있다고 가정합니다 . 임의의 방향성 그래프의 전 이적 폐쇄가 O ( n 2 ) 시간 내에 계산 될 수 없다면 , 현재 작업은 약간 약한 시간 바운드 O ( n 2 ) 에서도 수행 될 수 없으며 , 여기서 n 은 꼭짓점의 수를 나타냅니다. ( 전 이적 클로저에 대한 O ( n 2 )-시간 알고리즘은 획기적인 것입니다.) 이것은 다음 주장의 반대입니다.

청구 . 현재 작업이 시간 O ( n 2 ) 에서 수행 될 수있는 경우, 인접 행렬로 주어진 임의의 방향 그래프의 전이 폐쇄는 O ( n 2 ) 시간 으로 계산 될 수 있습니다 (일부 합리적인 계산 모델을 가정).

증거 . 전처리로서, 우리 는 DAG G ' 를 얻기 위해 시간 O ( n 2 ) 에서 주어진 지향 그래프 G 의 강하게 연결된 성분 분해를 계산한다 . 우리의 전이 폐쇄 계산할 수있는 경우주의 G를 '우리의 전이 폐쇄 재구성 할 수 G를 .

이제 가중치 2 i 를 DAG G ' 의 각 정점 i 에 할당하고 현재 문제에 대한 알고리즘을 사용하십시오. 이어서 각 정점에 할당 된 합계의 이진 표현 의 조상 정확히 설명 세트 I 말해서, 우리는의 전이 폐쇄 계산 한 G를 '. QED .

주장의 반대도 다음과 같이 주장한다 : 만약 주어진 DAG의 전 이적 폐쇄를 계산할 수 있다면, 시간 O ( n 2 )의 추가 작업으로 필요한 합계를 계산하는 것이 쉽다 . 따라서 이론적으로 Coppersmith-Winograd 행렬 곱셈 알고리즘 에 기반한 전이 폐쇄 알고리즘을 사용하여 시간 O ( n 2.376 ) 의 현재 작업을 수행 할 수 있습니다 .

편집 : 개정 2 및 이전 버전에서는 정점 가중치 범위에 대한 가정을 명시하지 않았습니다. Per Vognsen은 이러한 암묵적인 가정이 합리적이지 않을 수 있다고 의견에 지적했다. 응용 프로그램에서 임의 가중치가 필요하지 않더라도이 답변은 다음과 같은 추론에 따라 일부 접근법을 배제 할 수 있다고 생각합니다.“이 접근법이 효과가 있으면 임의 가중치에 대한 알고리즘을 제공 할 것입니다. 폐쇄는 시간 O ( n 2 ) 로 계산 될 수 있습니다 .”

편집 : 개정 4 및 이전 버전에서는 가장자리 방향이 잘못되었습니다.


4
하나의 실용적인 솔루션이 비트 벡터를 사용하여 제외 계산을 수행하기 때문에 지난 밤 에이 문제에 대해 생각하고있었습니다. 유일한 질문은 가중치가 n에 비례하는 비트 길이를 가질 수 있다고 가정하는 것이 합리적인지 여부입니다. 실제로, 가중치가 k에 의해 제한되어 최대 합이 kn이되도록 상상할 수 있습니다.이 트릭을 풀기에 충분한 비트는 아닙니다.
당 Vognsen

@Per : 정점 가중치가 n 비트 정수일 수 있다는 가정에 의문의 여지가 있습니다. 이 가정을 명확하게하기 위해 답을 편집했습니다. 감사!
이토 쓰요시

1
@ Per : 정점 가중치가 O (1)로 묶인 정수이면 모든 정점이 적절한 방식으로 정점을 복제하여 가중치 1갖는 경우로 문제가 줄어 듭니다 .
이토 쓰요시

불행히도 그 스레드에서 계산 문제에 대한 답변을 찾지 못했습니다. 이 수에는 전이 폐쇄, O (n log n) 대 O (n ^ 2)의 목록보다 로그에 적은 정보가 포함되어 있으므로 간단한 축소가 어떻게 작동하는지 알 수 없습니다.
당 Vognsen

그건 그렇고,이 문제의 흥미로운 버전은 우리가 DAG의 세대 크기 (laologicalological sort)의 크기 증가에 대한 정보와 가지 요인에 묶여있을 때입니다. 성장이 기하 급수적 인 경우 패턴은 본질적으로 나무와 유사합니다. 선형, 로그 선형, 2 차 등의 경우 어떻게됩니까?
당 Vognsen

2

이것은 Tsuyoshi의 답변에 대한 나의 의견의 확장입니다. 나는 그 질문에 대한 부정적인 대답이 무조건적 일 수 있다고 생각한다.

ω(n)영형()

아르 자형,기음아르 자형×기음아르 자형아르 자형기음

아르 자형=(로그 )/2기음=2/로그 

맨 아래 줄의 각 정점은 의존합니다.ω(로그 )

ω()2기음(아르 자형1)=영형()

요점은 근본적인 부분적 순서가 조밀 한 것으로 보이지만 DAG는 전 이적 감소를 나타내며, 이는 드문 일 수 있습니다.


이 주장은 흥미롭지 만, 그것이 흥미로운 진술의 증거로 만들어 질 수 있는지 확실하지 않습니다. 낮은 범위의 문제를 입증하는 데 어려움을 겪고 있다는 점을 고려할 때,이 주장은 손에 닿는 것처럼 보입니다.
Tsuyoshi Ito

@ 츠요시 : 나는 존재론이 확률 론적 논증을 통해 작동해야한다고 생각하며, 하한은 약해서 작동하기에 충분한 공간이있는 것 같습니다. 그러나 "재사용 할 수없는 평균 추가"라는 구절은 더 나은 기초를 필요로한다는 것은 사실입니다.
András Salamon

-2

이것은 잘못된 것이며 질문에 대한 오해에 근거합니다. 참을성있게 내 오류를 지적한 Tsuyoshi에게 감사드립니다. 다른 사람들이 같은 실수를 저지르는 경우를 대비해 떠납니다.

케이

kO(k|V|)

영형(|V|+|이자형|)

이 방법은 상대적으로 자주 발생하지 않는 한 많은 선행 선행 노드가있는 노드가있는 경우에도 잘 작동합니다.


4
나는 그것을 얻지 못한다. DAG가 나무가 아닌 경우 이중 계산을 어떻게 피합니까? 실제로 내가 실수하지 않으면 일반적인 경우는 각 정점이 최대 두 개의 선행 작업을 갖는 경우로 줄어들 수 있으며 후자의 경우 선형 시간 알고리즘은 일반적인 경우의 라인 타임 알고리즘을 제공합니다.
이토 쓰요시

영형(|V|+|이자형|)케이

당신이 내 의견을 오해하는 것이 두렵습니다. 실행 시간이 아닌 알고리즘의 정확성에 의문을 제기하고 있습니다. 4 개의 꼭지점이 A, B, C, D 인 모서리 A → B → D 및 A → C → D가있는 DAG에 가중치가 주어진다고 가정합니다. B와 C에 대한 부분 합을 계산 한 후에는 꼭짓점 A의 가중치를 두 번 추가하기 때문에 B와 C에 대한 부분 합을 추가하여 D에 대한 합을 계산할 수 없습니다.
Ito Tsuyoshi

<V()

1
예. 그리고 저는이 질문을 처음봤을 때 같은 방식으로 그 질문을 잘못 읽은 것이 분명하다고 생각했습니다. 그러나 아닙니다. 실제 질문은 그보다 더 어렵습니다. 생각할 시간….
Ito Tsuyoshi
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.