commentaires inutiles enlevés, ajout ProblmeOuvert.odt
这个提交包含在:
父节点
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
普通文件
二进制
problemeOuvert.odt
普通文件
二进制文件未显示。
正在加载…
在新工单中引用