code: def simulate_walks(
      self, num_walks, walk_length, stay_prob=0.3, workers=1, verbose=0
  ):
      layers_adj = pd.read_pickle(self.temp_path + "layers_adj.pkl")
      layers_alias = pd.read_pickle(self.temp_path + "layers_alias.pkl")
      layers_accept = pd.read_pickle(
          self.temp_path + "layers_accept.pkl"
      )
      gamma = pd.read_pickle(self.temp_path + "gamma.pkl")
  
      nodes = self.idx  # list(self.g.nodes())
  
      results = Parallel(
          n_jobs=workers,
          verbose=verbose,
      )(
          delayed(self._simulate_walks)(
              nodes,
              num,
              walk_length,
              stay_prob,
              layers_adj,
              layers_accept,
              layers_alias,
              gamma,
          )
          for num in partition_num(num_walks, workers)
      )
  
      walks = list(itertools.chain(*results))
      return walks
  
imports: import itertools
  import math
  import random
  import pandas
  from joblib import Parallel, delayed
  from .alias import alias_sample, create_alias_table
  from .utils import partition_num
label_desc: Use image node_id 2 for calling the BiasedWalker obj's underlying member method code with example usage: obj.simulate_walks(num_walks, walk_length, stay_prob, workers, verbose) and returns: walks