LabelStar et commencement problème ouvert
Questo commit è contenuto in:
parent
fc04ffa90b
commit
585e5a1329
3 ha cambiato i file con 85 aggiunte e 6 eliminazioni
|
|
@ -40,7 +40,7 @@ public class Label implements Comparable<Label> {
|
|||
return coutRealise;
|
||||
}
|
||||
|
||||
public double getCost() {
|
||||
public double getTotalCost() { //est override dans LabelStar
|
||||
return coutRealise;
|
||||
}
|
||||
|
||||
|
|
@ -52,11 +52,11 @@ public class Label implements Comparable<Label> {
|
|||
@Override
|
||||
public int compareTo(Label L) {
|
||||
int retour;
|
||||
if (coutRealise == L.getCoutRealise()) {
|
||||
if (coutRealise == L.getTotalCost()) {
|
||||
retour = 0;
|
||||
}
|
||||
else {
|
||||
retour = (int) (coutRealise - L.getCoutRealise());
|
||||
retour = (int) (coutRealise - L.getTotalCost());
|
||||
}
|
||||
return retour;
|
||||
|
||||
|
|
|
|||
|
|
@ -2,15 +2,19 @@ package org.insa.graphs.algorithm.shortestpath;
|
|||
|
||||
import org.insa.graphs.model.Arc;
|
||||
import org.insa.graphs.model.Node;
|
||||
import static org.insa.graphs.model.Point.distance;
|
||||
|
||||
public class LabelStar extends Label {
|
||||
|
||||
public LabelStar(Node sommetCourant, Boolean marque, double coutRealise, Arc pere) {
|
||||
private Node destination;
|
||||
public LabelStar(Node sommetCourant, Boolean marque, double coutRealise, Arc pere,Node destination) {
|
||||
super(sommetCourant, marque, coutRealise, pere);
|
||||
this.destination=destination;
|
||||
}
|
||||
|
||||
public double getCoutRealise() {
|
||||
return (getCost()+); // getCost est pareil que coutRealise
|
||||
@Override
|
||||
public double getTotalCost() { //pourquoi CoutRealise ? psq il est utilisé dans le compareTo
|
||||
return (getCoutRealise()+distance(getSommetCourant().getPoint(),this.destination.getPoint()));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,75 @@
|
|||
// ce fichier n'est qu'en pseudo code
|
||||
|
||||
|
||||
/* je considère que les 200km d'autonomie atteint (200km avec le 22 kWh - Q90 Renault ZOE chargé à 90%)
|
||||
cette autonomie est considéré en ville à 200km (à 30km/h de moyenne)
|
||||
en mixte elle devient 154 km (47km/h de moyenne) ~3/4 de l'autonmie
|
||||
en autoroute uniquement 102 km (120km/h de moyenne) ~1/2 de l'autonomie
|
||||
|
||||
Problème il y a 20 types de ROADTYPE :
|
||||
|
||||
Routes principales
|
||||
|
||||
MOTORWAY : Autoroute — voie rapide, à accès contrôlé, sans intersections à niveau, souvent interdite aux piétons, cyclistes, etc.
|
||||
|
||||
TRUNK : Route principale (quasi autoroute) — grande route interurbaine importante, parfois à accès limité, avec peu d’intersections.
|
||||
|
||||
PRIMARY : Route nationale — dessert les grandes villes, avec un trafic important, mais moins prioritaire qu'une "trunk".
|
||||
|
||||
SECONDARY : Route secondaire — relie des villes moyennes ou des centres régionaux.
|
||||
|
||||
TERTIARY : Route tertiaire — dessert des petites villes ou relie des routes secondaires.
|
||||
|
||||
Branches ou bretelles
|
||||
|
||||
MOTORWAY_LINK : Bretelle d’accès ou de sortie d’autoroute.
|
||||
|
||||
TRUNK_LINK : Bretelle ou jonction vers une route "trunk".
|
||||
|
||||
PRIMARY_LINK : Bretelle reliant une route "primary".
|
||||
|
||||
SECONDARY_LINK : Bretelle reliant une route "secondary".
|
||||
|
||||
Réseau local
|
||||
|
||||
RESIDENTIAL : Rue résidentielle — dans un quartier d’habitation, circulation modérée.
|
||||
|
||||
UNCLASSIFIED : Petite route rurale ou de desserte locale, souvent utilisée par défaut si la classification est inconnue.
|
||||
|
||||
LIVING_STREET : Rue résidentielle apaisée — priorité aux piétons, vitesse très réduite (zone de rencontre).
|
||||
|
||||
SERVICE : Voie de service — accès à des bâtiments, parkings, zones industrielles ou fermes.
|
||||
|
||||
Autres types de voies
|
||||
|
||||
ROUNDABOUT : Rond-point — configuration de carrefour circulaire, souvent classée selon le type de route qu’elle relie.
|
||||
|
||||
PEDESTRIAN : Rue piétonne — réservée principalement ou exclusivement aux piétons.
|
||||
|
||||
CYCLEWAY : Piste cyclable — voie dédiée aux vélos.
|
||||
|
||||
TRACK : Chemin agricole ou forestier — destiné aux véhicules tout-terrain ou agricoles, pas pour le trafic général.
|
||||
|
||||
COASTLINE : Littoral — ligne représentant la côte, utilisée pour délimiter les terres et les mers (pas une route au sens circulable).
|
||||
|
||||
|
||||
Donc en fonction de chaque roadtype il faudrait définir quelle autnomie nous avons. Par exemple si on fait de l'autoroute, 1km = 2km d'autonomie
|
||||
|
||||
Après avoir fait les ratios pour chaque roadType qu'on peut obtenir dans roadInformation dans chaque Arc parcouru
|
||||
|
||||
getMinimumTravelTime et getLenght*autonomieSurCeRoadType pour l'autonomie qu'on perd pour chaque arc
|
||||
|
||||
=> pour simplifier les choses on va estimer qu'on roule toujours à la vitesse maximale autorisée
|
||||
comme cela on peut avoir le TravelTime avec getTravelTime pour pour le chemin le plus court
|
||||
et nous n'avons pas besoin d'associer une vitesse à chaque roadtype, juste une perte d'autonomie
|
||||
|
||||
//Rappel les bornes de recharges ne sont que sur les autoroutes !
|
||||
=> va falloir prévilégier l'autoroute ? on va plus vite et on recharge seulement en 2mn
|
||||
c'est donc l'option la plus rapide pour le temps
|
||||
|
||||
|
||||
concrètement dans le Dijkstra il va falloir rajouter une composante. Après le if 'newCost <'...
|
||||
il faut vérifier que l'autonomie est correcte
|
||||
|
||||
|
||||
*/
|
||||
Caricamento…
Crea riferimento in una nuova segnalazione