맨위로가기

확률적 알고리즘

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

확률적 알고리즘은 알고리즘 실행 과정에 무작위성을 활용하는 알고리즘으로, 암호학, 계산 복잡도 이론, 그래프 이론 등 다양한 분야에서 활용된다. 재전송 공격 방지, 배열 내 특정 값 탐색, 퀵 정렬 등에서 효율성을 보이며, 라스베가스 알고리즘과 몬테카를로 알고리즘으로 분류된다. 계산 복잡도 이론에서는 확률적 튜링 기계로 모델링되며, RP, Co-RP, BPP, ZPP, NP-난해 등의 복잡도 종류가 연구된다. 밀러-라빈 소수 판별법은 확률적 알고리즘 연구의 중요한 시작점이며, 퀵 정렬, 최소 컷 알고리즘, 해시 테이블, 블룸 필터 등 다양한 자료 구조와 알고리즘에 응용된다. 탈난수화는 확률적 알고리즘에서 무작위성을 제거하거나 줄이는 과정이며, 조건부 확률, 불일치 이론, 해시 함수 등을 활용한다.

더 읽어볼만한 페이지

  • 확률적 알고리즘 - 알고리즘 정보 이론
    알고리즘 정보 이론은 콜모고로프 복잡성을 기반으로 객체의 정보량을 측정하는 척도를 제공하며, 최소 설명 길이 원리 등에 응용될 수 있다.
  • 확률적 알고리즘 - 몬테카를로 알고리즘
    몬테카를로 알고리즘은 정확한 답을 보장하지 않는 확률적 알고리즘으로, 단측 또는 양측 오류를 가지며 반복 실행으로 오류를 줄일 수 있고, 라스베가스 알고리즘과 함께 랜덤 알고리즘의 주요 분류를 이루며 다양한 분야에 응용된다.
  • 알고리즘 분석 - 계산 복잡도
    계산 복잡도는 알고리즘의 효율성을 평가하는 척도로, 시간, 공간 등의 자원을 고려하며, 입력 크기의 함수로 표현되고, 빅 오 표기법을 사용하여 알고리즘의 예상 성능을 파악하는 데 중요한 역할을 한다.
  • 알고리즘 분석 - 비결정적 알고리즘
    비결정적 알고리즘은 계산 과정에서 여러 선택지를 가질 수 있는 비결정론적 튜링 기계 또는 비결정성을 활용하는 프로그래밍 패러다임인 비결정론적 프로그래밍과 관련된 알고리즘을 포괄적으로 지칭한다.
확률적 알고리즘
알고리즘 종류
유형확률론 활용 알고리즘
특징알고리즘 논리 또는 절차의 일부로 무작위성을 활용
기대 실행 시간평균적인 성능을 분석하는 데 사용되는 지표
세부 종류
몬테카를로 알고리즘항상 답을 내놓지만, 틀릴 수도 있음
라스베이거스 알고리즘항상 정확한 답을 내놓지만, 답을 내놓지 못할 수도 있음
셔우드 알고리즘항상 정확한 답을 내놓으며, 실행 시간이 입력에 의존하지 않도록 설계됨

2. 필요성

''n''개의 요소로 이루어진 배열에서 "a"라는 요소를 찾는 문제를 생각해 보자. 이 배열의 절반은 "a"이고 나머지는 "b"이다. 순차 탐색과 같이 요소를 조사하는 순서가 고정된 결정론적 알고리즘은, "b"가 앞쪽에 몰려 있는 경우처럼, 최악의 경우 n/2번의 연산이 필요하여 시간이 오래 걸릴 수 있다. 그러나 배열 요소를 무작위 순서로 조사하는 확률적 알고리즘을 사용하면, 입력과 무관하게 높은 확률로 "a"를 빠르게 찾을 수 있다.

