Esempio n. 1
0
 def compute_complexity(self, instance):
     domain_complexity = COMPLEXITY_OP([
         self.complexity_from_atom[head_from_fact(f)]
         for f in instance.get_domain()
     ] + [0])
     return domain_complexity + instance.external.get_complexity(
         instance.num_calls)
Esempio n. 2
0
 def _add_new_instances(self, new_atom):
     for s_idx, stream in enumerate(self.streams):
         for d_idx, domain_fact in enumerate(stream.domain):
             domain_atom = head_from_fact(domain_fact)
             if is_instance(new_atom, domain_atom):
                 # TODO: handle domain constants more intelligently
                 self.atoms_from_domain[s_idx, d_idx].append(new_atom)
                 atoms = [
                     self.atoms_from_domain[s_idx, d2_idx]
                     if d_idx != d2_idx else [new_atom]
                     for d2_idx in range(len(stream.domain))
                 ]
                 self._add_combinations(stream, atoms)