gaia.core.hierarchical_messaging module

Complete Hierarchical Message Passing for GAIA Framework

Implements Section 3.4 from GAIA paper: “Hierarchical Message Passing”

THEORETICAL FOUNDATIONS: - θ_σ parameters for each simplex σ ∈ X_n - Local objective functions L_σ(θ_{d_0σ},…,θ_{d_nσ}) for each simplex - Update rule combining gradient information from (n+1) faces - Instructions from degeneracies that include σ as face - Inner horn solvers update parameters by composing gradients from face maps - Outer horn solvers train inverses - Hierarchical update scheme where information percolates up/down simplicial complex

class gaia.core.hierarchical_messaging.SimplexParameters(simplex_id, dimension, parameters, faces=<factory>, degeneracies=<factory>)[source]

Bases: object

Parameters θ_σ for a specific simplex σ

From GAIA paper: “For each simplex σ∈X_n with faces d_i σ∈X_{n-1}, define parameter vectors θ_σ”

simplex_id: str
dimension: int
parameters: <MockTorch name='mock.Tensor' id='4349657872'>
faces: List[str]
degeneracies: List[str]
__init__(simplex_id, dimension, parameters, faces=<factory>, degeneracies=<factory>)
class gaia.core.hierarchical_messaging.LocalObjective(simplex_id, objective_function, face_parameters=<factory>, weight=1.0)[source]

Bases: object

Local objective function L_σ for a simplex

From GAIA paper: “Local objective functions L_σ(θ_{d_0σ},…,θ_{d_nσ}) for each simplex”

simplex_id: str
objective_function: Callable
face_parameters: Tensor' id='4349657872'>]
weight: float = 1.0
compute_loss()[source]

Compute local loss L_σ(θ_{d_0σ},…,θ_{d_nσ})

__init__(simplex_id, objective_function, face_parameters=<factory>, weight=1.0)
class gaia.core.hierarchical_messaging.HierarchicalMessagePasser(max_dimension=3, device='cpu')[source]

Bases: object

Complete hierarchical message passing system

Implements the full theoretical framework from Section 3.4

__init__(max_dimension=3, device='cpu')[source]
add_simplex(simplex_id, dimension, parameter_dim, faces=None, degeneracies=None)[source]

Add simplex with parameters θ_σ

Parameters:
  • simplex_id (str) – Unique identifier for simplex

  • dimension (int) – Dimension of simplex (0=vertex, 1=edge, 2=triangle, etc.)

  • parameter_dim (int) – Dimension of parameter vector θ_σ

  • faces (List[str] | None) – List of face simplex IDs

  • degeneracies (List[str] | None) – List of degeneracy simplex IDs

add_local_objective(simplex_id, objective_function, weight=1.0)[source]

Add local objective function L_σ for simplex

Parameters:
  • simplex_id (str) – Simplex identifier

  • objective_function (Callable) – Function L_σ(θ_{d_0σ},…,θ_{d_nσ})

  • weight (float) – Weight for this objective in global loss

compute_face_gradient_combination(simplex_id)[source]

Compute gradient combination from (n+1) faces

From GAIA paper: “Update rule for θ_σ combining gradient information de (n+1) faces”

compute_degeneracy_instructions(simplex_id)[source]

Compute instructions from degeneracies

From GAIA paper: “Instructions desde degeneracies que incluyen σ como face”

hierarchical_update_step(learning_rate=0.01)[source]

Perform one hierarchical update step

From GAIA paper: “Hierarchical update scheme donde información percolates up/down el simplicial complex”

percolate_information_up()[source]

Percolate information up the simplicial complex (from low to high dimension)

Information flows from faces to higher-dimensional simplices

percolate_information_down()[source]

Percolate information down the simplicial complex (from high to low dimension)

Information flows from higher-dimensional simplices to their faces

full_hierarchical_message_passing(num_steps=10, learning_rate=0.01)[source]

Perform complete hierarchical message passing

Implements the full algorithm from Section 3.4

get_system_state()[source]

Get complete system state for analysis

gaia.core.hierarchical_messaging.create_triangle_complex(parameter_dim=64, device='cpu')[source]

Create hierarchical message passer for triangle complex

Structure: 3 vertices (0-simplices), 3 edges (1-simplices), 1 triangle (2-simplex)

gaia.core.hierarchical_messaging.create_tetrahedron_complex(parameter_dim=64, device='cpu')[source]

Create hierarchical message passer for tetrahedron complex

Structure: 4 vertices, 6 edges, 4 triangles, 1 tetrahedron