ma tronche

rapport staf_14.4

staf14

Rapport de l'exercice 4

Considérations générales

Le but était de tâter du javascript. J'ai décidé d'explorer quelque peut les possibilités d'actualisation en temps réel d'une page html. En fait j'ai voulu explorer un peu le dhtml. Le grand avantage de Javascript, au niveau où je l'ai vu en tout cas, est de pouvoir traiter et manipuler les actions de l'utilisateur. L'avantage résidant bien entendu dans les interfaces, on peut ainsi les rendres réactivees et plus interactives.

Mon projet

J'ai mis pas mal de temps à isoler une idée qui me plaisais : Je n'avais pas envie de m'amuser avec des popup-feed-back intempestives, ni vraiment d'aller dans la création d'une interface réactive (même si j'ai longtemps hésité à tenter de créer des menus "déroulants" en JS). Finalement j'ai voulu explorer une interaction assez spéciale et proposer une petite simulation aux utilisateurs de la page.

J'ai ressorti mes notes de réseaux neuronaux et remis la main sur quelques formules (simplissimes) régissant la simulation de neurones artificiels. mon projet de base étant de proposer un mini-didacticiel permettant de découvrir la gestion des fonctions logiques de base (ET, OU et le XOR) à l'aide de neurones artificiels. J'ai imaginé 3 pages présentant à chaque fois un neurone (ou trois pour le XOR). L'utilisateur étant invité à modifier les différents paramètres pour obtenir les réactions voulues et faire réagir le neurone comme la fonction logique choisie.

La théorie liée tient en trois lignes et comprendre comment fonctionne un neurone n'est pas compliqué néanmoins j'ai voulu explorer Javascript et pas proposer un didacticiel éducatif. Mon dispositif vaut ce qu'il vaut sur ce plan là...

Technique

L'idée est donc d'utiliser des fenêtres de texte pour que l'utilisateur entre les différentes valeurs des coéfficients synaptiques (ici, il y en a 3 par neurones). D'autre part des boutons-radio permettent de décider les valeur booléenne que reçoivent les deux entrées du neurone.

Une fonction simple permet ensuite de calculer le potentiel de membrane et de mettre à jour la sortie du neurone, sous forme à la fois numérique et booléenne. En plus un feedback apparaît dans un textarea. La nature de ce feedback est différent selon l'action de l'utilisateur : il peut signaler que le réseau est bon ou mauvais mais aussi éventuellement que les champs que le participant veut modifier ne produiront aucun changement (si on tente de modifier la valeur de P ou de S par exemple).

La nécessité d'apporter quelques explications éventuelles m'a poussé également à développer un petit système d'aide. Trois boutons sont en effet disponible pour avoir des compléments d'information sur un point particulier. Si on clique sur l'un des boutons, une popup s'ouvre avec un petit explicatif.

Réalisation et autocritiques

J'avoue avoir sué pour maîtriser un tant soit peu Javascript ! J'ai eu beaucoup de difficultés à diagnostiquer mes erreurs de codes. En plus utiliser Xemacs m'a laissé commettre un grand nombre des fameuses fautes de frappes terriblement illocalisables. J'ai également rencontré quelques miracles inexplicables ("tiens ça marche maintenant ? Mais pourquoi ça ?").

Ces multiples ralentissements m'ont empêché de créer la totalité des trois unités prévues à la base (ET, OU, et XOR). Je n'ai développé que le ET, mais sachant que le neurone classant OU ne comporte qu'un changement mineur dans la fonction d'évaluation de la réponse et que le XOR n'est en fait que le rasemblement de deux neurones ET et d'un neurone OU, on peut considérer que poursuivre l'implémentation plus avant ne m'aurais pas fait découvrir de nouvelles facettes de JavaScript.

En particulier

J'ai tenté d'utiliser un maximum de fonctions. Cependant, la fonction ouvrir, servant à ouvrir un popup pour les infos complémentaire est quelque peut étrange. En effet il eut mieux valu ouvrir une autre page html dans les nouvelles fenêtres car le code des pages est tout concaténé dans quelques lignes de la formule, en plus la prog de ce script n'est pas très efficace...

Un autre problème est IE ! même la dernière version 6 pose des problèmes, certainement un problème de non-compatibilité volontaire mais IE refuse certaines réactions (les onchange dans mes input texte par exemple ne peuvent lancer la fonction voulue...) enfin, tout va bien sous Mozilla et c'est l'essentiel pour cet exercice.

J'ai dû quelque peut modifier ma CSS pour lui permettre de s'adapter aux différentes pages (et popups !), comme je ne voulais pas là retester dans toutes les autres pages créées jusqu'ici, j'en ai crée une spécifique à cette page.

Sinon je suis plutôt content du résultat, bien sûr le neurone qui constitue la simulation n'est pas très explicitemais la légende affichable permet de s'y retrouver un peut mieux. Les fonctions de script développées ici sont visent aussi une utilisation généralisable (à d'autres réseaux en tout cas), ce qui est une bonne chose (quoique la fonction ouvrir n'est pas très bonne, encore une fois).


Bibliographie



page créée par rork le 02_03_02, dernière mise à jour : 02_03_03, mail,
cette page respecte les standards xhtml 1.0 et css