discrete_optimization.coloring.transformations package
Submodules
discrete_optimization.coloring.transformations.from_list_coloring module
Transformation from ListColoringProblem to ColoringProblem using dummy nodes.
- class discrete_optimization.coloring.transformations.from_list_coloring.ListColoringToColoringTransformation[source]
Bases:
ProblemTransformation[ListColoringProblem,ColoringSolution,ColoringProblem,ColoringSolution]Transform ListColoringProblem to ColoringProblem using dummy nodes.
Mapping: - Create K dummy nodes (one per color) - Dummy nodes form a complete clique (all connected) - Dummy node k is fixed to color k - Original node can use color k only if NOT connected to dummy node k - Use subset_nodes to focus optimization on original nodes only
This encoding allows standard coloring solvers to solve list coloring problems.
This transformation is EXACT in both directions.
- back_transform_solution(solution: ColoringSolution, source_problem: ListColoringProblem) ColoringSolution[source]
Transform Coloring solution back to ListColoring solution.
- Parameters:
solution – Coloring solution (with dummy nodes)
source_problem – Original ListColoringProblem
- Returns:
Equivalent ListColoring solution (without dummy nodes)
- forward_transform_solution(solution: ColoringSolution, target_problem: ColoringProblem) ColoringSolution | None[source]
Transform ListColoring solution to Coloring solution (for warmstart).
- Parameters:
solution – ListColoring solution
target_problem – Target ColoringProblem (with dummy nodes)
- Returns:
Equivalent Coloring solution (with dummy node colors added)
- get_forward_metadata() TransformationMetadata[source]
Metadata for forward problem transformation (ListColoring → Coloring).
This direction is EXACT: list coloring can be perfectly encoded as standard coloring.
- transform_problem(source_problem: ListColoringProblem) ColoringProblem[source]
Transform ListColoringProblem to ColoringProblem with dummy nodes.
- Parameters:
source_problem – ListColoringProblem instance
- Returns:
Equivalent ColoringProblem with dummy color nodes
discrete_optimization.coloring.transformations.to_list_coloring module
Transformation from ColoringProblem to ListColoringProblem.
- class discrete_optimization.coloring.transformations.to_list_coloring.ColoringToListColoringTransformation[source]
Bases:
ProblemTransformation[ColoringProblem,ColoringSolution,ListColoringProblem,ColoringSolution]Transform ColoringProblem to ListColoringProblem.
Mapping: - Standard coloring → List coloring with all colors allowed for all nodes - Graph structure preserved - Solution space identical (all colors available everywhere)
This transformation is EXACT in both directions.
- back_transform_solution(solution: ColoringSolution, source_problem: ColoringProblem) ColoringSolution[source]
Transform ListColoring solution back to Coloring solution.
- Parameters:
solution – ListColoring solution
source_problem – Original ColoringProblem
- Returns:
Equivalent Coloring solution (same representation)
- forward_transform_solution(solution: ColoringSolution, target_problem: ListColoringProblem) ColoringSolution | None[source]
Transform Coloring solution to ListColoring solution (for warmstart).
- Parameters:
solution – Coloring solution
target_problem – Target ListColoringProblem
- Returns:
Equivalent ListColoring solution
- get_forward_metadata() TransformationMetadata[source]
Metadata for forward problem transformation (Coloring → ListColoring).
This direction is EXACT: standard coloring is list coloring with unrestricted lists.
- transform_problem(source_problem: ColoringProblem) ListColoringProblem[source]
Transform ColoringProblem to ListColoringProblem.
- Parameters:
source_problem – ColoringProblem instance
- Returns:
Equivalent ListColoringProblem with all colors allowed
Module contents
Transformations between ColoringProblem and ListColoringProblem.
- class discrete_optimization.coloring.transformations.ColoringToListColoringTransformation[source]
Bases:
ProblemTransformation[ColoringProblem,ColoringSolution,ListColoringProblem,ColoringSolution]Transform ColoringProblem to ListColoringProblem.
Mapping: - Standard coloring → List coloring with all colors allowed for all nodes - Graph structure preserved - Solution space identical (all colors available everywhere)
This transformation is EXACT in both directions.
- back_transform_solution(solution: ColoringSolution, source_problem: ColoringProblem) ColoringSolution[source]
Transform ListColoring solution back to Coloring solution.
- Parameters:
solution – ListColoring solution
source_problem – Original ColoringProblem
- Returns:
Equivalent Coloring solution (same representation)
- forward_transform_solution(solution: ColoringSolution, target_problem: ListColoringProblem) ColoringSolution | None[source]
Transform Coloring solution to ListColoring solution (for warmstart).
- Parameters:
solution – Coloring solution
target_problem – Target ListColoringProblem
- Returns:
Equivalent ListColoring solution
- get_forward_metadata() TransformationMetadata[source]
Metadata for forward problem transformation (Coloring → ListColoring).
This direction is EXACT: standard coloring is list coloring with unrestricted lists.
- transform_problem(source_problem: ColoringProblem) ListColoringProblem[source]
Transform ColoringProblem to ListColoringProblem.
- Parameters:
source_problem – ColoringProblem instance
- Returns:
Equivalent ListColoringProblem with all colors allowed
- class discrete_optimization.coloring.transformations.ListColoringToColoringTransformation[source]
Bases:
ProblemTransformation[ListColoringProblem,ColoringSolution,ColoringProblem,ColoringSolution]Transform ListColoringProblem to ColoringProblem using dummy nodes.
Mapping: - Create K dummy nodes (one per color) - Dummy nodes form a complete clique (all connected) - Dummy node k is fixed to color k - Original node can use color k only if NOT connected to dummy node k - Use subset_nodes to focus optimization on original nodes only
This encoding allows standard coloring solvers to solve list coloring problems.
This transformation is EXACT in both directions.
- back_transform_solution(solution: ColoringSolution, source_problem: ListColoringProblem) ColoringSolution[source]
Transform Coloring solution back to ListColoring solution.
- Parameters:
solution – Coloring solution (with dummy nodes)
source_problem – Original ListColoringProblem
- Returns:
Equivalent ListColoring solution (without dummy nodes)
- forward_transform_solution(solution: ColoringSolution, target_problem: ColoringProblem) ColoringSolution | None[source]
Transform ListColoring solution to Coloring solution (for warmstart).
- Parameters:
solution – ListColoring solution
target_problem – Target ColoringProblem (with dummy nodes)
- Returns:
Equivalent Coloring solution (with dummy node colors added)
- get_forward_metadata() TransformationMetadata[source]
Metadata for forward problem transformation (ListColoring → Coloring).
This direction is EXACT: list coloring can be perfectly encoded as standard coloring.
- transform_problem(source_problem: ListColoringProblem) ColoringProblem[source]
Transform ListColoringProblem to ColoringProblem with dummy nodes.
- Parameters:
source_problem – ListColoringProblem instance
- Returns:
Equivalent ColoringProblem with dummy color nodes