12.12.05

Introduction à Netlogo, première partie

Commence à partir d'aujourd'hui une présentation en plusieurs parties du langage Netlogo, outil précieux pour comprendre les phénomènes d'émergence et les systèmes collectifs. Je rappelle que les phénomènes " émergents " sont des caractéristiques apparaissant de manière inattendue (le terme consacré est " contre-intuitive ") au sein de systèmes complexes composés de nombreux éléments. La pensée, la conscience, se manifestant par l'interconnexion de milliards de neurones est un phénomène émergent. Un vol d'oiseaux, des centaines de lucioles synchronisant leur éclat, l'apparition brusque de la pauvreté au sein d'un marché libre qui devrait en théorie répartir également les richesses, en sont d'autres exemples. L'urbanisme n'est pas non plus avare en bizarreries émergentes : par exemple, lorsqu'une ville est encombrée, le bon sens dicte d'ajouter des voies perpendiculaires pour dégager les grosses artères. Ce que firent les urbanistes de Stuttgart, qui constatèrent, à leur grande surprise, un résultat exactement inverse ! Autre étrangeté, il suffit apparemment de placer un feu rouge au bout milieu d'une route toute droite pour fluidifier la circulation.Ce caractère difficilement compréhensible du phénomène d'émergence pourrait être acceptable si, en fait, nous ne baignions pas constamment au sein de ces " systèmes complexes " : la vie, la pensée, la société appartiennent à ce domaine. En fait, nos sciences exactes, comme le physique, n'explorent qu'une petite partie de l'univers, assez réduite et éloignée de notre quotidien. L'émergence ressemble à de la magie. C'est du reste pour cela, que dans les " utopies posthumaines" j'associe le renouveau des pratiques occultes à l'explosion de la complexité dans nos vies !D'accord pour parler de " magie ", donc, si par là on entend de l'inattendu, du surprenant, de l'inexpliqué. Mais pas de magie, bien sûr, au sens de l'intervention de forces surnaturelles, inconnues, inexplicables ! Dans l'émergence aussi, il y a truc, le lapin sort d'un double fond, et il n'y a pas lieu d'abandonner notre méthode scientifique..Ce qu'il nous faut, c'est avoir les moyens de comprendre comment fonctionne cette " émergence ", pourvoir démonter et remonter les systèmes complexes avec la même facilité qu'on le ferait avec le moteur d'une moto, bref, disposer d'une nouvelle catégorie d'outils intellectuels et matériels qui nous permettent d'appréhender cette réalité extraordinaire. Si vous êtes en train de lire ces lignes, cet outil, vous le possédez déjà, et vous êtes justement en train de fixer votre regard dessus. Elle est pas belle la vie ? Donc, vous allez pouvoir utiliser votre ordinateur pour entrer dans le monde complexe de... la complexité. Pour cela, il faudra utiliser des programmes particuliers, les " langages de programmation multi-agents ". Si les mots " langage de programmation " vous donnent des boutons, pas de panique ! C'est vrai qu'il faudra acquérir une syntaxe particulière, entrer des commandes.. Mais rien de bien difficile. Pour tout dire, Mitchel Resnick, du MIT, créa le premier de cette classse d'outils, Starlogo, à destination des enfants. Du reste, le mot " logo " accolé au programme dit tout sur son origine : il s'agit d'une variante du langage logo de Seymour Papert, créé dans les années 80 pour initier les plus jeunes à l'informatique. Resnick, ayant en effet constaté l'incapacité dans laquelle nos contemporains se trouvaient de comprendre les systèmes collectifs et décentralisés avait conclu à la nécessité de créer un système leur permettant de " toucher du doigt "une réalité aussi abstraite. Naturellement les jeunes générations etaient les premières visées par son projet, car plus tôt on apprend à comprendre ces concepts difficiles, plus on sera capable de les manier arrivé l'âge adulte. Donc vous l'avez compris : ces " langages de modélisation " des jouets ! des jouets pas simples, d'accord, plutôt réservés au gamin surdoué à lunettes, mais des jouets tout de même ! Resnick, qui après Starlogo, s'est dirigé vers la création de " briques programmables " qui inspirèrent la gamme Lego Mindstorms, s'est d'ailleurs spécialisé en matière ludique. Mais ces jouets ne sont pas pour autant limités : on peut faire avec eux des choses très, très compliquées. Du reste, leur usage est maintenant surtout cantonné dans les universités et les grandes écoles. Une recherche Google sur les pages françaises mentionnant Netlogo affiche surtout des sites appartenant à l'enseignement supérieur ou aux institutions de recherche. Que cela ne vous impressionne pas ! Netlogo est bel et bien réservé à chacun d'entre nous. En créant un tel programme, Resnick a aussi déclenché une petite révolution : il a inventé la notion d'outil philosophique. Jusqu'ici, la pensée s'exprimait essentiellement par l'écriture, ou par la parole. Elle va maintenant pouvoir s'incarner dans un programme. Car un code Starlogo n'a pas pour but de produire une " application " qui doit être utilisée, mais à aider à penser, à découvrir, voire à convaincre. Dans la foulée, Resnick a inventé une nouvelle sorte d'écriture : " l'essai actif ". Il s'agit d'un mélange de texte écrit et de programmes informatiques (par exemple une page web dans laquelle sont inscrites des applets java) permettant au lecteur de tester et comprendre les idées exprimées en jouant de manière interactive avec les programmes.

