[pypy-svn] r24482 - pypy/dist/pypy/lib/logic/computation_space

auc at codespeak.net auc at codespeak.net
Thu Mar 16 17:06:50 CET 2006


Author: auc
Date: Thu Mar 16 17:06:48 2006
New Revision: 24482

Removed:
   pypy/dist/pypy/lib/logic/computation_space/event.py
Modified:
   pypy/dist/pypy/lib/logic/computation_space/computationspace.py
   pypy/dist/pypy/lib/logic/computation_space/distributor.py
Log:
killed events


Modified: pypy/dist/pypy/lib/logic/computation_space/computationspace.py
==============================================================================
--- pypy/dist/pypy/lib/logic/computation_space/computationspace.py	(original)
+++ pypy/dist/pypy/lib/logic/computation_space/computationspace.py	Thu Mar 16 17:06:48 2006
@@ -8,7 +8,6 @@
 from constraint import FiniteDomain, ConsistencyFailure, \
      Expression
 from distributor import DefaultDistributor
-import event # NewSpace, Clone, Revise
 
 Failed = 0
 Succeeded = 1
@@ -163,9 +162,6 @@
                     return True
         return False
 
-    def _notify(self, event):
-        self.event_set.add(event)
-
     #-- space official API ------------------------------------
 
     def ask(self):
@@ -178,7 +174,6 @@
     def clone(self):
         spc = ComputationSpace(NoProblem, parent=self)
         print "-- cloning %s to %s --" % (self.id, spc.id)
-        self._notify(event.Clone)
         spc._propagate()
         return spc
 
@@ -220,8 +215,9 @@
     def inject(self, restricting_problem):
         """add additional entities into a space"""
         restricting_problem(self)
-        self._notify(event.Clone)
         self._propagate()
+
+    
         
 #-- Constraint Store ---------------------------------------
 
@@ -308,7 +304,7 @@
 
     def _add_const(self, constraint):
         self.constraints.add(constraint)
-        self._notify(event.Inject(constraint))
+        self.event_set.add(constraint)
         for var in constraint.affected_variables():
             self.var_const_map.setdefault(var, set())
             self.var_const_map[var].add(constraint)
@@ -336,23 +332,11 @@
 
     #-- Constraint propagation ---------------
 
-    def _init_constraint_queue(self):
-        cqueue = []
-        init_const_set = set()
-        for ev in self.event_set:
-            if isinstance(ev, event.Revise):
-                for const in self.var_const_map[ev.var]:
-                    init_const_set.add(const)
-            elif isinstance(ev, event.Inject):
-                init_const_set.add(ev.constraint)
-                
-        cqueue = [(const.estimate_cost(), const)
-                  for const in init_const_set]
-        return cqueue
-
     def satisfy_all(self):
         """really PROPAGATE from AC3"""
-        const_q = self._init_constraint_queue()
+        const_q = [(const.estimate_cost(), const)
+                   for const in self.event_set]
+        self.event_set = set()
         assert const_q != []
         const_q.sort()
         affected_constraints = set()

Modified: pypy/dist/pypy/lib/logic/computation_space/distributor.py
==============================================================================
--- pypy/dist/pypy/lib/logic/computation_space/distributor.py	(original)
+++ pypy/dist/pypy/lib/logic/computation_space/distributor.py	Thu Mar 16 17:06:48 2006
@@ -1,5 +1,4 @@
 import math, random
-from event import Revise
 
 def arrange_domains(cs, variables):
     """build a data structure from var to dom
@@ -139,7 +138,8 @@
                       int(math.floor((choice + 1) * nb_elts)))
         self.cs.dom(variable).remove_values(values[:start])
         self.cs.dom(variable).remove_values(values[end:])
-        self.cs._notify(Revise(variable))
+        for const in self.cs.dependant_constraints(variable):
+            self.cs.event_set.add(const)
 
 
 class DichotomyDistributor(SplitDistributor):



More information about the Pypy-commit mailing list