Classical & Screening Designs¶
In addition to space-filling methods (LHS, Sobol, etc.), ALchemist supports a full suite of classical Response Surface Methodology (RSM) designs and screening designs. These structured methods follow decades of established statistical practice and are often preferred when variable effects are expected to follow polynomial trends or when you need to screen many factors with minimal runs.
When to Use Classical Designs¶
| Situation | Recommended design |
|---|---|
| Need to estimate main effects + interactions/curvature | CCD or Box-Behnken |
| Maximum coverage of all factor combinations | Full Factorial |
| Many factors (≥5), need to screen efficiently | Plackett-Burman or Fractional Factorial |
| Mixed categorical + continuous factors, efficient screening | GSD |
| Want maximum statistical freedom (custom model) | Optimal Design |
| Exploratory, no prior model structure assumed | Space-filling |
Method Overview¶
Full Factorial¶
Evaluates every combination of factor levels. Provides complete information about all main effects and interactions.
- Run count:
n_levels^kwherek= number of continuous variables - Use when: You have few factors (2–4) and need complete information
- Supports: Continuous and integer variables; categorical variables use their full category set
- Key parameter:
n_levels— number of evenly-spaced levels per factor (default 2; max 5)
Example (2 variables, 3 levels): 3² = 9 runs at all combinations of (low, mid, high) × (low, mid, high)
Fractional Factorial¶
A subset of a full factorial selected using generator strings. Reduces run count at the cost of some higher-order interaction estimates, which are "aliased" (confounded) with main effects or lower-order interactions.
- Run count:
2^(k-p)wherepdetermines the fraction (automatically selected) - Use when: 3–7 continuous factors, want to screen main effects efficiently
- Default generators: Built-in Resolution III+ generators for 3–7 factors
- Custom generators: Specify your own via the
generatorsparameter (e.g.,"a b ab") - Requires: Continuous and integer variables only; no categorical
Resolution describes which effects are confounded: - Resolution III: Main effects aliased with two-factor interactions - Resolution IV: Main effects clear of two-factor interactions - Resolution V+: Two-factor interactions estimable
Central Composite Design (CCD)¶
The most common Response Surface Methodology design. Combines a 2-level factorial core with axial (star) points and center replicates to estimate curvature (quadratic terms).
- Run count:
2^k + 2k + n_centerwherek= number of continuous variables - Use when: 2–5 continuous factors, anticipate curvature, need to fit a full quadratic model
- Requires: Continuous and integer variables only; no categorical
Key parameters:
| Parameter | Options | Description |
|---|---|---|
ccd_alpha |
orthogonal (default), rotatable |
Positions axial points for orthogonality or equal prediction variance |
ccd_face |
circumscribed (default), inscribed, faced |
Where axial points sit relative to factorial points |
n_center |
integer (default 1) | Center point replicates (helps estimate pure error) |
- Circumscribed (CCC): Axial points extend outside the factorial cube — gives better prediction but requires a wider variable range
- Inscribed (CCI): Keeps all points within the original bounds — useful when extremes are infeasible
- Faced (CCF): Axial points at ±1 on each axis — cube-shaped region, no extension
Box-Behnken¶
A spherical design that avoids corner points. Runs are placed at edge midpoints and center, forming a roughly spherical design region.
- Run count: Typically ~3k² - 3k + 3 (varies by k)
- Use when: 3–5 continuous factors, extremes (corner combinations) are physically infeasible or dangerous
- Requires: Exactly 3+ continuous variables; no categorical or integer variables
- Does not require extreme corners, making it safer for processes where simultaneous extreme conditions are problematic
Plackett-Burman¶
An ultra-efficient 2-level screening design with run counts that are multiples of 4 (e.g., 12, 20, 24 runs). Designed to estimate main effects with maximum efficiency given the run count.
- Run count: Next multiple of 4 ≥ k+1 (e.g., 5 factors → 8 runs)
- Use when: Many continuous factors (5–20), want to quickly screen which matter
- Requires: Continuous and integer variables only; no categorical
- Does not estimate interactions — complex aliasing structure
Generalized Subset Design (GSD)¶
A fractional design for mixed or multi-level factors, including categorical. A GSD with reduction factor r evaluates approximately 1/r of the full factorial.
- Run count:
total_combinations / gsd_reduction(approximately) - Use when: Mixed categorical + continuous factors, full factorial is too expensive
- Supports: Categorical, continuous, and integer variables
- Key parameter:
gsd_reduction— reduction factor (2 = ~half of full factorial; default 2)
Note: GSD is the recommended classical screening method when your variable space includes categorical variables.
Variable Type Compatibility¶
| Method | Real | Integer | Categorical | Discrete |
|---|---|---|---|---|
| Full Factorial | ✅ | ✅ | ✅ | ✅ |
| Fractional Factorial | ✅ | ✅ | ❌ | ❌ |
| CCD | ✅ | ✅ | ❌ | ❌ |
| Box-Behnken | ✅ | ❌ | ❌ | ❌ |
| Plackett-Burman | ✅ | ✅ | ❌ | ❌ |
| GSD | ✅ | ✅ | ✅ | ✅ |
If your design includes incompatible variable types, ALchemist will raise an informative error. Use GSD or Full Factorial for mixed-type spaces.
Web UI Walkthrough¶
- Define your variable space and load the Initial Design panel.
- Select a method from the Design Method dropdown (e.g., CCD).
- Adjust method-specific parameters that appear below the dropdown.
- Click Generate — the run count is determined automatically from the design structure.
- Review the design table, then click Stage Suggestions to queue them for execution.
Unlike space-filling methods, classical designs do not require you to specify a number of points — the run count is determined by the design structure.
Python API¶
from alchemist_core import OptimizationSession
session = OptimizationSession()
session.add_variable("Temperature", "real", min=200, max=350)
session.add_variable("Pressure", "real", min=1, max=10)
session.add_variable("Catalyst", "categorical", categories=["Ni", "Pt", "Pd"])
# Central Composite Design (continuous variables only)
ccd_points = session.generate_initial_design(
method="ccd",
ccd_alpha="orthogonal",
ccd_face="circumscribed",
n_center=1,
)
# Generalized Subset Design (supports categorical)
gsd_points = session.generate_initial_design(
method="gsd",
gsd_reduction=2,
)
# Fractional factorial with default generators
ff_points = session.generate_initial_design(
method="fractional_factorial",
)
REST API¶
POST /api/v1/sessions/{session_id}/initial-design
Content-Type: application/json
{
"method": "ccd",
"ccd_alpha": "orthogonal",
"ccd_face": "circumscribed",
"n_center": 1
}
POST /api/v1/sessions/{session_id}/initial-design
{
"method": "gsd",
"gsd_reduction": 2
}
Comparison: Space-filling vs. Classical¶
| Property | Space-filling (LHS, Sobol) | Classical (CCD, Box-Behnken) |
|---|---|---|
| Run count | User-specified | Fixed by design structure |
| Variable types | All | Restricted (most exclude categoricals) |
| Statistical model | Agnostic | Polynomial (RSM) |
| Best for | Exploratory BO | Confirmatory RSM, curvature estimation |
| Requires prior knowledge | No | Somewhat (know which model to fit) |
For designs where you specify exactly which model terms to estimate, see Optimal Experimental Design.