Beispiel #1
0
    def get_model(self):
        assignment = {}
        for var, vid in self._var_ids.items():
            v = picosat.picosat_deref(self.pico, vid)
            assert v != 0, "Error when translating variable."

            value = self.mgr.Bool(v == 1)
            assignment[var] = value

        return EagerModel(assignment=assignment, environment=self.environment)
Beispiel #2
0
    def get_model(self):
        assignment = {}
        for var, vid in iteritems(self._var_ids):
            v = picosat.picosat_deref(self.pico, vid)
            if v == 0:
                assert False

            value = self.mgr.Bool(v == 1)
            assignment[var] = value

        return EagerModel(assignment=assignment, environment=self.environment)
Beispiel #3
0
    def get_model(self):
        assignment = {}
        for var, vid in iteritems(self._var_ids):
            v = picosat.picosat_deref(self.pico, vid)
            if v == 0:
                assert False

            value = self.mgr.Bool(v == 1)
            assignment[var] = value

        return EagerModel(assignment=assignment,
                          environment=self.environment)
 def modelValue(self, l, default=None):
     if self.last_sat_result is not None and not self.last_sat_result:
         raise RuntimeError(
             'modelValue can only be invoked when solve returns SAT.')
     v = picosat.picosat_deref(self.p, l)
     if v == 1:
         return True
     elif v == -1:
         return False
     else:
         if default is None:
             raise ValueError("No assignment for literal: %d" % l)
         else:
             return default