3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-07 03:31:23 +00:00

new test file

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2014-03-24 10:47:00 -07:00
parent 27940d7afa
commit 5f245de36d
3 changed files with 3390 additions and 5 deletions

View file

@ -729,7 +729,7 @@ namespace opt {
} }
lbool conditional_solve(expr* cond) { lbool conditional_solve(expr* cond) {
IF_VERBOSE(3, verbose_stream() << "(conditional solve)\n";); IF_VERBOSE(1, verbose_stream() << "(wmaxsat.conditional solve)\n";);
smt::theory_weighted_maxsat& wth = *get_theory(); smt::theory_weighted_maxsat& wth = *get_theory();
bool was_sat = false; bool was_sat = false;
lbool is_sat = l_true; lbool is_sat = l_true;
@ -813,6 +813,7 @@ namespace opt {
// sorting circuits. // sorting circuits.
// //
lbool pb2sat_solve() { lbool pb2sat_solve() {
IF_VERBOSE(1, verbose_stream() << "(wmaxsat.bv solve)\n";);
pb_util u(m); pb_util u(m);
expr_ref fml(m), val(m); expr_ref fml(m), val(m);
app_ref b(m); app_ref b(m);
@ -836,7 +837,10 @@ namespace opt {
} }
lbool is_sat = l_true; lbool is_sat = l_true;
bool was_sat = false; bool was_sat = false;
fml = m.mk_true();
while (l_true == is_sat) { while (l_true == is_sat) {
solver::scoped_push __s(*(m_sat_solver));
m_sat_solver->assert_expr(fml);
is_sat = m_sat_solver->check_sat(0,0); is_sat = m_sat_solver->check_sat(0,0);
if (m_cancel) { if (m_cancel) {
is_sat = l_undef; is_sat = l_undef;
@ -851,9 +855,8 @@ namespace opt {
m_upper += m_weights[i]; m_upper += m_weights[i];
} }
} }
IF_VERBOSE(1, verbose_stream() << "(wmaxsat.pb with upper bound: " << m_upper << ")\n";); IF_VERBOSE(1, verbose_stream() << "(wmaxsat.bv with upper bound: " << m_upper << ")\n";);
fml = m.mk_not(u.mk_ge(nsoft.size(), m_weights.c_ptr(), nsoft.c_ptr(), m_upper)); fml = m.mk_not(u.mk_ge(nsoft.size(), m_weights.c_ptr(), nsoft.c_ptr(), m_upper));
m_sat_solver->assert_expr(fml);
was_sat = true; was_sat = true;
} }
} }
@ -925,6 +928,7 @@ namespace opt {
lbool wpm2_solve() { lbool wpm2_solve() {
IF_VERBOSE(1, verbose_stream() << "(wmaxsat.wpm2 solve)\n";);
solver::scoped_push _s(s); solver::scoped_push _s(s);
pb_util u(m); pb_util u(m);
app_ref fml(m), a(m), b(m), c(m); app_ref fml(m), a(m), b(m), c(m);
@ -1072,6 +1076,7 @@ namespace opt {
// Version from CP'13 // Version from CP'13
lbool wpm2b_solve() { lbool wpm2b_solve() {
IF_VERBOSE(1, verbose_stream() << "(wmaxsat.wpm2b solve)\n";);
solver::scoped_push _s(s); solver::scoped_push _s(s);
pb_util u(m); pb_util u(m);
app_ref fml(m), a(m), b(m), c(m); app_ref fml(m), a(m), b(m), c(m);

View file

@ -3373,8 +3373,8 @@
(assert-soft |dn([7,Main.main],58)_scc(7)| :weight 2) (assert-soft |dn([7,Main.main],58)_scc(7)| :weight 2)
(optimize (optimize
; :wmaxsat_engine wpm2 ; :wmaxsat_engine wpm2
:wmaxsat_engine pwmax ; :wmaxsat_engine pwmax
; :wmaxsat_engine bvmax :wmaxsat_engine bvmax
:print_statistics true :print_statistics true
:timeout 60000 :timeout 60000
) )

3380
tests/chat_pb.smt2 Normal file

File diff suppressed because it is too large Load diff