commentaires inutiles enlevés, ajout ProblmeOuvert.odt

这个提交包含在:
Matteo Sabben 2025-05-27 09:07:49 +02:00
父节点 30c07907c1
当前提交 8a8c6188c8
共有 5 个文件被更改,包括 5 次插入42 次删除

查看文件

@ -1 +0,0 @@
,bezza,insa-10821,20.05.2025 11:05,file:///home/bezza/.config/libreoffice/4;

查看文件

@ -78,13 +78,11 @@ public class DijkstraAlgorithm extends ShortestPathAlgorithm {
if (newCost < succLabel.getCoutRealise()) { if (newCost < succLabel.getCoutRealise()) {
if (succLabel.getCoutRealise() != Double.POSITIVE_INFINITY) { if (succLabel.getCoutRealise() != Double.POSITIVE_INFINITY) {
heap.remove(succLabel); heap.remove(succLabel);
//System.out.println(succLabel.getTotalCost());// print de confirmation , pour verif si tous les couts qui sortent du tas sont croissant. getTotalcost pas croissant!!
} }
succLabel.setCoutRealise(newCost); succLabel.setCoutRealise(newCost);
succLabel.setPere(arc); succLabel.setPere(arc);
predecessorArcs[succ.getId()] = arc; predecessorArcs[succ.getId()] = arc;
// Insertion dans le tas car on est sûr qu'il n'est pas
heap.insert(succLabel); heap.insert(succLabel);

查看文件

@ -19,27 +19,13 @@ public class LabelStar extends Label {
//pour optimiser l'algo : ATTENTION PAS à L'initialisation pas le faire sinon ça va le faire pr tout les pts //pour optimiser l'algo : ATTENTION PAS à L'initialisation pas le faire sinon ça va le faire pr tout les pts
//on rajoute un paremètre distance ds le label et quand on passe sur le label si c'est linfini on le calcule //on rajoute un paremètre distance ds le label et quand on passe sur le label si c'est linfini on le calcule
/*@Override
public double getTotalCost() { //pourquoi getTotalCost ? psq il est utilisé dans le compareTo
//System.out.println("cout realise : " + getCoutRealise()+ "\n distance : "distance(getSommetCourant().getPoint(),this.destination.getPoint()));
double cout=getCoutRealise();
Point calcul = this.pathData.getDestination().getPoint();
cout+=calcul.distanceTo(this.getSommetCourant().getPoint());
return (cout);
}*/
//pas nécessaire normalement
/*public int compareTo(LabelStar other) {
return Double.compare(this.getTotalCost(), other.getTotalCost());
}*/
/** /**
* Calcule le coût total estimé (f = g + h) pour l'algorithme A*. * Calcule le coût total estimé (f = g + h) pour l'algorithme A*.
* g (getCoutRealise()) est le coût actuel depuis le départ. * g (getCoutRealise()) est le coût actuel depuis le départ.
* h est l'heuristique : * h est :
* - En mode DISTANCE: distance à vol d'oiseau (via distanceTo) jusqu'à la destination. * - En mode DISTANCE: distance à vol d'oiseau
* - En mode TEMPS: distance à vol d'oiseau (via distanceTo) / vitesse maximale sur le graphe. * - En mode TEMPS: distance à vol d'oiseau / vitesse maximale sur le graphe.
* @return Le coût total estimé.
*/ */
@Override @Override
public double getTotalCost() { public double getTotalCost() {
@ -51,7 +37,7 @@ public class LabelStar extends Label {
Point currentPoint = current.getPoint(); Point currentPoint = current.getPoint();
Point destinationPoint = destinationNode.getPoint(); Point destinationPoint = destinationNode.getPoint();
if (currentPoint == null || destinationPoint == null) { if (currentPoint == null || destinationPoint == null) {
return gCost; // Heuristique nulle si points non valides return gCost; // si point null => on retourne juste le coût
} }
//calcul vol d'oiseau //calcul vol d'oiseau
@ -66,7 +52,6 @@ public class LabelStar extends Label {
hCost = distanceToDestinationMeters / maxSpeedMpS; // hCost est maintenant en secondes hCost = distanceToDestinationMeters / maxSpeedMpS; // hCost est maintenant en secondes
} else { } else {
// Heuristique pour le mode DISTANCE (ou par défaut)
hCost = distanceToDestinationMeters; // hCost est en mètres hCost = distanceToDestinationMeters; // hCost est en mètres
} }

查看文件

@ -81,19 +81,7 @@ Autres types de voies
Aux nœuds d'autoroute, on offre la possibilité de "recharger", ce qui crée une nouvelle option (un nouveau label avec batterie pleine et coût de recharge Aux nœuds d'autoroute, on offre la possibilité de "recharger", ce qui crée une nouvelle option (un nouveau label avec batterie pleine et coût de recharge
ajouté) pour ce même nœud, à insérer dans le tas. ajouté) pour ce même nœud, à insérer dans le tas.
labels[data.getOrigin().getId()] = new LabelBattery(data.getOrigin(), false, 0, null, MAX_AUTONOMY); pour l'initialisation
//permet de savoir si un node est un noeud d'autoroute
private boolean isHighwayNode(Node node) {
// Un nœud est sur une autoroute si au moins un de ses arcs entrants ou sortants est une autoroute.
// RoadType est accessible via arc.getRoadInfo().getType()
for (Arc arc : node.getSuccessors()) {
if (arc.getRoadInfo().getType().equals(RoadType.MOTORWAY)) {
return true;
}
}
return false;
} }
normalement juste faut faire le verif de newcost avec l'autonomie normalement juste faut faire le verif de newcost avec l'autonomie
@ -158,13 +146,6 @@ public class ProblemeOuvert extends DijkstraAlgorithm {
}*/ }*/
/*@Override
protected void fonctionProblemeOuvert(RoadType typeDeRoute,LabelProblemeOuvert[] labels, BinaryHeap<LabelProblemeOuvert> heap, Node node,
double newCost, Arc pere){
if (typeDeRoute == RoadType.MOTORWAY) {
tryUpdateLabel(labels, heap,node, newCost, MAX_BATTERY, pere);
}
}*/
@Override @Override

二进制
problemeOuvert.odt 普通文件

二进制文件未显示。