1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| Vector Regroupement=new Vector();//permet d'enregistrer tous les regropement
public Vector Test(Vector classes,float [][]matriceDisDoc, Vector globale)
{
Vector regroupement=new Vector();
int i=0;
int j=0;
int imax=-1;// pour la suppresion de elements regrouper dans le vecteur
int jmax=-1;// pour la suppresion de elements regrouper dans le vecteur
float dismax=0;
float []tabdis=new float[4];
float Inertie_Intra=0;
float Inertie_Inter=0;
float InertieTotale=0;
// boolean trouve=false;
matricedistanceclasse=new float[classes.size()][classes.size()];
for(i=0;i<classes.size()-1;i++)
{
for(j=i+1;j<classes.size();j++)
{
Classe e1=new Classe();
e1=(Classe)classes.elementAt(i);
Classe e2=new Classe();
e2=(Classe)classes.elementAt(j);
tabdis=distanceEntreDeuxClasses(e1,e2,matriceDisDoc,globale);
float d=tabdis[0];
matricedistanceclasse[i][j]=d;//distance entre deux classe
// calcul de l'inerite
if(d>dismax)
{
dismax=d;
imax=i;
jmax=j; }
}
}
System.out.println();
if(jmax!=-1)
{
Classe dc=new Classe();
dc=(Classe)(classes.elementAt(jmax));
//regrouper jmax a imax et supprimmer jmax
for(int h1=0;h1<dc.points.size();h1++)
((Classe)(classes.elementAt(imax))).points.add(((Classe) (classes.elementAt(jmax))).points.elementAt(h1)); classes.remove(jmax);
Regroupement.add(classes)//Pb: dans le vecteur Regroupement je trouve toujous la mise ajour de classes }
if(classes.size()>1)
Test(classes,matriceDisDoc,globale);
return classes;
} |
Partager