다음 문제를 고려하십시오.
있습니다 알 수없는 값 . 이 작업은 다음 형식의 쿼리 만 사용하여 가장 큰 인덱스를 찾는 것입니다. 쿼리는 세트 의해 지정되며 해당 답변은 입니다. 목표는 가능한 적은 쿼리를 사용하는 것입니다.v 1 , ⋯ , v n ∈ R S ⊆ { 1 , ⋯ , n } max i ∈ S v i
이 문제는 쉽습니다. 바이너리 검색을 사용하여 쿼리로 argmax를 찾을 수 있습니다 . 즉, 인덱스에 해당하는 잎 으로 완전한 이진 트리를 만듭니다. 뿌리에서 시작하여 다음과 같이 잎으로 내려갑니다. 각 노드에서 오른쪽 및 왼쪽 하위 트리의 최대 값을 쿼리 한 다음 큰 답을 가진 쪽의 자식으로 이동하십시오. 잎에 도달하면 색인을 출력하십시오.
이 문제의 다음과 같은 시끄러운 버전이 내 연구에서 나타났습니다.
있습니다 알 수없는 값은 . 이들은 세트 이 지정되고 \ mathcal {N} (\ max_ {i \ in S} v_i, 1) 의 샘플 이 반환 되는 쿼리를 사용하여 액세스 할 수 있습니다 . 목표는 식별하는 것입니다 등이 가능한 몇 가지 질의로 사용. (기대는 알고리즘의 코인과 시끄러운 쿼리 응답에 따라 i_ * 의 선택에 대한 기대입니다 .)
이전과 동일한 이진 검색 전략을 사용하여이 문제를 해결하려고한다고 가정하지만 (시끄러운 답변) 이것이 을 달성하고 최악의 경우에는 타이트 함 을 보여주기가 상당히 쉽습니다 . 각 쿼리 반복하고 평균 (분산을 감소시키는)을 사용하여 오류를 원하는 로 줄일 수 있습니다 . 이것은 쿼리를 사용하는 알고리즘을 제공 합니다.1 O ( log 2 n ) O ( log 3 n )
더 나은 알고리즘이 있습니까? 쿼리로 충분 하다고 추측 합니다. 그리고 나는 하한을 증명할 수 있다고 생각 합니다. 또한 이진 검색을 통한 쿼리 와 같이 가장 큰 값과 두 번째로 큰 값 사이에 간격 이 있다는 문제로 인해 문제가 쉬워 집니다. 도움이된다면 모든 값이 과 사이에 있다고 가정 할 수 있습니다 .Ω는 ( 기록 이 없음을 ) ~ O ( 로그 N ) Ω ( 1 ) 0 O ( 로그 N )