code: def viterbi_discriminative(
      prob: np.ndarray,
      transition: np.ndarray,
      *,
      p_state: Optional[np.ndarray] = ...,
      p_init: Optional[np.ndarray] = ...,
      return_logp: Literal[True],
  ) -> Tuple[np.ndarray, np.ndarray]:
      ...
  
imports: from __future__ import annotations
  import numpy
  from scipy.spatial.distance import cdist
  from numba import jit
  from .util import pad_center, fill_off_diagonal, is_positive_int, tiny, expand_to
  from .util.exceptions import ParameterError
  from .filters import get_window
  from typing import Any, Iterable, List, Optional, Tuple, Union, overload
  from typing_extensions import Literal
  from ._typing import _WindowSpec, _IntLike_co
label_desc: Use image node_id 24 for calling a global function with example usage: viterbi_discriminative(prob, transition) without return types