암호학 분야에서도 확률적 알고리즘은 매우 중요하다. 예를 들어, 온라인 계좌 이체 시 악의적인 사용자의 재전송 공격을 방지하기 위해, 임의의 난수를 발생시켜 알고리즘 실행 과정을 매번 다르게 만들어야 한다. 이때 의사 난수 생성기 대신 실제 난수 또는 암호학적으로 안전한 의사 난수 생성기를 사용해야 한다. 양자컴퓨터에서 실행되는 모든 알고리즘은 본질적으로 확률적 알고리즘이다.

확률적 알고리즘은 실행 시간이 오래 걸릴 확률이 존재하지만, 항상 옳은 결과를 내놓는다. 반면, 오류가 발생할 확률을 감수하고서라도 알고리즘을 빠르게 실행하는 것이 중요한 경우도 있다. 전자를 라스베가스 알고리즘, 후자를 몬테카를로 알고리즘이라고 한다.

2. 1. 라스베가스 알고리즘과 몬테카를로 알고리즘

확률적 알고리즘은 결과의 정확성과 실행 시간에 따라 라스베가스 알고리즘과 몬테카를로 알고리즘으로 분류할 수 있다.

  • '''라스베가스 알고리즘''': 항상 정확한 결과를 반환하지만, 실행 시간이 확률적으로 변동한다.
  • '''몬테카를로 알고리즘''': 실행 시간은 제한되지만, 작은 확률로 오류가 발생할 수 있다.


모든 라스베가스 알고리즘은 몬테카를로 알고리즘으로 변환될 수 있으며, 그 반대도 특정 조건 하에서 가능하다. 예를 들어, 라스베가스 알고리즘이 정해진 시간 안에 완료되지 않으면 임의의 (틀릴 수도 있는) 결과값을 출력하도록 하면 몬테카를로 알고리즘이 된다. 만약 몬테카를로 알고리즘의 결과가 정답인지 확인할 수 있는 효율적인 방법이 있다면, 정답을 얻을 때까지 알고리즘을 반복 실행하여 라스베가스 알고리즘으로 만들 수 있다.

''n''개의 원소가 들어있는 배열에서 절반은 ''a''이고 나머지 절반은 ''b''일 때, 배열에서 ''a''를 찾는 문제를 예시로 들 수 있다.

  • '''라스베가스 알고리즘'''의 경우, 배열에서 임의의 원소를 골라 ''a''가 나올 때까지 반복한다. 이 알고리즘은 항상 성공하지만, 실행 시간은 확률적이다.
  • '''몬테카를로 알고리즘'''의 경우, 배열에서 임의의 원소를 ''k''번 골라 ''a''를 찾는다. 이 알고리즘은 ''k''번 안에 ''a''를 찾지 못하면 실패하지만, 실행 시간은 ''k''로 제한된다.


3. 복잡도

계산 복잡도 이론에서는 확률적 알고리즘을 확률적 튜링 기계로 모형화하여 연구한다. 라스베이거스 알고리즘과 몬테카를로 알고리즘을 모두 대상으로 하며, 이와 관련된 여러 복잡도 종류가 연구되고 있다.

'예'와 '아니오' 두 가지 답변 모두 오류가 발생할 수 있는 복잡도는 BPP이다. 평균적으로 다항 시간 안에 올바른 답을 낼 수 있는 문제들의 종류는 ZPP이다. NP-난해 문제들은 이러한 복잡도 종류에 포함되지 않는다고 추정되며, 확률적 알고리즘만으로는 풀기 어렵고 근사 알고리즘을 사용해야 한다.

확률적 알고리즘 연구는 1976년에 제안된 밀러-라빈 소수판별법을 계기로 활발해졌다.

3. 1. 주요 복잡도 종류

RP는 효율적인(다항 시간) 확률적 알고리즘(또는 확률적 튜링 기계)이 존재하는 판정 문제의 집합이다. 이 알고리즘은 다음 조건을 만족해야 한다.

  • '아니오' 입력에 대해서는 항상 '아니오' 결과를 출력한다.
  • '예' 입력에 대해서는 최소 50% 확률로 '예' 결과를 출력한다.


