Skip to content

Problems catalog

Choose a problem by its formulation, encoding and dimensions, then check the algorithm compatibility matrix. This catalog describes the 136 registered problems in VAMOS 1.1.0. The named selection helpers are stable public APIs. A synthetic or engineering benchmark is a test model, not a validated model of your application.

Choose a starting point

What you want to exercise Start with Why
A first continuous run and a visible two-objective front zdt1 Inexpensive evaluation, 30 variables, packaged 2D reference sample
Three or more objectives dtlz2 Scalable objectives and a standard dimension rule
More varied geometry and difficulty wfg1–wfg9, zcat1–zcat20 Configurable objective count; record the family parameters
Hundreds of variables lsmop1–lsmop9 300 variables by default; group structure matters
Explicit constraint handling c1dtlz1, mw1 Emit inequality constraints separately from objectives
Binary, integer or mixed operators zdt5, int_alloc, mixed_design Small, deterministic examples with explicit encodings
Permutation operators tsp6, then kroa100 Closed tours with two specified route objectives
Application-inspired test functions RE and RWA tables below Fixed engineering formulations with different encodings and objective counts
Expensive model evaluations fs_real, ml_tuning Train a classifier for each candidate; require scikit-learn

Use optimize("zdt1", ...) in Python or --problem zdt1 in the CLI. Inspect the installed version through the public facade:

from vamos import available_problem_names, make_problem_selection

print(sorted(available_problem_names()))
selection = make_problem_selection("dtlz2", n_obj=3)
problem = selection.instantiate()
print(problem.n_var, problem.n_obj, problem.encoding)  # 12 3 real
print(problem.xl, problem.xu)

The tables report the instantiated default dimensions. n is the number of decision variables, M the number of objectives, and G the number of explicit inequality outputs (G <= 0 is feasible). Zero G means no separate inequality outputs; bounds and encoding rules still apply. All objectives returned in F are minimized, including sign-flipped maximization objectives.

Reference sample means a CSV shipped with the package, with its objective dimension shown. It does not certify an exact Pareto front or guarantee suitability after changing the formulation. See Reference fronts before computing indicators.

Continuous test suites

These families use real-valued variables (real or continuous in the metadata) and need only the base installation, including WFG. Source links point to the corresponding implementation or family registration in the 1.0.1 release.

Registered keys Default n Default M G Default parameters / dimension rule Source Reference sample
zdt1, zdt2, zdt3 30 2 0 Variables in [0, 1]; fixed M ZDT 2D, each
zdt4 10 2 0 First variable [0, 1], remainder [-5, 5]; fixed M ZDT 2D
zdt6 10 2 0 Variables in [0, 1]; fixed M ZDT 2D
dtlz1 7 3 0 n = M + 4 (k = 5) when n is omitted DTLZ 3D
dtlz2–dtlz6 12 3 0 n = M + 9 (k = 10); DTLZ4 uses alpha = 100 DTLZ 3D, each
dtlz7 22 3 0 n = M + 19 (k = 20) DTLZ 3D
wfg1–wfg9 24 3 0 k = 4, l = 20; bounds [0, 2i] for variable i WFG 2D only, each
lz09_f1, lz09_f7, lz09_f8 10 2 0 Fixed M; family-specific linkage Li–Zhang LZ09 None packaged
lz09_f2–lz09_f5, lz09_f9 30 2 0 Fixed M; family-specific linkage Li–Zhang LZ09 None packaged
lz09_f6 10 3 0 Fixed M Li–Zhang LZ09 None packaged
cec2009_uf1–cec2009_uf7 30 2 0 Fixed M; UF5: N=10, UF6: N=2, both epsilon=0.1 CEC2009 2D, each
cec2009_uf8–cec2009_uf10 30 3 0 Fixed M; UF9: epsilon=0.1 CEC2009 3D, each
lsmop1–lsmop9 300 3 0 nk = 5 subcomponents per group LSMOP 2D only, each
zcat1–zcat20 30 2 0 level = 1; complicated Pareto set, bias and imbalance all False ZCAT 2D, 3D, 4D and 6D, each

DTLZ, WFG, LSMOP and ZCAT allow changing n_obj in named selection. For DTLZ, omitting n_var recalculates the standard dimension from M; setting a different n is allowed but changes the experimental setting. For WFG, k = 4 at M = 2, otherwise k = 2(M - 1), and l = n - k; WFG2/3 require an even distance-variable count. LSMOP needs enough variables for all groups to remain nonempty. Family constructor checks still apply to dimension overrides.

