docstr: personal best
  :return:
docstr_tok: ["personal","best",":","return",":"]
code: def update_pbest(self):
      """
      personal best
      :return:
      """
      self.need_update = self.pbest_y > self.Y
  
      self.pbest_x = np.where(self.need_update, self.X, self.pbest_x)
      self.pbest_y = np.where(self.need_update, self.Y, self.pbest_y)
  
imports: import numpy
  from sko.tools import func_transformer
  from .base import SkoBase
  from .operators import crossover, mutation, ranking, selection
  from .operators import mutation
label_desc: Use image node_id 6 for calling the PSO_TSP obj's underlying member method code with example usage: obj.update_pbest() without return types