점근 표기법(Asymptotic notation)
입력 크기 n이 커질 때 걸음 수가 어떤 속도(velocity)로 자라는지를 상수배를 무시하고 적는 표기. O(n), O(n log n), O(n²), O(2ⁿ)의 차이는 n이 클수록 압도적이다.
알고리즘(algorithm)이 얼마나 빠른지는 컴퓨터와 언어, 프로그래머의 솜씨에 따라 달라집니다. 그런 것에 흔들리지 않게 비교하려고, 입력의 크기 n에 대한 걸음 수
이렇게 거칠게 봐도 되는 까닭은, n이 커지면 자라는 빠르기의 차이가 상수배 따위를 압도하기 때문입니다.
지금 걸음 수는
정확한 뜻은 위의 식입니다. 어떤 상수 c와 문턱(threshold)
g가
이어지는 곳. 같은 말투가 수학 곳곳에 나옵니다. N 이하 소수(prime number)의 개수를 어림하는 소수 정리(prime number theorem)에서는 어림값과 참값의 차이(오차항)가 얼마나 빨리 자라는지를 O로 적습니다. 함수(function)가 충분히 매끄러우면 테일러 급수(Taylor series)를 n차에서 끊었을 때 남는 부분은
이 개념이 나오는 긴 글
이 개념 위에 세워진 것
이 개념을 언급하는 페이지
- 소수 판정
… 곧 자릿수 k 가 늘 때 걸리는 시간이 고정된 지수 c 에 대해 k^c 의 상수배를 넘지 않는 방법입니다(점근 표기법). 그래도 실제로는 더 빠른 밀러–라빈이 쓰입니다. 합성수라는 것을 알아도 인수를 찾는 소인수분해는 …
- 중앙값
… 토니 호어가 내놓은 이 방법(퀵셀렉트)은 평균적으로 값의 개수 n에 비례하는 걸음( O(n) ,점근 표기법)이면 끝납니다. 값이 하나씩 들어올 때는, 가장 큰 값이나 가장 작은 값을 곧바로 꺼낼 수 있는 자료 …
- 가우스 소거법
… 미지수가 n 개면 소거에 드는 곱셈은 대략 n^3/3 번, 상수배를 무시하고 적으면 O(n^3) 입니다(점근 표기법). 행렬식을 정의대로 전개할 때의 n! 개 항과는 비교가 안 되게 적어서, 컴퓨터가 연립방정식을 풀 때도 …
- 편집 거리
… 따지면 금방 감당할 수 없지만, 표에는 칸이 (m+1)(n+1) 개뿐이라 계산량이 O(mn) 에 그칩니다(점근 표기법). 이웃 칸에서 값을 모아 오는 방식은 파스칼의 삼각형을 채우는 방식, 앞의 두 값을 기억해 두고 …
- P 대 NP 문제
… 이나 n^3 걸음 안에 끝난다는 뜻입니다. 이런 성장 속도를 상수배를 무시하고 O(n^2) 처럼 적는 것이점근 표기법입니다. 걸음은 튜링 기계의 걸음으로 재지만, 어떤 합리적인 계산 모형을 써도 결론은 같습니다. 빠르게 …
- 역전파
… 계산해야 합니다. 가중치가 P개면 한 번 계산에 P에 비례하는 일이 드니 모두 합쳐 O(P^2) 입니다(점근 표기법). 역전파는 앞으로 한 번, 거꾸로 한 번이면 P개의 기울기를 모두 얻고, 거꾸로 계산의 비용도 앞으로 …
- 점화식
… 풀고, 두 답을 합치는 데 n걸음이 든다는 뜻입니다. 그 답이 n\log n 정도라는 것이 분할 정복과점근 표기법의 기본 계산입니다. 규칙이 일차식이 아니면 사정이 전혀 다릅니다. x_{n+1} = r …
- 생성함수
… 확률론에 생성함수를 체계적으로 썼습니다. 지금도 알고리즘의 평균 걸음 수를 세고 그 증가 속도(점근 표기법)를 어림할 때 생성함수가 기본 도구입니다. 프로그래밍에서 리스트나 나무 같은 타입의 값을 크기별로 세는 …
- 알고리즘
… 빼기만 쓰면 (n, 1) 에서 n걸음이 걸립니다. 입력이 커질 때 걸음 수가 어떻게 자라는지를 재는 말이점근 표기법이고, 두 방법의 차이는 자릿수만큼 자라느냐 수 자체만큼 자라느냐입니다. 무엇이 '명확한 절차'인지를 …
- 이진 탐색
… 이면 이진 탐색은 많아야 번, 순차 탐색은 최악의 경우 번 비교합니다. 로그와 그 역인 지수의 차이,점근 표기법으로 말하면 O(\log n) 과 O(n) 의 차이입니다. '같다'로 끝나는 마지막 한 번을 빼면, 비교 …
- 분할 정복
… 나오는 \Theta(g) ('세타 g')는 'n이 커질 때 상수배를 무시하면 g만큼 자란다'로 읽습니다.점근 표기법의 O가 위쪽 한계만 말한다면, Θ는 위아래를 함께 말합니다. 하위 문제 수 a = , 나누고 합치는 일 …
- 비교 정렬의 하한
… \log n) 입니다. 병합 정렬의 최악은 첫째 항 n \log_2 n 까지 이 하한과 같으니,점근적으로최선입니다. n = 이면 하한은 번, 병합 정렬의 최악은 번, n \log_2 n 은 입니다. 모든 순서가 …
- 해시 테이블
… 삽입할 수 있으니 그 비용을 나눠 내면 한 번에 상수만큼입니다. 그래서 평균 O(1) 이 유지됩니다(점근 표기법). 이 '나눠 내기' 평균은 확률과 상관없이 늘 성립하는 평균이라, 해시가 고르게 퍼진다는 가정에 기댄 …
- 최소 신장 트리
… 구조로 거의 즉시 알 수 있어서, 전체 시간은 변 m개를 정렬하는 O(m \log m) 이 좌우합니다(점근 표기법). 1957년 벨 연구소의 로버트 프림이 발표한 방법(체코의 수학자 보이테흐 야르니크가 1930년에 …
- 홀의 정리
… 보입니다. 사람마다 증가 경로를 한 번씩 찾으면 되니 전체 비용은 사람 수와 변 수의 곱 정도입니다(점근 표기법). 반면 홀 조건을 하나하나 확인하려면 사람들의 모든 부분집합, 곧 멱집합의 원소 2^n 개를 봐야 …
- 최대 흐름 최소 절단 정리
… 1인 최단 경로 찾기인 셈입니다. 이렇게 하면 늘리는 횟수가 꼭짓점 수와 변 수의 곱 정도로 묶입니다(점근 표기법). 증가 경로를 아무렇게나 고르면 늘리는 횟수가 용량의 크기에 따라 불어나고, 용량이 무리수이면 끝나지 …
- 안정 매칭
… 왜 늘 끝나고, 왜 안정할까요? 학생은 같은 학교에 두 번 지원하지 않으니 지원은 많아야 n^2 번입니다(점근 표기법). 학교는 한 번 누군가를 보류하면 끝까지 누군가를 보류하고 상대는 좋아지기만 합니다. 끝났는데 짝 없는 …
- 선형 계획법
… 들르게 만드는 문제를 만들어 최악의 경우 걸음 수가 변수의 수에 대해 지수적으로 늘 수 있음을 보였습니다(점근 표기법). 계산량이 변수의 수에 대한 다항식으로 묶이는 방법은 1979년 레오니트 하치얀의 타원체법(답을 품은 …
- 자동 미분
… × 행렬'(n×n이면 곱셈 약 n^2 번)로 끝나고, 행렬끼리의 곱(약 n^3 번)을 피할 수 있습니다(점근 표기법). 범주론을 아는 독자에게 연쇄 법칙 D(g \circ f)_x = Dg_{f(x)}\, Df_x (점 …
- 어텐션
… 서로를 모두 보므로 점수 표는 n×n이고, 계산량과 메모리가 길이의 제곱에 비례합니다( O(n^2 d) ,점근 표기법). 문맥을 길게 늘리기 어려운 주된 까닭입니다. 셀프 어텐션. 쿼리, 키, 값이 모두 같은 문장에서 …
- 타입 추론: 힌들리–밀너
… ML 식에 타입이 있는지 판정하는 문제가 지수 시간 완전(DEXPTIME-완전)임을 보였습니다(이런 문제는점근 표기로 쓴 어떤 다항식 시간 안에도 풀 수 없음이 증명되어 있습니다). 또 ML과 Haskell은 let …
- 모노이드
… 단계 수입니다. n개라면 n − 1단계 대 \lceil\log_2 n\rceil 단계입니다(분할 정복,점근 표기법). 수백만 개의 수를 더할 때 여러 기계가 조각을 나눠 더한 뒤 그 결과를 다시 더해도 되는 것은 덧셈이 …
- 이산 푸리에 변환과 고속 푸리에 변환
… 반으로 나누어 풀고 합치는 이런 방법이 분할 정복이고, 계산량을 이렇게 N의 함수로 어림하는 말이점근 표기법입니다. N이 2의 거듭제곱이 아니어도 N을 인수들로 쪼개는 비슷한 방법이 있습니다. 이 쪼개기는 두 번 …