27 lines
1.1 KiB
Python
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
|