Esempio n. 1
0
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
Esempio n. 2
0
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
Esempio n. 3
0
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