(이 토론을 알게 해 주신 Gilad Barkan (גלעד ברקן)에게 많은 감사를드립니다.)
순전히 이론적 인 관점에서이 문제에 대한 생각을 나누겠습니다 ( "subword"대신 "factor"도 사용합니다).
여기에서 고려한 문제에 대한 공식적인 정의는 다음과 같습니다.
단어 w가 주어지면 단어 u_1, u_2, ..., u_k를 찾으십시오.
- 모든 i에 대해 u_i! = u_j, 1 <= i <j <= k 인 j 및
- u_1 u_2 ... u_k = w
최대화 변형 (우리는 많은 u_i를 원함) : 최대화 k
최소화 변형 (우리는 짧은 u_i를 원합니다) : 최대 최소화 {| u_i | : 1 <= i <= k}
이러한 문제는 바운드 B를 추가로 제공함으로써 의사 결정 문제가되는데, 이는 우리가 "많은 요소"-변이체 또는 "짧은 요소"-변이체에 대해 이야기하고 있는지에 따라 k의 하한입니다 (최소한 B를 원합니다) factor) 또는 max {| u_i |의 상한 : 1 <= i <= k} (우리는 최대 길이의 B를 원합니다). NP 경도에 대해 이야기하려면 의사 결정 문제에 대해 이야기해야합니다.
"짧은 요소"-변이체에 SF라는 용어를 사용하고 "많은 요소"-변이체에 대해서는 MF를 사용합시다. 특히,이 정말 중요한 점은 문제는 우리가 이상 단어를 얻을 같은 방식으로 정의된다 일부 제한 어떤 방식으로하지 않습니다 알파벳입니다. 문제 버전은 우리가 입력 단어를 얻는 것보다 우선 순위를 알고 있다는 것입니다. 예를 들어, 알파벳 {a, b, c, d}는 다른 문제입니다! NP- 경도는 "제한되지 않은"변형에서 "고정 알파벳"변형 (후자는 더 단순 할 수 있음)으로 자동 전달 되지 않습니다 .
SF와 MF는 모두 NP- 완전 문제입니다. 이것은 Gilad가 이미 지적했듯이 각각 [1, 1b] 및 [2]에 나와 있습니다. 이 토론의 시작 부분에있는 비공식적 인 문제 정의를 올바르게 이해한다면,이 토론의 문제는 정확히 MF 문제입니다. 처음에는 단어가 고정 알파벳에서 오는 것으로 제한되어 있다고 말하지 않으며 나중에 소문자 만 사용한다고 가정 할 수 있습니다. 이것이 고정 알파벳 {a, b, c, ..., z} 이상의 단어만을 고려한다는 것을 의미한다면, 이것은 실제로 NP- 경도 측면에서 많이 변할 것입니다.
자세히 살펴보면 SF와 MF의 복잡성이 약간 다릅니다.
- 논문 [1, 1b]는 알파벳을 이진수로 고치면 SF가 NP-complete 상태를 유지함을 보여줍니다 대부분 B?).
- 논문 [1, 1b]는 우리가 바운드 B = 2를 고정하면 SF가 NP-complete 상태를 유지함을 보여줍니다 (보다 정확하게 : 단어 w를 얻는다면 최대 2 개의 길이로 구별 할 수 있습니까?).
- 논문 [3]은 알파벳과 바운드 B가 고정되어 있으면 다항식 시간으로 SF를 풀 수 있음을 보여줍니다.
- 논문 [2]는 MF가 NP-complete임을 나타내지 만, 알파벳이 사전에 제한되거나 고정 되지 않은 경우에만 가능합니다 ! 특히 고정 된 알파벳보다 입력 단어 만 고려하면 문제가 NP- 완전한 경우 질문에 대답 하지 않습니다 (실제 설정의 경우와 같이).
- 논문 [3]은 입력 경계 B가 다시 일부 상수에 의해 상한 인 경우 다항식 시간으로 MF를 해결할 수 있음을 보여줍니다. 즉, 문제 입력은 단어 및 경계 B가 {1, 2, ..., K} 여기서 K는 고정 상수입니다.
이 결과에 대한 일부 의견 : Wrt (1) 및 (2)는 알파벳이 이진이면 문제 SF를 어렵게 만들기 위해 바운드 B도 수정할 수 없다는 것이 직관적으로 분명합니다. 반대로, B = 2를 고정한다는 것은 어려운 경우를 만들기 위해 알파벳 크기가 다소 커져야 함을 의미합니다. 결과적으로, (3)은 다소 사소합니다 (사실 [3]는 약간 더 말합니다 : 우리는 다항식뿐만 아니라 알파벳 크기에만 의존하는 요소의 | w | ^ 2 배를 실행 시간으로 해결할 수 있습니다. 바운드 B). (5)도 어렵지 않습니다 : 만약 우리의 단어가 B에 비해 길다면, 단순히 다른 길이의 요소로 슬리 팅함으로써 원하는 인수 분해를 얻을 수 있습니다. 그렇지 않다면, 우리는 모든 가능성을 무차별 적용 할 수 있는데, 이는 B에서만 기하 급수적이며,이 경우에는 일정하다고 가정합니다.
그래서 우리가 가진 그림은 다음과 같습니다. SF는 고정 알파벳이나 고정 경계 B에서도 경도를 갖기 때문에 더 어려워 보입니다. 반면에 문제 MF는 경계가 고정되면 폴리 시간을 해결할 수 있습니다. 이 점은 SF보다 쉽습니다), 해당 질문의 알파벳 크기가 열려 있습니다. 따라서 MF는 고정 알파벳의 MF도 NP가 완전하다는 것이 밝혀 지더라도 SF보다 약간 덜 복잡합니다. 그러나 고정 시간 알파벳에 대해 MF를 폴리 타임으로 해결할 수 있음을 알 수 있다면 MF는 SF보다 훨씬 쉽다는 것을 알 수 있습니다. 어려운 경우는 다소 인공적인 것이므로 (제한되지 않은 알파벳입니다!) .
알파벳 경계가있는 MF의 경우를 해결하려고 노력했지만 그 이후로 해결할 수 없었습니다. 나는 다른 연구자들이 그것을 해결하기 위해 열심히 노력했다고 생각하지 않습니다 (따라서 이것은 매우 어려운 열린 문제 중 하나가 아니며 많은 사람들이 이미 시도하고 실패했습니다. 어떻게 든 가능하다고 생각합니다). 내 생각에 그것은 고정 알파벳의 경우 NP-hard이지만, 축소가 너무 복잡하여 "MF는 35 이상의 알파벳의 경우 어렵습니다"와 같은 것을 얻을 수 있습니다. .
추가 문헌에 관해서는, 논문 [4]를 알고 있는데, 단어 w를 모든 회 문인 구별되는 요소 u_1, u_2, ..., u_k로 나누는 문제를 고려하며, 이는 NP- 완전하다.
Gilad가 지적한 논문 [5]을 간단히 살펴 보았습니다. 그러나 다른 설정을 고려하는 것 같습니다. 이 논문에서 저자들은 주어진 단어에 얼마나 많은 별개의 서브 시퀀스 나 서브 워드가 포함될 수 있는지에 대한 조합 문제에 관심이 있지만 그것들은 겹칠 수 있습니다. 예를 들어, aaabaab에는 20 개의 다른 하위 단어 a, b, aa, ab, ba, bb, aaa, aab, aba, baa, aaab, aaba, abaa, baab, aaaba, aabaa, abaab, aabaab, aaabaa, aaabaab (아마도 I) 잘못 계산되었지만 아이디어를 얻습니다). 그들 중 일부는 baa와 같이 한 번만 발생하고 일부는 aa와 같이 여러 번 발생합니다. 어쨌든 문제는 각각의 개별 기호가 정확히 하나의 요소에 기여한다는 것을 의미하기 때문에 어떻게 많은 개별 요소를 얻기 위해 어떻게 단어를 나눌 수 있는지가 아닙니다.
이런 종류의 문제에 대한 실질적인 해결책에 관해 (나는 이론가라는 것을 명심하십시오. 그래서 소금 한 알로 이것을 가져 가십시오) :
내 지식으로는 고정 알파벳보다 입력 단어 만 고려하면 다항식 시간에 MF를 풀 수있는 이론적 인 하한 (NP 경도와 같은)이 없습니다. 폴리 타임 알고리즘을 얻는다면 고정 알파벳의 기호 수 (또는 그 기능에 따라 지수)로 지수 적으로 실행해야합니다! 그렇지 않으면 무제한 알파벳의 경우 다항식 시간 알고리즘이됩니다. 그래서 이론가 인 저는 심볼의 수와 MF 알고리즘을 고안하는 데 도움이되는 경우에만 시간 지수로 계산할 수있는 알고리즘 작업을 찾고있을 것입니다. 반면에, 고정 알고리즘의 경우 그러한 알고리즘이 존재하지 않고 MF도 NP-hard 일 수 있습니다.
실용적인 솔루션에 관심이 있다면 솔루션을 근사화하는 것이 도움이 될 수 있습니다. 따라서 최악의 경우 최적의 절반에 불과한 인수 분해를 얻는 것은 그리 나쁘지 않습니다.
가능한 근사 비율을 제공하지 않지만 실제 환경에서 잘 작동하는 휴리스틱도 흥미로울 것입니다.
문제 인스턴스를 SAT 또는 ILP 인스턴스로 변환하는 것은 그리 어렵지 않아야하며 최적의 솔루션을 얻기 위해 SAT 또는 ILP-Solver를 실행할 수 있습니다.
필자의 개인적 견해로는 MF의 고정-알파벳 사례가 NP-hard인지 여부는 알 수 없지만, 문제가 충분히 어렵다는 것을 암시하는 이론적 통찰력이 충분하여 휴리스틱 솔루션 등을 찾는 것이 정당하다는 것입니다. 실제 환경에서 잘 작동합니다.
서지:
[1] Anne Condon, Ján Manuch, Chris Thachuk : 문자열 분할의 복잡성. J. 이산 알고리즘 32 : 24-43 (2015)
[1b] Anne Condon, Ján Manuch, Chris Thachuk : 충돌 인식 문자열 분할 문제의 복잡성 및 유전자 합성을위한 Oligo 디자인과의 관계. COCOON 2008 : 265-275
[2] Henning Fernau, Florin Manea, Robert Mercas, Markus L. Schmid : 변수와 일치하는 패턴 : 빠른 알고리즘 및 새로운 경도 결과. STACS 2015 : 302-315
[3] Markus L. Schmid : 평등이없고 반복적 인 스트링 인수 분해 계산. 이론. 계산. 공상 과학 618 : 42-51 (2016)
[4] Hideo Bannai, Travis Gagie, Shunsuke Inenaga, Juha Kärkkäinen, Dominik Kempa, Marcin Piatkowski, Shiho Sugimoto : 다양한 회문 요인 분해는 NP- 완료입니다. Int. J. 발견 계산. 공상 과학 29 (2) : 143-164 (2018)
[5] Abraham Flaxman, Aram Wettroth Harrow, Gregory B. Sorkin : 최대한 많은 고유 한 서브 시퀀스와 서브 스트링이있는 스트링. 선거인. J. 빗. 11 (1) (2004)
aab|a|b|aa
여전히 4 로 분할 될 수 있습니다