정확하게 슈퍼 스트링 해결


18

가장 짧은 슈퍼 스트링 문제의 정확한 복잡성에 대해 알려진 것은 무엇입니까? 그것은보다 더 빨리 해결 될 수 ? TSP로 줄이지 않고 가장 짧은 수퍼 스트링을 해결하는 알려진 알고리즘이 있습니까?O(2n)

UPD : 는 다항식을 억제합니다.O()

가장 짧은 수퍼 스트링 문제는 주어진 문자열 집합의 각 문자열을 포함하는 가장 짧은 문자열 인 대답입니다. 문제는 유명한 NP-hard 문제인 Shortest Superstring (Garey and Johnson, p.228)의 최적화 확장에 관한 것입니다.


5
"슈퍼 스트링 문제"는 무엇입니까?
Jeffε

나는 가장 짧은 슈퍼 스트링 문제를 의미했고, 고쳤다. 감사합니다!
Alex Golovnev

10
그렇다면 "가장 짧은 슈퍼 스트링 문제"는 무엇입니까? 나는 그 이름을 가질만한 몇 가지 문제들과 "가장 짧은 수퍼 시퀀스 문제"라고 불리지 만 실제로는 그렇지 않은 문제 들을 생각할 수있다 . 상황을 알려주십시오.
Jeffε

1
당신의 문제 영역은 무엇입니까? 예를 들어 게놈 단편화에서 가장 짧은 수퍼 스트링을 찾는 경우 게놈 단편화가 제한된 트리 너비 그래프를 생성하기 때문에 빠른 알고리즘을 사용할 수 있지만 사용 가능한 알고리즘보다 더 빠른 알고리즘에 관심이있는 경우 더 빠른 알고리즘을 사용할 수 있다는 것 외에는 대답이 없습니다 TSP에서 (간단한 감소로 인해) 또한 로컬 경계 트리 폭 그래프의 알고리즘. O(2n)
Saeed

1
@ AlexGolovnev, 그렇습니다. 이것은 ATSP입니다. 그러나 제한된 treewidth의 경우 cs.bme.hu/~dmarx/papers/marx-warsaw-fpt2 를 보는 것이 거나 더 알고 싶다면 알고리즘을
Saeed

답변:


5

