示例#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)