def birth_select_targets_for_next_lap(self, hmodel, SS, BirthResults):
    if SS is not None:
      assert hmodel.allocModel.K == SS.K
    K =  hmodel.allocModel.K

    # Update counter for which components haven't been updated in a while
    for kk in range(K):
      self.LapsSinceLastBirth[kk] += 1

    # Ignore components that have just been added to the model.
    excludeList = self.birth_get_all_new_comps(BirthResults)

    # For each birth move, create a "plan"
    BirthPlans = list()
    for posID in range(self.algParams['birth']['birthPerLap']):
      try:
        ktarget = BirthMove.select_birth_component(SS, K=K, 
                          randstate=self.PRNG,
                          excludeList=excludeList, doVerbose=False,
                          lapsSinceLastBirth=self.LapsSinceLastBirth,
                          **self.algParams['birth'])
        self.LapsSinceLastBirth[ktarget] = 0
        excludeList.append(ktarget)
        Plan = dict(ktarget=ktarget, Data=None)
      except BirthMove.BirthProposalError, e:
        Plan = dict(ktarget=None, Data=None, msg=str(e))

      BirthPlans.append(Plan)
    return BirthPlans
Create plans for next lap's birth moves
dataset/ETHPy150Open daeilkim/refinery/refinery/bnpy/bnpy-dev/bnpy/learnalg/MemoizedOnlineVBLearnAlg.py/MemoizedOnlineVBLearnAlg.birth_select_targets_for_next_lap