Explicitly constrained suites

All entries in this table are real-valued. They emit G alongside F; choose an algorithm with the required constraint support in the matrix.

Registered keys Default n Default M G Default parameters / objective count Source Reference sample
cec2009_cf1 30 2 1 Fixed M and constraint function CEC2009 None packaged
c1dtlz1 12 3 1 Configurable M; n remains 12 unless supplied C-DTLZ 2D only
c1dtlz3 12 3 1 Default radius r = 9 at M = 3; varies with M C-DTLZ 2D only
c2dtlz2 12 3 1 Default radius r = 0.4 at M = 3; varies with M C-DTLZ 2D only
c3dtlz1 12 3 M Configurable M C-DTLZ None packaged
dc1dtlz1, dc1dtlz3 12 3 1 Configurable M; a = 5, b = 0.95 DC-DTLZ 2D only, each
dc2dtlz1, dc2dtlz3 12 3 2 Configurable M; a = 3, b = 0.9 DC-DTLZ 2D only, each
dc3dtlz1, dc3dtlz3 12 3 M Configurable M; a = 5, b = 0.5 DC-DTLZ None packaged
mw1, mw2, mw6, mw9 15 2 1 Actual M fixed at 2 MW 2D for MW1/2/6; none for MW9
mw3, mw7, mw12, mw13 15 2 2 Actual M fixed at 2 MW 2D for MW3/7; none for MW12/13
mw5, mw10 15 2 3 Actual M fixed at 2 MW 2D for MW5; none for MW10
mw11 15 2 4 Actual M fixed at 2 MW None packaged
mw4, mw8, mw14 15 3 1 Configurable M MW None packaged

In 1.1.0, the registry accepts an objective override for every MW key, but only MW4, MW8 and MW14 actually change their objective count. Use the instantiated problem's n_obj and keep the other MW cases at two objectives.

In 1.0.2, cec2009_cf1 did not declare its constraint, so algorithms ran it as an unconstrained problem; it also stored the CEC2009 constraint c(x) >= 0 without changing its sign and searched [-1, 1] for variables 2 to n. VAMOS 1.1.0: CF1 declares its constraint, stores G = -c(x) so that G <= 0 is feasible, and uses the CEC2009 domain [0, 1]^n.

Binary, integer, mixed and permutation examples

These examples are useful for checking representations and operators. The synthetic instances have fixed generation seeds, independent of the optimizer's seed. Changing n constructs a different instance; it does not merely increase the search budget.

Key Encoding Default n / M G Default parameters Source Reference sample
zdt5 Binary 80 / 2 0 30-bit first block, ten 5-bit tail blocks ZDT5 2D, 31 points for default n
bin_feat Binary 50 / 2 0 Instance seed 12345 VAMOS synthetic None packaged
bin_knapsack Binary 50 / 2 0 Capacity ratio 0.4; instance seed 2023 VAMOS synthetic None packaged
bin_qubo Binary 30 / 2 0 Symmetric Q; instance seed 7 VAMOS synthetic None packaged
int_alloc Integer 20 / 2 0 Each allocation in 0..10; instance seed 321 VAMOS synthetic None packaged
int_jobs Integer 30 / 2 0 Five job labels 0..4; instance seed 99 VAMOS synthetic None packaged
mixed_design Mixed 9 / 2 0 Three real, three integer, three categorical; instance seed 123 VAMOS synthetic None packaged
tsp6 Permutation 6 / 2 0 Six equally spaced cities on the unit circle VAMOS TSP None packaged
kroa100, krob100, kroc100, krod100, kroe100 Permutation 100 / 2 0 Fixed packaged coordinates from the respective TSPLIB instance TSP formulation, coordinates None packaged

What the objectives actually mean

For binary x, each bit selects one item. Every expression below is minimized.

Key First objective Second objective Interpretation
bin_feat Negative sum of selected utilities Sum of selected feature costs Synthetic utility/cost trade-off; no classifier is trained
bin_knapsack Absolute difference between selected weight and target capacity Negative selected value Capacity deviation is an objective; overweight selections are allowed
bin_qubo xᵀQx + bᵀx Negative number of selected bits A two-objective synthetic QUBO extension
int_alloc Total allocation cost Negative sum of weighted square-root returns Diminishing returns; no global budget constraint
int_jobs Weighted mismatches against preferred job labels Largest job-type count divided by n Encourages a balanced use of labels; does not model machines or makespan
mixed_design Squared real/integer target errors plus category mismatches Integer and category costs Synthetic mixed-variable design trade-off
All TSP keys Sum of edge lengths in the closed tour Maximum edge length in that tour Total distance versus longest leg

