begin process at 2010 02 09 21:07:35
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths et Algorithmes

 > ALGORITHME GÉNÉTIQUE MULTIRHREADÉ

ALGORITHME GÉNÉTIQUE MULTIRHREADÉ


 Description

Cliquez pour voir la capture en taille normale
Cet algorithme à pour but final de gérer la construction d'emploi du  temps.
Pour le moment, il se contente de l'essence de l'algorithme génétique : faire survivre des individus (chromosomes), les croiser , et les muter.

Une implémentation du système d'individus est fait avec des phrases. (voir la fonction main)

Vous trouverez les sources dans le .zip (qui est en fait un jar,  e.g la commande java -jar geneticAlgo.zip fonctionne)

Il ne dispose pas d'interface graphique, lancez le en console (ou libre à vous d'en implémenter une , c'est facile, implementez l'interface GeneticAlgorithmObserver)


Source

  • public static void main(String[] args){
  • List<Chromosom> alist = new ArrayList<Chromosom>();
  • alist.add(new WordGA("la boussole du capitaine hadoc"));
  • alist.add(new WordGA("le grand chapeau du duc"));
  • alist.add(new WordGA("les oiseaux chantent"));
  • alist.add(new WordGA("il faut beau à paris"));
  • alist.add(new WordGA("ledit camouflage ne te masqueras point"));
  • alist.add(new WordGA("georges est caché derrière la cabane au fond du jardin"));
  • alist.add(new WordGA("c'est moi le loup"));
  • alist.add(new WordGA("et moi je vais te toucher"));
  • alist.add(new WordGA("le dernier la bas est un glouton"));
  • /*
  • // le petit chaperon rouge
  • */
  • GeneticAlgorithm ga = new GeneticAlgorithm(alist,0.8,100, 0.1,161500);
  • ga.addGeneticAlgorithmObserver(new FirstChromosomDisplayer());
  • System.out.println("Starting ...");
  • double smsec=System.currentTimeMillis();
  • ga.startComputation();
  • ga.waitEnd();
  • double emsec=System.currentTimeMillis();
  • System.out.println("Ending in " + ((emsec-smsec)/1000) + "sec");
  • System.out.println("Result: "+ga.getChromosoms().getChromosomAt(0));
  • System.exit(0);
  • }
  • /* Voici la fonction rateAll qui ordonne le calcul des indice de "survabilité" des chromosomes
  • Le reste est dans le .zip
  • */
  • public void rateAll(){
  • Stack<ProcessableRessource> stack=new Stack<ProcessableRessource>();
  • for(int i = 0;i<curPop;i++){
  • if(infos[i]==null){
  • stack.push(chromosoms[i]);
  • }
  • }
  • BatchTask bt = new BatchTask(stack,new GeneticAlgorithmSurvivorsRatingProcessor(this),null);
  • BatchManager.getInstance().addObserver(this);
  • BatchManager.getInstance().processRessources(bt);
  • waitUnfinishedJobs();
  • }

	public static void main(String[] args){
		
		List<Chromosom> alist = new ArrayList<Chromosom>();
		
		
		alist.add(new WordGA("la boussole du capitaine hadoc"));
		alist.add(new WordGA("le grand chapeau du duc"));
		alist.add(new WordGA("les oiseaux chantent"));
		alist.add(new WordGA("il faut beau à paris"));
		alist.add(new WordGA("ledit camouflage ne te masqueras point"));
		alist.add(new WordGA("georges est caché derrière la cabane au fond du jardin"));
		alist.add(new WordGA("c'est moi le loup"));
		alist.add(new WordGA("et moi je vais te toucher"));
		alist.add(new WordGA("le dernier la bas est un glouton"));
		

		/*
		//					  le petit chaperon rouge
		*/
		
		GeneticAlgorithm ga = new GeneticAlgorithm(alist,0.8,100, 0.1,161500);
		
		ga.addGeneticAlgorithmObserver(new FirstChromosomDisplayer());

		System.out.println("Starting ...");
		
		double smsec=System.currentTimeMillis();
		
		ga.startComputation();
		ga.waitEnd();

		double emsec=System.currentTimeMillis();

		System.out.println("Ending in " + ((emsec-smsec)/1000) + "sec");
		System.out.println("Result: "+ga.getChromosoms().getChromosomAt(0));
		
		System.exit(0);
		
	}



