나는 생성 된 방문자를 사용하여 양식 (A & (B | C))의 표현식을 평가할 수있는 ANTLR 표현 파서를 가지고 있습니다. A, B 및 C는 2 개의 값 true 또는 false 중 하나를 취할 수 있습니다. 그러나 나는 표현이 사실 인 A, B 및 C의 모든 조합을 찾는 문제에 직면 해있다. 나는 다음과 같은 방법으로 이것을 풀려고했다. 은 3 개
이 link에 설명 된 방법을 사용하여 모든 솔루션을 찾는 방법을 찾았습니다. 정상적으로 작동하지만 느립니다. i_e 시작부터 제약 조건을 다시 계산할 때 이전 계산을 활용하지 않습니다. 이제이 link에서 MiniSat을 라이브러리로 사용하여 모든 솔루션을 찾는보다 효율적인 방법을 발견했습니다. 그러나 방법은 거기에서 기술되지 않는다. 모든 SAT 솔루션
숫자가 포함 된 .cnf 파일에 Conjunctive Normal Form이 있습니다. 색인으로 작업 할 수 있도록 데이터 구조 (행렬 또는 목록)에 읽고 저장해야합니다. (3-SAT 문제를 해결하려면이 코드가 필요합니다.) 어떻게하면 Java로 읽고 저장할 수 있습니까? 새들 - 뷰 관점에서 c This Formular is generated by mcn
SAT 해결사를 설계하고 구현하고 있습니다. 모든 조항은 내가 실제로 원래의 실제 문제에 덜 효율적 표현이 될 것이라고 생각이다 형태 문헌에 a AND b = c
a OR b = c
a XOR b = c
a = NOT b
그들이 사용하는 CNF의 형태의 경우는 특히 좋은 것입니다. 기존 SAT 해결자가 CNF를보다 잘 처리 할 수 있기 때문에
CNF/DIMACS 형식으로 인코딩 된 까다로운 적합성 문제에 대해 Z3을 SAT solver으로 사용하고 있습니다. 이 해결책 찾을 수있는 기회를 높이기 위해 입력을 랜덤 나을 : 가 CNF 조항의 순서를 섞어서 정렬/입력의 번호 셔플 변수를 에 대한 측정 (솔버와 정렬 모드 당 100 번 테스트) Z3, Cryptominisat 및 Clasp : Z3를
저는 프로그래밍에있어서 매우 새롭기 때문에 누군가가 저에게 올바른 방향으로 나를 가리킬 수 있기를 희망합니다. 나는 ~ 2400 명으로 구성된 목록을 가지고 있으며 각 사람은 적어도 23 가지 조건 중 하나를 가지고 있습니다 (각 사람의 상태는 조건이있는 경우 1, 그렇지 않은 경우 0 중 하나입니다). E.G. Jon의 조건이 1, 5, 6이면 Jon의
변수가 (a,b,c,d,e,f,g) 인 CNF 표현식이 있다고 가정합니다. SAT 해결사를 사용하여 (d,e,f)에 대한 할당을 찾으려면 어떻게해야합니까? {a,b,c,g} = {1,0,0,1}과 {a,b,c,g} = {1,1,1,1}이 주어 졌습니까? 하나의 가정이라면, {d,e,f}에 대한 과제를 찾기 위해 일일 해결사를 호출하는 것은 간단합니다 (예