def get_ppr_matrix(adj_matrix: np.ndarray, alpha: float=0.1) -> np.ndarray:
    num_nodes = adj_matrix.shape[0]
    A_tilde = (adj_matrix + np.eye(num_nodes))
    D_tilde = np.diag((1 / np.sqrt(A_tilde.sum(axis=1))))
    H = ((D_tilde @ A_tilde) @ D_tilde)
    return (alpha * np.linalg.inv((np.eye(num_nodes) - ((1 - alpha) * H))))
def get_ppr_matrix(adj_matrix: np.ndarray, alpha: float=0.1) -> np.ndarray:
    num_nodes = adj_matrix.shape[0]
    A_tilde = (adj_matrix + np.eye(num_nodes))
    D_tilde = np.diag((1 / np.sqrt(A_tilde.sum(axis=1))))
    H = ((D_tilde @ A_tilde) @ D_tilde)
    return (alpha * np.linalg.inv((np.eye(num_nodes) - ((1 - alpha) * H))))