code: def sample(self, bqm, chain_strength=1.0, chain_break_fraction=True, **parameters):
          
          if self.embedding is None:
              # Find embedding
              child = self.child   # Solve the problem on the child system
              __, target_edgelist, target_adjacency = child.structure
              source_edgelist = list(bqm.quadratic) + [(v, v) for v in bqm.linear]  # Add self-loops for single variables
              embedding = minorminer.find_embedding(source_edgelist, target_edgelist)
  
              # Initialize properties that need embedding
              super(LazyFixedEmbeddingComposite, self)._set_graph_related_init(embedding=embedding)
  
          return super(LazyFixedEmbeddingComposite, self).sample(bqm, chain_strength=chain_strength,
                                                                 chain_break_fraction=chain_break_fraction, **parameters)
docs: Sample the binary quadratic model.
  
          Note: At the initial sample(..) call, it will find a suitable embedding and initialize the remaining attributes
          before sampling the bqm. All following sample(..) calls will reuse that initial embedding.
  
          Args:
              bqm (:obj:`dimod.BinaryQuadraticModel`):
                  Binary quadratic model to be sampled from.
  
              chain_strength (float, optional, default=1.0):
                  Magnitude of the quadratic bias (in SPIN-space) applied between variables to create
                  chains. Note that the energy penalty of chain breaks is 2 * `chain_strength`.
  
              chain_break_fraction (bool, optional, default=True):
                  If True, a ‘chain_break_fraction’ field is added to the unembedded response which report
                  what fraction of the chains were broken before unembedding.
  
              **parameters:
                  Parameters for the sampling method, specified by the child sampler.
          Returns:
              :class:`dimod.SampleSet`