EgtNumKernel :

- piccole migliorie.
This commit is contained in:
Riccardo Elitropi
2024-02-13 12:29:25 +01:00
parent 31a96af3ba
commit 897b45e549
2 changed files with 5 additions and 7 deletions
+5 -5
View File
@@ -67,7 +67,7 @@ Dijkstra::SetGraph( DBLMATRIX AdjMatrix, int nDestInd) {
// per sicurezza assegno agli elementi sulla diagonale la massima distanza // per sicurezza assegno agli elementi sulla diagonale la massima distanza
for ( int i = 0 ; i < nRows ; ++ i) for ( int i = 0 ; i < nRows ; ++ i)
m_AdjMatrix[i][i] = MAXDIST ; m_AdjMatrix[i][i] = WEIGHT_NO_ADJ ;
// il grafo è valido // il grafo è valido
m_bValid = true ; m_bValid = true ;
@@ -100,7 +100,7 @@ Dijkstra::GetPath( INTVECTOR& vNodePath)
for ( int i = 0 ; i < DIM ; ++ i) { for ( int i = 0 ; i < DIM ; ++ i) {
sNode_toCheck.insert( i) ; sNode_toCheck.insert( i) ;
vNodePath[i] = -1 ; vNodePath[i] = -1 ;
vDists[i] = MAXDIST ; vDists[i] = WEIGHT_NO_ADJ ;
} }
// il nodo sorgente ( in posizione zero) ha distanza nulla // il nodo sorgente ( in posizione zero) ha distanza nulla
vDists[0] = 0. ; vDists[0] = 0. ;
@@ -110,7 +110,7 @@ Dijkstra::GetPath( INTVECTOR& vNodePath)
// cerco il nodo ( tra quelli non ancora visitati) a cui è associata la distanza minima // cerco il nodo ( tra quelli non ancora visitati) a cui è associata la distanza minima
// ( alla prima iterazione il nodo è lo 0) // ( alla prima iterazione il nodo è lo 0)
int nMinInd = -1 ; int nMinInd = -1 ;
double dDistRef = MAXDIST - 1 ; double dDistRef = WEIGHT_NO_ADJ - 1 ;
for ( int i = 0 ; i < DIM ; ++ i) { for ( int i = 0 ; i < DIM ; ++ i) {
// cerco un nodo i disponibile // cerco un nodo i disponibile
set<int>::iterator iter = sNode_toCheck.find( i) ; set<int>::iterator iter = sNode_toCheck.find( i) ;
@@ -122,8 +122,8 @@ Dijkstra::GetPath( INTVECTOR& vNodePath)
nMinInd = i ; nMinInd = i ;
} }
} }
// se nodo non trovato o coincidente alla sorgente ( se presente), allora il percorso è terminato // se nodo non trovato o coincidente alla destinazione ( se presente), allora il percorso è terminato
if ( nMinInd == -1) if ( nMinInd == -1 || nMinInd == m_nDest)
break ; break ;
// escludo il nodo i-esimo trovato // escludo il nodo i-esimo trovato
-2
View File
@@ -36,5 +36,3 @@ class Dijkstra : public IDijkstra
bool m_bValid ; bool m_bValid ;
} ; } ;
const double DIST_NO_ADJ = 1073741823U ;