Solutionneur de jeu d'additions croisees (Kakuro) - 09/01/1996
Après avoir pris connaissance de la description du problème, la stratégie adoptée pour résoudre le problème utilise la théorie des ensembles et le résultat est trouvé par élimination logique. En résumé, le fonctionnement de ce programme consiste à évaluer l'ensemble des valeurs possibles de chaque case horizontalement et verticalement et d'éliminer les valeurs qui ne font pas parties de l'intersection des deux ensembles (horizontal et vertical). Par la suite le programme continue à éliminer progressivement les valeurs possibles en vérifiant certaines conditions jusqu'à ce que la solution finale soit trouvée. Une description plus détaillée du fonctionnement est aussi disponible. J'ai inclus la version de déverminage car ainsi on peut voir comment le programme fonctionne. De plus, je vous recommande d'avoir la grille de jeu proche de vous. Il est plus facile ainsi de suivre le déroulement du programme qu'en tentant de lire le fichier d'entrée (p10.ent).
crossadd.zip - Exécutables Win32 console
Les fichiers source de ce programme sont disponibles

Application Client/Serveur de traitement d'images médicales - 04/18/1997

Mon premier programme Java !!!
Il a été écrit dans le cadre d'un cours à l'université.
J'ai été le seul étudiant de mon groupe (à ma connaissance) à avoir :

- Un lien de communication Client/Serveur RMI

- Un serveur concurent multithreaded
- utilisé le design pattern "Producer/Consumer" pour la manipulation des images

J'aurais bien aimé faire la démonstration de mon applet sur cette page mais malheureusement mon ISP n'offre pas la possibilité d'exécuter des serveurs sur leur serveur web.

ele116.tgz - Fichiers source Java
Images médicales

Application de traitement de signaux sonores - 11/24/1997

Mon premier programme Win32 !!!
En suivant mon cours sur le traitement de signaux, j'ai eu envie de mettre en pratique mes nouvelles connaissances. J'ai écrit mon propre module de chargement de fichiers wav. Les formats supportés sont: PCM et µLaw.
ele263.zip - Exécutable Win32

Solutionneur du problème du tour du chevalier - 02/04/1998

Le problème du tour du chevalier consiste à faire visiter toutes les cases d'un jeu d'échec à un chevalier sans jamais retourner sur une case déjà visitée. Le mathématicien Gauss a solutionné ce problème à l'age de 4 ans !!! J'ai écrit ce programme dans le cadre d'un cours d'algorithmie à l'université. Le but du lab était d'écrire un service de pile mais je trouvais que c'était un peu trop facile alors j'ai trouvé ce problème à résoudre pour montrer une des applications des piles. C'est un problème qui se résout bien avec une méthode de "backtracking". Cette méthode consiste à essayer une combinaison en insérant chaque élément de la combinaison dans une pile jusqu'à ce que la solution soit trouvée ou bien que le programme se retrouve dans une impasse. Lorsque le programme se retrouve dans une impasse, il revient en arrière en retirant le dernier élément inséré dans la pile et ensuite essait un autre élément de l'ensemble de valeurs possibles pour la solution. Je voulais aussi mettre en évidence qu'il est parfois utile d'aider le programme a choisir l'élément suivant. En effet, le programme offre à l'usager de tenter de résoudre le problème brutalement ou en favorisant les cases qui sont le plus difficiles d'accès (ex.: Les coins sont moins accessibles que le centre de l'échiquier). Sans avoir les chiffres exacts, je pense qu'il est plus rapide de casser une transmission DES avec une clef privée à 56 bits que de trouver la réponse de ce problème avec la force brutale (à moins d'être chanceux :). J'ai même laissé ce programme en mode force brutale fonctionner durant plus d'une semaine sur un Pentium 200 MHz sans succès :(.
knight.zip - Exécutable Win32 console
Les fichiers source de ce programme sont disponibles

Reconnaissance vocale - 03/24/1998

Le programme fonctionne en extrayant des paramètres du signal à analyser. Ensuite, il les compare avec d'autres paramètres contenus dans les fichiers BNK pour déterminer de quel type de signal il sagit. La partie du programme dont je suis le plus fier, c'est la façon dont le programme trouve le paramètre des banques de paramètres le plus proche du paramètre provenant du signal traité. Le programme utilise la méthode des chaines monotones sur le diagramme de Voronoi des paramètres de la banque. En fait, les diagrammes de Voronoi sont précalculés et contenus dans les fichiers BNK. Je pense qu'il aurait été difficile de faire un programme plus efficace.
recon.zip - Exécutable Win32 console
Les fichiers source de ce programme sont disponibles