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

truss_analysis_program_design

Problem Family

grammar

Implementation

design_research_problems.problems.grammar._truss_ap:TrussAPGrammarProblem

Capabilities

discrete-actions, external-adapter, serializable-state, statement-markdown

Study Suitability

none

Tags

grammar, truss, structural, mechanics, discrete

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

add_joint, add_member, clear_load, set_load, set_support_enabled

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)