짧고 뚱뚱한 길 찾기


10

동기 부여 : 표준 기능 보강 경로 maxflow 알고리즘에서 내부 루프는 소스에서 가중 그래프로 경로를 찾아야합니다. 이론적으로 비합리적인 엣지 용량이있을 때 알고리즘을 종료하기 위해서는 찾은 경로를 제한해야한다는 것이 잘 알려져 있습니다. 예를 들어 Edmonds-Karp 알고리즘은 가장 짧은 경로 를 찾도록 지시 합니다.

경험적으로 우리는 또한 지방 경로 를 찾고 싶을 수도 있습니다 . 예를 들어, 용량 스케일링 을 사용할 때 적어도 양의 흐름을 견딜 수있는 최단 경로를 찾습니다 . 경로 길이에 대한 제한은 없습니다. 더 이상 경로를 찾을 수 없으면 ϵ 를 줄이고 반복합니다.ϵϵ

나는 최대 흐름의 매우 구체적인 적용을 위해 보강 경로 선택을 최적화하는 데 관심이 있으며 짧은 경로와 뚱뚱한 경로 사이 의이 절충점을 탐색하고 싶습니다. (참고 : 항상 문제를 해결할 필요는 없습니다. 가장 짧은 벽 시간에서 흐름에서 가장 큰 하한값을 찾는 데 가장 관심이 있습니다.)

질문 : 최단 경로 접근 방식과 용량 스케일링 접근 방법 사이에 보간하는 표준 방법이 있습니까? 즉, 짧고 뚱뚱한 길을 찾는 알고리즘이 있습니까? 이상적으로는 일부 매개 변수가 길에서 얼마나 길어야하는지에 대한 비유로 팔려고합니까? 극단적으로, 한쪽 끝에서 가장 짧은 경로를, 다른 쪽 끝에서 용량 확장 스타일 경로를 복구하고 싶습니다.


3
짧음과 비만을 동시에 최적화하려고하면 대부분의 경우 NP- 경도를 의미하는 다중 기준 최적화 영역에 들어가게됩니다.
Raphael

ϵ

@Daniel Apon-다음 슬라이드의 31 페이지에 용량 확장을위한 의사 코드가 있습니다. cs.princeton.edu/~wayne/kleinberg.../07maxflow.pdf
dan_x

@Raphael-예를 들어 길이와 비만의 선형 조합이 될 수있는 단일 목표를 찾고 있습니다. 여전히 다중 기준 최적화로 간주됩니까?
dan_x

ϵ

답변:


2

"아주 훌륭하지만 반드시 최적은 아닙니다"에 대한 귀하의 의견의 정신에서, 나는 다음과 같은 아이디어를 절대적으로 보장하지는 않습니다.

완전성을 위해 다음은 참조한 의사 코드입니다 (참고 : 연결된 알고리즘은 에지 용량이 1과 C 사이의 정수이고 흐름 및 잔차 용량 값이 정수라고 가정합니다).

스케일링-최대 유량 (G, s, t, C) {
   foreach e ∈ E f (e) ← 0
   C보다 크거나 같은 2의 Δ ← 최소 전력
   G_f ← 잔차 그래프

   동안 (Δ ≥ 1) {
      G_f (Δ) ← Δ 잔여 그래프
      (G_f (Δ)에 증강 경로 P가 존재 함) {
         f ← ​​기능 보강 (f, C, P)
         G_f (Δ) 업데이트
      }
      Δ ← Δ / 2
   }
   f를 반환
}

ϵϵ=Δϵ

0ρ1ρ

ϵρ

ϵ(ρ)ϵ+(1ρ)

ρ=0ρ=10<ρ<1ϵ1


아이디어 주셔서 감사합니다-내가 생각했던 것에 가까워지고 있습니다. 내 관심사 중 하나는 이것이 용량 확장에 대한 다른 "부패 스케줄"이라는 것입니다.
dan_x

더 적극적으로 쇠퇴할수록 경로가 짧아지고 덜 쇠퇴할수록 더 굵은 경로가됩니다. 내가 명심했던 것은 각 경로가 얼마나 뚱뚱하고 얼마나 짧은 지에 따라 점수를 얻는다는 것입니다. 그러면 알고리즘은 점수가 일부 임계 값보다 큰 모든 경로를 찾습니다.
dan_x

그러나이 작업을 수행하는 표준 방법이 없으면 앉아서 원하는 알고리즘을 얻는 것에 대해 생각할 수 있습니다.
dan_x
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.