co-RP는 RP의 여집합이다. 즉, '예' 입력은 항상 '예'로, '아니오' 입력은 최소 50% 확률로 '아니오'로 판정하는 문제의 집합이다.

BPP는 '예'와 '아니오' 입력 모두에 대해 오류 확률이 제한된 효율적인 확률적 알고리즘이 존재하는 문제의 집합이다. 즉, '예' 입력을 '예'로, '아니오' 입력을 '아니오'로 판정할 확률이 모두 2/3 이상인 문제들이다.

ZPP는 평균적으로 다항 시간 안에 올바른 답을 낼 수 있는 문제의 집합이다. 어떤 입력에 대해서는 알고리즘이 무한히 실행될 수 있지만, 평균 실행 시간은 다항 시간이다.

NP-난해 문제들은 RP, co-RP, BPP, ZPP 등에 속하지 않는다고 추정되는 문제들이다. 이러한 문제들은 확률적 알고리즘만으로는 풀기 어렵고, 근사 알고리즘이 필요할 수 있다.

다음은 주요 복잡도 종류를 표로 정리한 것이다.

복잡도 종류설명
RP아니오 입력은 항상 아니오, 입력은 최소 50% 확률로 '예'
co-RP 입력은 항상 , 아니오 입력은 최소 50% 확률로 '아니오'
BPP아니오 입력 모두 오류 확률이 제한됨 (2/3 이상 올바르게 판정)
ZPP평균 다항 시간 안에 항상 올바른 답을 출력
NP-난해RP, co-RP, BPP, ZPP에 속하지 않는다고 추정되는 문제들


3. 2. 밀러-라빈 소수 판별법

1976년에 제안된 밀러-라빈 소수 판별법은 확률적 알고리즘 연구의 중요한 계기가 되었다. 이 알고리즘은 주어진 수가 소수인지 합성수인지 판별하는 효율적인 방법을 제공하며, 소수 판별 문제가 Co-RP에 속한다는 것을 보여준다.

밀러-라빈 소수판별법은 두 개의 자연수 ''k''와 ''n'' 사이의 '증거'(witness)라는 이항관계를 사용한다. '증거' 관계는 다음과 같은 성질을 가진다.

  • ''n''에 대한 증거가 존재하면, ''n''은 합성수이다. (즉, ''n''은 소수가 아니다.)
  • ''n''이 합성수이면 ''n''보다 작은 수 중에서 최소한 3/4은 ''n''이 합성수라는 증거이다.
  • ''k''와 ''n''이 주어졌을 때, ''k''가 ''n''이 합성수라는 것에 대한 증거인지 아닌지 판별하는 빠른 알고리즘이 존재한다.


합성수 ''n''보다 작은 임의의 수를 100번 선택하여 알고리즘을 실행시킨다면, 이런 '증거'를 못 찾을 확률은 (1/4)100이다. 그러므로 거의 대부분의 경우에서, 이와 같은 소수 판별법은 매우 좋은 알고리즘이라고 생각할 수 있다. 특히 ''n''이 아주 크다면, 이 방법 이외에는 효율적인 알고리즘이 없다. 알고리즘을 여러 번 시행하면 오류가 일어날 확률을 원하는 만큼 줄일 수도 있다.

작은 확률로 오류가 발생하더라도 알고리즘을 조금만 주의해서 실행시키면 오류가 일어날 확률을 천문학적으로 작은 숫자만큼 줄일 수 있기 때문에, 실제로 오류가 발생하는 것은 그다지 큰 문제가 되지 않는다. 실제로 결정론적으로 소수를 판별하는 다항시간 알고리즘이 발견되었어도, 다양한 암호 관련 소프트웨어에서는 기존의 소수 판별법을 그대로 사용하고 있으며, 소수 판별 분야에서는 결정론적 알고리즘이 가까운 시일 안에 기존 확률적 알고리즘을 대체할 수는 없을 것으로 보인다.

