모든 선형 시간 알고리즘은 스트리밍 알고리즘입니까?


14

이상에서 반전 계산에 대한이 질문에 , 나는 종이 발견 낮은 증명 모든 (정확한) 공간의 복잡성에 바인딩 스트리밍 알고리즘을 . 나는이 한계가 모든 선형 시간 알고리즘으로 확장된다고 주장했다. 이것은 일반적으로 약간 대담하다. 선형 시간 알고리즘은 스트리밍 알고리즘이 할 수없는 마음대로 접근 할 수있다. 요소를 순서대로 조사해야합니다. 여러 패스를 수행 할 수는 있지만 지속적으로 많이 수행합니다 (선형 런타임의 경우).

따라서 내 질문 :

모든 선형 시간 알고리즘을 지속적으로 패스가 많은 스트리밍 알고리즘으로 표현할 수 있습니까?

무작위 접근은 (간단한) 구성으로 긍정적 인 대답을 증명하지 못하는 것처럼 보이지만 반대의 예도 제시 할 수 없었습니다.

머신 모델에 따라 런타임 방식으로 임의 액세스가 문제가되지 않을 수도 있습니다. 이 모델에 대한 답변에 관심이 있습니다.

  • 튜링 기, 평면 입력
  • RAM, 배열로 입력
  • RAM, 링크 된 목록으로 입력

답변에서 볼 수 있듯이 "스트리밍 알고리즘"은 종종 작은 (폴리 로그 공간)을 의미합니다. 그러나 동기 부여가 주어지면, 내가 생각해야 할 질문은 : 작업 공간 단어 를 사용하는 모든 선형 시간 알고리즘을 단어 공간 을 사용하는 스트리밍 알고리즘으로 변환 할 수 있습니까 ? 따라서 상수 패스 스트리밍 알고리즘에는 공간이 필요한 반면 임의의 액세스 로 공간 으로 해결할 수있는 문제가 있습니다 . 대답은 아직 나오지 않았습니다sO(s)o(n)Ω(n)
Sasho Nikolov

@SashoNikolov : 사실, 전체 공간 문제는 접선입니다. 내 질문은 주로 런타임에 관한 것입니다. 대답이 "예"라면, 논문에서 입증 된 하한 (공간 복잡성)은 모든 선형 시간 알고리즘에 적용됩니다 . 하한이 우주에 있다는 것은 부수적이지만 문제 자체의 초점은 아닙니다.
Raphael

난 이해가 안 돼요. 선형 시간 알고리즘을 무제한의 공간을 가진 "원 패스 스트리밍"으로 만드는 것은 쉽지 않습니다. 귀하의 질문은 "복잡성 측정 를 대략 보존하면서 선형 시간 랜덤 액세스 알고리즘을 일정한 패스 스트리밍으로 만들 수 있습니까"형식 인 경우에만 의미가 있습니다 . 따라서 복잡도 측정을 선택해야합니다. μ
Sasho Nikolov 1

@SashoNikolov : "스트리밍 알고리즘"에 이러한 정의적인 문제가 있다는 것을 몰랐습니다. 스트리밍 알고리즘에 대한 선형 공간 하한 을 보여주기 때문에 공간이 정의의 핵심이 아니라고 가정했습니다. 그러나 그 스트리밍을 "스트리밍 알고리즘이 없습니다 ..."로 번역 할 수있을 것 같습니다. 그러나이 정의는 어떻습니까? "스트리밍 알고리즘은 한 번에 하나의 입력 (목록) 요소를 제공하는 알고리즘입니다. 모든 새 요소에 대해 로 계산을 수행 할 수 있습니다 . 추가 시간 후에 답변을 출력해야합니다 . " o(n)o(n)
Raphael

@SashoNikolov : "입력을 복사하고 아무 것도하지"알고리즘을 개념에서 제외하지만 시간으로 제한합니다 . 일반적으로 표시된 등급에 맞습니까? 그렇지 않다면, "스트리밍"이 시간이나 공간 복잡성에 따라 유용하게 정의 될 수 있다고 생각하지 않습니다. 그것은 욕심이나 분열 및 정복과 같은 전략입니다. o(n2)
Raphael

답변:


15

스트리밍 알고리즘이 의미를 갖기 위해서는 입력 자체보다 훨씬 적은 양의 작업 공간으로 작업해야합니다. 예를 들어, 입력과 동일한 양의 작업 공간을 허용하는 경우 모든 알고리즘을 "단일 패스 스트리밍 알고리즘"으로 간단히 표시 할 수 있습니다.이 알고리즘은 먼저 입력을 단일 패스로 작업 공간에 복사 한 다음 작업 만 사용합니다. 우주.

