Advanced Topics

Advanced features covering optimization, symbolic rewriting, stochastic systems, and differentiable programming with JAX.

Gradient Optimization

Optimize circuit parameters using JAX automatic differentiation.

Circuit Search

Explore circuit structure space with greedy, beam, and genetic search.

Jacobian Computation

Sensitivity analysis and input-output dependencies.

Stream Calculus

Rutten-style stream calculus for solving differential equations.

Rewriting

Symbolic manipulation via pattern-matching rewrite rules.

Multi-Dimensional Streams

Working with 2D and higher-dimensional coefficient arrays.

Coupled SDEs

Systems of correlated stochastic differential equations.

JAX & JIT

JIT compilation, vmap, and GPU acceleration for circuits.

Engineering Examples

Real-world SDEs: thermal noise, population dynamics, control systems.

Overview

Asgard's advanced features span four areas:

  1. Optimization — Gradient-based parameter fitting and structure search over circuits
  2. Symbolic — Stream calculus evaluation and rewrite-rule manipulation
  3. Stochastic — Coupled SDE systems, multi-dimensional streams, and Monte Carlo analysis
  4. Performance — JAX JIT compilation and GPU acceleration

Quick Example

from gimle.asgard.circuit.circuit import Circuit
from gimle.asgard.circuit.circuit_optimizer import GradientBasedOptimizer

# Start with wrong parameter
initial_circuit = Circuit.from_string("scalar(1.0)")

# Optimize to fit data
optimizer = GradientBasedOptimizer(
    learning_rate=0.01,
    num_iterations=50,
)

optimized_circuit, loss_history = optimizer.optimize(
    initial_circuit,
    dataset,
    verbose=True,
)

# Result: scalar(3.0) - converged to target!

Next Steps