Admiral/admiral-worker/core/services/OptimizationService.py
2025-06-24 14:22:50 +02:00

27 lines
1.1 KiB
Python

from abc import ABC, abstractmethod
from typing import Callable, Optional
from core.domain.map.RouteMatrix import RouteMatrix
from core.domain.optimization.Optimization import Optimization
from core.domain.optimization.OptimizationPoint import OptimizationPoint
from core.domain.optimization.OptimizationResultData import OptimizationResultData
from core.domain.optimization.OptimizationSolution import OptimizationSolution
from core.domain.optimization.OptimizationVehicle import OptimizationVehicle
from core.domain.optimization.TransportMode import TransportMode
from core.types.Logger import Logger
class OptimizationService(ABC):
@abstractmethod
def vrpOptimization(
self,
optimization: Optimization,
optimizationVehicles: list[OptimizationVehicle],
optimizationPoints: list[OptimizationPoint],
routeMatrices: dict[TransportMode, RouteMatrix],
solutionCallback: Callable[[int, list[OptimizationSolution], bool, list[OptimizationPoint], Optional[dict[int, float]]], None],
terminationCallback: Callable[[], bool],
log: Logger,
initialOptimizationResultData: Optional[OptimizationResultData]):
pass