1st commit since pif's resurrection
code/GuiNuMo-server/server.cc * Ajout de la sélection du point à renvoyer, à chaque étape de l'algorithme dans fastViterbi(). * Correction d'un bogue causé par les #ifdef de débogage. code/GuiNuMo-server/cfg/ Ajout de deux fichiers de configuration : * topo.csv, donnant la liste et les coordonnées des pièces (pour l'instant seulement du premier étage). * distances.csv, décrivant les distances entre les points de référence clefs pour utiliser avec FRBHM. git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@36 785a6c6c-259e-4ff1-8b91-dc31627914f0
This commit is contained in:
parent
594fb84bc4
commit
36f1a4dc45
|
@ -0,0 +1,21 @@
|
|||
# Pour chaque pièce on prend le point (0;3) du référentiel pièce.
|
||||
# X;Y;Z;D1;X1;Y1;Z1;D2;X2;Y2;Z2;…;Dn;Xn;Yn;Zn
|
||||
# Le point (X;Y;Z) est en visibilité du point (Xn;Yn;Zn). Dn est un entier dont la valeur est égale à 1 si le lien est bidirectionnel, et à 0 s'il est unidirectionnel (auquel cas le lien sera enregistré comme allant uniquement de (X;Y;Z) à (Xn;Yn;Zn)).
|
||||
|
||||
# 1100
|
||||
3.00;5.48;3.00;1;7.50;7.00;3.00
|
||||
|
||||
# 0190
|
||||
3.00;9.09;3.00;1;7.50;7.00;3.00
|
||||
|
||||
# 0180
|
||||
3.00;12.67;3.00;1;8.00;14.00;3.00
|
||||
|
||||
# 1070
|
||||
3.00;16.30;3.00;1;8.00;14.00;3.00
|
||||
|
||||
# 1060 (Vérifier coordonnées)
|
||||
4.00;22.00;3.00;1;7.50;22.00;3.00
|
||||
|
||||
# 1050
|
||||
4.00;28.00;3.00;1;7.50;28.00;3.00
|
|
|
@ -0,0 +1,12 @@
|
|||
1100;1.00;7.28;6.05;3.70;3.00
|
||||
0190;1.00;10.88;6.05;7.28;3.00
|
||||
0180;1.00;14.48;6.05;10.88;3.00
|
||||
1070;1.00;18.12;6.05;14.48;3.00
|
||||
1060;1.00;25.32;6.05;18.12;3.00
|
||||
1050;1.00;31.40;6.05;25.32;3.00
|
||||
CouloirN1;5.00;3.70;6.05;0.50;3.00
|
||||
CouloirN1;6.05;29.50;8.20;0.50;3.00
|
||||
CouloirN1;8.20;16.50;10.00;10.88;3.00
|
||||
WC;8.20;9.00;10.00;0.50;3.00
|
||||
1105;8.20;10.88;10.00;9.00;3.00
|
||||
1095;8.20;29.30;10.00;24.80;3.00
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
#define TEST
|
||||
#define DEBUG // Décommenter pour avoir de l'affichage en plus.
|
||||
#define DEBUG_2 // Décommenter pour avoir encore plus d'affichage.
|
||||
//#define DEBUG_2 // Décommenter pour avoir encore plus d'affichage.
|
||||
|
||||
|
||||
|
||||
|
@ -925,6 +925,7 @@ void Server::fastViterbiLike(const unsigned short &N, const unsigned short &K, c
|
|||
#endif // TEST
|
||||
|
||||
int i = 1 ; // Nombre d'ensembles d'historique qu'on a déjà passés
|
||||
unsigned int V0_min_k = 0 ; // Indice du point sélectionné à chaque itération
|
||||
|
||||
if (N < 2)
|
||||
{
|
||||
|
@ -932,18 +933,26 @@ void Server::fastViterbiLike(const unsigned short &N, const unsigned short &K, c
|
|||
return ;
|
||||
}
|
||||
|
||||
#ifdef TEST
|
||||
unsigned int pt = 0 ;
|
||||
#ifdef DEBUG
|
||||
cout << reference_point_list.size() << " points de référence, " << peregrination_point_list.size() << " points de pérégrination." << endl ;
|
||||
|
||||
cout << reference_point_list.size() << " points de référence" ;
|
||||
#ifdef TEST
|
||||
cout << ", " << peregrination_point_list.size() << " points de pérégrination." << endl ;
|
||||
#else // TEST
|
||||
cout << '.' << endl ;
|
||||
#endif // TEST
|
||||
#endif // DEBUG
|
||||
#ifdef DEBUG_2
|
||||
cout << "***** Liste pts référence : *****" << endl ;
|
||||
printReferencePointList() ;
|
||||
#ifdef TEST
|
||||
cout << "***** Liste pérégrination : *****" << endl ;
|
||||
printPointList(peregrination_point_list) ;
|
||||
#endif // TEST
|
||||
cout << "*********************************" << endl ;
|
||||
#endif // DEBUG
|
||||
#endif // DEBUG_2
|
||||
|
||||
#ifdef TEST
|
||||
unsigned int pt = 0 ;
|
||||
while (pt < peregrination_point_list.size())
|
||||
#else // TEST
|
||||
while (true)
|
||||
|
@ -991,17 +1000,30 @@ void Server::fastViterbiLike(const unsigned short &N, const unsigned short &K, c
|
|||
}
|
||||
}
|
||||
|
||||
/* Choix du min à renvoyer */
|
||||
/* Choix du point à renvoyer */
|
||||
V0_min_k = 0 ; // Indice du point correspondant au V0 minimal. Si le tableau n'est pas plein, la plus petite valeur a l'indice 0 (car getkClosestInSs() renvoit un résultat trié).
|
||||
if (N-1-i == 0)
|
||||
{
|
||||
#ifdef DEBUG
|
||||
float V0_min = V[0][0] ;
|
||||
cout << "V[0][0]=" << V[0][0] << " ; V0_min=" << V0_min << " ; V0_min_k=" << V0_min_k << " -- " ;
|
||||
#endif // DEBUG
|
||||
for (int k=1 ; k < K ; k++)
|
||||
{
|
||||
if (V[0][k] < V0_min)
|
||||
V0_min = V[0][k] ;
|
||||
cout << "V[0][" << k << "]=" << V[0][k] << " ; V0_min=" << V0_min << " -- " ;
|
||||
{
|
||||
V0_min_k = k ;
|
||||
#ifdef DEBUG
|
||||
V0_min = V[0][k] ;
|
||||
#endif // DEBUG
|
||||
}
|
||||
#ifdef DEBUG
|
||||
cout << "V[0][" << k << "]=" << V[0][k] << " ; V0_min=" << V0_min << " ; V0_min_k=" << V0_min_k << " -- " ;
|
||||
#endif // DEBUG
|
||||
}
|
||||
cout << "V0_min = " << V0_min << endl ;
|
||||
#ifdef DEBUG
|
||||
cout << "V0_min = " << V0_min << " ; V0_min_k=" << V0_min_k << endl ;
|
||||
#endif // DEBUG
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1014,7 +1036,8 @@ void Server::fastViterbiLike(const unsigned short &N, const unsigned short &K, c
|
|||
cout << "[" << V[n][k] << "]" ;
|
||||
cout << endl ;
|
||||
}
|
||||
cout << "\n--------------------------" << endl ;
|
||||
cout << "Point sélectionné : " << E_current[V0_min_k] << endl ;
|
||||
cout << "--------------------------" << endl ;
|
||||
#endif // DEBUG
|
||||
|
||||
if (i < N-1)
|
||||
|
|
Loading…
Reference in New Issue