///|
pub using @constructive {clarke_wright_seed}
///|
pub using @core {
build_solution,
build_route,
type CostBreakdown,
type DistanceMetric,
type FeasibilityAssessment,
type FeasibilityPolicy,
type ConstraintSummary,
type RouteEncodingError,
type RouteProfile,
type ValidationIssue,
type ValidationReport,
analyze_instance,
assess_solution,
decode_routes,
encode_routes,
feasible_insertions,
make_instance_with_metric,
make_instance,
route_metrics_text,
route_profile,
solution_signature,
validate_instance,
validate_solution,
type Customer,
type Depot,
type DestroyOperator,
type ProblemVariant,
type RepairOperator,
type RouteMetrics,
type RoutePlan,
type SolveConfig,
type SolveResult,
type SolveStats,
type Solution,
type VehicleProfile,
type VrpInstance,
}
///|
pub using @instance {
all_sample_names,
type CatalogEntry,
type GeneratorConfig,
generate_cvrp,
generate_vrptw,
instance_fingerprint,
parse_cvrp,
parse_instance,
parse_solomon,
type ParseError,
catalog_find,
catalog_names,
catalog_overview,
catalog_variant_count,
catalog_customer_total,
sample_catalog,
balanced_dispatch_sample,
generated_stress_sample,
infeasible_capacity_sample,
micro_cvrp_sample,
sample_by_name,
sample_names,
small_cvrp_sample,
tight_vrptw_sample,
urban_vrptw_sample,
}
///|
pub using @operators {
type ImprovementReport,
type NeighborhoodKind,
type RelatednessWeights,
best_reverse,
best_relocate,
best_swap,
destroy_fraction,
destroy_solution,
greedy_repair,
demand_first_repair,
repair_until_stable,
regret2_repair,
repair_solution,
repair_with_priority,
relatedness_score,
route_balance_score,
time_window_repair,
variable_neighborhood_descent,
}
///|
pub using @report {
ascii_route_map,
ascii_route_map_with_legend,
benchmark_header,
benchmark_result_markdown,
instance_overview,
route_markdown,
route_metrics_csv,
solution_csv,
solution_diagnostics,
solution_markdown_detailed,
solution_report_bundle,
solution_text_detailed,
summarize_solution,
solution_markdown,
solution_text,
}
///|
pub using @search {
type AnnealingConfig,
type AnnealingRun,
type LocalSearchConfig,
type MultiStartRun,
type PortfolioResult,
type SearchSummary,
acceptance_probability,
anneal,
local_search,
solve,
solve_portfolio,
solve_with_seed,
solve_with_strategies,
summarize_search,
}
///|
pub using @benchmark {
type BenchmarkCase,
type BenchmarkResult,
a_n32_k5_case,
a_n32_k5_text,
result_text,
run_case,
}