스트링의 길이 다항식이 이라고 가정하면 예, 적어도 2 n - Ω ( n시간 솔루션. 그 이유는 가장 짧은 공통 수퍼 스트링 문제에서 다항식 크기의 정수 가중치를 가진 ATSP로 잘 알려진 감소이기 때문에, 지시 된 다중 그래프에서 해밀턴 사이클을 계산할 수 있으면 다항식 보간법으로 해결할 수 있습니다. 후자의 문제는2n-Ω(2nΩ(n/logn)시간 솔루션. 비요 르크 룬드 20122nΩ(n/logn)

각 정점 u , v 에 대한 가중치 가있는 ATSP 에서 Hamiltonian 사이클 계산으로의 감소는 다음과 같습니다.wuvu,v

들면 , 상부의 전체 합계에 바인딩 된 N ATSP 인스턴스의 무게, 제작 한 그래프 G의 R 각 중량 대체 u를 v에 함께 R u를 v에 에서 아크 UV .r=1,2,,wsumwsumnGrwuvrwuvuv

각각에 대한 해밀 토니안 사이클 카운트 풀면 하면 다항식 보간을 통해 다항식 만들 수 Σ w L = 0 L 개의 R을 L 중량 원래 그래프 TSP 투어의 수와 동일한 L . 따라서 최소 위치 (L)가 되도록 L이 비제로 해결할 수있는 문제이다.Grl=0wsumalrlalllal


고마워요! 나는 해밀턴 사이클 계산과의 관련성을 몰랐다.
Alex Golovnev

@AlexGolovnev : 그러나 감소는 예를 들어 Kohn, Gottlieb, Kohn 결과와 거의 동일하거나 자신의 대답에서 인용 한 결과입니까? 정수에 min-sum semiring을 간단히 삽입하는 것입니다. 어쨌든, 다음 버전의 논문이이를 명시 적으로 명시해야한다는 것을 깨닫게 해주셔서 감사합니다.
Andreas Björklund

8

문제를 연구하고 결과를 찾았습니다. 최단 일반 Superstring (SCS)는 시간에 해결할 수있는 만 다항식 공간 (과 콘, 트립, 콘 , 카프 ; 백스 프랭클린 ).2n

가장 잘 알려진 근사값은 (Paluch).21130

가장 잘 알려진 압축률은 (Paluch).34

SCS는 요인에 의해 근사 할 수있는 경우 진 알파벳을 통해, 다음은 인자로 근사 할 수있다 α 어떤 알파벳 (이상 Vassilevska - 윌리엄스 ).αα

P = NP ( Karpinski, Schmied )가 아니면 SCS는 보다 나은 비율로 근사화 할 수 없습니다 .1.0029

P = NP ( Karpinski, Schmied )가 아니면 최대 압축을 보다 큰 비율로 근사화 할 수 없습니다 .1.0048

추가 및 제안에 감사드립니다.


5

가장 짧은 수퍼 스트링 문제는 다음과 같습니다. 알파벳 Σ 위에 문자열 s 1 , , s n 이 주어지고 각 s 를 포함 하는 Σ 에서 가장 짧은 문자열을 찾고 싶습니다 ins1,,snΣΣsi 를 연속 문자의 하위 시퀀스, 즉 하위 문자열로 .

문제에 대한 정확한 알고리즘에 대해 이야기 할 때 가장 짧은 수퍼 스트링 의 길이 을 찾는 것은 최종 수퍼 스트링에서 모든 연속적인 문자열 오버랩의 합인 최대 압축 C 를 찾는 것과 같습니다 . 즉 C = i | 이야 내가 | - L .LCC=i|si|L

내가 아는 한, 가장 짧은 수퍼 스트링에 대한 가장 빠른 정확한 알고리즘은 ( 2 n )에서 실행됩니다. 여기서 n 은 문자열 수입니다. 가장 긴 경로 (및 기타 문제)에 대한 동적 프로그래밍 알고리즘과 유사한 간단한 동적 프로그래밍 알고리즘입니다.O2nn

각 스트링의 부분 집합 및 문자열 V 에서 S 우리 각지 superstrings 위에 최대 압축 계산 S를 여기서 , V는 제 문자열 ((상기 superstring 나타나는 C로 이것을 저장하고 V , S를 )). 먼저 하나의 요소로 모든 하위 집합을 처리 한 다음 k 문자열의 하위 집합 S 에 대한 C (( v , S )) 값을 k - 1 문자열의 하위 집합 에 대해 작성 합니다. 구체적으로 특별히:SvSSvv,Sv,SSkk1

각 문자열 우리가 모든 부분 집합보고 S 'K - 1 하지 포함 문자열 U를 하고 (값 설정 U , US를 ' 문자열 걸쳐 최대) v에 에서 S ' 최대의 합을 C 와의 uv의 중첩 (( v , S ' )).uSk1uu,uSvSuvv,S

최종 런타임은 O ( ) 이하입니다. 여기서 l 은 최대 문자열 길이입니다.n22n+n2ll

이 작거나 쌍별 겹침이 작고 알파벳 크기가 작다고 가정하면 더 나은 알고리즘이 있지만 2 n 보다 빠른 알고리즘은 알지 못합니다 .l2n


5
OP는 알고리즘을 알고 있기 때문에 더 빠른 솔루션을 요구했습니다. O(2n)
Saeed

2
내가 말했듯이, 더 빠른 솔루션이 알려져 있다고 생각하지 않습니다.
virgi

1
@virgi, 대단히 감사합니다! 알고리즘이 매우 좋습니다. 그러나 포함 배제 원칙은 수퍼 스트링 문제에 대한 다항식 공간을 갖는 알고리즘을 제공한다고 생각합니다 . 나는 더 빠른 알고리즘에서 정말 흥미 롭습니다. 일부 제약 조건 (작은 알파벳, 짧은 대답 등)이있을 수 있습니다. 대단히 감사합니다! O(2n)
Alex Golovnev
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.