Set Up Constraint Types, Product Attributes, and the Changeover Matrix
Sequence optimization only knows what you tell it. This walks through the three configuration objects it reads: constraint types, product attributes, and the changeover matrix.
1. Declare your constraint types
Open APS Constraint Setup (from the Setup page, the SmartFlow role center, or the Manufacturing Manager role center). Each row is one dimension your shop cares about when sequencing — Allergen, Color, Cleaning Level, or anything else that costs time to change over. For each type:
| Field | What to set |
|---|---|
| Code / Description | A short code and a readable name. |
| Constraint Category | Hard (must be satisfied) or Soft (preferred, not mandatory). |
| Default Setup Minutes | The changeover time to use if a specific matrix cell is ever left undefined. |
| Weight | 0.0–1.0 — how much this dimension matters relative to others if you track more than one. |
| Sort Order | Display ordering when multiple constraint types are in play. |
| Allows Grouping | Whether the solver should try to cluster items sharing the same value. |
| Sequence Preference | Ascending or Descending — e.g. light-to-dark vs. dark-to-light, if your shop has a natural direction. |
| Requires Clean Break | Turn on if transitioning between different values demands a full cleaning stop, not just a shorter changeover. |
| Changeover Mode | Matrix — a traditional N×N lookup, one cost per from→to pair. Tag Based — cost is computed from which tags are removed going into the next job, useful when a single value change (like an allergen) drives the cost more than a simple pairwise lookup does. |
If you’d rather start from a working example than a blank grid, the Seed Default Types action creates a standard set (Allergen, Color, Halal, Kosher, Organic) with sample attribute values and a matrix already filled in — a fast way to see the shape of a complete setup before you build your own.
2. Define the valid attribute values
From the constraint type list, use Attribute Values to declare the values this dimension can take — for a Color constraint type, that might be White, Red, Black; for Allergen, Dairy, Gluten, Nut-Free.
3. Tag your items
Each item that participates in production needs a value for every constraint type that applies to it. Open the item card and assign attribute values there — do this for finished goods and for any semi-finished item the optimizer needs to reason about, since the solver reads attributes from whatever item an operation actually outputs. A batter semi-finished item that never reaches a customer still needs its flavor tag if the mixing operation that produces it is in scope for optimization. Use the Product Attributes action from the constraint type list to see which items already carry a value for that type.
4. Fill in the changeover matrix
Use Changeover Matrix from the constraint type list to open the From→To grid. Two rules that matter more than they look like they should:
- Fill every cell deliberately, including the zero-cost ones. An undefined cell defaults to zero, which is indistinguishable from a cell you actually decided costs nothing — six months later, nobody can tell which one it was.
- Matrices are usually asymmetric. Going from a light color to a dark one is often close to free; the reverse can mean a real flush. Fill both directions for every pair — leaving the reverse direction blank silently tells the solver that direction is free, and it will happily ping-pong the sequence to exploit that.
A minimal worked example, three colors:
| From \ To | White | Red | Black |
|---|---|---|---|
| White | 0 | 5 min | 0 (overwritten by black) |
| Red | 30 min | 0 | 30 min |
| Black | 60 min + scrap | 30 min | 0 |
5. Turn it on
Set Enabled on the constraint type once its values and matrix are filled in. From here, run Sequence Optimization and the changeover figures you just configured drive the result.
Concepts behind this feature
Sequence-Dependent Setup: The Changeover Matrix Explained walks through why the asymmetry rule matters with a fuller worked example, and why optimizing sequence with no awareness of due dates can quietly cost you more than it saves.