示例#1
0
 def Simulate(self, simulation_loop=1, state_value_report=True):
     for looptime in range(simulation_loop):
         R = 0
         is_end = False
         next_feature = False
         current_feature = -1
         current_label = -1
         self.Reset()
         while True:
             if is_end:
                 Update.MonteCarlo_Update(R, self.state_list,
                                          self.state_action_label_value_map)
                 break
             else:
                 next_feature = Select.MonteCarlo_Epsilon_Select(
                     self.feature_remaining, current_feature, current_label,
                     self.state_action_label_value_map)
                 Select.Erase_Feature(self.feature_remaining, next_feature)
                 self.hypo_remaining_set = Observe.Observe_Subset(
                     self.true_hypothesis, self.hypo_remaining_set,
                     next_feature)
                 Observe.Clear_Overlap(self.feature_remaining,
                                       self.hypo_remaining_set)
                 is_end = Observe.Check_End(self.hypo_remaining_set)
                 self.state_list.append(
                     (current_feature, next_feature, current_label))
                 R += -1
                 current_label = self.true_hypothesis[next_feature]
                 current_feature = next_feature
     if state_value_report:
         Report.Report_State_Value_Map(self.state_action_label_value_map)
示例#2
0
def Apply_Policy_To_Random_Hypo(hypo_subset, number_features,
                                state_action_label_value_map):
    R = 0
    is_end = False
    next_feature = 0
    true_hypothesis = Generate.Get_Hypo(hypo_subset)
    hypo_remaining_set = hypo_subset
    feature_remaining_set = []
    feature_trajectory = []
    current_feature = -1
    current_label = -1
    for i in range(number_features):
        feature_remaining_set.append(i)
    while True:
        if is_end:
            break
        else:
            next_feature = Select.MonteCarlo_Select(
                feature_remaining_set, current_feature, current_label,
                state_action_label_value_map)
            Select.Erase_Feature(feature_remaining_set, next_feature)
            hypo_remaining_set = Observe.Observe_Subset(
                true_hypothesis, hypo_remaining_set, next_feature)
            Observe.Clear_Overlap(feature_remaining_set, hypo_remaining_set)
            is_end = Observe.Check_End(hypo_remaining_set)
            feature_trajectory.append(next_feature)
            current_label = true_hypothesis[next_feature]
            current_feature = next_feature
    return feature_trajectory