TSP decisions must contain every city exactly once. Both objectives use the same coordinates and unrounded Euclidean distances, including the closing edge. A kroa100 run therefore uses TSPLIB coordinates in VAMOS's two-objective formulation; published single-objective TSPLIB tour costs with integer distance rounding are not directly comparable. The named tsp6 uses circle coordinates; constructing TSP() without arguments uses a separate asymmetric six-city toy.

ZDT5 requires n >= 35 and (n - 30) divisible by 5. Changing its number of tail blocks changes its front, so the packaged 80-bit reference is not universal. The TSPLIB factories have fixed dimensions; supplying n_var does not resize their coordinate files.

Application-inspired benchmarks

RE: Tanabe–Ishibuchi engineering suite

These are fixed formulations: keep their dimensions as listed. G = 0 for all RE entries. Several include the sum of constraint violations as an additional objective; that trade-off differs from enforcing feasibility through G. The default bounds and discrete choices are fixed by the linked implementation.

Key / formulation Encoding n / M Violation objective Default parameters Source Reference sample
re21 — four-bar truss Real 4 / 2 No Fixed design bounds RE2 2D
re22 — reinforced concrete beam Mixed 3 / 2 f₂ Discrete reinforcement-area choices RE2 None packaged
re23 — pressure vessel Mixed 4 / 2 f₂ Thickness step 0.0625; two integer counts RE2 None packaged
re24 — hatch cover Real 2 / 2 f₂ Bounds [0.5, 4] to [4, 50] RE2 2D
re25 — coil compression spring Mixed 3 / 2 f₂ Integer coil count, discrete wire diameter RE2 None packaged
re31 — two-bar truss Real 3 / 3 f₃ Fixed design bounds RE3a 3D
re32 — welded beam Real 4 / 3 f₃ Fixed design bounds RE3a 3D
re33 — disc brake Real 4 / 3 f₃ Fixed design bounds RE3a 3D
re34 — vehicle crashworthiness Real 5 / 3 No Fixed response surfaces RE3a 3D
re35 — speed reducer Mixed 7 / 3 f₃ One integer gear-teeth variable RE3b None packaged
re36 — gear train Integer 4 / 3 f₃ Integer tooth counts 12..60 RE3b None packaged
re37 — rocket injector Real 4 / 3 No Fixed response surfaces RE3b 3D
re41 — car side impact Real 7 / 4 f₄ Fixed response surfaces RE4 4D
re42 — conceptual marine design Real 6 / 4 f₄ Fixed design bounds RE4 4D
re61 — water resource planning Real 3 / 6 f₆ Fixed design bounds RE6/9 6D
re91 — car cab Real 7 / 9 No separate violation objective Deterministic mean-value evaluation (stochastic=False) RE6/9 9D

Version 1.1.0 has stale descriptive labels for several RE registry entries. In particular, the re24 selection metadata reports four variables while its factory creates the two-variable hatch-cover formulation. The table follows the implementation; inspect problem.n_var after instantiation and use make_problem_selection("re24", n_var=2) to keep this selection's dimension metadata aligned. Keep RE91's deterministic setting explicit when comparing it with stochastic formulations.

RWA: Zapotecas-Martínez and collaborators

All RWA entries use real variables, fixed dimensions and bounds, and zero separate G outputs. They evaluate application response functions. The implementation converts maximization goals to negative objective values.

Key / application n / M Default parameters Source Reference sample
rwa1 — honeycomb heat sink 5 / 2 Fixed response surface; maximize Nu, minimize friction factor RWA1–4 2D
rwa2 — vehicle crashworthiness 5 / 3 Fixed response surface RWA1–4 3D
rwa3 — synthesis gas production 3 / 3 Maximize CH₄ and CO; minimize H₂/CO RWA1–4 3D
rwa4 — wire electrical discharge machining 5 / 3 Maximize cutting rate; minimize roughness and dimensional deviation RWA1–4 3D
rwa5 — thermal storage 9 / 3 Fixed packed-bed response surface RWA5 3D
rwa6 — steel milling 4 / 3 z = 1, d = 1; maximize removal rate RWA6 3D
rwa7 — rocket injector 4 / 3 Three response objectives RWA7–8 3D
rwa8 — rocket injector 4 / 4 Four response objectives RWA7–8 4D
rwa9 — ultra-wideband antenna 10 / 5 Fixed passband/stopband response functions RWA9–10 5D
rwa10 — repellent fabric 3 / 7 Fixed fabric performance response functions RWA9–10 7D

