Example #1
0
 def __init__(self, state_machine):
     self.__depth    = 0
     self.sm         = state_machine
     self.empty_list = []
     self.result     = dict((i, []) for i in self.sm.states.iterkeys())
     self.dangerous_positioning_state_set = set()
     TreeWalker.__init__(self)
Example #2
0
 def __init__(self, TheAnalyzer, CompressionType, AvailableStateIndexSet):
     self.__depth       = 0
     self.analyzer      = TheAnalyzer
     self.available_set = AvailableStateIndexSet
     self.uniform_f     = (CompressionType == E_Compression.PATH_UNIFORM)
     self.result        = []
     TreeWalker.__init__(self)
 def __init__(self):  
     self.path     = []
     self.depth    = 0
     self.current  = Count()
     self.result   = Count()
     self.known_db = {}  # state_index --> count
     TreeWalker.__init__(self)
Example #4
0
 def __init__(self, TheAnalyzer, CompressionType, AvailableStateIndexSet):
     self.__depth       = 0
     self.analyzer      = TheAnalyzer
     self.available_set = AvailableStateIndexSet
     self.uniform_f     = CompressionType == E_Compression.PATH_UNIFORM
     self.result        = []
     self.info_db       = defaultdict(list)
     TreeWalker.__init__(self)
Example #5
0
 def __init__(self, state_machine, ToDB):
     self.sm              = state_machine
     self.empty_list      = []
     self.to_db           = ToDB
     self.result          = dict((i, []) for i in self.sm.states.iterkeys())
     self.path            = []
     # Each state is a 'on the path to itself', i.e. it holds
     # 'i in path_element_db[i]'.
     self.path_element_db = dict((i,set([i])) for i in self.sm.states.iterkeys())
     TreeWalker.__init__(self)
Example #6
0
    def __init__(self, SM_A, SM_B, result=None):
        self.original    = SM_A
        self.admissible  = SM_B

        if result is None:
            init_state_index = index.map_state_combination_to_index((SM_A.init_state_index, 
                                                                     SM_B.init_state_index))
            state            = self.get_state_core(SM_A.init_state_index)
            self.result      = StateMachine(InitStateIndex = init_state_index,
                                            InitState      = state)
        else:
            self.result      = result
        self.path        = []

        # Use 'operation_index' to get a unique index that allows to indicate
        # that 'SM_B' is no longer involved. Also, it ensures that the
        # generated state indices from (a_state_index, operation_index) are
        # unique.
        self.operation_index = index.get()

        TreeWalker.__init__(self)
Example #7
0
    def __init__(self, SM_A, SM_B, result=None):
        self.original = SM_A
        self.admissible = SM_B

        if result is None:
            init_state_index = index.map_state_combination_to_index(
                (SM_A.init_state_index, SM_B.init_state_index))
            state = self.get_state_core(SM_A.init_state_index)
            self.result = StateMachine(InitStateIndex=init_state_index,
                                       InitState=state)
        else:
            self.result = result
        self.path = []

        # Use 'operation_index' to get a unique index that allows to indicate
        # that 'SM_B' is no longer involved. Also, it ensures that the
        # generated state indices from (a_state_index, operation_index) are
        # unique.
        self.operation_index = index.get()

        TreeWalker.__init__(self)
Example #8
0
    def __init__(self, SM_A, SM_B, StartingSM=None):
        self.original   = SM_A
        self.admissible = SM_B

        if StartingSM is None:
            self.result = StateMachine(InitStateIndex = index.map_state_combination_to_index((SM_A.init_state_index, 
                                                                                              SM_B.init_state_index)), 
                                       InitState      = self.get_state_core(SM_A.init_state_index, 
                                                                            SM_B.init_state_index))
        else:
            self.result = StartingSM

        # TODO: Think if 'state_db' cannot be replaced by 'result'
        self.state_db   = {}

        self.path       = []

        # Use 'operation_index' to get a unique index that allows to indicate
        # that 'SM_B' is no longer involved. Also, it ensures that the
        # generated state indices from (a_state_index, operation_index) are
        # unique.
        self.operation_index = index.get()

        TreeWalker.__init__(self)
Example #9
0
 def __init__(self, High, Low):
     self.high     = High # State Machine of the higher priority pattern
     self.low      = Low  # State Machine of the lower priority pattern
     self.result   = []
     self.done_set = set()
     TreeWalker.__init__(self)
 def __init__(self, TheExaminer):
     self.examiner           = TheExaminer
     self.mouths_touched_set = set()
     TreeWalker.__init__(self)
Example #11
0
 def __init__(self, SM):  
     self.sm       = SM
     self.depth    = 0
     self.result   = Count(E_Count.VIRGIN, E_Count.VIRGIN, E_Count.VIRGIN, E_Count.VIRGIN)
     self.known_db = {}  # state_index --> count
     TreeWalker.__init__(self)
Example #12
0
 def __init__(self, High, Low):
     self.high = High  # DFA of the higher priority pattern
     self.low = Low  # DFA of the lower priority pattern
     self.result = False  # Low cannot outrun High
     self.done_set = set()
     TreeWalker.__init__(self)
Example #13
0
 def __init__(self, A, B):
     self.sm_a     = A # State Machine of the higher priority pattern
     self.sm_b     = B  # State Machine of the lower priority pattern
     self.result   = []
     self.done_set = set()
     TreeWalker.__init__(self)
Example #14
0
 def __init__(self, A, B):
     self.sm_a = A  # State Machine of the higher priority pattern
     self.sm_b = B  # State Machine of the lower priority pattern
     self.result = []
     self.done_set = set()
     TreeWalker.__init__(self)
Example #15
0
 def __init__(self, A, B):
     self.sm_a = A  # DFA of the higher priority pattern
     self.sm_b = B  # DFA of the lower priority pattern
     self.result = False
     self.done_set = set()
     TreeWalker.__init__(self)
Example #16
0
 def __init__(self, SM):
     self.sm = SM
     self.depth = 0
     self.result = Count(E_Count.VIRGIN, E_Count.VIRGIN)
     self.known_db = {}  # state_index --> count
     TreeWalker.__init__(self)