posets에 대한 이진 검색 일반화?


28

S에 poset "S"와 monotonic predicate "P"가 있다고 가정합니다. P를 만족하는 S의 최대 요소 중 하나 또는 전부를 찾고 싶습니다.

편집 : P평가 횟수를 최소화하고 싶습니다 .

이 문제에 대해 어떤 알고리즘이 있으며 S에 어떤 속성과 추가 작업이 필요합니까?

다음과 같은 중요한 특수 사례는 어떻습니까?

  • S는 선형 순서입니다. "미들 찾기"작업이있는 한 정기적 인 이진 검색이 작동합니다.
  • S는 격자입니다
  • S는 부분 집합 격자입니다
  • S는 다중 집합 격자입니다
  • ...

후자의 두 경우는 실험 설계에서 특히 중요해 보입니다. 부울 또는 실제 매개 변수 세트가 있으며 특정 패턴을 재현하는 가장 작은 조합 (예 : 테스트 실패)을 찾고자합니다.


1
'멀티 셋'격자는 무엇입니까?
Suresh Venkat

1
요소가 매핑 X-> N 인 격자이며, 만나는 요소 별 최소이고 결합은 요소 별 최대입니다. 코 도메인으로 N 대신 격자로 일반화 할 수 있습니다.
jkff

답변:


15

나는 이것을 많이 생각하지 않았으므로 내가 틀렸다면 정정하십시오.

w

  1. wwlognP

  2. wPPO(wlogn)


O(n)2[n]P{X:P(X)=1}

P()

P({n})

2[n1]n

{X:nX}2[n1]2[n1]P(Y)P(X)X=Y{n}

P2nn+1


와우, 그런 간단한 생각! 감사합니다-이것이 최적으로
보일지

체인 길이 의 이 n이기 때문에 실제로는 w log n 미만 입니다. 최대 값은 w log (n / w) 정도입니다.
jkff

선형 순서의 경우 이진 검색을 제공하고 부분 집합 격자의 경우 C (n, n / 2) log (2 ^ n / C (n, n / 2)) ~ exp (n) * n을 제공합니다. 너무 빠르지는 않지만 실제로 많은 답변이있을 수 있으므로 차선책은 아닙니다. 그러나 하나의 최대 하위 집합 을 찾으 려면 하나의 체인에 대한 이진 검색이 필요 합니다. 다시 감사합니다!
jkff

2
ww+lognΩ(w)w+logn

1
@YanKingYin 격자는 (두 개 이상의) 분리 된 체인의 결합이 될 수 없습니다. 왜냐하면 두 요소가 모두 최상위를 가져야하기 때문입니다. 포셋은 서로 다른 부품의 요소를 비교할 수없고 동일한 부품 내의 요소가 총 주문을 허용하도록 분할 될 수있는 경우 분리 체인의 결합입니다.
Sasho Nikolov


8

nwO(wn)

힙과 이진 검색 트리가 전체 주문에 대해 수행하는 부분 주문과 동일한 역할을하는 효율적인 정적 및 동적 데이터 구조를 찾는 것도 흥미로울 것입니다.


Heh, log (n) :)에 비해 너무 고무적이지는 않지만 어쨌든 감사합니다!
jkff

그러나 그게 요점입니다. 데이터 구조가 없으면 스캔을 수행하기 만하면 완전히 정렬 된 세트에 대해서도 log n을 얻을 수 없습니다. 실제로 BST와 동등한 것을 시도하는 것은 정말 좋은 질문입니다.
Suresh Venkat

글쎄-나는 비교 술어가 아니라 술어 P의 평가 횟수 측면에서 복잡성에 대해 이야기하고있다.
jkff

1
어떤 의미에서는 그렇습니다. 그러나 그것은 완전한 답과는 거리가 멀습니다. 예를 들어, 1d 또는 2d 경우에 대해 이분법을 제공하지 않습니다.
jkff

1
아직 확실하지 않습니다. 크게 생각합니다. 그러나 훌륭한 질문입니다.
Suresh Venkat

4

x<y

또한 P를 만족시키는 최대 요소가 많을 수 있으므로 모든 요소를 ​​출력하는 데 오랜 시간이 걸릴 수 있으므로 최대 하나를 찾는 희망 만 있다고 생각합니다.

일반적으로 이진 검색은 위의 요소가 남아 있거나 위의 요소가 삭제 된 후 요소의 고정 된 비율이 삭제되도록 요소를 재귀 적으로 선택할 수있는 경우 작동합니다.

예 : S가 고정 차원 격자 인 경우 빠른 알고리즘이 있습니다. 다른 좌표는 최소로 유지하면서 항상 한 좌표를 절반으로 줄입니다. 예를 들어 첫 번째 단계 (n / 2,0, ..., 0)에서 묻습니다.

nd


첫 번째 단락을 이해하지 못합니다. 축소시, poset S에 모든 n 비트 문자열이 있고 입력의 일부로 제공됩니까? 그렇다면 모든 문자열을 다항식 시간으로 진행할 수 있습니다.
오카모토 요시오

1
@ YoshioOkamoto : 그 단락의 가정은 S의 비교가 부울 회로로 주어진다고 가정합니다. (그러나이 poset에서 검색하기 때문에 나에게 흥미없는과는 아무 상관이 없습니다.)
츠요시 이토

@ 츠요시 : 감사합니다. 그것은 많은 의미가 있습니다.
오카모토 요시오

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.