Exemplo n.º 1
0
    def __init__(self, path, reset_cost, default_reward, value_expert):
        self.world = Model(path, reset_cost, default_reward)
        self.value_expert = value_expert

        in_letters = [Letter(symbol) for symbol in self.world.mrm.observations]
        self.kbase = MRMActiveKnowledgeBase(self.world)
        self.OT = ObservationTable(input_letters=in_letters,
                                   knowledge_base=self.kbase)

        print('Initializing OT')
        self.OT.initialize()
        print('OT initialized')

        #COUNTERS
        self.total_learning_time = 0
        self.total_exploring_time = 0
        self.rewards = 0
        self.iteration4Explor = 0
        self.iteration4OT = 0
        self.nuof_counter_examples = 0

        #EXECUTION
        self.learn()
        while not self.check():
            self.learn()

        #END PRINT
        self.endPrints()
        remove(TMP_MODEL_PATH)
Exemplo n.º 2
0
    def __init__(self, input_vocabulary, knowledge_base, max_states, tmp_dir=None, eqtests=None):
        """Implementation of the LSTAR algorithm.

        Per default, WPMethod is used for equivalence tests. However, one can prefer a RandomWalkMethod
        by specifying the following 'eqtests' parameter:
        
        eqtests = RandomWalkMethod(self.knowledge_base, self.input_letters, 10000, 0.7)

        """


    
        self.input_letters = [Letter(symbol) for symbol in input_vocabulary]
        self.knowledge_base = knowledge_base
        self.tmp_dir = tmp_dir
        self.observation_table = ObservationTable(self.input_letters, self.knowledge_base)
        self.max_states = max_states
        self.eqtests = eqtests
        self.__f_stop = False