가장 오래 증가되는 부분

Longest increasing subsequence

컴퓨터 과학에서 가장 오래 증가하는 부분적 문제는 부분적 요소가 정렬된 순서에 따라 가장 낮은 순서로 정렬되고 부분적 부분적 부분적 부분적 부분적 부분적 부분적 부분적 부분적 부분적 부분적 부분적 부분적 부분적 부분적 부분적 부분을 찾는 것이다.이 반복이 반드시 연속적이거나 독특한 것은 아니다.알고리즘, 랜덤 매트릭스 이론, 표현 이론, 물리학포함하여 수학에 관련된 다양한 분야의 맥락에서 가장 긴 증가 과정을 연구한다.[1]가장 오래 증가하는 부분적 문제는 시간 O(n log n)로 해결할 수 있다. 여기서 n은 입력 시퀀스의 길이를 나타낸다.[2]

2진수 Van der Corput 시퀀스의 처음 16개 항에서

0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15

가장 긴 증분열은

0, 2, 6, 9, 11, 15.

이 부속품에는 길이가 6이고 입력 순서는 7 멤버 증가 부속품이 없다.예를 들어, 이 예에서 가장 오랫동안 증가하는 부분만이 유일한 해결책은 아니다.

0, 4, 6, 9, 11, 15
0, 2, 6, 9, 13, 15
0, 4, 6, 9, 13, 15

동일한 입력 시퀀스에서 길이가 같은 기타 증가된 부분.

다른 알고리즘 문제와의 관계

가장 오래 증가하는 부분적 문제는 2차 시간 동적 프로그래밍 솔루션을 갖는 가장공통 부분적 문제와 밀접하게 관련되어 있다: 시퀀스 S의 가장 긴 부분적 부분적 부분적 부분적 부분적 부분적 부분적 부분적 부분적 부분적 부분적 부분적 부분적 부분적 부분적 부분적 부분적 부분적 부분적 부분적 부분적 부분적 부분적 부분적 부분적 부분적 부분적 부분적 부분적 부분적 부분적 부분적 부분적 부분적 부분적 부분적 부분적 부분적 부분적, 여기서 T는 S와단, 입력이 정수 1, 2, ..., n의 순열인 특별한 경우, 이 접근방식은 훨씬 더 효율적이어서 O(n log log n) 형식의 시간 범위로 이어질 수 있다.[3]

순열 그래프에서 가장 큰 클라이크는 그래프를 정의하는 순열의 가장 긴 감소 연속성에 해당한다(원래 비순열 시퀀스가 가장 낮은 값에서 가장 높은 값으로 정렬된다고 가정).마찬가지로 순열 그래프의 최대 독립 집합은 가장 긴 비-감소 여과에 해당한다.따라서 순열 그래프에서 클라이크 문제를 효율적으로 해결하기 위해 가장 긴 증가 부분 알고리즘을 사용할 수 있다.[4]

순열과 영 tableaux 간의 로빈슨-스헨스테드 대응에서 순열과 일치하는 테이블au의 첫 번째 행의 길이는 순열의 가장 긴 증가 부분열 길이와 같고, 첫 번째 열의 길이는 가장 긴 감소 부분열 길이와 같다.[2]

효율적인 알고리즘