스트리밍 알고리즘에 대해 이야기 할 때 작업 공간을 입력 크기의 최대 다항식으로 제한하는 것이 일반적이라고 생각합니다. 이 가정 하에서, 중간 선택은 Munro와 Paterson [MP80]의 결과에 의해 O (1)-패스 스트리밍 알고리즘을 갖지 않는다 : N 요소 에서 중간 선택을위한 모든 P- 패스 스트리밍 알고리즘은 Ω ( N 1 / P ) 요소. 반면, 중앙값 선택에는 잘 알려진 결정적 선형 시간 알고리즘 [BFPRT73]이 있습니다.

[BFPRT73] Manuel Blum, Robert W. Floyd, Vaughan Pratt, Ronald L. Rivest 및 Robert E. Tarjan. 선택 시간. 컴퓨터 및 시스템 과학 저널 , 7 (4) : 448–461, 1973 년 8 월. DOI : 10.1016 / S0022-0000 (73) 80033-9

[MP80] J. Ian Munro 및 Mike S. Paterson. 제한된 스토리지로 선택 및 정렬. 이론적 컴퓨터 과학 , 12 (3) : 315-323, 1980 년 11 월. DOI : 10.1016 / 0304-3975 (80) 90061-4


6

스트리밍 모델에서는 입력을 통해 스캔하는 동안 상수 또는 다중 로그 엑스트라 데이터 만 저장할 수 있습니다. 나누기와 정복 패러다임
을 따르는 선형 시간 알고리즘 을 고려할 경우 더 많은 정보를 저장하거나 재귀 깊이만큼 여러 번 데이터를 스캔해야합니다.

한 가지 예는 텍스트 T접미사 배열 (RAM 모델에서 배열로 제공됨) 을 구성 하는 DC3 알고리즘 입니다 . 접미사 배열을 구성하려면 문자를 삼중 항으로 그룹화하여 새로운 슈퍼 문자 가 포함 된 텍스트를 얻습니다 . 오프셋 0 , 1 , 2 로이 작업을 수행 할 수 있습니다. 그러면 3 개의 새 텍스트 T 1 , T 2 , T 3이 생성 됩니다. 흥미롭게도 선형 시간 에 T 1T 2 의 접미사 배열이 있으면 접미사 배열을 계산할 수 있습니다 . 따라서 알고리즘이 필요합니다T0,1,2T1,T2,T3T1T2

t(n)=t(2/3n)+O(n)

시각. 이 재귀는 명확하게 해결 됩니다. 이것이 어떻게 스트리밍 알고리즘으로 전환 될 수 있는지 알 수 없습니다.t(n)=O(n)

잘 알려진 또 다른 예는 고전적인 선형 시간 선택 알고리즘입니다.


또 다른 가능한 예가 있습니다. 힙을 빌드하는 데 O (n)이 필요하며 내부적으로 분할 및 정복 기반 heapify () 서브 루틴을 사용합니다.
Massimo Cafaro

그러나 이것은 증거가 아닙니다. 순진한 시뮬레이션이 작동하지 않는다고 말하는 것입니다. 그러나 때로는 놀라운 알고리즘이 있습니다
Sasho Nikolov

O(n)

"이것이 어떻게 스트리밍 알고리즘으로 전환 될 수 있는지 모르겠습니다." "이 알고리즘은 수정없이 스트리밍되지 않습니다"외에 다른 말을하고 있다고 믿습니다.
Sasho Nikolov

4

P

  • R(P)P
  • S(P)P

R(P)S(P)

n[1,n1]O(logn)O(1)ω(logn)

O(1/log2n)ps=Ω(n)psO(log2n)


1

"스트리밍 알고리즘"(소스의 모든 증분 반복 후에 결과의 다음 증분 부분에 대한 즉각적인 지식을 생성하는 알고리즘)의 가장 간단한 정의에서도, 나는 그렇지 않은 몇 가지 선형 알고리즘을 생각할 수 있습니다. 그런 식으로 행동하십시오. 해싱 알고리즘은 큰 것입니다. FNV-1a는 소스의 바이트 수와 선형이지만 전체 소스가 처리 될 때까지 최종 해시의 일부를 알 수 없습니다.

RadixSort 일명 BucketSort는 O (N) (기술적으로 O (NlogM), 여기서 M은 N 항목의 최대 값이며 작은 것으로 간주 됨)이며 개별 항목이 최종 위치에 있도록 보장하기 위해 전체적으로 실행해야합니다.

"스트리밍"알고리즘이 되려면 알고리즘이 다음 두 가지 속성을 가져야합니다.

  • O (N) 공간 복잡성보다 낫습니다 ( 동일하게 전체 소스를 알 필요가없고 전체 결과를 저장할 필요가 없습니다).
  • O (N) I / O 관계 (알고리즘은 입력에 비례하여 많은 출력을 생성합니다)

따라서 스트리밍하는 주요 알고리즘 클래스는 "투영"(X> 0 출력으로 한 입력의 증분 변환)을 수행하는 알고리즘입니다.


O(logn)ω(1)

logN도 괜찮습니다. 요점은 알고리즘이 한 번에 전체 입력 또는 출력에 대한 지식이 필요하지 않다는 것입니다.
KeithS

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