Planar truss span structural optimization (factor-of-safety maximization)
A fixed-joint binary optimization problem that selects candidate planar-truss members to maximize factor of safety subject to mass and deflection thresholds.
See Optimization Problem Catalog for the optimization family index.
Quick Facts
Field |
Value |
|---|---|
Problem ID |
|
Problem Family |
optimization |
Implementation |
|
Capabilities |
|
Study Suitability |
none |
Tags |
|
Taxonomy
- Formulation
binary_optimization
- Convexity
nonconvex
- Design Variable Type
discrete
- Is Dynamic
no
- Orientation
engineering_practical
- Feasibility Ratio Hint
0.05
- Objective Mode
single
- Constraint Nature
hard
- Bounds Summary
one binary variable per candidate member over a fixed planar truss joint set
- Tags
optimization,truss,structural,binary,factor-of-safety
Statement
Choose a planar truss topology over a fixed support span and a fixed set of candidate joints. Each binary design variable decides whether one candidate member is present. The optimizer builds a concrete PlanarTrussState, runs the real trussme structural analysis, and maximizes factor of safety.
Feasible candidates must satisfy maximum mass and maximum deflection thresholds. The built-in baseline uses deterministic binary enumeration with cheap graph and crossing prechecks plus hard structural thresholds.
Problem Shape
Field |
Value |
|---|---|
Design Variable Count |
15 |
Bound Summary |
one binary variable per candidate member over a fixed planar truss joint set |
Total Constraint Count |
5 |
Equality Constraint Count |
0 |
Inequality Constraint Count |
5 |
Variable Bounds
Variable |
Lower Bound |
Upper Bound |
|---|---|---|
|
0 |
1 |
|
0 |
1 |
|
0 |
1 |
|
0 |
1 |
|
0 |
1 |
|
0 |
1 |
|
0 |
1 |
|
0 |
1 |
|
0 |
1 |
|
0 |
1 |
|
0 |
1 |
|
0 |
1 |
|
0 |
1 |
|
0 |
1 |
|
0 |
1 |
Manifest Parameters
Key |
Value |
|---|---|
candidate_point_fractions |
[[0.25, 0.5], [0.5, 0.5], [0.75, 0.5]] |
load_magnitude |
1000 |
max_height |
5 |
maximum_deflection |
0.2 |
maximum_mass |
20 |
objective_metric |
fos-max |
span |
10 |
Library Interface
generate_initial_solution(seed=None)objective(x)evaluate(x)solve(initial_solution=None, seed=None, maxiter=200)