Pourquoi Netlogo

Puisque Starlogo est le premier langage du genre, pourquoi se consacrer plutôt à Netlogo ? Lorsque Resnick a crée son outil, dans les années 90 et qu'il a sorti son manuel de base, Turtles,Termites and Traffic Jams, Starlogo ne fonctionnait que sur des machines très puissantes dites " parallèles " (parce que capable d'effectuer de nombreuses opérations simultanément) les " connection machines " A noter que le créateur des connexions machines, Danny Hillis, s'est par la suite associé à Stewart Brand et Brian Eno pour devenir le maître d'œuvre de cette fameuse " horloge du long maintenant ", censée sonner tous les millénaires !Finalement, Starlogo est passé sous Macintosh, puis est enfin devenu accessible pour toutes les machiens grâce à sa version java. Starlogo est gratuit, et peut être téléchargé ici : Mais au fur et à mesure que Starlogo devenait plus accessible, les versions évoluaient et du coup, bon nombre des instructions données dans le livre de Resnick furent modifies, rendant son " turtles, termites... " quasi inutilisable. Face à Starlogo, à la Northwestern University, on créa également un clone, le Netlogo, possédant lui aussi son set spécifique d'instructions, modifié par rapport au starlogo originel mais pas tellement plus que celui de son épigone direct.A l'époque ou je me suis intéressé à ces langages, il m'a semble que Netlogo etait un peu plus avancé que son cousin (il intègre par exemple la possibilité de creer des mondes en 3D). Il a également la réputation d'être un peu plus rapide et plus stable, mais franchement, je n'ai pas fait les tests. Pour simplifier, je dirais que j'ai choisi Netlogo parce qu'il me fallait bien en choisir un ! et je ne suis pas le genre de " bête en informatique " capable d'assimiler simultanément en un temps record deux langages différents, surtout s'ils font la même chose !

Démarrer avec Netlogo

Netlogo est bien entendu, gratuit ! rendez-vous donc ici, puis choisissez la dernière version en cours. Nous en sommes aujourd'hui à la 3.02. Les utilisateurs de Mac devront se connecter d'une version plus ancienne. Vous pouvez entrer votre adresse mail et exprimer votre souhait de vous inscrire à la liste de discussion, mais ce n'est pas nécessaire. Vous pouvez rester totalement anonyme si vous le souhaitez.Cliquez sur le bouton download, puis choisissez, parmi les versions proposées, celle qui inclue la machine virtuelle Java. Elle est plus lourde, mais beaucoup plus facile à installer. Sauf, si bien sûr, vous savez parfaitement ce que vous faites. Téléchargez le programme et installez-le. Pas de difficultés majeures ici. Sélectionnez juste " Install a java vm specifically for this application ", du moins si le langage Java n'est pas votre langue maternelle. Vous éviterez ainsi beaucoup de soucis de configuration par la suite.Démarrez ensuite Net Logo. Vous êtes prêts à faire tourner votre premier programme. Rendez vous dans le menu file, puis cliquez sur " Models Library ". Allez dans la section, biology puis choisissez " wolf sheep predation ". C'est un simple écosystème dans lequel les loups cherchent à manger les agneaux. Appuyez sur le bouton " setup ", puis sur le bouton go. Dans la fenêtre de gauche, vous verrez se multiplier loups et agneaux, puis tout tourne à la catastrophe : parfois les loups disparaissent, sursaturant l'environnement ; ou, au contraire, les loups dévorent toutes leur proies, pour mourir de faim quelques secondes plus tard. Vous pouvez arrêter la simulation à tout instant en recliquant sur le bouton Go.Maintenant, mettez le paramètre " herbe " (grass) sur " on ". Désormais, les agneaux disposent d'une quantité limitée d'herbe pour se nourrir. A nouveau setup, puis " Go " ! Cette fois, le milieu est bien plus stable, loups et agneaux s'équilibrent.Vous pouvez manipuler bien entendu la multitude de paramètres offerts par la simulation, comme le nombre de loups ou d'agneaux au départ, l'énergie nécessaire pour se reproduire... N'hésitez pas à jouer avec les curseurs, vous ne casserez rien. Lorsque vous en aurez terminé avec ce programme, promenez-vous dans la " Models Library ". Vous serez surpris de la variété des problèmes abordés par Netlogo : biologie, mais aussi sciences sociales, informatique, géologie, mathématiques, physiques. Et il existe même une section jeux avec un petit Pacman !

