두 파티션 사이의 거리 편집


17

나는 의 두 파티션을 가지고 [1n]있으며 그들 사이의 편집 거리를 찾고 있습니다.

이를 통해 파티션 A에서 파티션 B로 이동하는 데 필요한 다른 그룹으로 노드의 최소 단일 전환 수를 찾고 싶습니다.

예를 들어 {0 1} {2 3} {4}안으로 들어가는 거리는 {0} {1} {2 3 4}2입니다.

검색 후 나는 논문을 보았지만 a) 그들이 멀리 떨어져있는 그룹 (내가 신경 쓰지 않는 것)의 순서를 고려하고 있는지 확실하지 않습니다 .b) 그것이 어떻게 작동하는지 확실하지 않습니다 .c) 참조가 없습니다.

어떤 도움을 주셔서 감사합니다


5
{0 1 2 3}과 {0 1} {2 3} 사이의 거리를 어떻게 생각하십니까? 2입니까? 둘째, 왜 "그래프"가 그림에 나오는지 모르겠습니다. [n]의 두 파티션이 있고 그 사이의 거리를 계산하려는 것 같습니다.
Suresh Venkat

네, 둘이 요 실제로 이들은 그래프의 노드 (예 : 그래프 파티션)에 파티션을 설정합니다. 이것은 솔루션에 중요하지 않을 수도 있지만 이것이 해결하려는 문제이므로 언급 한 이유입니다.
zenna

3
그래프가 관련이없는 경우 질문에서 "그래프"및 "노드"에 대한 모든 참조를 제거하십시오. 도움이되지 않고 산만 해집니다.
Jukka Suomela

칸막이 격자의 거리를 기준으로 편집 거리를 정의 할 수 없습니까?
Tegiri Nenashi

@Tegiri-그것은 실제로 참가자 격자의 측지 거리입니다. 불행히도 10보다 큰 카디널리티 집합에 대한 격자를 계산하는 것은 다루기 힘듭니다.
zenna

답변:


21

이 문제는 과제 문제 로 변형 될 수 있습니다 최대 가중 2 분자 일치 문제라고도 .

먼저 편집 거리는 한 세트에서 다른 세트로 변경해야하는 요소의 수와 같습니다. 이는 총 요소 수에서 변경할 필요가없는 요소 수를 뺀 것과 같습니다. 따라서 변경되지 않는 최소 요소 수를 찾는 것은 변경되지 않는 최대 정점 수를 찾는 것과 같습니다.

하자 = { 1 , 2 , . . . , K }B = { B 1 , B 2 , . . . , B l }[ 1 , 2 , . . , n ] . 또한 일반성을 잃지 않고 k l ( e d i t 때문에 허용됨)A={A1,A2,...,Ak}B={B1,B2,...,Bl}[1,2,...,n]kl ). 그런 다음 B l + 1 , B l + 2 , ..., B k를 모두 빈 세트로 둡니다. 그런 다음 변경되지 않는 최대 정점 수는 다음과 같습니다.edit(A,B)=edit(B,A)Bl+1Bl+2Bk

maxfi=1k|AiBf(i)|

여기서 [ 1 , 2 , 의 순열입니다 . . . , k ] .f[1,2,...,k]

이 정점은 정확히 어디에 할당 문제 1 , ..., K , B 1 , ..., B의 K 및 에지 쌍이다 ( I , B의 J ) 중량 | A iB j | . 이것은 O ( | V | 2 log | V | + | V | | E | ) 시간에 해결할 수 있습니다 .A1AkB1Bk(Ai,Bj)|AiBj|O(|V|2log|V|+|V||E|)


Could you name the algorithm, which gives this time complexity please?
D-503

I believe @bbejot is referring to the successive shortest path algorithm (with subroutine Dijkstra's implemented using fibonacci heaps).
Wei

나는 수학자가 아니기 때문에 이것을 파싱하는 데 오랜 시간이 걸렸지 만 감사합니다. 검색하는 데 오랜 시간이 걸렸으며 파티션 거리 문제를 할당 문제 또는 파이썬 라이브러리에서 호출 할 수있는 알고리즘으로 변환하는 방법을 보여주는 유일한 방법이었습니다. (나에게 어려운 부분은 scipy.optimize.linear_sum_assignment를 사용하는 방법을 알아 낸 다음이 지침에 따라 행렬을 설정하는 것입니다.)
Sigfried

가중치를 음수로 만들어야했습니다. 그렇지 않으면 scipy.optimize.linear_sum_assignment는 모든 것에 대해 0을 제공합니다.
Sigfried

2

이 논문의 PDF를보십시오

http://www.ploscompbiol.org/article/info:doi/10.1371/journal.pcbi.0030160

편집 거리의 정의는 정확히 내가 생각하는 것입니다. '참조'파티션은 (임의의) 두 파티션 중 하나이며 다른 파티션은 다른 파티션입니다. 관련 인용이 포함되어 있습니다.

최고, Rob


고마워 Rob. 그러나 누락 된 것이 없으면 분할 병합 이동으로 정의 된 편집 거리입니다. 이것들은 잘 연구되었고 논문이 지적했듯이 정보의 변화는 이것의 정보 이론적 척도입니다. 그러나 단일 요소 이동 전환에 관심이 있습니다.
zenna

1

부정확 한 일요일 아침 아이디어 :

P1P2n1(S)ΣP1n2(S)P2

  • n2(S):=n1(S)SP2SS maximal amongst all SP1; pick the one creating the least conflicts if multiple choices are possible.
  • If now n2(S)=n2(S) for some SS, assign the one that shares less elements with S,n1(S)=n2(S), the name of the set in P1 it shares the second most elements with, i.e. have it compete for that set's name.
  • If the former rule can not be applied, check for both sets wether they can compete for the name of other sets they share less elements with (they might still have more elements from some SP1 than the sets that got assigned its name!). If so, assign that name to the one of S,S that shares more elements with the respective set whose name they can compete for; the other keeps the formerly conflicting name.
  • Iterate this procedure until all conflicts are resolved. Since P1 does not have less sets than P2, there are enough names.

Now, you can consider the bit strings of your elements wrt either partition, i.e. w1=n1(1)n1(n) and w2=n2(1)n2(n) (with nj(i)=nj(S),iSPj). Then, the desired quantity is dH(w1,w2), i.e. the Hamming distance between the bit strings.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.