gilmourish
Messages postés2Date d'inscriptionmardi 13 avril 2010StatutMembreDernière intervention19 avril 2010
-
17 avril 2010 à 15:50
tlaloctzin
Messages postés136Date d'inscriptionmercredi 21 juin 2006StatutMembreDernière intervention12 septembre 2013
-
19 avril 2010 à 08:56
concernant un conception d'un algorithme génétique il y'a quelqu'un qui peut m'aider? je veux la génération aléatoire d'une population de n individus,un individu est une suite de nœud(objet) contenant 3 paramètres
****classe individu*****:
ublic class individu {
Vector T;
static Vector indiv;
int n;
public individu(Vector T,Random r )
{
this.T=T;
indiv=new Vector();
n=T.size();
Vector index=new Vector();
for(int i=0;i<n;i++)
{
int a;
Integer ind;
do{
a=(int)(r.nextFloat()*n);
if(a==n+1)ind=new Integer(n);
else ind=new Integer(a);
}while(index.indexOf(ind)!=-1 );
index.addElement(ind);
indiv.addElement(T.elementAt(ind.intValue()));
}
}
}
****classe population*****
public class population {
int n;
Vector pop;
Random r;
public population(int n,Vector T)//Cré une Population de n individu aléatoirement
{
this.n=n;
r=new Random();
pop=new Vector();
for(int i=0;i<n;i++)
{
pop.addElement((new individu(T,r)));
System.out.println( pop.elementAt(i));
}
}
} j'ai obtenu une résultat sous la forme de:
ndividuc.individu@119298d
ndividuc.individu@f72617
ndividuc.individu@1e5e2c3
ndividuc.individu@18a992f
ndividuc.individu@4f1d0d
...
...
alors que je veux 10 individus et n'importe quelle representaion de l'individu.
tlaloctzin
Messages postés136Date d'inscriptionmercredi 21 juin 2006StatutMembreDernière intervention12 septembre 20133 18 avril 2010 à 22:04
Tout dabord bonjour ca fais pas de mal....
Ensuite
pop.elementAt(i);
Ca retourne une instance de classe et pas un objet dont tu peux extirper les proprietes , puis tu parles d'optimisation , ton code est difficilement lisible quand tu cherches un element dedans c est chaud de se souvenir pourquoi tu le cherches quand tu l'as trouvé....
Et pour finir qu'entends tu par "n'importe quelle representaion de l'individu. " ?
Il vaut mieu être riche et en bonne santé que pauvre et malade .
gilmourish
Messages postés2Date d'inscriptionmardi 13 avril 2010StatutMembreDernière intervention19 avril 2010 19 avril 2010 à 00:46
bonsoir
alors je décris mon problème,c'est l'optimisation d'un problème de transport multimodale avec un algorithme génétique distribué.
une solution(individu) est représentée sous forme de succession de nœuds que j'ai les mis dans un vecteur (noueud1->noeud2->noeud3->...)en fait c'est un itinéraire en tenant compte que chaque nœud comporte 3 attributs (numéro,temps,cout)
*constructeur nœud: public nœud( int numéro,int temps,int cout).
*une population est un ensemble d'individu représente sous forme de vecteur,
constructeur population(Vector t,int n)\\ n est le nombre d'individu
mon problème qu'après un test(indiv.LastElement())le vecteur est vide
la représentation que je veux par exemple***
**la population est**
1,2,3,6,7
1,5,4,6,7
....
....
ahh j'ai oublié voila la classe noeud
public class noeud {
int nbr;
int temps;
int cout;
public noeud(int nbr,int temps,int cout)
{
this.nbr=nbr;
this.temps=temps;
this.cout=cout;
} public int getnbr ()
{
return nbr;}
public int gettemps()
{
return temps;}
public int getcout()
{
return cout;}