아래에 요약된 알고리즘은 배열과 이진 검색에서 가장 오랫동안 증가하는 부분 문제를 효율적으로 해결한다.그것은 시퀀스 요소를 순서대로 처리하여 지금까지 발견된 것 중에서 가장 오랫동안 증가된 시퀀스를 유지한다.시퀀스 값을 [ , X[ ,… , X 등으로 나타낸다.그런 다음 [ , (를) 처리한 후 알고리즘은 두 개의 배열로 값을 저장한다.

  • — stores the index of the smallest value such that there is an increasing subsequence of length ending at on the range (Need to make this stateme 선명하게 하다따라서 , 이() ki {\ i}와 모든지수 k {\ 의 집합을 나타내며 [ ]{\, j 끝나는 길이 지수의 수가 점점 더 많아진다.1<나는 2<⋯<나는 j)k{\displaystyle l_{1}<, l_{2}<, \cdots <, l_{j}=k}k에 종료{k\displaystyle}가 X[나는 1]≤ X[나는 2]≤ ⋯ ≤ X[k]{\displaystyle X\left[l_{1}\right]\leq X\left[l_{2}\right]\leq \cdots X\left[k\right]\leq}), 그때 M[j]{M[j]\displaystyle}은 ind.옛 여자 친구를 찾아가는following holds: and (or equivalently, and for every ] X [ . i+,leq 은(는) 증가하는 부분열 길이를 나타내며 은 종료 지수를 나타내기 때문에 유의하십시오.
  • [ [ 의 이전 인덱스를 [ . 로 끝나는 가장 긴 증가 서브섹션에 저장한다.

또한 알고리즘은 지금까지 발견된 가장 긴 증가 부분들의 길이를 나타내는 변수 L을 저장한다.아래 알고리즘은 영점 기반 번호 부여를 사용하기 때문에 명료성을 M[ 0 , 을 패딩하여 [ j 대응하도록 사용되지 않는다. 그리고 그에 따라 지수를 조정한다.

알고리즘의 임의 지점에서 시퀀스가

점점 늘어나고 있다.For, if there is an increasing subsequence of length ending at then there is also a subsequence of length ending at a smaller value: namely the one ending at 따라서 로그 시간으로 이 순서대로 이진 검색을 수행할 수 있다.

그러면 알고리즘은 다음과 같이 진행된다.

코드의 데모.
길이 N의 M길이의 배열 N+1L=0N-1을 나는 범위는 0에 P)배열):)L+1반면 그럼<>가장 큰 긍정적인 j에 이진 검색 ≤ L가 X[M경우 j]하는<>X[나는]것=1안녕 ////;안녕하세요:중반)lo+floor((hi-lo)/2한 경우-X[M경우 중반]하는<>X[나는]:lo)mid+1 다른 것이 있어요. 안녕하세요)중반을 끓여a.fter sear만약 우리가 이어서 일어나는 것 이상 어떠한 우리가 발견 아직 // 왔던 것보다 발견 Ching, lo1X[나는]newL의 가장 긴 접두사의//길이 cm이하 길이의 연속newL-1 P[나는])M[newL-1]M[newL])나는 만약newL 을 //의 loX[나는]의 전임자 //은 지난 지수, L://, LL를 업데이트)완벽한 더 크다.wL// 가장 길어지는 부분 S = 길이 L k = M[L]의 배열 L-1 ~ 0 범위: S[i] = X[k] k = P[k] 리턴 S

알고리즘은 시퀀스 요소당 하나의 이진 검색을 수행하기 때문에, 그 총 시간은 O(n log n)로 Big O 표기법을 사용하여 표현할 수 있다.프레드먼(1975)은 알고리즘의 변형에 대해 논하며, 가 연구하는 변종에서, 알고리즘은 각 값 [ 을(를) 사용하여 이항 검색을 수행하기 전에 일정한 시간 내에 현재 가장 긴 증가 시퀀스를 확장할 수 있는지 여부를 검정한다.이 수정으로 알고리즘은 최악의 경우 최대 n log2 n - n loglog22 n + O(n) 비교를 사용하며, 이는 O(n) 항의 상수 인자까지 비교 기반 알고리즘에 최적이다.[5]

길이 한계

Erdős-Szekeres 정리에 따르면, n2+1 구별되는 정수의 순서는 길이가 n + 1이 증가하거나 감소하는 부분을 가진다.[6][7]입력의 각 순열이 동등할 가능성이 있는 입력의 경우, 가장 긴 증가 부속물의 예상 길이는 약 2n이다.[8] n이 무한대에 접근하는 한계에서, 무작위로 순서가 정해진 순서의 가장 긴 증가 순열의 길이는 가우스 유니터리 앙상블에서 무작위 행렬의 가장 큰 고유값 분포인 트레이시-위덤 분포에 접근하는 분포를 가진다.[9]

온라인 알고리즘

가장 오래 증가되는 하위 계수는 연속 분포 F 또는 또는 무작위 순열의 요소들이 각 요소를 포함할지 또는 제외할지를 결정해야 하는 알고리즘에 한 번에 하나씩 제시되는 온라인 알고리즘 설정에서도 연구되었다.멘트, 나중의 요소들에 대한 지식 없이.몇 가지 맥락에서 흥미로운 적용을 허용하는 이 문제의 변종에서, 크기 n의 무작위 표본을 입력으로 지정하면 최대 예상 크기 길이 약 2n으로 증가하는 시퀀스를 생성하는 최적의 선택 절차를 고안하는 것이 가능하다.[10] 이 최적 절차에 의해 선택된 증가 부분들의 길이는 약 2n/3과 동일한 분산을 가지며, 그 제한 분포는 일반적인 중심화 및 스케일링 후에 점증적으로 정상이다.[11]동일한 무증상 결과는 포아송 도착 프로세스의 설정에서 해당 문제에 대한 보다 정확한 한계로 유지된다.[12]포아송 공정 설정의 추가적인 정교화는 최적의 선택 프로세스를 위한 중심 한계 정리의 증거를 통해 제공되며, 이는 적절한 정상화로 기대되는 것보다 더 완전한 의미로 유지된다.그 증거는 "올바른" 기능 한계 정리뿐만 아니라 모든 상호작용 과정을 요약한 3차원 프로세스의 (노래식) 공분산 행렬을 산출한다.[13]

적용

  • 전체 게놈을 정렬하기 위한 MUMMER(Maximum Unique Match Finder) 시스템의 일부.
  • Git 등과 같은 버전 제어 시스템에서 사용.
  • '바자르'(Bazaar)에서 사용되는 확산 알고리즘(파일 내용의 차이점을 계산해 표시)에서 사용된다(Bazaar는 시간이 지남에 따라 프로젝트 기록을 추적하고 다른 사람과 쉽게 협업할 수 있도록 도와주는 버전 제어 시스템).

참고 항목

참조

  1. ^ Aldous, David; Diaconis, Persi (1999), "Longest increasing subsequences: from patience sorting to the Baik–Deift–Johansson theorem", Bulletin of the American Mathematical Society, 36 (4): 413–432, doi:10.1090/S0273-0979-99-00796-X.
  2. ^ a b Schensted, C. (1961), "Longest increasing and decreasing subsequences", Canadian Journal of Mathematics, 13: 179–191, doi:10.4153/CJM-1961-015-3, MR 0121305.
  3. ^ Hunt, J.; Szymanski, T. (1977), "A fast algorithm for computing longest common subsequences", Communications of the ACM, 20 (5): 350–353, doi:10.1145/359581.359603, S2CID 3226080.
  4. ^ Golumbic, M. C. (1980), Algorithmic Graph Theory and Perfect Graphs, Computer Science and Applied Mathematics, Academic Press, p. 159.
  5. ^ Fredman, Michael L. (1975), "On computing the length of longest increasing subsequences", Discrete Mathematics, 11 (1): 29–35, doi:10.1016/0012-365X(75)90103-X.
  6. ^ Erdős, Paul; Szekeres, George (1935), "A combinatorial problem in geometry", Compositio Mathematica, 2: 463–470.
  7. ^ Steele, J. Michael (1995), "Variations on the monotone subsequence theme of Erdős and Szekeres", in Aldous, David; Diaconis, Persi; Spencer, Joel; et al. (eds.), Discrete Probability and Algorithms (PDF), IMA Volumes in Mathematics and its Applications, vol. 72, Springer-Verlag, pp. 111–131.
  8. ^ Vershik, A. M.; Kerov, C. V. (1977), "Asymptotics of the Plancheral measure of the symmetric group and a limiting form for Young tableaux", Dokl. Akad. Nauk SSSR, 233: 1024–1027.
  9. ^ Baik, Jinho; Deift, Percy; Johansson, Kurt (1999), "On the distribution of the length of the longest increasing subsequence of random permutations", Journal of the American Mathematical Society, 12 (4): 1119–1178, arXiv:math/9810105, doi:10.1090/S0894-0347-99-00307-0.
  10. ^ Samuels, Stephen. M.; Steele, J. Michael (1981), "Optimal Sequential Selection of a Monotone Sequence From a Random Sample" (PDF), Annals of Probability, 9 (6): 937–947, doi:10.1214/aop/1176994265
  11. ^ Arlotto, Alessandro; Nguyen, Vinh V.; Steele, J. Michael (2015), "Optimal online selection of a monotone subsequence: a central limit theorem", Stochastic Processes and Their Applications, 125 (9): 3596–3622, arXiv:1408.6750, doi:10.1016/j.spa.2015.03.009, S2CID 15900488
  12. ^ Bruss, F. Thomas; Delbaen, Freddy (2001), "Optimal rules for the sequential selection of monotone subsequences of maximum expected length", Stochastic Processes and Their Applications, 96 (2): 313–342, doi:10.1016/S0304-4149(01)00122-3.
  13. ^ Bruss, F. Thomas; Delbaen, Freddy (2004), "A central limit theorem for the optimal selection process for monotone subsequences of maximum expected length", Stochastic Processes and Their Applications, 114 (2): 287–311, doi:10.1016/j.spa.2004.09.002.

외부 링크