전통적인 설정을 고려하더라도 알고리즘을 슬프게 분석 할 수있는 완전히 만족스러운 계산 모델은 없습니다. 즉, 모든 데이터에 쉽게 액세스 할 수 있고 작업 공간이 효과적으로 제한되지 않는다고 가정합니다.
멀티 테이프 튜링 머신은 이론적으로 잘 정의되어 있으며 수년에 걸쳐이 모델에서 많은 알고리즘이 설계되고 분석되었습니다. 그러나 일부는 실제 컴퓨터가 실제로 21 세기에 사용하기에 좋은 모델이되기 위해 어떻게 작동하는지와 밀접한 관련이 없습니다. 다른 한편으로, 워드 -RAM 모델은 인기를 얻었으며 현대 컴퓨터의 작업 (비트가 아닌 워드에 대한 작업, 메모리 위치에 대한 일정한 시간 액세스)을보다 정확하게 캡처하는 것으로 보입니다. 그러나 이상적이지 않은 측면이 있습니다. 예를 들어, 하나의 단어 RAM 모델이 없습니다. 일정한 시간에 단어에 어떤 연산을 허용할지 먼저 지정해야합니다. 하나의 수락 된 답변이없는 많은 옵션이 있습니다. 둘째, 단어 크기 w는 일반적으로 일정한 수의 단어를 사용하여 메모리의 모든 항목을 처리 할 수 있도록 입력 크기 (적어도 log (n)만큼 빠름)와 함께 증가하도록 설정됩니다. 즉, 알고리즘이 실행되거나 더 나쁜 무한한 머신 클래스를 상상해야하며, 더 많은 데이터를 제공함에 따라 머신이 변경됩니다. 이것은 적어도 내 학생들 사이에서 가장 순수한 생각입니다. 마지막으로, 단어 -RAM 모델을 사용하면 다소 복잡한 결과를 얻을 수 있는데 이는 학생으로서 배우는 것과는 맞지 않을 수 있습니다. 예를 들어,이 모델에서 두 n- 비트 수의 곱셈은 O (n) 시간이며 단순히 n- 비트 문자열을 읽는 것은 갑자기 하위 선형 시간 연산입니다. 즉, 알고리즘이 실행되거나 더 나쁜 무한한 머신 클래스를 상상해야하며 더 많은 데이터를 제공함에 따라 머신이 변경됩니다. 이것은 적어도 내 학생들 사이에서 가장 순수한 생각입니다. 마지막으로, 단어 -RAM 모델을 사용하면 다소 놀라운 복잡성 결과를 얻을 수 있는데, 이는 학생으로서 배우는 것과 일치하지 않을 수 있습니다. 예를 들어,이 모델에서 두 n- 비트 수의 곱셈은 O (n) 시간이며 단순히 n- 비트 문자열을 읽는 것은 갑자기 하위 선형 시간 연산입니다. 즉, 알고리즘이 실행되거나 더 나쁜 무한한 머신 클래스를 상상해야하며 더 많은 데이터를 제공함에 따라 머신이 변경됩니다. 이것은 적어도 내 학생들 사이에서 가장 순수한 생각입니다. 마지막으로, 단어 -RAM 모델을 사용하면 다소 놀라운 복잡성 결과를 얻을 수 있는데, 이는 학생으로서 배우는 것과 일치하지 않을 수 있습니다. 예를 들어,이 모델에서 두 n- 비트 수의 곱셈은 O (n) 시간이며 단순히 n- 비트 문자열을 읽는 것은 갑자기 하위 선형 시간 연산입니다.
모든 것을 말했지만, 알고리즘이 빠르게 실행될 가능성이 있는지 알고 싶다면 대부분 가능성이 있습니다 :-)