diff --git a/src/opt/opt_context.cpp b/src/opt/opt_context.cpp index 4bbbc3865..2f6bad9e8 100644 --- a/src/opt/opt_context.cpp +++ b/src/opt/opt_context.cpp @@ -398,10 +398,10 @@ namespace opt { /** \brief there is no need to use push/pop when all objectives are maxsat and engine - is maxres or mss. + is maxres. */ bool context::scoped_lex() { - if (m_maxsat_engine == symbol("maxres") || m_maxsat_engine == symbol("mss")) { + if (m_maxsat_engine == symbol("maxres")) { for (unsigned i = 0; i < m_objectives.size(); ++i) { if (m_objectives[i].m_type != O_MAXSMT) return true; } diff --git a/src/opt/opt_params.pyg b/src/opt/opt_params.pyg index e06836f61..41548452a 100644 --- a/src/opt/opt_params.pyg +++ b/src/opt/opt_params.pyg @@ -3,7 +3,7 @@ def_module_params('opt', export=True, params=(('optsmt_engine', SYMBOL, 'basic', "select optimization engine: 'basic', 'farkas', 'symba'"), ('maxsat_engine', SYMBOL, 'maxres', "select engine for maxsat: 'core_maxsat', 'wmax', 'maxres', 'pd-maxres', 'mss'"), - ('priority', SYMBOL, 'lex', "select how to prioritize objectives: 'lex' (lexicographic), 'pareto', or 'box'"), + ('priority', SYMBOL, 'lex', "select how to priortize objectives: 'lex' (lexicographic), 'pareto', or 'box'"), ('dump_benchmarks', BOOL, False, 'dump benchmarks for profiling'), ('solution_prefix', SYMBOL, '', "path prefix to dump intermediary, but non-optimal, solutions"), ('timeout', UINT, UINT_MAX, 'timeout (in milliseconds) (UINT_MAX and 0 mean no timeout)'), diff --git a/src/opt/wmax.cpp b/src/opt/wmax.cpp index 513c68d6e..52b87e536 100644 --- a/src/opt/wmax.cpp +++ b/src/opt/wmax.cpp @@ -84,9 +84,6 @@ namespace opt { if (m.canceled()) { is_sat = l_undef; } - if (is_sat == l_undef) { - break; - } if (is_sat == l_false) { TRACE("opt", tout << "Unsat\n";); break; @@ -100,6 +97,9 @@ namespace opt { //DEBUG_CODE(verify_cores(cores);); s().assert_expr(fml); } + else { + //DEBUG_CODE(verify_cores(cores);); + } update_cores(wth(), cores); wth().init_min_cost(m_upper - m_lower); trace_bounds("wmax");