Adds eight operators for permutation (Vec<usize>) decisions:
Initializers
- ShuffledPermutation { n } — random shuffles of [0..n)
- ShuffledMultisetPermutation { repeats_per_id } — random shuffles
of an arbitrary multiset (e.g., JSS operation strings)
Crossovers (strict permutations only)
- OrderCrossover (OX)
- PartiallyMappedCrossover (PMX)
- CycleCrossover (CX)
- EdgeRecombinationCrossover (ERX)
Mutations (preserve both strict permutations and multisets)
- InversionMutation
- InsertionMutation
- ScrambleMutation
All are re-exported from the prelude. Comprehensive unit tests + doctests
included; the pre-existing SwapMutation is untouched.
41 lines
1.9 KiB
Rust
41 lines
1.9 KiB
Rust
//! Common imports for users of `heuropt`.
|
|
//!
|
|
//! ```
|
|
//! use heuropt::prelude::*;
|
|
//! ```
|
|
|
|
#[cfg(feature = "async")]
|
|
pub use crate::core::async_problem::AsyncProblem;
|
|
pub use crate::core::{
|
|
Candidate, DecisionVariable, Direction, Evaluation, Objective, ObjectiveSpace,
|
|
OptimizationResult, PartialProblem, Population, Problem, Rng, rng_from_seed,
|
|
};
|
|
|
|
pub use crate::traits::{AlgorithmInfo, Initializer, Optimizer, Repair, Variation};
|
|
|
|
pub use crate::pareto::{
|
|
Dominance, ParetoArchive, best_candidate, crowding_distance, das_dennis, non_dominated_sort,
|
|
pareto_compare, pareto_front,
|
|
};
|
|
|
|
pub use crate::operators::{
|
|
BitFlipMutation, BoundedGaussianMutation, ClampToBounds, CompositeVariation, CycleCrossover,
|
|
EdgeRecombinationCrossover, GaussianMutation, InsertionMutation, InversionMutation,
|
|
LevyMutation, OrderCrossover, PartiallyMappedCrossover, PolynomialMutation, ProjectToSimplex,
|
|
RealBounds, ScrambleMutation, ShuffledMultisetPermutation, ShuffledPermutation,
|
|
SimulatedBinaryCrossover, SwapMutation,
|
|
};
|
|
|
|
pub use crate::algorithms::{
|
|
AgeMoea, AgeMoeaConfig, AntColonyTsp, AntColonyTspConfig, BayesianOpt, BayesianOptConfig,
|
|
CmaEs, CmaEsConfig, DifferentialEvolution, DifferentialEvolutionConfig, EpsilonMoea,
|
|
EpsilonMoeaConfig, GeneticAlgorithm, GeneticAlgorithmConfig, Grea, GreaConfig, HillClimber,
|
|
HillClimberConfig, Hype, HypeConfig, Hyperband, HyperbandConfig, Ibea, IbeaConfig, IpopCmaEs,
|
|
IpopCmaEsConfig, Knea, KneaConfig, Moead, MoeadConfig, Mopso, MopsoConfig, NelderMead,
|
|
NelderMeadConfig, Nsga2, Nsga2Config, Nsga3, Nsga3Config, OnePlusOneEs, OnePlusOneEsConfig,
|
|
Paes, PaesConfig, ParticleSwarm, ParticleSwarmConfig, PesaII, PesaIIConfig, RandomSearch,
|
|
RandomSearchConfig, Rvea, RveaConfig, SeparableNes, SeparableNesConfig, SimulatedAnnealing,
|
|
SimulatedAnnealingConfig, SmsEmoa, SmsEmoaConfig, Spea2, Spea2Config, TabuSearch,
|
|
TabuSearchConfig, Tlbo, TlboConfig, Tpe, TpeConfig, Umda, UmdaConfig,
|
|
};
|