added some ideas

This commit is contained in:
2024-07-07 10:17:50 +02:00
parent 006b80018a
commit e71c92da40
12 changed files with 4247 additions and 355 deletions

View File

@@ -6,8 +6,8 @@ from typing import List
from landmarks_manager import generate_landmarks
from fastapi.encoders import jsonable_encoder
from optimizer import solve_optimization
from optimizer_v2 import generate_path, generate_path2
from optimizer_v4 import solve_optimization
from optimizer_v2 import generate_path
from refiner import refine_optimization, refine_path
from structs.landmarks import Landmark
from structs.landmarktype import LandmarkType
@@ -94,9 +94,10 @@ def test4(coordinates: tuple[float, float]) -> List[Landmark]:
# Generate the landmarks from the start location
landmarks, landmarks_short = generate_landmarks(preferences=preferences, coordinates=start.location)
#write_data(landmarks, "landmarks.txt")
#write_data(landmarks, "landmarks_Lyon.txt")
# Insert start and finish to the landmarks list
#landmarks_short = landmarks_short[:4]
landmarks_short.insert(0, start)
landmarks_short.append(finish)
@@ -104,24 +105,29 @@ def test4(coordinates: tuple[float, float]) -> List[Landmark]:
with open (os.path.dirname(os.path.abspath(__file__)) + '/parameters/optimizer.params', "r") as f :
parameters = json.loads(f.read())
max_landmarks = parameters['max landmarks']
max_walking_time = 45 # minutes
detour = 10 # minutes
max_walking_time = 120 # minutes
detour = 30 # minutes
# First stage optimization
#base_tour = solve_optimization(landmarks_short, max_walking_time*60, True)
#base_tour = solve_optimization(landmarks_short, max_walking_time, True)
#base_tour = solve_optimization(landmarks_short, max_walking_time, True)
# First stage using NetworkX
base_tour = generate_path2(landmarks_short, max_walking_time, max_landmarks)
base_tour = generate_path(landmarks_short, max_walking_time, max_landmarks)
# Second stage using linear optimization
#refined_tour = refine_optimization(landmarks, base_tour, max_walking_time+detour, True)
refined_tour = refine_optimization(landmarks, base_tour, max_walking_time+detour, True)
# Second stage using NetworkX
#refined_tour = refine_path(landmarks, base_tour, max_walking_time+detour, True)
# Use NetworkX again to correct to shortest path
refined_tour = refine_path(landmarks, base_tour, max_walking_time+detour, True)
#refined_tour = refine_path(landmarks, base_tour, max_walking_time+detour, True)
return base_tour
return refined_tour
#test4(tuple((48.8344400, 2.3220540))) # Café Chez César