From d8d425a922f139a52914c0beae1755cb1aa590a0 Mon Sep 17 00:00:00 2001 From: Kilian Scheidecker Date: Thu, 23 May 2024 10:39:14 +0200 Subject: [PATCH] added dataclass --- backend/app/main.py | 22 +++++++++++----------- backend/app/src/optimizer.py | 11 ++++++----- 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/backend/app/main.py b/backend/app/main.py index d7e153c..17ba5c6 100644 --- a/backend/app/main.py +++ b/backend/app/main.py @@ -1,5 +1,5 @@ from src.optimizer import solve_optimization -from src.optimizer import landmark +from src.optimizer import Landmark from fastapi import FastAPI app = FastAPI() @@ -12,18 +12,18 @@ def main(max_steps: int, print_details: bool): #max_steps = 16 - # Initialize all landmarks (+ start and goal). Order matters here - landmarks = [] - landmarks.append(landmark("départ", -1, (0, 0))) - landmarks.append(landmark("tour eiffel", 99, (0,2))) # PUT IN JSON - landmarks.append(landmark("arc de triomphe", 99, (0,4))) - landmarks.append(landmark("louvre", 99, (0,6))) - landmarks.append(landmark("montmartre", 99, (0,10))) - landmarks.append(landmark("concorde", 99, (0,8))) - landmarks.append(landmark("arrivée", -1, (0, 0))) + # Initialize all Landmarks (+ start and goal). Order matters here + Landmarks = [] + Landmarks.append(Landmark("départ", -1, (0, 0))) + Landmarks.append(Landmark("tour eiffel", 99, (0,2))) # PUT IN JSON + Landmarks.append(Landmark("arc de triomphe", 99, (0,4))) + Landmarks.append(Landmark("louvre", 99, (0,6))) + Landmarks.append(Landmark("montmartre", 99, (0,10))) + Landmarks.append(Landmark("concorde", 99, (0,8))) + Landmarks.append(Landmark("arrivée", -1, (0, 0))) - visiting_order = solve_optimization(landmarks, max_steps, print_details) + visiting_order = solve_optimization(Landmarks, max_steps, print_details) #return visiting_order diff --git a/backend/app/src/optimizer.py b/backend/app/src/optimizer.py index 2681469..527b8eb 100644 --- a/backend/app/src/optimizer.py +++ b/backend/app/src/optimizer.py @@ -1,14 +1,15 @@ from scipy.optimize import linprog import numpy as np from scipy.linalg import block_diag +from dataclasses import dataclass # Defines the landmark class (aka some place there is to visit) -class landmark : - def __init__(self, name: str, attractiveness: int, loc: tuple): - self.name = name - self.attractiveness = attractiveness - self.loc = loc +@dataclass +class Landmark : + name : str + attractiveness : int + loc : tuple # Convert the solution of the optimization into the list of edges to follow. Order is taken into account def untangle(resx: list) :