def part2_rule_2(board, belief_matrix_, target): """ :param board: board :param belief_matrix: belief matrix :return: number of searches """ num_searches = 0 dim = len(board) prob_found_matrix_ = get_prob_found_matrix(board=board, belief=belief_matrix_) next_step = get_max_index(prob_found_matrix_) while (target[0], target[1]) != next_step: belief_matrix_ = update_belief_matrix(board=board, belief=belief_matrix_, i=next_step[0], j=next_step[1]) num_searches += 1 prob_found_matrix_ = get_prob_found_matrix(board=board, belief=belief_matrix_) # target moved target, evidence = move_target(dim, target, board) prob_found_matrix_ = update_found_matrix_by_evidence( board, prob_found_matrix_, evidence) next_step = get_max_index(prob_found_matrix_) return num_searches
def rule_1(board, belief_matrix_, target): num_searches = 0 next_step = get_max_index(belief_matrix_) while (target[0], target[1]) != next_step: belief_matrix_ = update_belief_matrix(board=board, belief=belief_matrix_, i=next_step[0], j=next_step[1]) num_searches += 1 next_step = get_max_index(belief_matrix_) return num_searches
def rule_1_dis(board, belief_matrix_, target, simple=True): num_searches = 0 next_step = get_max_index(belief_matrix_) dim = len(board) dis_matrix = np.zeros_like(board) while (target[0], target[1]) != next_step: belief_matrix_ = update_belief_matrix(board=board, belief=belief_matrix_, i=next_step[0], j=next_step[1]) num_searches += dis_matrix[next_step[0], next_step[1]] dis_matrix = get_dis(dim, i=next_step[0], j=next_step[1]) if simple == False: log_dis_matrix = 1 + np.log(1 + dis_matrix) next_step = get_max_index(belief_matrix_ / log_dis_matrix) else: next_step = get_max_index(belief_matrix_) return num_searches