Tortues et patches

Qu'est ce qui est à l'oeuvre dans un programmes Netlogo ? On rencontre d'abord ce qu'on appelle des " agents ", c'est à dire des " acteurs ". en Starlogo et en Netlogo, on les appelle des " tortues ". Ce nom vient du vieux logo de Soymour Papert, où la tortue représentait un curseur graphique auquel les enfants donnaient des ordres pour le déplacer ou lui faire dessiner quelque chose. Des langages comme Netlogo sont en fait des " Logo " faisant travailler une multitude de tortues simultanémentIl peut exister plusieurs " races " de tortues : par exemple les loups et les agneaux. A l'intérieur d'une race, chaque tortue possède les mêmes caractéristiques générales, mais dispose de paramètres particuliers. Par exemple, toutes les tortues d'une race donnée possèdent un paramètre " point de vie " qui lui donne son espérance de longévité. Mais certaines tortues auront 20 points de vie, d'autres 'en posséderont que 5. Toutes les tortues d'une même race possèdent également le même code informatique : autrement dit, elles auront le même comportement face à une situation analogue, en tenant compte, bien sur de la différence de valeurs de leurs paramètres : Par exemple, toutes les tortues de la race des " renards " ont pour mission de poursuivre un " poulet " passant dans leur champ de visibilité, mais chaque renard possédera sa propre vitesse et son propre champ de vision. En plus des tortues, on trouve un autre type d'habitants dans les micromondes Netlogo : le " patch ".Celui-ci ne se déplace pas ,n'affecte aucun comportement: il correspond à un ensemble de paramètres qui peuvent varier. Les patches sont essentiellement utilisés pour représenter des ressources propres à l'environnement de la simulation, comme l'herbe, le pétrole, etc. on peut aussi les utiliser pour décrire une géographie, par exemple pour faire des murs, ou pour symboliser des hauteurs sur une carte. L'ensemble d'un monde Netlogo est le produit de l'interaction entre les différentes races de tortues et éventuellement les patches. En revanche, une chose fondamentale est absente : il n'y a pas de chef d'orchestre, personne pour dire aux différentes tortues comment se comporter. Autrement dit, Netlogo décrit un système décentralisé, comme l'est notre système nerveux, le marché financier ou un écosystème forestier. C'est précisément cette caractéristique, la décentralisation, que Netlogo est censé nous faire comprendre.Dans la prochaine leçon, nous attaquerons nos premières instructions !

2 Comments:

Anonymous Dr Strange said...

Bonjour,
je viens de découvrir votre livre, que je lis en ce moement avec beaucoup d'interêt. Je vous donne l'adresse de mon blog: (http://monjournalmagick.hautetfort.com/)

Merci pour votre livre et votre blog !

A bientôt,

Dr Strange

samedi, janvier 07, 2006 8:40:00 AM  
Blogger remi said...

Merci pour votre commentaire! votre blog est très interessant (une surprise la connexion Grant Morrison-Robbie Williams) et j'y posterai bientôt mes commentaires !

lundi, janvier 09, 2006 10:01:00 AM  

Enregistrer un commentaire

<< Home