/* Voici la fonction rateAll qui ordonne le calcul des indice de "survabilité" des chromosomes 
Le reste est dans le .zip
*/

	public void rateAll(){
		Stack<ProcessableRessource> stack=new Stack<ProcessableRessource>();
		for(int i = 0;i<curPop;i++){
			if(infos[i]==null){
				stack.push(chromosoms[i]);
			}
		}
		
		
		BatchTask bt = new BatchTask(stack,new GeneticAlgorithmSurvivorsRatingProcessor(this),null);
		
		BatchManager.getInstance().addObserver(this);
		BatchManager.getInstance().processRessources(bt);
		
		waitUnfinishedJobs();
		
	}

 Conclusion

Si vous avez des questions ,commentaires ou remarques, n'hésitez pas !

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources de la même categorie

Source avec Zip CLASSE MATRICE par frankladen11
Source avec Zip Source avec une capture RÉSOLUTION D'ÉQUATION GRÂCE AU CALCUL DES DÉTERMINANTS par frankladen11
Source avec Zip TYPE DE DONNÉES ABSTRAIT GRAPHE par smutsonberg
Source avec Zip Source avec une capture SIMPLEXE ET DUAL par MrRenaud
Source avec Zip ALGORITHME DE BELLMAN, CALCUL DES TEMPS AU PLUS TÔT ET RECHE... par michaelcourcy2005

 Sources en rapport avec celle ci

Source avec Zip CITY, C'EST UN JEU DE VILLE par edouard333
Source avec Zip Source avec une capture ALGORITHME GENETIQUE PROBLEME DU VOYAGEUR DE COMMERCE par sarathai
Source avec Zip TRI TABLEAU D'INTEGER PAR DICHOTOMIE, MAJ par xael2
Source avec Zip CLASS IDENTITEREMARQUABLE.JAVA par The Red Man
Source avec Zip APPLET VOYAGEUR DE COMMERCE ALGORITHMES GÉNÉTIQUES par coucou747

Commentaires et avis

Aucun commentaire pour le moment.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

algorithme génétique [ par lara22 ] slt aider moi à programmer cet algorithme c'est urgent Début 1. Lire (Max Gènes) ; 2. Génération=0 ; 3. Initialiser ( ) ; 4. Evaluer ( ) ; 5. Garder_l Algorithme de création de suite [ par Coach42 ] Bonjour,Je souhaite réaliser un algorithme permettant la création d'une suite de n caractères, pris dans 1 alphabet de 3 éléments, telle que 2 sous su Cherche algorithme Affectations de groupes dans des salles [ par Kotomine ] Bonjour, je cherche un algorithme assez particulier d'affectation de groupes dans des salles.Le problème n'est pas temporel, mais spacial.On dispose d Java et les threads [ par Taz1984 ] Bonjour, Je suis en train de coder une classe qui permet de prendre en entrée un fichier et stocker les informations dans une base données. Cette cl java threads [ par thiernoirm ] salut j'ai un problème pour arreter mes threads . pouvez vous m'aider ? svp voici mon thread : public class monThread extends Thread{ transformer algorithme en java [ par skyfrozen ] Salut tlm je suis vraiment nouveau nouveau à la programmation. j'ai récemment écrit un algorithme pour calculer les ventes d&#8217;un produit en part [BAR]lancer deux threads au meme temps [ par zoya23 ] Bonjour tout le monde! dans une interface graphique, je veux lancer deux threads au meme temps, et chaque thread s'exécute à l'infini et il stope que Deux threads à contrôler en même temps... [ par darkcloud65498 ] Bonjour à tous, je dois faire un projet en groupe, où l'on doit simuler en java le comportement d'une imprimante multifonctions. On doit donc simuler


Nos sponsors


Sondage...

Comparez les prix


HTC Magic

Entre 429€ et 429€

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,811 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales