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)
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