4. 응용

확률적 알고리즘은 다양한 분야에서 활용되고 있다.

퀵 정렬은 난수를 사용하여 피벗을 선택함으로써, 높은 확률로 *O*(*n* log *n*) 시간에 정렬을 완료한다. 결정론적 알고리즘은 *n*개를 정렬하는데 O(*n*2) 만큼의 시간이 걸릴 수 있지만, 확률적 알고리즘은 임의의 원소를 무작위로 선택하여 이러한 문제를 완화한다.[28]

그래프 이론에서 최소 컷을 찾는 알고리즘 또한 확률적 알고리즘이 사용되는 예시이다. *n*이 그래프의 꼭짓점 개수일 때, 최소 절단을 찾기 위해 알고리즘을 *n*2 log *n* 번 실행하여 그 중 가장 작은 값을 선택하면 높은 확률로 최소 절단을 찾을 수 있다.

튜링 머신 계산 모델에서 무작위 선택을 통해 다항 시간 내에 해결 가능한 문제의 범위(P = BPP 인지)는 아직 열린 질문이지만, 다른 맥락에서는 무작위성이 성능 향상을 가져오는 경우가 존재한다.


  • 2''k''개의 문자열(절반은 'a', 절반은 'b')에서 'a'의 색인을 찾는 문제에서, 랜덤 액세스 머신은 최악의 경우 2''k''−1번의 조회가 필요하지만, 무작위 선택을 허용하면 예상되는 다항 횟수의 조회로 해결 가능하다.
  • 임베디드 시스템 또는 사이버-물리 시스템에서 수치 계산 시, 확률적으로 근사한 결과를 제공하는 PACC (Probably Approximately Correct Computation) 방식이 활용될 수 있으며, 무작위화는 근사 계산과 정확한 계산 사이의 불일치 손실 평가에 효과적이다.[21]
  • 통신 복잡도에서 두 문자열의 동일성은 무작위 프로토콜을 사용하면 log *n* 비트의 통신으로 확인 가능하지만, 결정적 프로토콜은 Θ(*n*) 비트가 필요하다.[22]
  • 볼록 다면체의 부피는 다항 시간 내에 임의의 정밀도로 무작위 알고리즘으로 추정할 수 있지만,[23] 바라니와 퓌레디는 결정적 알고리즘으로는 불가능함을 보였다.[24]
  • IP는 강력한 증명자와 BPP 알고리즘을 구현하는 검증자 간의 다항식 길이 상호작용을 통해 허용될 수 있는 언어로 구성되며, IP = PSPACE이다.[25] 그러나 검증자가 결정적이면 IP = NP이다.
  • 화학 반응 네트워크에서 초기 상태에서 목표 상태에 도달하는 능력은 결정 가능하지만, 목표 상태에 도달할 확률을 근사하는 것은 결정 불가능하다. 무작위 화학 반응 네트워크는 제한된 튜링 머신을 높은 확률로 시뮬레이션할 수 있지만, 비결정적 화학 반응 네트워크는 원시 귀납적 함수로 제한된다.[26]

4. 1. 퀵 정렬

퀵 정렬은 난수를 사용하여 피벗을 선택함으로써, 높은 확률로 *O*(*n* log *n*) 시간에 정렬을 완료하는 대표적인 확률적 알고리즘이다. 결정론적 퀵 정렬은 특정 입력에 대해 *O*(*n*2) 시간이 걸릴 수 있지만, 확률적 퀵 정렬은 이러한 문제를 완화한다.[28] 토니 호어는 1959년에 퀵 정렬을 발견하였고, 1961년에 발표하였다.[4]

