NP의 슈퍼 마리오 흐름?


15

max-flow 문제의 고전적인 확장 중 하나는 "시간에 따른 max-flow"문제입니다. 두 개의 노드가 소스와 싱크로 구분되어 있으며 각 아크에는 용량 당 두 개의 매개 변수가 있습니다. 단위 시간과 지연. 또한 시간 지평 부여 됩니다. 목표는 시간 의해 소스에서 싱크까지 재료의 최대량을 얻는 시간에 따른 흐름을 계산하는 것입니다 . 최대 비용의 흐름은 최소 비용 최대 흐름으로의 현명한 클래식 감소에 의해 다항식 시간으로 계산 될 수 있습니다.TT

가장자리에 세 번째 "수명"매개 변수가있는이 모델의 확장에 관심이 있습니다. 호의 수명이 이고 가 양의 흐름이 호를 통해 전송되는 가장 빠른 시간 인 경우 시간에서 호를 파괴합니다 . 이것을 슈퍼 마리오 브라더스의 플랫폼과 같이 생각하면 밟거나 곧 파괴되거나 가장자리에 전원을 공급하는 데 필요한 배터리로 생각할 수 있습니다. . ( 편집 :) 결정 문제는 유량 값 하한 주어 졌을 때 , 시간 범위 상한값과 유량 값 하한값을 모두 충족하는 유량을 예약 할 수 있는지 여부입니다.tt+B

지금까지이 문제가 NP 파티션 (3- 파티션을 통해)으로 강력하다는 것을 알 수 있습니다. 그러나 NP에 있는지 실제로 알지 못합니다. 솔루션을 컴팩트하게 표현할 수있는 방법이 있습니까? 클래식 버전에서는 일부 특수 유형의 최적 흐름이이 문제를 피하기 위해 사용됩니다.

참고 : 위의 모델은 노드에서 흐름 비축을 허용하거나 허용하지 않을 수 있으며 불연속 시간 모델 또는 연속 모델을 가질 수 있으므로 약간 덜 지정되어 있습니다. 이러한 모델 중 하나에 대한 질문을 해결하는 것이 좋습니다.


1
잘 모르겠습니다. 특정 흐름 계획을 간결하게 표현하고 총 흐름이 폴리 시간에서 F 이상인지 확인하는 데 왜 문제가 있습니까?
Suresh Venkat

3
시간이 흐름 인 출력 인 최적화 문제의 출력을 폴리 시간의 최적 상태로 확인할 수 있음을 증명하는 방법을 생각할 수 있습니다. 그러나 예 / 아니오 만있는 의사 결정 문제가 NP에 있음을 보여 주는데, 흐름과 같은 일부 기능을 최대화하는 최적화 문제는 일반적으로 입력에 하한값 B를 추가하여 의사 결정 문제로 바뀌고 의사 결정 문제가됩니다. "B 이상의 가치를 가진 솔루션이 있습니까?"
andy_fingerhut

Suresh : 이산 모델에서, 흐름 계획을 표현하는 자연적인 방법 은 각 호에 대해 정수를 취하지 만 이것은 다항식이 아니며 입력 크기의 의사 다항식입니다. 연속 모델에서도 이와 같이 압축하는 방법을 알 수 없습니다. T
daveagp

Andy : 당신은 정확합니다. 공식적인 용어로, 시간 범위에 추가로 하한값을 가짐으로써이를 결정 문제로 언급하는 것이 좋습니다. 그렇다면 그것이 NP에 있는지 물어볼 수있는 것입니다.
daveagp

1
@ daveagp : QBF를 문제로 줄이는 것과 같이 PSPACE-hardness를 사용해 보셨습니까?
오카모토 요시오

답변:


13

오랜 시간이 지났지만이 문제가 P에 있다고 확신합니다.

나는 1995 년에 이것에 관한 박사 학위 논문을 썼다. Bruce Hoppe의 "효율적인 동적 네트워크 흐름 알고리즘"을 Cornell CS 부서에 제출했다. http://dspace.library.cornell.edu/bitstream/1813/7181/1/95-1524.pdf 에서 온라인으로

"사망 모서리"에 대해서는 8 장 "확장"섹션 8.1을 참조하십시오.


3
"그것은 어둡고 폭풍우 치는 밤이었다 잭이 자신의 오두막에서 움직 누워 -. 움직임을 미친 카니발 타고 같은 그의 창자에 선수 회전 된 위장, ...을 제외하고" (페이지 XIII 여기서 저자에 나와있는 실제 적용).
Neal Young

좋은 인용문, 닐! :) BTW daveagp는 의사 결정 질문에 대답하는 "흐름"을 저장하기 위해 의사 다항식 공간이 필요하다는 점을 지적합니다. 최적의 흐름을 찾는 방법뿐만 아니라 P의 흐름이 논문의 1-7 장이라는 것을 나타내는 방법
Bruce Hoppe

우수한! 나는 마침내이 모든 것을 읽었다. 플로우가 처음으로 도달하는 시점을 수정하면 시작 및 종료 시간으로 네트워크의 실행 가능성이 P (홀드 오버가 허용되는 것으로 가정)에 있음이 원래 문제는 NP에 있습니다. 다항식 크기의 인증서는 시작 시간을 나열합니다. 각 가장자리. 따라서 슈퍼 마리오는 NP가 완전히 흐릅니다. 임의의 질문 : 이월 금지는 무엇을 변화 시키는가? 괜찮은 근사 알고리즘이 있습니까?
daveagp

2

편집 : 대답은 잘못입니다. 나는 경로 흐름이 시간 s에서 시작하고 시간 t에서 끝나고 가장자리 e를 통과 할 때이 지속 시간 동안 가장자리 e를 차단한다고 가정합니다. 그러나 이것은 사실이 아닙니다. 보다 *.

