36 lines
1.1 KiB
Python
36 lines
1.1 KiB
Python
"""CatOpt Bridge Demo (CosmosMesh MVP)
|
|
|
|
Minimal end-to-end example showing how to construct a LocalProblem, SharedVariables,
|
|
DualVariables and build a RoundTrip message via the CatOptBridge.
|
|
"""
|
|
from cosmosmesh_privacy_preserving_federated.catopt_bridge import LocalProblem, SharedVariable, DualVariable, CatOptBridge
|
|
|
|
|
|
def main():
|
|
# Define a tiny local problem for a two-asset scenario
|
|
lp = LocalProblem(
|
|
problem_id="rover1-task-allocation",
|
|
objective="minimize energy consumption",
|
|
variables=["x1", "x2"],
|
|
constraints=["x1 + x2 <= 10", "x1 >= 0", "x2 >= 0"],
|
|
version=1,
|
|
)
|
|
|
|
# Shared variables (primal signals) between agents
|
|
sv1 = SharedVariable(name="eta1", value=0.5, version=1)
|
|
sv2 = SharedVariable(name="eta2", value=1.2, version=1)
|
|
dual1 = DualVariable(name="lambda1", value=0.1, version=1)
|
|
|
|
# Build a round-trip message as the CatOptBridge would prepare for transport
|
|
rt = CatOptBridge.build_round_trip(
|
|
problem=lp,
|
|
shared=[sv1, sv2],
|
|
duals=[dual1],
|
|
)
|
|
|
|
print("RoundTrip Message:\n", rt)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|