확률적 퀵 정렬은 피벗 원소를 무작위로 균일하게 선택하기 때문에 입력의 특성과 관계없이 높은 확률로 *O*(*n* log *n*) 시간 안에 정렬을 완료한다. 반면, 결정론적 퀵 정렬은 피벗 선택 방법에 따라 특정 입력(예: 이미 정렬된 배열)에 대해 *O*(*n*2) 시간이 걸릴 수 있다. 결정론적 퀵 정렬의 최악의 경우는 알고리즘의 피벗 선택 프로토콜에 의해 정의되는 특정 입력 클래스에 대해 발생한다. 그러나 무작위성을 활용하면 이러한 문제를 해결할 수 있다.[28]

4. 2. 그래프 이론 (최소 컷 알고리즘)

카게르의 최소 컷 알고리즘은 그래프에서 최소 컷을 찾기 위해 확률적 방법을 사용하는 예시이다. 이 알고리즘은 임의의 간선을 반복적으로 축약하여 최소 컷을 높은 확률로 찾아낸다.

'''입력''': 그래프 ''G''(''V'',''E'')

'''출력''': 정점을 ''L''과 ''R''로 분할하는 컷, ''L''과 ''R'' 사이의 최소 개수의 간선을 가짐.

두 노드 ''u''와 ''v''의 축약은 (다중) 그래프에서 ''u'' 또는 ''v''에 인접한 간선의 합집합인 간선이 있는 새로운 노드 ''u'' '를 생성하지만, ''u''와 ''v''를 연결하는 간선은 제외한다. 축약 후, 결과 그래프는 평행 간선을 가질 수 있지만 자기 루프는 포함하지 않는다.

정점 A와 B의 축약


카게르의[20] 기본 알고리즘은 다음과 같다.

'''시작'''

# i = 1

# '''반복'''

## '''반복'''

### G에서 임의의 간선 (u,v) ∈ E 선택

### u와 v를 축약 u'로 대체

## '''종료될 때까지''' 단 두 개의 노드만 남음

## 해당 컷 결과 Ci 획득

## i = i + 1

# '''종료될 때까지''' i = m

# C1, C2, ..., Cm 중에서 최소 컷 출력.

'''종료'''

외부 루프의 각 실행에서 알고리즘은 두 개의 노드만 남을 때까지 내부 루프를 반복하고 해당 컷을 얻는다. 한 번의 실행 시간은 O(n)이며, ''n''은 정점의 수를 나타낸다. 외부 루프의 ''m''번 실행 후, 모든 결과 중에서 최소 컷을 출력한다.
10-정점 그래프에서 카게르 알고리즘의 성공적인 실행. 최소 컷은 크기가 3이며 정점 색상으로 표시


알고리즘이 성공할 확률은 모든 시도가 실패할 확률의 1 − 이다. 독립성에 의해, 모든 시도가 실패할 확률은 다음과 같다.

:

\prod_{i=1}^m \Pr(C_i\neq C)=\prod_{i=1}^m(1-\Pr(C_i=C)).



보조정리 1에 따르면, C_i = C 일 확률은 반복 ''i'' 동안 ''C''의 어떤 변도 선택되지 않을 확률이다. 내부 루프를 고려하고, G_j를 ''j''개의 변 축약 후의 그래프로 나타내며, 여기서 j \in \{0, 1, …, n − 3\}이다. G_jn − j개의 정점을 가진다. 우리는 조건부 가능성의 연쇄 규칙을 사용한다. 반복 ''j''에서 선택된 변이 ''C''에 속하지 않을 확률은, 이전에 ''C''의 어떤 변도 선택되지 않았다는 조건 하에, 1-\frac{k}

이다. 참고로, G_j는 여전히 크기가 ''k''인 최소 컷을 가지므로, 보조정리 2에 의해, 여전히 최소 \frac{(n-j)k}{2}개의 변을 가진다.

따라서, 1-\frac{k}

\geq 1-\frac{2}{n-j}=\frac{n-j-2}{n-j}이다.

따라서 연쇄 규칙에 의해, 최소 컷 ''C''를 찾을 확률은 다음과 같다.

:

