Création d'un algorithme génétique (en C)

Nous avons déjà abordé cette problématique il y a quelques mois, je vous proposais de créer un algorithme génétique en Java.

Aujourd'hui, je vous propose le même programme mais developpé en C.

Pour rappel, le cas d'exemple étudié sera le suivant :

Nous allons créer un algorithme qui permet de trouver au sein d'une population un individu ayant la meilleure aptitude, dans notre cas possédant un code génétique identique à celui recherché (solution optimale).

Pour ce faire nous allons créer les fichiers suivants :

  • t_bool.h : Déclare le type t_bool, un type booléen.
  • population.h et population.c : Déclare et donne l'implémentation des différentes méthodes permettant de traiter l'ensemble des individus d'une population.
  • t_individual.h et t_individual.c : Déclare et donne l'implémentation des différentes méthodes permettant de traiter un individu.
  • t_skill.h et t_skill.c : Déclare et donne l'implémentation des différentes méthodes permettant déterminer la compétence d'un individu.
  • runtime_algo.c: S'occupe de gérer l'évolution : reproduction, mutation ...
  • main.c : Le programme principal permettant de lancer l'évolution sur notre population initiale.

Voyons en détail l'implémentation de ces différents fichiers.

Lire la suite de Création d'un algorithme génétique (en C)

La fiabilité d'un code source informatique

Dans un précédent article, traitant de SonarQube, j'avais évoqué le sujet de la mesure de la qualité d'un code source.

Steve McConnell a écrit un livre "Code Complete" où il évoque les principes de programmation utiles pour la construction de logiciels.

Dans une section de son livre, il est question des "erreurs attendues" (error expectations). En somme le nombre de bugs par lignes de code.

Il montre que la fiabilité d'un code source peut être classée selon différentes catégories.

Voyons ça plus en détails.

Lire la suite de La fiabilité d'un code source informatique

Focus C : Structure autoréférentielle

Je vous propose un focus sur l'utilisation du type struct au travers d'un problème général consistant à compter le nombre d'occurrences de tous les mots lus en entrée et de les trier simultanément.

Puisque la liste de mots n'est pas connue à l'avance, il n'est pas pratique de la trier et d'utiliser une recherche dichotomique.

Cependant, nous ne pouvons pas non plus effectuer une recherche séquentielle à l'arrivée de chaque mot pour vérifier si on l'a déjà rencontré ; le temps d'exécution du programme serait trop long.

Comment pouvons-nous organiser les données pour faire face efficacement à liste de mots arbitraires ?

Lire la suite de Focus C : Structure autoréférentielle

Focus : Algorithme C

Conjointement au développement de mon projet personnel, j'essaie d'alimenter une rubrique proposant une collection de divers programmes en C.

Abordant des problèmes ou des thématiques récurrentes, j'essaie d'apporter un regard pédagogique, clair et exploitable clef en main : chaque exemple, chaque programme, est téléchargeable.

Vous pouvez donc vous en resservir comme base de travail pour vos projets personnels.

A l'heure actuelle, parmi les sujets traités on retrouve :

Cette page propose aussi un ensemble d'articles ainsi qu'un aide-mémoire.
La bibliothèque thématique de programme en C est récente et s'étoffera avec le temps.
Si vous voulez voir certains sujets traités ou tout simplement me faire part de vos remarques, n'hésitez à laisser un message en commentaire de cette actualité.

Lire la suite de Focus : Algorithme C

Lecture pour l'été

L'heure approche où certains vont aller se faire dorer la pilule sur la plage ou tout simplement prendre un peu de recul par rapport à la routine quotidienne.

Je vous propose aujourd'hui une liste de livres que j'ai pu lire ces derniers temps ou que je prévois de lire dans les semaines à venir.

Pas mal de livres sur des domaines techniques qui m'intéressent énormément et sur lesquels je peux mettre en application certains aspects sur mon projet personnel.

Comme il est important aussi de se changer les idées, je vous propose aussi d'autres livres permettant de s'évader, de voir, comprendre le monde qui nous entoure ... ou tout simplement mieux se comprendre.

Lire la suite de Lecture pour l'été

page 1 sur 2 suivante