나는 복잡한 쿼리가 데이터 집합을 검색하는 데 사용되는 찾을 . 각 쿼리는 평균 시간 하므로 선형 검색의 전체 시간은. 쿼리를 더 간단한 하위 쿼리 q_i로 나누고 및 입니다. 각 하위 쿼리 는 계산 속도가 훨씬 빠르므로 전반적으로 를 찾은 다음 를 사용 하여 를 찾는 것이 더 빠릅니다 .
각 에는 많은 있습니다. 다른 사이의 겹침 이 높습니다. 대량의 검색 쿼리 샘플을 기반으로 H_exact를 찾는 데 걸리는 평균 시간을 최소화 하는 의사 결정 트리와 같은 고정 질문 를 결정하는 방법을 찾고 있습니다.
좀 더 구체적으로 설명하기 위해 데이터 세트에 전 세계 70 억 명의 사람들이 포함되어 있고 복잡한 질문은 "5로 모퉁이에있는 빨간 집에 사는 여자와 B로 시작하는 도시의 렉싱턴"과 같은 것들이라고 가정 해 봅시다.
확실한 해결책은 세계의 모든 사람을 확인하고 누가 쿼리와 일치하는지 확인하는 것입니다. 그러한 사람이 둘 이상있을 수 있습니다. 이 방법은 시간이 오래 걸립니다.
이 쿼리를 정확하게 미리 계산할 수 있는데,이 경우에는 매우 빠르지 만이 질문에 대해서만 가능합니다. 그러나 다른 질문은 같은 구석에있는 청와대에 사는 여성, 같은 구석에 사는 남자, 같은 질문이지만 C로 시작하는 도시 또는 완전히 다른 것과 관련이 있습니다. 스웨덴의 왕. '
대신 복잡한 질문을 더 쉽고 일반적인 세트로 나눌 수 있습니다. 예를 들어, 위의 모든 질문에는 성별 역할 기반 쿼리가 있으므로 전 세계에서 자신을 '여자'로 간주하는 모든 사람들을 미리 계산할 수 있습니다. 이 하위 쿼리는 기본적으로 시간이 걸리지 않으므로 전체 검색 시간이 약 1/2만큼 줄어 듭니다. (다른 지식으로 스웨덴의 "왕"은 "여성"이 될 수 없다는 것을 알고 있다고 가정합니다.
그러나 때때로 "A로 시작하는 도시의 빨간 집에서 8 번가에 사는 사람"과 같은성에 근거하지 않은 질문이 있습니다. 하위 쿼리 "빨간 집에 산다"는 것이 일반적이며, 빨간 집에 사는 모든 사람들의 목록을 미리 계산합니다.
이것은 의사 결정 트리를 제공합니다. 일반적인 경우 의사 결정 트리의 각 분기에는 서로 다른 질문이 포함되어 있으며 의사 결정 트리에 대한 최적의 용어를 선택하는 방법은 잘 알려져 있습니다. 그러나 모든 지점에서 동일한 질문을 해야하는 기존 시스템을 구축하고 있습니다.
가능한 최종 결정 세트의 예는 다음과 같습니다. 질문 1은 '사람이 여자입니까?', 질문 2는 '사람이 빨간 집에 살고 있습니까?', 질문 3은 '사람이 도시에서 시작합니까? A 또는 사람이 B로 시작하는 도시에 살고 있습니까? ', 질문 4는'번호가 매겨진 거리에 살고 있습니까? '입니다.
쿼리 할 때 온의 경우, 내가 볼 미리 계산 된 질문 중 하나가 일치 내가 결정했습니다. 그렇다면, 나는 그 대답의 교회법을 얻고, 질문 물어 그 교차 부분 집합에. 예를 들어, "섬에있는 빨간 집에 사는 사람들"이라는 질문이 있다면 "빨간 집에 사는 사람"이 이미 사전 계산 된 것이므로 섬에 사는 사람들의 부분 집합을 찾는 것만 중요합니다.
많은 세트를보고 비용 모델을 얻을 수 있으며 해당 의 크기를 확인하십시오 . 의 평균 크기를 최소화하고 싶습니다 .
문제는 이 고정 결정 트리를 만들기 위해 가능한 선택을 어떻게 최적화 합니까? GA를 시도했지만 수렴하는 데 느 렸습니다. 아마도 내 기능 공간에 가능한 개의 있기 입니다. 나는 탐욕스러운 방법을 생각해 냈지만 결과에 만족하지 않습니다. 너무 느려서 잘못된 것을 최적화하고 있다고 생각합니다.
아이디어를 찾고자하는 기존 연구는 무엇입니까?