Intelligence artificielle: algo génétique, voyageur de commerce avec qt (trolltech)

Soyez le premier à donner votre avis sur cette source.

Vue 26 908 fois - Téléchargée 3 107 fois

Description

La théorie de l'évolution de Darwin appliquée à l'informatique:
Cette application développé avec les librairie qt de chez trolltech (www.trolltech.com) est un exemple d'utilisation des algorithmes génétiques.

Le problème du voyageur de commerce est un problème NP-complet qui consiste à déterminer l'itinéraire le plus court pour joindre N villes. La résolution de ce type de problème prend un temps qui croît de manière exponentielle avec le nombre de ville.

A partir d'une population initiale d'organisme. On sélectionne ceux qui sont les mieux adapté aux problème. C'est dire tel que les itinéraires codés sur leur ADN sont les plus courts parmis l'ensemble des individus. Ils sont ensuite croisés entre eux afin de créer la nouvelle génération. Les organismes enfants sont ensuite sélectionnés en fonction de leur adaptation au problème ... on les recroise entre eux ... etc ... etc. On fini par évoluer vers la meilleur solution.

Conclusion :


Compiler avec les librairies qt-3.0.3-11 ou supérieur. www.trolltech.com

Mises à jour à venir:
===============
Pour l'instant l'algorithme de base fonctionne... Mais je dois encore travailler dessus pour regler en temps réel les paramètres tel que le nombre d'organismes par population et le pourcentage de mutation. Même si les sliders sont déjà prévu, je n'ai pas encore codé cela réellement ou du moins convenablement. Un peu de patience

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
8
Date d'inscription
dimanche 11 avril 2004
Statut
Membre
Dernière intervention
4 juin 2008

merci...
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008

De un: c'est bcp plus de 100 solutions par seconde
De deux: les algos génétiques ne trouvent qu'une solution approchée
De trois: le fait que le site propose du contenu scientifique n'en fait pas une source sûre ;)

Mais de fait, l'intérêt d'un algo qui approxime plutôt bien (quand c'est bien configuré et codé) très rapidement est certain.
Messages postés
4
Date d'inscription
dimanche 24 avril 2005
Statut
Membre
Dernière intervention
3 juin 2005

pour vous mettre tous d'accord j'ai lu je sai pu ou sur le net mais sur un site de science, donc sur , que le temps pour calculer le trajet du voyageur de commerce sur 40 villes pour un ordi calculant 100 solutions par secondes, par methode classique est de la moitié de l'age de l'univers (2e40 ou un truc comme ca) alors que par les algo genetique ca prend qq minutes voila l'interet, cherhcez avec google ya plein de site super riche sur les algo genetique
Messages postés
65
Date d'inscription
vendredi 17 octobre 2003
Statut
Membre
Dernière intervention
21 mai 2008

je sais que java utilise un code intermédiaire et qu'il est interprété par la machine virtuelle. Il s'agit de ByteCode ... mais en temps normalle entre ASM et code machine je ne vois pas d'intermédiaire.
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008

par "niveau inférieur", il faut comprendre "plus proche du langage machine", et pas de qualité moindre, je précise. Tu le sais certainement, mais ça peut prêter à confusion.

À ce titre, le langage C est une merveille: proche de l'assembleur mais assez "haut-niveau" pour en comprendre aisément le fonctionnement et pour pouvoir rapidement créer des applications très complexes.

Question: est-ce qu'il y a un langage plus bas-niveau que l'assembleur? je veux dire, "après" l'ASM, il y a quoi avant le code hexadécimal passé au proco? (ou plutôt les 1 et les 0 ^^)
Afficher les 55 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.