def __init__(
        self,
        trace_func: Callable[[list[LineSequence], float, float, float, bool], None] | None = None,
        seed: int | None = None,
    ) -> None:
        """Linearized sequence search using simulated annealing method.

        Args:
            trace_func: Optional callable which will be called for each
                        simulated annealing step with arguments: solution
                        candidate (list of linear sequences on the chip),
                        current temperature (float), candidate cost (float),
                        probability of accepting candidate (float), and
                        acceptance decision (boolean).
            seed: Optional seed value for random number generator.

        Returns:
            List of linear sequences on the chip found by simulated annealing
            method.
        """
        self.trace_func = trace_func
        self.seed = seed
Linearized sequence search using simulated annealing method.

        Args:
            trace_func: Optional callable which will be called for each
                        simulated annealing step with arguments: solution
                        candidate (list of linear sequences on the chip),
                        current temperature (float), candidate cost (float),
                        probability of accepting candidate (float), and
                        acceptance decision (boolean).
            seed: Optional seed value for random number generator.

        Returns:
            List of linear sequences on the chip found by simulated annealing
            method.
        
cirq-google/cirq_google/line/placement/anneal.py