Truss Analysis Program grammar problem
A bounded planar truss grammar ported from the MATLAB Truss Analysis Program, including direct-stiffness evaluation, factor-of-safety checks, and mass computation.
See Grammar Problem Catalog for the grammar family index.
Quick Facts
Field |
Value |
|---|---|
Problem ID |
|
Problem Family |
grammar |
Implementation |
|
Capabilities |
|
Study Suitability |
none |
Tags |
|
Taxonomy
- Formulation
discrete_grammar
- Convexity
not_applicable
- Design Variable Type
discrete
- Is Dynamic
no
- Orientation
engineering_practical
- Feasibility Ratio Hint
0.1
- Objective Mode
multi
- Constraint Nature
hard
- Bounds Summary
fixed required joints plus finite editable-joint candidates, discrete member sizes, and directional load/support toggles
- Tags
grammar,truss,structural,mechanics,discrete
Statement
Design a planar truss over fixed support and load anchor joints using discrete editing actions inspired by the original MATLAB Truss Analysis Program: add/move/delete editable joints, add/delete members, resize members, toggle supports, and set directional loads.
The evaluator reproduces the study mechanics with a direct-stiffness solve, member-level force and factor-of-safety calculations, and a section-based mass model. It reports mass_kg, min_fos, is_stable, and is_acceptable.
Problem Shape
Field |
Value |
|---|---|
State Type |
TrussAPState |
Initial Transition Count |
83 |
Initial Rule Names |
|
Manifest Parameters
Key |
Value |
|---|---|
candidate_points |
[[-3.446939, 1.847708], [-3.410204, 2.148353], [-2.1, 1.309054], [-0.802041, 2.023084], [-0.410204, 1.835182], [0.777551, 1.384215], [2.271429, 2.173406], [2.834694, 1.860235], [3.140816, 1.48443], [4.328571, 2.348782]] |
default_member_size_index |
5 |
enable_bad_zone |
no |
load_magnitude_options_n |
[50000.0, 200000.0, 250000.0] |
max_editable_joints |
16 |
Initial Transition Summary
Rule Name |
Transition Count |
|---|---|
add_joint |
10 |
add_member |
10 |
clear_load |
2 |
set_load |
58 |
set_support_enabled |
3 |
Library Interface
initial_state()enumerate_transitions(state)enumerate_next_states(state)evaluate(state)