Use Case Architecture
Core Components
UcData
Base class for problem data.
UcFormulation
Base class for optimization formulations.
UcSolution
Base class for solutions.
UcInstance
Combines data and formulation.
UcInstanceCollection
Collection of problem instances for testing and demonstration.
Class Hierarchy
UcData
└─ TspData
UcFormulation
└─ TspFormulation
UcSolution
└─ TspSolution
UcInstance
└─ TspInstance
UcInstanceCollection
└─ TspCollection
Registry System
All classes use @Registry.add for automatic discovery.
from typing import Literal
from luna_usecases.abstract import Registry, UcData
@Registry.add
class MyData(UcData):
"""Data for a custom use case."""
name: Literal["my_usecase"] = "my_usecase"
values: list[float]
def to_string(self) -> str:
"""Return a human-readable description of the data."""
return f"MyData with {len(self.values)} values"
data = MyData(data_name="example", values=[1.0, 2.0, 3.0])
For complete API reference, see the usecase-lib documentation.