근사 최대 쿼리 만 사용하여 근사 argmax 찾기


10

다음 문제를 고려하십시오.

있습니다 알 수없는 값 . 이 작업은 다음 형식의 쿼리 만 사용하여 가장 큰 인덱스를 찾는 것입니다. 쿼리는 세트 의해 지정되며 해당 답변은 입니다. 목표는 가능한 적은 쿼리를 사용하는 것입니다.v 1 , , v nR S { 1 , , n } max i S v inv1,,vnRS{1,,n}maxiSvi

이 문제는 쉽습니다. 바이너리 검색을 사용하여 O(logn) 쿼리로 argmax를 찾을 수 있습니다 . 즉, 인덱스에 해당하는 n 잎 으로 완전한 이진 트리를 만듭니다. 뿌리에서 시작하여 다음과 같이 잎으로 내려갑니다. 각 노드에서 오른쪽 및 왼쪽 하위 트리의 최대 값을 쿼리 한 다음 큰 답을 가진 쪽의 자식으로 이동하십시오. 잎에 도달하면 색인을 출력하십시오.

이 문제의 다음과 같은 시끄러운 버전이 내 연구에서 나타났습니다.

있습니다 n 알 수없는 값은 v1,,vn . 이들은 세트 S{1,,n} 이 지정되고 \ mathcal {N} (\ max_ {i \ in S} v_i, 1) 의 샘플 N(maxiSvi,1)이 반환 되는 쿼리를 사용하여 액세스 할 수 있습니다 . 목표는 식별하는 것입니다 i{1,,n} 등이 이자형[V나는]최대나는V나는1 가능한 몇 가지 질의로 사용. (기대는 알고리즘의 코인과 시끄러운 쿼리 응답에 따라 i_ * 의 선택에 대한 기대입니다 나는.)

이전과 동일한 이진 검색 전략을 사용하여이 문제를 해결하려고한다고 가정하지만 (시끄러운 답변) 이것이 을 달성하고 최악의 경우에는 타이트 함 을 보여주기가 상당히 쉽습니다 . 각 쿼리 반복하고 평균 (분산을 감소시키는)을 사용하여 오류를 원하는 로 줄일 수 있습니다 . 이것은 쿼리를 사용하는 알고리즘을 제공 합니다.1 O ( log 2 n ) O ( log 3 n )이자형[V나는]최대나는V나는영형(로그)1영형(로그2)영형(로그)

더 나은 알고리즘이 있습니까? 쿼리로 충분 하다고 추측 합니다. 그리고 나는 하한을 증명할 수 있다고 생각 합니다. 또한 이진 검색을 통한 쿼리 와 같이 가장 큰 값과 두 번째로 큰 값 사이에 간격 이 있다는 문제로 인해 문제가 쉬워 집니다. 도움이된다면 모든 값이 과 사이에 있다고 가정 할 수 있습니다 .Ω는 ( 기록 없음을 ) ~ O ( 로그 N ) Ω ( 1 ) 0 O ( 로그 N )영형(로그2)Ω(로그2)영형~(로그)Ω(1)0영형(로그)


모든 수준에서 O (log n) 쿼리 쌍 (왼쪽 최대 한 개, 오른쪽 최대 한 개)을 만들고이기는 사람을 기록하는 이진 검색은 어떻습니까? 그런 다음, O (log n) 반올림 후 알고리즘은 가장 "원"한 측에서 재귀 적으로 진행합니다. 내 머리에 대한 간단한 계산은 하나의 입력이 이고 다른 모든 입력이 설정에서 확률 와 함께 작동했음을 나타냅니다 . 2 011/20
daniello

@daniello 가장 큰 값과 두 번째로 큰 값 사이에 차이가있을 때 작동합니다. 일반적인 경우는 더 어려워 보입니다.
Thomas

자기 자신에 대한 메모 : 코멘트하기 전에 전체 질문을 읽으십시오
daniello

답변:


1

하한에 대한 아이디어의 확장 된 의견. 하자 , 말 (최선의 선택이 다를 수 있지만), 그리고하자 . 이 값의 순열을 무작위로 균일하게 선택하여 입력을 그리는 것을 고려하십시오.{ v 1 , , v n } = { 1B=Θ(logn){v1,,vn}={1nB,,n1nB,B}

와 값을 제외한 모든 값의 인덱스를 고정 하면 알고리즘의 알고리즘 선택 확률의 차이를 보여줄 수 있어야합니다. 매우 작음 : 알고리즘 쿼리 결과 간의 변동 거리는이 값을 두 개의 사용 가능한 인덱스에 할당 할 때의 50-50 분포와 쿼리 시퀀스 결과에 따라 매우 작습니다.n - 11

이 인수는 각 인접 값 쌍에 대해 유지되므로 알고리즘이 가장 높은 값, 두 번째로 높은 값을 선택하는 확률에 대한 제약 조건을 얻습니다. 이것은 알고리즘의 예상 값에 상한을 제공하므로 상한을 하고 쿼리 수를 확인하십시오.1

위의 접근 방식 으로 을 향상시킬 수는 없었지만 쿼리가 여러 단계를 한 번에 도울 수 없다는 사실을 활용할 수 있다면 얻을 수 있다고 생각합니다 . 즉, 가장 높은 값을 다른 인덱스로 옮길 때 쿼리가 변경되면 다른 값을 다른 인덱스로 옮길 때 변경되지 않는 시간입니다.( 로그 n ) 2로그(로그)2

차등 개인 정보 보호는 이러한 단계 중 하나에 도움이 될 수 있습니다. 예를 들어 두 개의 가장 높은 값의 위치를 ​​바꾸는 경우에 대해서만이 쿼리의 "감도"는 이고 고급입니다. 구성이 도움이 될 수 있습니다.

죄송합니다. 반 구운 제품이지만 유용 할 수 있기를 바랍니다.


나는 상한을 기대하고 있기 때문에 실제로 하한에 대해서는별로 생각하지 않았습니다. :) 은 무소음의 경우에도 유지됩니다. 하한 을 증명할 수 있어야한다고 생각합니다 . Ω ( 로그 2 N을 )Ω(로그)Ω(로그2)
Thomas

확인. 하한에 대한 스케치가 있지만 약간 복잡합니다. Ω(로그2)
Thomas
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.