Expand description
§U-Nesting Core
Core traits and abstractions for the U-Nesting spatial optimization engine.
This crate provides the foundational types and traits that are shared between the 2D nesting and 3D bin packing modules.
§Core Components
- Geometry traits:
Geometry,Geometry2DExt,Geometry3DExt - Boundary traits:
Boundary,Boundary2DExt,Boundary3DExt - Solver trait:
Solver- Common interface for all optimization algorithms - GA framework:
GaRunner,GaProblem- Genetic algorithm infrastructure - BRKGA framework:
BrkgaRunner,BrkgaProblem- Biased Random-Key GA - SA framework:
SaRunner,SaProblem- Simulated Annealing - Transform types:
Transform2D,Transform3D,AABB2D,AABB3D
§Optimization Strategies
The Strategy enum defines available optimization algorithms:
| Strategy | Speed | Quality | Description |
|---|---|---|---|
BottomLeftFill | Fast | Basic | Greedy bottom-left placement |
NfpGuided | Medium | Good | NFP-based optimal positioning (2D) |
GeneticAlgorithm | Slow | High | GA with permutation encoding |
Brkga | Medium | High | Biased Random-Key GA |
SimulatedAnnealing | Medium | High | Temperature-based optimization |
ExtremePoint | Fast | Good | EP heuristic (3D only) |
§Configuration
Use Config to configure solver behavior:
use u_nesting_core::{Config, Strategy};
let config = Config::new()
.with_strategy(Strategy::GeneticAlgorithm)
.with_spacing(2.0)
.with_margin(5.0)
.with_time_limit(30000);§Feature Flags
serde: Enable serialization/deserialization support
Re-exports§
pub use alns::AlnsConfig;pub use alns::AlnsProblem;pub use alns::AlnsProgress;pub use alns::AlnsResult;pub use alns::AlnsRunner;pub use alns::AlnsSolution;pub use alns::DestroyOperatorId;pub use alns::DestroyResult;pub use alns::OperatorStats;pub use alns::RepairOperatorId;pub use alns::RepairResult;pub use brkga::BrkgaConfig;pub use brkga::BrkgaProblem;pub use brkga::BrkgaProgress;pub use brkga::BrkgaResult;pub use brkga::BrkgaRunner;pub use brkga::RandomKeyChromosome;pub use error::Error;pub use error::Result;pub use exact::ExactConfig;pub use exact::ExactResult;pub use exact::SolutionStatus;pub use ga::GaConfig;pub use ga::GaProblem;pub use ga::GaProgress;pub use ga::GaResult;pub use ga::GaRunner;pub use ga::Individual;pub use ga::PermutationChromosome;pub use gdrr::GdrrConfig;pub use gdrr::GdrrProblem;pub use gdrr::GdrrProgress;pub use gdrr::GdrrResult;pub use gdrr::GdrrRunner;pub use gdrr::GdrrSolution;pub use gdrr::RecreateResult;pub use gdrr::RecreateType;pub use gdrr::RuinResult;pub use gdrr::RuinType;pub use gdrr::RuinedItem;pub use geometry::Boundary;pub use geometry::Boundary2DExt;pub use geometry::Boundary3DExt;pub use geometry::Geometry;pub use geometry::Geometry2DExt;pub use geometry::Geometry3DExt;pub use geometry::GeometryId;pub use geometry::Orientation3D;pub use geometry::RotationConstraint;pub use placement::Placement;pub use result::SolveResult;pub use result::SolveSummary;pub use sa::CoolingSchedule;pub use sa::NeighborhoodOperator;pub use sa::PermutationSolution;pub use sa::SaConfig;pub use sa::SaProblem;pub use sa::SaResult;pub use sa::SaRunner;pub use sa::SaSolution;pub use solver::Config;pub use solver::ProgressCallback;pub use solver::ProgressInfo;pub use solver::Solver;pub use solver::Strategy;pub use transform::Transform2D;pub use transform::Transform3D;pub use transform::AABB2D;pub use transform::AABB3D;
Modules§
- alns
- Adaptive Large Neighborhood Search (ALNS) Framework
- brkga
- Biased Random-Key Genetic Algorithm (BRKGA) framework.
- error
- Error types for U-Nesting.
- exact
- Exact solver configuration and result types.
- ga
- Genetic Algorithm framework for optimization.
- gdrr
- Goal-Driven Ruin and Recreate (GDRR) Framework
- geometry
- Core geometry traits and types.
- memory
- Memory optimization utilities.
- placement
- Placement representation for positioned geometries.
- result
- Solve result representation.
- robust
- Robust geometric predicates for numerical stability.
- sa
- Simulated Annealing framework for optimization.
- solver
- Solver traits and configuration.
- transform
- Transform types for 2D and 3D coordinate transformations.