docstr: Add a new hypothesis to the list.
docstr_tok: ["Add","a","new","hypothesis","to","the","list","."]
code: def add(self, hyp: "torch.LongTensor", sum_logprobs: float):
      """
      Add a new hypothesis to the list.
      """
      score = sum_logprobs / (hyp.shape[-1] ** self.length_penalty)
      if len(self) < self.num_beams or score > self.worst_score:
          self.beams.append((score, hyp))
          if len(self) > self.num_beams:
              sorted_next_scores = sorted(
                  [(s, idx) for idx, (s, _) in enumerate(self.beams)]
              )
              del self.beams[sorted_next_scores[0][1]]
              self.worst_score = sorted_next_scores[1][0]
          else:
              self.worst_score = min(score, self.worst_score)
  
imports: from abc import ABC, abstractmethod
  from collections import UserDict
  from typing import Optional, Tuple
  from .file_utils import add_start_docstrings
  from fastNLP.envs.imports import _NEED_IMPORT_TORCH
  from fastNLP.core.log import logger
label_desc: Use image node_id 3 for calling the BeamHypotheses obj's underlying member method code with example usage: obj.add(hyp, sum_logprobs) without return types