Packing
Evaluate candidate semicircle packings against the fixed geometry scorer. Supports single evaluation, batch scoring, and built-in optimization methods.
Current public support: shared placement on CPU workers only. Submit via POST /api/v1/recipes/packing/jobs or POST /api/v1/jobs with "recipe": "packing".
Operations
| Operation | Description |
|---|---|
eval | Score one 45-dimensional candidate vector |
eval_batch | Score a batch of candidates in one step |
feasible_optimize | Local search with feasibility-first scoring |
basin_hopping | Basin-hopping with bounded Gaussian hops and local refinement |
differential_evolution | Bounded differential evolution |
Payload Fields
| Field | Type | Required | Description |
|---|---|---|---|
operation | string | yes | One of the operations above |
candidate | array (45 numbers) | for eval | Single candidate vector |
candidate_ref | string | alt for eval | Artifact ID of a candidate vector |
candidates | array of arrays | for eval_batch | Batch of candidate vectors |
candidates_ref | string | alt for eval_batch | Artifact ID of a batch |
penalty | number | no | Penalty coefficient |
seed | integer | no | Random seed for optimization |
max_iters | integer | no | Max iterations for optimization |
n_restarts | integer | no | Number of restarts (feasible_optimize) |
population_size | integer | no | Population size (differential_evolution) |
hop_scale | number | no | Hop scale (basin_hopping) |
Examples
Score a single candidate
POST /api/v1/recipes/packing/jobs
{
"payload": {
"operation": "eval",
"candidate": [0.12, 0.31, 0.88, 0.45, 0.67, 0.23, 0.91, 0.14, 0.56, 0.78, 0.33, 0.62, 0.85, 0.19, 0.44, 0.71, 0.28, 0.93, 0.16, 0.59, 0.82, 0.37, 0.65, 0.11, 0.48, 0.74, 0.26, 0.89, 0.52, 0.18, 0.69, 0.41, 0.95, 0.32, 0.76, 0.22, 0.58, 0.84, 0.13, 0.47, 0.73, 0.39, 0.66, 0.21, 0.87]
},
"timeout_s": 300
}Batch evaluation
POST /api/v1/recipes/packing/jobs
{
"payload": {
"operation": "eval_batch",
"candidates_ref": "art_batch_123"
},
"timeout_s": 600
}Optimize from a starting point
POST /api/v1/recipes/packing/jobs
{
"payload": {
"operation": "feasible_optimize",
"candidate_ref": "art_seed_123",
"seed": 42,
"max_iters": 5000,
"n_restarts": 3
},
"timeout_s": 900
}Result Fields
Eval: success, score, radius, overlap, elapsed_s
Batch eval: success, scores, radii, overlaps, n_candidates, elapsed_s
Optimization: success, best_score, best_radius, best_overlap, best_candidate, evaluations, iterations, elapsed_s
Last updated on