\Pr[C_i=C] \geq \left(\frac{n-2}{n}\right)\left(\frac{n-3}{n-1}\right)\left(\frac{n-4}{n-2}\right)\ldots\left(\frac{3}{5}\right)\left(\frac{2}{4}\right)\left(\frac{1}{3}\right).



약분을 하면 \Pr[C_i=C] \geq \frac{2}{n(n-1)}가 된다. 따라서 알고리즘이 성공할 확률은 최소 1- \left(1-\frac{2}{n(n-1)}\right)^m이다. m = \frac{n(n-1)}{2}\ln n에 대해, 이것은 1-\frac{1}{n}과 동일하다. 알고리즘은 O(mn) = O(n^3 \log n) 시간에 확률 1 - \frac{1}{n}로 최소 컷을 찾는다.

4. 3. 자료 구조

한스 페터 룬은 1953년 IBM에서 해시 테이블을 소개했는데, 이는 확률적 자료 구조의 초기 사례 중 하나이다.[9] 룬의 해시 테이블은 충돌 해결을 위해 체이닝을 사용했으며, 연결 리스트의 초기 활용 사례 중 하나이기도 하다.[9]

1970년, 버턴 하워드 블룸은 블룸 필터로 알려진 근사 멤버십 자료 구조를 소개했다.[13] 1989년, 라이문트 자이델과 세실리아 R. 아라곤은 트립으로 알려진 확률적 균형 탐색 트리를 소개했다.[14] 같은 해, 윌리엄 퍼는 스킵 리스트로 알려진 또 다른 확률적 탐색 트리를 소개했다.[15]

4. 4. 기타 응용 분야

에르되시는 특정 조건을 만족하는 수학적 대상의 존재를 증명하기 위해 확률적 방법을 사용했다. 이 기법은 확률적 방법으로 알려지게 되었다.[16] 에르되시는 1947년에 무작위 구성을 사용하여 램지 그래프의 존재를 증명했고,[17] 1959년에는 무작위 알고리즘을 통해 높은 둘레와 채색수를 가진 그래프의 존재를 증명했다.[18][16]

계산 기하학에서는 볼록 껍질이나 들로네 삼각분할과 같은 구조를 만들 때 무작위 점진적 구성 기법이 사용된다.[19] 입력 점들을 무작위로 배열하고, 기존 구조에 하나씩 추가하여 구조에 발생하는 변경 횟수를 줄여 알고리즘의 예상 실행 시간을 제한한다.

통신 복잡도에서 두 문자열의 동일성은 무작위 프로토콜을 사용하여 \log n 비트의 통신으로 확인할 수 있다.[22] 모든 결정적 프로토콜은 \Theta(n) 비트가 필요하므로, 무작위성을 통해 통신 복잡도를 줄일 수 있다.

볼록 다면체의 부피는 무작위 알고리즘을 통해 다항 시간 내에 추정할 수 있다.[23] 바라니와 퓌레디는 결정적 알고리즘으로는 동일한 작업을 수행할 수 없음을 보였다.[24]

화학 반응 네트워크에서 주어진 초기 상태에서 특정 상태에 도달할 확률은 무작위 화학 반응 네트워크를 사용하여 계산할 수 있다.[26]

5. 탈난수화 (Derandomization)

랜덤성은 공간과 시간처럼 자원으로 볼 수 있다. 탈난수화는 이 랜덤성을 '제거'하거나 가능한 한 적게 사용하는 것을 목표로 한다. 하지만 모든 알고리즘을 실행 시간을 크게 늘리지 않고 탈난수화할 수 있는지는 아직 밝혀지지 않았다. 예를 들어, 계산 복잡도에서 P = BPP인지, 즉 작은 오류 확률을 가지는 다항 시간 확률적 알고리즘을 난수 없이 다항 시간에 실행되도록 할 수 있는지는 알 수 없다.

