class_docstr: StrategiesConstructor is used to construct the parallelization plan for the model execution.
  
  Args:
      graph (Graph): a Graph object used for analysis and strategy generation.
      device_mesh (DeviceMesh): a DeviceMesh object which contains the meta information about the cluster.
      solver_options (SolverOptions): a SolverOptions object which specifies the preferences for plan searching.
class_docstr_tok: ["StrategiesConstructor","is","used","to","construct","the","parallelization","plan","for","the","model","execution",".","Args",":","graph","(","Graph",")",":","a","Graph","object","used","for","analysis","and","strategy","generation",".","device_mesh","(","DeviceMesh",")",":","a","DeviceMesh","object","which","contains","the","meta","information","about","the","cluster",".","solver_options","(","SolverOptions",")",":","a","SolverOptions","object","which","specifies","the","preferences","for","plan","searching","."]
docstr: In build_strategies_and_cost method, we may produce some duplicated strategies.
  In this method, we will remove the duplicated strategies depending on the strategies name.
  Note that this operation is in-place.
docstr_tok: ["In","build_strategies_and_cost","method",",","we","may","produce","some","duplicated","strategies",".","In","this","method",",","we","will","remove","the","duplicated","strategies","depending","on","the","strategies","name",".","Note","that","this","operation","is","in-place","."]
code: def remove_duplicated_strategy(self, strategies_vector):
      """
      In build_strategies_and_cost method, we may produce some duplicated strategies.
      In this method, we will remove the duplicated strategies depending on the strategies name.
      Note that this operation is in-place.
      """
      name_checklist = []
      remove_list = []
      for strategy in strategies_vector:
          if strategy.name not in name_checklist:
              name_checklist.append(strategy.name)
          else:
              remove_list.append(strategy)
      for strategy in remove_list:
          strategies_vector.remove(strategy)
  
file_path: ColossalAI/colossalai/auto_parallel/tensor_shard/solver/strategies_constructor.py
imports: import torch
  from torch.fx import Graph
  from colossalai.auto_parallel.tensor_shard.node_handler import GetattrHandler, OutputHandler, PlaceholderHandler, operator_registry
  from colossalai.auto_parallel.tensor_shard.sharding_strategy import StrategiesVector
  from colossalai.auto_parallel.tensor_shard.utils.factory import find_repeat_blocks
  from colossalai.device.device_mesh import DeviceMesh
  from ..options import DataloaderOption, SolverOptions
label_desc: Use image node_id 2 for calling the StrategiesConstructor obj's underlying member method code with example usage: obj.remove_duplicated_strategy(strategies_vector) without return types