또는 조건자 최적화

0

질문

한 두 가지가 아닌 엔터티 3 성:A1,A2,A3 는:

  1. A1 만 있을 수 있습 값:1,2,3
  2. A2 만 있을 수 있습 값: 10, 20, 30, 40, 50
  3. A3 만 있을 수 있습 값:100,200

와 숫자의 규칙,예를 들어:

R1: (A1 in (1, 2)) AND (A2 in (20, 40, 50)) AND (A3 IN (100))
R2: (A1 in (1, 3)) AND (A2 in (10, 30)) AND (A3 in (200))
R3: (A1 in (1, 2)) AND (A2 in (10)) AND (A3 in (100))

다음은 조건자: R = R1 or R2 or R3내가 좋아하여 최소화합니다. 건 A1=1 모든 가능한 변형의 A2A3다,그래서 우리는 그것을 가져올 수 있습으로 별도의 절: R = (A1=1) or (the rest)

해봤 boolean 최소화 방법을 선언하여 변수 a=(A1=1), b=(A1=2), ..., k=(A3=200)그러나 그것은 보이지 않기 때문에,작업:

  1. boolean 최적화하는지 알고 있의 모든 값을의 특성
  2. boolean 변수를 독립적이지 않은 하려고 할 때 이러한 문제를 해결하기 위해 이 표현은 너무 복잡하고 어느 QMC 지,에스프레소는 없을 최소화할 수 있에서 원하는 방법입니다.

나 또한 시도를 저장하는 각하의 각 매핑을 경우에는 그들 중 하나의 모든 값을 다른 중 하나로 그것을 사용하여 집계 앵커,다음을 제거하고 반복,그러나 그것은 영원하고 매우 많은 메모리다.

어쩌면 우리는 나타낼 수 있는 특성 값으로 설정하고 주소에서 그것을 이론을 설정합니다.

당신은 이제까지 문제에 직면 이? 은 당신이 알고 있는 더 나은 방법으로 그것을 해결하기 위해시겠습니까? (추론을 확인뿐만 아니라)

1

최고의 응답

1

의 방법을 최적화하는 표현에 대한 평가가 될 수 있을 분할하는 규칙을 반복적으로 특성에 가장 적은 값. 이 후에 확장할 수집할 수 있습 값을 다시 사람들을 위해 동일한 그들에서 마지막 절입니다.

  1. 2 그룹 중 하나에 대한 규칙을 수락하는 A3=100 중 하나에 대한 규칙을 수락하는 A3=200. 는 규칙을 수 있는 끝에서 두 그룹이 있습니다. 다음 규칙을 수정 그룹에게만 허 가치 그룹에 대한하지 않고 다른 하나입니다.

  2. 그룹 그룹에 다시 값의 A1 를 사용하여 동일한 논리입니다.

당신은 끝날 것이라는 확장된 표현이 다음과 같다:

A3 = 100 AND (
    (A1 = 1 AND A2 IN (10, 20, 40, 50)) OR
    (A1 = 2 AND A2 IN (10, 20, 40, 50)))
OR A3 = 200 AND (
    (A1 = 1 AND A2 IN (10, 30)) OR
    (A1 = 3 AND A2 IN (10, 30)))

기본적으로 우리를 건설하고 있다는 나무의 값으로 A3 깊이에서 1 과 값을 위해 A1 깊이에서 2 과 값을 위해 A2 에 깊이 3. 이 있는 경우 경로 루트에서 잎을 사용하여 특성 값을 다음 규칙은 fullfilled 그렇지 않으면 재미있습니다.

그 후에 병합할 수 있습니다 모든 노드가 동일한 하위트리와 같은 부모입니다. 이에 대한 비교할 수 있습니다 잎이 모든 노드의 동일한 부모와 일치하는 경우에 병합할 수 있습니다. 그 후에 당신은 한 수준까지 그 노드 비교와 같은 부모 및니다.

에 대한 예를 들어 당신은 끝날 것 이 표현:

A3 = 100 AND A1 IN (1, 2) AND A2 IN (10, 20, 40, 50) OR
A3 = 200 AND A1 IN (1, 3) AND A2 IN (10, 30)

이 과정은 매우 간단하고도 단축하는 표현,하지만 그것은 최적화에 대한 평가입니다. 그것은 완벽하지 않을 수 있습니다,하지만 그것은 방법이 될 수 있음을 시작합니다.

2021-11-22 20:45:00

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................