일반적으로 확률적 알고리즘은 같은 문제에 대한 결정적 알고리즘보다 정교하며, 계산 자원 소비도 적다. 이와 반대로, 확률적 알고리즘에서 무작위성을 제거하고 강력한 결정적 알고리즘을 구축하는 연구가 활발히 진행되고 있으며, 다항 시간 알고리즘의 경우 난수의 유무가 큰 차이를 만들지 않을 것이라는 추측(P=BPP 가설)도 있다.

5. 1. 탈난수화 방법

조건부 확률의 방법과 그 일반화인 비관적 추정치가 있다.[1] 불일치 이론은 기하 알고리즘을 탈난수화하는 데 사용된다.[1] 알고리즘에서 사용되는 난수(랜덤 변수)의 제한된 독립성을 활용할 수 있는데, 예를 들어 보편 해싱에 사용되는 쌍별 독립성이 있다.[1] 확장 그래프(또는 일반적으로 분산기)를 사용하여 제한된 양의 초기 난수성을 증폭시킬 수 있다.[1] 이 방법은 무작위 소스에서 의사 난수 비트를 생성하는 것으로도 언급되며, 의사 난수성과 관련된 주제로 이어진다.[1] 확률적 알고리즘을 변경하여 알고리즘 작업에 대한 난수성의 소스로서 해시 함수를 사용한 다음, 해시 함수의 모든 가능한 매개변수(시드)를 무차별 대입하여 알고리즘을 탈난수화할 수 있다.[1] 이 기술은 일반적으로 표본 공간을 소진적으로 검색하고 알고리즘을 결정론적으로 만드는 데 사용된다 (예: 확률적 그래프 알고리즘).[1]

참조

[1] 학술지 Algorithm 64: Quicksort 1961-07
[2] 학술지 Monte-Carlo randomized algorithm for minimal feedback arc set problem 2016-04-01
[3] 문서
[4] 학술지 Algorithm 64: Quicksort https://dl.acm.org/d[...] 1961-07
[5] 학술지 Algorithm 65: find https://dl.acm.org/d[...] 1961-07
[6] 학술지 Time bounds for selection https://linkinghub.e[...] 1973-08
[7] 간행물 Mathematics of Computation 1943–1993: a half-century of computational mathematics; Papers from the Symposium on Numerical Analysis and the Minisymposium on Computational Number Theory held in Vancouver, British Columbia, August 9–13, 1993 Amer. Math. Soc., Providence, RI
[8] 서적 Proceedings of the second ACM symposium on Symbolic and algebraic manipulation - SYMSAC '71 ACM Press 1971
[9] 서적 The art of computer programming, volume 3: (2nd ed.) sorting and searching https://dl.acm.org/d[...] Addison Wesley Longman Publishing Co., Inc. 1998
[10] 문서 Notes on "Open" Addressing https://web.archive.[...] 1963
[11] 학술지 An Occupancy Discipline and Applications http://dx.doi.org/10[...] 1966-11
[12] 학술지 Universal classes of hash functions 1979-04-01
[13] 학술지 Space/time trade-offs in hash coding with allowable errors 1970-07
[14] 서적 30th Annual Symposium on Foundations of Computer Science 1989-10
[15] 문서 Concurrent Maintenance of Skip Lists http://drum.lib.umd.[...] 1989-04
[16] 서적 The probabilistic method https://www.worldcat[...] 2016
[17] 문서
[18] 학술지 Graph Theory and Probability 1959
[19] 문서
[20] 학술지 Random Sampling in Cut, Flow, and Network Design Problems 1999
[21] 간행물 Intelligence for Embedded Systems Springer
[22] 간행물 Communication Complexity Cambridge University Press
[23] 학술지 A random polynomial-time algorithm for approximating the volume of convex bodies http://www.math.cmu.[...]
[24] 간행물 Proc. 18th ACM Symposium on Theory of Computing (Berkeley, California, May 28–30, 1986) https://ecommons.cor[...] ACM
[25] 학술지 IP = PSPACE
[26] 간행물 Algorithmic Bioprocesses https://authors.libr[...] Springer-Verlag
[27] 문서
[28] 문서



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com