class_docstr: Base abstract class for all zero-copy map fusion rules.
  
  A zero-copy map fusion rule is a rule that optimizes the transform_fn chain of
  a fused MapOperator. The optimization is usually done by removing unnecessary
  data conversions.
  
  This base abstract class defines the common util functions. And subclasses
  should implement the `_optimize` method for the concrete optimization
  strategy.
docstr: Optimize the transform_fns chain of a MapOperator.
  
  Args:
      transform_fns: The old transform_fns chain.
  Returns:
      The optimized transform_fns chain.
docstr_tok: ["Optimize","the","transform_fns","chain","of","a","MapOperator",".","Args",":","transform_fns",":","The","old","transform_fns","chain",".","Returns",":","The","optimized","transform_fns","chain","."]
code: def _optimize(
      self, transform_fns: List[MapTransformFn]
  ) -> List[MapTransformFn]:
      """Optimize the transform_fns chain of a MapOperator.
  
      Args:
          transform_fns: The old transform_fns chain.
      Returns:
          The optimized transform_fns chain.
      """
      ...
  
file_path: ray/python/ray/data/_internal/logical/rules/zero_copy_map_fusion.py
imports: from abc import abstractmethod
  from typing import List
  from ray.data._internal.execution.operators.map_operator import MapOperator
  from ray.data._internal.execution.operators.map_transformer import BuildOutputBlocksMapTransformFn, MapTransformFn, MapTransformFnDataType
  from ray.data._internal.logical.interfaces.optimizer import Rule
  from ray.data._internal.logical.interfaces.physical_plan import PhysicalPlan
label_desc: Use image node_id 3 for calling the ZeroCopyMapFusionRule obj's underlying member method code with example usage: obj._optimize(transform_fns) without return types