Θ (1) 메모리는 무엇을 의미합니까?


13

교수의 현장 알고리즘에 대한 정의가 있지만 이해할 수 없습니다.

인시 튜 알고리즘은 Θ (1) 메모리로 작동하는 알고리즘을 나타냅니다.

그게 무슨 뜻이야?


3
Landau 표기법에 익숙 하십니까?
David Richerby

4
"알고리즘을 실행하는 데 필요한 추가 메모리 양이 O (1) 인 경우, 즉 [메모리]가 아무리 크더라도 상수를 초과하지 않는 경우 알고리즘은 인시 튜 알고리즘 또는 내부 알고리즘이라고합니다. 입력 . 예를 들면, 힙 정렬은 동일계에서 알고리즘 정렬된다. " en.wikipedia.org/wiki/In_situ#Computer_science
Auberon

@Auberon, O ( 1 ) 보다 추가 요구 사항을 부과 한다고 덧붙여 야합니다 . 특정 호출에 사용 된 총 메모리 가 입력 크기에 관계없이 상수 아래떨어지지 않아야 합니다. Θ(1)O(1)
Olathe

1
@Olathe 저는 아직 0보다 많지만 어떤 상수도 사용하지 않는 알고리즘을
보았습니다

@adrianN, 파일의 AES 암호화는 일정한 상한에서 RAM 사용으로 수행됩니다. 한 번에 한 블록을 처리하고 각 블록은 동일한 양의 RAM을 처리해야하며 한 블록에서 다음 블록으로 RAM을 재사용 할 수 있습니다. 더 간단한 예는 ASCII 인코딩 파일의 모든 문자를 대문자로 변환하는 것입니다. 파일의 블록 (4096 바이트)을 읽고, 4096 바이트를 처리하고, 해당 블록의 결과를 쓰고, 다음 블록에 동일한 RAM을 재사용 할 수 있습니다.
Olathe

답변:


13

먼저 의미를 풀자 .Θ(1)

Big 및 big Θ 는 함수 클래스입니다. 이 형식 정의입니다 여기에 ,하지만이 질문의 목적을 위해, 우리는 함수라고 f는O ( 1 ) 일정의가 있다면 C 곳, 모두를위한 X , F ( X ) C . 즉, f 는 일정한 함수만큼 빨리 자랍니다.OΘfO(1)cxf(x)Cf

알고리즘 시간이나 공간 사용량을 설명 할 때 상수가 그보다 낮지 않기 때문에 Big- 는 상수 함수에 큰 의미가 없습니다. 그러나 그것이 의미하는 바를 설명하기 위해 , 모든 상수 c , d 가 있으면 모든 x 에 대해 d f ( x ) cf Θ ( 1 ) 입니다. 즉, f 는 일정한 함수만큼, 최소한 빠르게, 그리고 최대한 빨리 자랍니다.ΘfΘ(1)c,dxdf(x)cf

이제 이것이 메모리 사용량과 어떤 관련이 있습니까? 알고리즘 고려하십시오 . 입력 주어진 일부 (수학) 함수가 n은 , 당신의 알고리즘의 최대 메모리 사용량 제공 크기의 입력에 , n은 . 이 함수를 m e m 이라고합시다 .AnAnmem

이제 두 가지 개념을 결합했습니다. 알고리즘이 메모리를 사용하는 경우 메모리 사용량 함수는 Θ ( 1 ) 에 있습니다. 즉 , 어떤 입력에 대해서도 사용 된 메모리가 dc 사이에 있도록 일부 d , c 가 존재합니다 .Θ(1)Θ(1)d,cdc

즉, 알고리즘의 메모리 사용량이 입력에 관계없이 일정한 범위에 있음을 의미합니다.

일반적으로 메모리 함수는 입력을 알고리즘에 저장하는 데 사용되는 메모리를 고려하지 않습니다. 그렇지 않으면 메모리 사용이 항상 이상이 되기 때문 입니다.Θ(n)


"입력에 효과적으로 의존하지 않는다." - "효과적으로"의 정의는 무엇입니까?
Raphael

마찬가지로, 사용 된 메모리는 입력에 따라 변경 될 수 있지만 고정 된 간격 내에서만 변경 될 수 있습니다. 더 나은 문구를 생각할 수 있으면 자유롭게 편집하십시오.
jmite

"사용 된 메모리가 모든 입력에 대해 c 사이에 있습니다"보다 더 나은 표현이 없다고 생각 합니다. 하나도 필요하지 않습니다. dc
Raphael

간단한 예시적인 예가 도움이 될 것입니다
vzn

8

알고리즘의 일정한 공간 복잡성

알고리즘이 사용하는 메모리 양은 입력과 무관합니다.

알고리즘은 고정 된 양의 공간을 사용하는 경우 일정한 공간 복잡성을 갖는다 고합니다. 변수 또는 정확히 10 개의 요소 배열 일 수 있습니다 .1010

그러나 In-situ 알고리즘은 입력 자체에서 의도 한 기능을 수행하므로 추가 공간이 거의 또는 전혀 필요하지 않습니다. 알고리즘이 실행될 때 일반적으로 입력이 출력에 의해 덮어 쓰기됩니다. ( REF )

인시 튜 알고리즘은 입력이 차지하는 공간을 고려하지 않고 추가 공간 만 고려하면서 공간 복잡성을 계산합니다.


3
이것은 올바르지 않습니다. 예를 들어, 특정 알고리즘의 경우 3 자 미만의 입력은 5 바이트의 메모리를 사용하는 반면 더 큰 입력은 모두 백만 바이트의 메모리를 사용합니다. 이 알고리즘의 메모리 사용은 입력과 독립적이지 않지만 공간을 사용합니다. 명령문을 정정하기 위해 입력과 무관 한 메모리 사용에 대한 상한 및 하한이 일정합니다. Θ(1)
Olathe

@Olathe 바이트 단위로 각 입력이 차지하는 공간과 개수 측면에서 입력 수는 서로 다른 개념이 아닙니까?
Prateek

0

이는 알고리즘에 필요한 추가 메모리 양이 충분히 큰 입력을 위해 입력 크기에 의존하지 않는 일정한 양보다 크지 않음을 의미합니다.


2
그것은 또한 (아마도 다른) 일정한 양 보다 적지 않기 때문에Θ ~의 교차점입니다 영형Ω. 다른 예를 들면영형(엑스2) 같은 기능을 허용 에프(엑스)=엑스2 그리고 또한 에프(엑스)=엑스. 반면에Θ(엑스2) 더 엄격하여 같은 복잡한 기능 만 허용 에프(엑스)=엑스2 그러나 덜 복잡한 사람들은 허용하지 않습니다. 에프(엑스)=엑스.
Olathe
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.