Learning and mixed engineering examples

Install python -m pip install "vamos-optimization[examples]==1.1.0" for the two classifier examples. The base package is sufficient for welded_beam. See Installation for environments and extras.

Key Encoding Default n / M G Defaults and objective meaning Source Reference sample
fs_real Binary 30 / 2 0 Breast-cancer data; stratified 70/30 split, random_state=0; logistic-regression validation error vs selected-feature count Feature selection None packaged
ml_tuning Mixed 4 / 2 0 Same dataset/split; SVC validation error vs support-vector count plus 0.1 × degree SVM tuning None packaged
welded_beam Mixed 6 / 2 4 Four real dimensions, one material category, one stiffener count; fabrication cost vs deflection Engineering example None packaged

fs_real penalizes the empty mask with error 1 and feature-count objective n. ml_tuning searches C in [10⁻², 10²], gamma in [10⁻³, 10¹], kernels rbf/linear/poly and degrees 2–5. These are validation objectives, not unbiased held-out test estimates. Both public classes also accept the wine dataset, which changes fs_real to 13 decision variables; named registry selection uses the defaults above.

VAMOS 1.1.0 constraint metadata: WeldedBeamDesignProblem declares its four constraint columns, so registry-created problems enforce them. In 1.0.2, an explicit problem.n_constraints = 4 was required; that assignment remains harmless. Follow the engineering lesson and inspect the returned G before selecting a design.

welded_beam is VAMOS's six-variable mixed design example; it is a different formulation from the four-variable, three-objective re32. Its four emitted G columns are shear stress, normal stress, deflection and the h <= b condition. Its formulas are not certified as the canonical four-variable welded-beam benchmark. Likewise, cec2009_uf3 currently uses [-1, 1] for variables 2 to n, so its domain needs independent reference validation before use as canonical CEC2009 UF3. See Known limitations.

Reference fronts

The packaged CSV directory contains finite reference samples. Check the CSV's number of columns, objective definitions, signs, scaling and parameter settings against the run. A file's existence alone is insufficient evidence of compatibility or a certified optimum.

  • ZDT fronts have two columns; ZDT5's sample is tied to its default 80 bits.
  • DTLZ fronts have three columns. Changing M needs a corresponding reference.
  • WFG, LSMOP and the listed C-/DC-DTLZ samples have two columns, even though their registered default is three objectives. Supply a matching reference for default runs; do not use those two-column files for three-objective indicators.
  • ZCAT supplies dimension-specific samples at M = 2, 3, 4 and 6. Other objective counts need a supplied reference; 1.1.0's automatic lookup can otherwise fall back to a 2D file.
  • RE/RWA samples have the dimensions shown above. Their presence does not imply that every sample point is a certified global Pareto optimum.
  • Families marked “None packaged” require a suitable external reference or a documented empirical reference construction when using reference-front metrics.

The CLI accepts --hv-reference-front path/to/front.csv with --hv-threshold; use one column per objective and validate the selected file before launching a study. A reference front is a set of objective vectors; a hypervolume reference point is one vector bounding the evaluated region. See Analysis for indicators and comparison guidance.

CLI presets

Preset Members
families zdt1, dtlz2, wfg4, tsp6 (includes different encodings)
zdt ZDT1/2/3/4/6; binary ZDT5 is selected separately
dtlz, wfg, zcat, lz, lsmop The corresponding suites above
cec CEC2009 UF1–10 and CF1
constrained_many The 10 C-/DC-DTLZ and 14 MW cases
tsp tsp6
tsplib kroa100, krob100, kroc100, krod100, kroe100
real_world ml_tuning, welded_beam, fs_real; this preset does not include RE/RWA

Use --problem-set <preset>. A shared dimension override must make sense for every member; prefer explicit problem selections for studies that mix fixed and scalable formulations. For a new objective function, follow Build your own problem.

For verified application walkthroughs, see feature selection, model hyperparameters, and decision representations.