참고 : 아마도이 방법은 불필요하게 복잡하거나 틀릴 수 있습니다. 확인을 시도하고 신중하게 작성했지만 많은 시간을 소비하지 않았습니다.

'스톡 필링'이 허용되지 않는다고 가정하면 흐름을 즉시 전송해야합니다. 하자 에지의 수와 나타내고 N 입력 길이. 나는 시간을 고려하지 않았기 때문에 연속 또는 불연속 시간을 지정하지 않았습니다. 그것은 불연속적인 생각을 위해 작동해야하며, 계속해서 나는 확신합니다.mN

그런 다음 소스에서 싱크까지 "경로 흐름"세트로 솔루션을 설명 할 수 있습니다. 경로 흐름은 다음과 같이 구성된 4 중 입니다 . 소스에서 싱크까지 의 간단한 경로 P ; 경로 흐름 시작 시간 s ; 경로를 통한 흐름의 양 a ; 처리량 r .(P,s,a,r)Psar

일련의 경로 흐름 으로 솔루션을 제공합니다 . 우리는 이들에 의해 주어진 솔루션에 시간 다항식의 올바른 경로가-흐름 여부를 확인할 수 있습니다 | F | 그리고 N :F|F|N

  • etete
  • T
  • 모든 모서리에서 경로 흐름이 파괴 된 후 경로 흐름이 통과하는지 여부를 확인할 수 있습니다.
  • B

N

{t1,...,tk}

컴팩트하지 않은 솔루션과 (처음에는) 빈 경로 흐름 세트를 고려하십시오. 아이디어는 비 소형 솔루션에서 반복적으로 경로 흐름을 찾아 제거하고이를 일련의 경로 흐름에 저장하는 것입니다.

titji<jtptq[tp,tq][ti,tj]Fi,jtjtj

[i,j][ti,tj][ti+1,tj1]|Fs,t|m

Fti,tjti+1tj1

i,j[k]|Fi,j|cm3c


나에게 분해 바운드에 결함이있는 것처럼 보이기 때문에 예시적인 반례를 제시하려고합니다. 네트워크가 용량 100, 지연 0, 수명 100의 소스-싱크 에지 중 하나라고 가정합니다. 이제이 흐름 스케줄을 고려하십시오. 시간 간격 [0, 1)에서 흐름을 1의 속도로 전송하십시오. [1, 2)에서 2 등의 속도로 [99, 100)에서 100까지 모든 분해에는 100 개 이상의 경로 흐름이 필요하므로 이해하기 때문에 귀하의 주장과 모순됩니다. Ford와 Fulkerson은 임의의 솔루션이 아닌 특정 유형의 최적 솔루션을 고려하여 기존 솔루션 (수명없이)에서이 장애를 피할 수 있음을 언급해야합니다.
daveagp

이것은 흐름의 '수명'을 최대화하여 피할 수 있지만 증거에 또 다른 문제가 있습니다.이를 명확하게하기 위해 편집했습니다.
Ruub

1

내가 이해하는 방식으로, 아크 당 하나의 숫자 만 저장하면 아크를 통해 흐름이 전송되기 시작하는 순간을 나타냅니다. 그 후에는 호를 사용할 수 없게된다고 가정합니다. 그렇지 않으면 아크가 사용을 중단 한 후에 다시 사용될 수 있다면, 시간이 지남에 따라 용액이 최대 유량에 임의로 근접한 용액을 가져야합니다 (유량이 소량의 시간 동안 전송을 중단 한 다음 다시 펌핑을 시작할 수 있기 때문에) ).


귀하의 주장이 무엇인지 이해할 수 없습니다.
Ito Tsuyoshi

나는 이것이 옳지 않다고 생각합니다. 예를 들어, 세 개의 호 a1 = (s, v), a2 = (s, v), a3 = (v, t)를 갖는 세 개의 노드, 소스 s, 터미널 t 및 다른 노드 v가있는 네트워크를 상상해보십시오. 호의 용량은 모두 1이고 이동 시간은 a1 및 a3의 경우 0, a2의 경우 100으로 설정됩니다. 수명은 a1의 경우 1, a2 및 a3의 경우 1000입니다. 그런 다음, 시간 0에서 s에서 t로 a1 및 a3을 통해 하나의 흐름 단위를 보낼 수 있으며 a2를 통해 하나의 흐름 단위를 보내기 시작합니다. 시간 1에서 99까지는 a1이 없어 지므로 a3은 흐름을 전달하지 않지만 시간 100에서 a2를 통한 흐름은 v에 도달하고 a3이 다시 사용됩니다.
오카모토 요시오

올바르게 이해하면 가장자리의 출생 / 사망 시간이 고정되면 시간이 지남에 따라 고전적인 최대 흐름을 사용하여 나머지 문제를 해결할 수 있다고 주장하지만 이것이 어떻게 발생하는지는 알 수 없습니다.
daveagp

@Yoshio :이 경우 a2를 따라 하나의 흐름 단위를 즉시 보내기 시작하는 대신 임의의 짧은 시간 a1을 한 번 더 사용할 수있게 된 후 흐름 전송을 완전히 중지하면 더 나은 솔루션을 얻을 수 있습니다.
Leandro M.

@ 데이브 : 아니오, 그것은 내가 주장하는 것이 아닙니다. 내가 말하는 것은 각 호를 유한 횟수만큼 사용할 수 있거나 문제에 대한 솔루션이 시간에 따른 최대 흐름에 대한 솔루션을 임의로 근사해야한다는 것입니다. 간단히 말해서 문제 정의의 세부 사항에 대해 걱정하고 있습니다.
Leandro M.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.