style corrections, documentation, duplicate removal, flow improvement
This commit is contained in:
@@ -1,17 +1,19 @@
|
||||
import pandas as pd
|
||||
|
||||
from typing import List
|
||||
from landmarks_manager import LandmarkManager
|
||||
import logging
|
||||
from fastapi.encoders import jsonable_encoder
|
||||
|
||||
from optimizer import Optimizer
|
||||
from refiner import Refiner
|
||||
from structs.landmarks import Landmark
|
||||
from utils.landmarks_manager import LandmarkManager
|
||||
from utils.optimizer import Optimizer
|
||||
from utils.refiner import Refiner
|
||||
from structs.landmark import Landmark
|
||||
from structs.linked_landmarks import LinkedLandmarks
|
||||
from structs.preferences import Preferences, Preference
|
||||
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
# Helper function to create a .txt file with results
|
||||
def write_data(L: List[Landmark], file_name: str):
|
||||
def write_data(L: list[Landmark], file_name: str):
|
||||
|
||||
data = pd.DataFrame()
|
||||
i = 0
|
||||
@@ -23,8 +25,10 @@ def write_data(L: List[Landmark], file_name: str):
|
||||
data.to_json(file_name, indent = 2, force_ascii=False)
|
||||
|
||||
|
||||
def test(start_coords: tuple[float, float], finish_coords: tuple[float, float] = None) -> List[Landmark]:
|
||||
def test(start_coords: tuple[float, float], finish_coords: tuple[float, float] = None) -> list[Landmark]:
|
||||
manager = LandmarkManager()
|
||||
optimizer = Optimizer()
|
||||
refiner = Refiner(optimizer=optimizer)
|
||||
|
||||
|
||||
preferences = Preferences(
|
||||
@@ -42,7 +46,7 @@ def test(start_coords: tuple[float, float], finish_coords: tuple[float, float] =
|
||||
score = 5),
|
||||
|
||||
max_time_minute=180,
|
||||
detour_tolerance_minute=0
|
||||
detour_tolerance_minute=30
|
||||
)
|
||||
|
||||
# Create start and finish
|
||||
@@ -71,15 +75,15 @@ def test(start_coords: tuple[float, float], finish_coords: tuple[float, float] =
|
||||
landmarks_short.append(finish)
|
||||
|
||||
# First stage optimization
|
||||
optimizer = Optimizer(max_time=preferences.max_time_minute, landmarks=landmarks_short)
|
||||
base_tour = optimizer.solve_optimization()
|
||||
base_tour = optimizer.solve_optimization(max_time=preferences.max_time_minute, landmarks=landmarks_short)
|
||||
|
||||
# Second stage using linear optimization
|
||||
refiner = Refiner(max_time = preferences.max_time_minute, detour = preferences.detour_tolerance_minute)
|
||||
refined_tour = refiner.refine_optimization(all_landmarks=landmarks, base_tour=base_tour)
|
||||
refined_tour = refiner.refine_optimization(all_landmarks=landmarks, base_tour=base_tour, max_time = preferences.max_time_minute, detour = preferences.detour_tolerance_minute)
|
||||
|
||||
linked_tour = LinkedLandmarks(refined_tour)
|
||||
logger.info(f"Optimized route: {linked_tour}")
|
||||
|
||||
return refined_tour
|
||||
return linked_tour
|
||||
|
||||
|
||||
#test(tuple((48.8344400, 2.3220540))) # Café Chez César
|
||||
|
Reference in New Issue
Block a user