discrete_optimization.generic_tools.mutations package

Submodules

discrete_optimization.generic_tools.mutations.mutation_bool module

class discrete_optimization.generic_tools.mutations.mutation_bool.BitFlipMove(attribute: str, list_index_flip: Iterable[int])[source]

Bases: LocalMove

apply_local_move(solution: Solution) Solution[source]
backtrack_local_move(solution: Solution) Solution[source]
class discrete_optimization.generic_tools.mutations.mutation_bool.BitFlipMutation(problem: Problem, attribute: str | None = None, probability_flip: float = 0.1, **kwargs: Any)[source]

Bases: SingleAttributeMutation

attribute_type: ListBoolean
attribute_type_cls

alias of ListBoolean

mutate(solution: Solution) tuple[Solution, LocalMove][source]

discrete_optimization.generic_tools.mutations.mutation_catalog module

discrete_optimization.generic_tools.mutations.mutation_catalog.get_available_mutations(problem: Problem) list[tuple[type[SingleAttributeMutation], dict[str, Any], str]][source]

discrete_optimization.generic_tools.mutations.mutation_integer module

class discrete_optimization.generic_tools.mutations.mutation_integer.IntegerMutation(problem: Problem, attribute: str | None = None, probability_flip: float = 0.1, **kwargs: Any)[source]

Bases: SingleAttributeMutation

attribute_type: ListInteger
attribute_type_cls

alias of ListInteger

mutate(solution: Solution) tuple[Solution, LocalMove][source]

discrete_optimization.generic_tools.mutations.mutation_permutation module

class discrete_optimization.generic_tools.mutations.mutation_permutation.PartialShuffleMutation(problem: Problem, attribute: str | None = None, proportion: float = 0.2, **kwargs: Any)[source]

Bases: _BasePermutationMutation

mutate(solution: Solution) tuple[Solution, LocalMove][source]
class discrete_optimization.generic_tools.mutations.mutation_permutation.ShuffleMove(attribute: str, new_permutation: list[int] | ndarray, prev_permutation: list[int] | ndarray)[source]

Bases: LocalMove

apply_local_move(solution: Solution) Solution[source]
backtrack_local_move(solution: Solution) Solution[source]
class discrete_optimization.generic_tools.mutations.mutation_permutation.ShuffleMutation(problem: Problem, attribute: str | None = None, **kwargs: Any)[source]

Bases: _BasePermutationMutation

mutate(solution: Solution) tuple[Solution, LocalMove][source]
class discrete_optimization.generic_tools.mutations.mutation_permutation.SwapMutation(problem: Problem, attribute: str | None = None, nb_swap: int = 1, **kwargs: Any)[source]

Bases: _BasePermutationMutation

mutate(solution: Solution) tuple[Solution, LocalMove][source]
class discrete_optimization.generic_tools.mutations.mutation_permutation.SwapsLocalMove(attribute: str, list_index_swap: list[tuple[int, int]])[source]

Bases: LocalMove

apply_local_move(solution: Solution) Solution[source]
backtrack_local_move(solution: Solution) Solution[source]
class discrete_optimization.generic_tools.mutations.mutation_permutation.TwoOptMove(attribute: str, index_2opt: list[tuple[int, int]])[source]

Bases: LocalMove

apply_local_move(solution: Solution) Solution[source]
backtrack_local_move(solution: Solution) Solution[source]
class discrete_optimization.generic_tools.mutations.mutation_permutation.TwoOptMutation(problem: Problem, attribute: str | None = None, **kwargs: Any)[source]

Bases: _BasePermutationMutation

mutate(solution: Solution) tuple[Solution, LocalMove][source]

discrete_optimization.generic_tools.mutations.mutation_portfolio module

class discrete_optimization.generic_tools.mutations.mutation_portfolio.PortfolioMutation(problem: Problem, list_mutations: list[Mutation], weight_mutations: list[float] | ndarray, **kwargs)[source]

Bases: Mutation

Mutations portfolio.

Randomly choose between available mutations.

choose_a_mutation() int[source]
mutate(solution: Solution) tuple[Solution, LocalMove][source]
mutate_and_compute_obj(solution: Solution) tuple[Solution, LocalMove, dict[str, float]][source]
discrete_optimization.generic_tools.mutations.mutation_portfolio.create_mutations_portfolio_from_problem(problem: Problem, selected_mutations: Container[type[Mutation]] | None = None, selected_attributes: Container[str] | None = None) PortfolioMutation[source]

Create a mutation mixing all mutations available in catalog for the solution attributes.

Module contents