문제

나의 큰 숫자의 동등는 다음과 같다:

$(a\배경 0.54\웨지 b\hra 출력 0.12)\v(c\gt0.98)$ $\Leftrightarrow$ $(x\배경 0.25)\v(x\gt0.91\쐐기 y\hra 출력 0.01)$

이것은 단지 예입니다.일반적으로,공식에서 왼쪽 또는 오른쪽의 동등성 수 아무것도의 형태로 정상적인 형태로 분리(DNF)절,숫자가 될 수 있는 어떠한 실제 숫자로 고정된 정밀도,그리고 불평등에 표시 될 수 있는 $\배경$, $\lt$, $\hra 출력$, 나 $\gt$.

무엇보다 중요한 것은 가능한 변수는 왼쪽에 있는 모든 화학식(기 $\{a,b,c\}$)형태는 세트에서 뚜렷한 가능한 변수는 오른쪽에있는 모든 방식(기 $\{x,y,z\}$).가 수정 변수의 양쪽에:할 필요가 없 3 개의 변수,그리고 필요 하지 않는 동등한 수 있습니다.

또한 일부 의미의 형태로 되어 있습니다.

$(a\배경 0.32\웨지 b\hra 출력 0.62)$ $ ightarrow$ $(c\gt0.00)$

여기에서 왼쪽과 오른쪽은 불평등의 접속사이지만,중요한 것이 무엇인은 그의 설정변수에 모두 왼쪽과 오른쪽 측면,즉 $\{a,b,c\}$ 여기에,같은 설정 변수에 대 왼쪽의 이런 종류의 공식(i.e은 동등한).

나의 질문은:어떤 종류의 자동화된 청사진을 제시겠어를 찾을 필요가 논리적인 결과의 설정의 공식?나는 그냥을 찾는 콘크리트의 식별을 일반적인 문제의 클래스 이 그리고,모든 out-of-the-box 걸 사람 매 게 밝내할 수 있습니다.아마도 이것은 SMT 문제입니까?

도움이 되었습니까?

해결책

예,당신이 해결할 수 있는 이와 SMT 해석을 지원하는 선형 진짜 참조하시기 바랍니다.그러나 SMT 지원 더 일반 불평등 할 수 있는 선형 액수의 변수(예를 들어, $2a+3x\le5.7$ 다)대신 간단한 비교 하나의 변수하고 일정한(예를 들어, $a\le1.6$),그래서 그것은 당신보다 더 강력하도록,필요 없는 경우 어떤 선형 불평등 금액을 포함,다음에 동의하명하는 최선의 방법이 사용할 수 있습 SAT solver.

이 약간 다른 인코딩을 SAT.한 뜨거운 인코딩을,어디서 $x_i$$c{i-1}\le x\le c_i$, 안 약간 다른 인코딩: $x_i$ 수단 $x\le c_i$.따라서 대신의 인코딩 $(x_1,\점,x_n)$ 벡터처럼 $(0,0,0,1,0)$ 당신을 인코딩하기 $(1,1,1,1,0)$.제약 조건을 추가하는 $x_i\을 의미한 무리수{i-1}$, 한 다음 각각의 불평등 $x\le c_i$ 에 해당하 boolean 변수 $x_i$.

다른 팁

귀하의 경우에 가장 간단한 솔루션을 사용할 수 있습니다.

귀하의 첫 번째 절이 포함됩 $x\le0.25$$x>0.91$.이 있다는 것을 의미한 다섯 지역에 대한 관심의 변수 $x$, 우리와 함께 식별 boolean 변수: $X_1\equiv x\에서(-\infty,0.25)$, $X_2\equiv x=0.25$, $X_3\equiv x\서(0.25,0.91)$, $X_4\equiv x=0.91$, $X_5\equiv x\서(0.91,\infty)$.

을 만들 boolean 변수에 대한 이러한 각각의 범위 및 변환 절을 사용합니다.그래서 예를 들어, $x\le0.25$ 변환기 $X_1\vee X_2$, 고 $x < 0.91$ 변환기 $X_1\vee X_2\vee X_3$.

더 절 것을 의미한 더 많은 상수하고,따라서 더 많은 범위의 관심에 대한 기본 변수입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 cs.stackexchange
scroll top