style corrections, documentation, duplicate removal, flow improvement

This commit is contained in:
2024-07-25 17:15:18 +02:00
parent 80b3d5b012
commit 2863c99d7c
12 changed files with 314 additions and 348 deletions

View File

@@ -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