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