Planar roof truss grammar (depth = 1/8 span)

A symmetric three-point roof-truss grammar constrained to the shallow 1/8-span depth variant reported in the structural essay study.

See Grammar Problem Catalog for the grammar family index.

Quick Facts

Field

Value

Problem ID

planar_roof_truss_three_point_symmetric_depth_eighth

Problem Family

grammar

Implementation

design_research_problems.problems.grammar._planar_truss:PlanarTrussSpanProblem

Capabilities

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

Study Suitability

none

Tags

grammar, truss, roof, discrete, topology, symmetric, depth-limited

Taxonomy

Formulation

discrete_grammar

Convexity

not_applicable

Design Variable Type

discrete

Is Dynamic

no

Orientation

engineering_practical

Feasibility Ratio Hint

0.25

Objective Mode

single

Constraint Nature

hard

Bounds Summary

symmetric planar roof-truss topology with a shallow 1/8-span roof rise

Tags

grammar, truss, roof, discrete, topology, symmetric, depth-limited

Statement

This catalog entry approximates the second planar roof-truss formulation from the structural essay study: the symmetric three-point loading case with the truss depth constrained to approximately one-eighth of the span.

The simplified grammar captures that shallower design envelope by reducing the roof rise used to place the fixed load joints and candidate interior joints. It keeps the same symmetric edit rules as the base three-point variant.

Problem Shape

Field

Value

State Type

PlanarTrussState

Initial Transition Count

9

Initial Rule Names

add_joint, add_joint_pair, add_member

Manifest Parameters

Key

Value

candidate_point_fractions

[[0.2, 0.22], [0.35, 0.36], [0.5, 0.22]]

enforce_symmetry

yes

load_magnitude

1000

max_height

1.25

roof_load_x_fractions

[0.25, 0.5, 0.75]

span

10

Initial Transition Summary

Rule Name

Transition Count

add_joint

1

add_joint_pair

2

add_member

6

Library Interface

  • initial_state()

  • enumerate_transitions(state)

  • enumerate_next_states(state)

  • evaluate(state)