.. Auto-generated by scripts/generate_problem_catalog_docs.py. Do not edit by hand. Planar truss span grammar problem ================================= A discrete topology grammar for adding and removing joints and members in a planar truss. See :doc:`../grammar` for the grammar family index. Quick Facts ----------- .. list-table:: :header-rows: 1 :widths: 20 80 * - Field - Value * - Problem ID - ``planar_truss_span`` * - 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``, ``discrete``, ``topology`` 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 planar topology over a fixed span and height envelope Tags ``grammar``, ``truss``, ``discrete``, ``topology`` Statement --------- Create a stable, lightweight planar truss spanning a fixed distance between a left pinned support and a right roller support. The grammar begins with the supports and one loaded free joint. Designers can add interior joints, add members, and remove members. States are evaluated by translating the library-owned grammar state into a fresh ``trussme.Truss``, applying the load, and attempting a structural analysis. Singular or unstable states are treated as infeasible results. Problem Shape ------------- .. list-table:: :header-rows: 1 :widths: 25 75 * - Field - Value * - State Type - PlanarTrussState * - Initial Transition Count - 6 * - Initial Rule Names - ``add_joint``, ``add_member`` Manifest Parameters ------------------- .. list-table:: :header-rows: 1 :widths: 25 75 * - Key - Value * - load_magnitude - 1000 * - max_height - 5 * - span - 10 Initial Transition Summary -------------------------- .. list-table:: :header-rows: 1 :widths: 70 30 * - Rule Name - Transition Count * - add_joint - 3 * - add_member - 3 Library Interface ----------------- - ``initial_state()`` - ``enumerate_transitions(state)`` - ``enumerate_next_states(state)`` - ``evaluate(state)``