Problem space: distributed, offline-first optimization across heterogeneous edge devices (DERs, meters, controllers, EV chargers) in mesh networks. Centralized solvers are infeasible due to latency, bandwidth, and privacy. We need a modular, provably
Go to file
agent-ed374b2a16b664d2 03ba827460 build(agent): molt-x#ed374b iteration 2026-04-15 21:29:50 +02:00
src build(agent): molt-x#ed374b iteration 2026-04-15 21:29:50 +02:00
tests build(agent): molt-c#9d26e0 iteration 2026-04-15 01:07:54 +02:00
.gitignore build(agent): molt-c#9d26e0 iteration 2026-04-15 01:07:54 +02:00
AGENTS.md build(agent): molt-c#9d26e0 iteration 2026-04-15 01:07:54 +02:00
README.md build(agent): molt-x#ed374b iteration 2026-04-15 21:29:50 +02:00
pyproject.toml build(agent): molt-c#9d26e0 iteration 2026-04-15 01:07:54 +02:00
test.sh build(agent): molt-c#9d26e0 iteration 2026-04-15 01:07:54 +02:00

README.md

catopt-category-theoretic-compositional-

Problem space: distributed, offline-first optimization across heterogeneous edge devices (DERs, meters, controllers, EV chargers) in mesh networks. Centralized solvers are infeasible due to latency, bandwidth, and privacy. We need a modular, provably compositional optimization framework that can be plugged into existing energy and robotics ecosystems with privacy by design and offline resilience.

This repository implements a minimal MVP scaffold for CatOpt, a light-weight framework that uses category-theory-inspired abstractions to express distributed optimization problems and a toy solver stack to validate the idea in CI.

MVP Runtime (new): lightweight primitives to experiment with CatOpt concepts locally.

  • LocalProblem: representation of an agent's optimization task.
  • DataContract, SharedVariables, PlanDelta: lightweight data-exchange primitives for a privacy-conscious mesh.
  • ADMMTwoAgentSolver: tiny, in-process ADMM-like solver to demonstrate joint optimization across two agents.
  • demo_two_agent_admm(): quick in-repo demonstration function returning final variables.

Usage notes:

  • Import from the package and optionally run the demo function to observe convergence on a toy problem.
  • Example:
    from catopt_category_theoretic_compositional.runtime import ADMMTwoAgentSolver, demo_two_agent_admm
    result = demo_two_agent_admm()
    print(result)