{"id":137,"date":"2014-09-01T09:15:59","date_gmt":"2014-09-01T08:15:59","guid":{"rendered":"http:\/\/elcep.legtux.org\/?p=137"},"modified":"2015-05-28T15:42:47","modified_gmt":"2015-05-28T14:42:47","slug":"netlogo-et-r-via-rserve","status":"publish","type":"post","link":"https:\/\/elcep.legtux.org\/?p=137","title":{"rendered":"Netlogo et R (via Rserve)"},"content":{"rendered":"<p><a href=\"http:\/\/elcep.legtux.org\/wp-content\/uploads\/2014\/08\/R_meet_netlogo.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-149\" src=\"http:\/\/elcep.legtux.org\/wp-content\/uploads\/2014\/08\/R_meet_netlogo.png\" alt=\"R_meet_netlogo\" width=\"300\" height=\"240\" \/><\/a>J&rsquo;ai <a href=\"http:\/\/elcep.legtux.org\/?p=59\" target=\"_blank\">\u00e9voqu\u00e9 le mois dernier<\/a> le mariage possible entre <a title=\"lien vers le site officiel de netlogo\" href=\"https:\/\/ccl.northwestern.edu\/netlogo\/\" target=\"_blank\">netlogo<\/a> et <a title=\"lien vers le site officiel du projet R\" href=\"http:\/\/www.r-project.org\/\" target=\"_blank\">R<\/a> via l&rsquo;extension <a title=\"lien vers le site officiel\" href=\"http:\/\/r-ext.sourceforge.net\/\" target=\"_blank\">netlogo-R<\/a> d\u00e9velopp\u00e9e par <a title=\"CV J.C. Thiele\" href=\"http:\/\/www.uni-goettingen.de\/en\/72779.html\" target=\"_blank\"><span class=\"ueberschrift\">Jan C. Thiele<\/span><\/a> et <a title=\"CV V.Grimm\" href=\"http:\/\/www.ufz.de\/index.php?en=3679\" target=\"_blank\">Volker Grimm<\/a>. Une extension g\u00e9niale, mais que je n&rsquo;arrivais pas \u00e0 lancer en multithread (la question est <a title=\"liste de diff des utilisateurs netlogo\" href=\"https:\/\/groups.yahoo.com\/neo\/groups\/netlogo-users\/conversations\/messages\/18177\" target=\"_blank\">toujours en suspens<\/a>, visiblement un probl\u00e8me de r\u00e9f\u00e9rencement du package rJava ou JRI de R sous Fedora et RedHat ?).<\/p>\n<p>Sur les conseils de Jan C. Thiele, je suis parti \u00e0 la d\u00e9couverte de l&rsquo;autre extension pour int\u00e9grer R dans netlogo, la bien nomm\u00e9e : <a title=\"ci\" href=\"http:\/\/rserve-ext.sourceforge.net\/\" target=\"_blank\">NetLogo-<i>Rserve<\/i>-Extension<\/a>.<\/p>\n<p>Comme nous commen\u00e7ons \u00e0 \u00eatre particuli\u00e8rement \u00e0 l&rsquo;aise avec l&rsquo;installation d&rsquo;extensions, cela ne prend pas tr\u00e8s longtemps. D&rsquo;autant plus que l&rsquo;installation <a title=\"ci\" href=\"http:\/\/rserve-ext.sourceforge.net\/\" target=\"_blank\">NetLogo-<i>Rserve<\/i>-Extension<\/a> semble bien plus facile (pas de modification de $PATH). Une fois l&rsquo;archive ZIP t\u00e9l\u00e9charg\u00e9e, vous la d\u00e9poserez dans votre dossier extension de Netlogo<\/p>\n<pre>sudo cp -r rserve \/opt\/netlogo-5.0.5\/extensions\/<\/pre>\n<p>Il vous faudra ensuite installer le package <a title=\"lien vers Rserve sur CRAN\" href=\"http:\/\/cran.r-project.org\/web\/packages\/Rserve\/index.html\" target=\"_blank\">Rserve<\/a> qui va bien dans <a title=\"lien R\" href=\"http:\/\/www.r-project.org\/\" target=\"_blank\">R<\/a><\/p>\n<pre>install.packages('Rserve', dependencies=T)<\/pre>\n<p>Vous \u00eates maintenant presque en mesure de lancer netlogo avec son extension, les petites particularit\u00e9s qu&rsquo;il vous faudra maintenant prendre en compte sont plus li\u00e9es au fonctionnement de Rserve que de netlogo.<\/p>\n<p>Avant de lancer un mod\u00e8le \u00e0 base d&rsquo;agents qui appellera R, il faut dans un premier temps lancer le serveur R (<a title=\"la documentation sur sourceForge\" href=\"http:\/\/www.rforge.net\/Rserve\/doc.html\" target=\"_blank\">doc<\/a>).<\/p>\n<pre>#chargement de la librairie\r\nlibrary('Rserve')\r\n#lance le daemon du serveur\r\nRserve()<\/pre>\n<p>Voil\u00e0, vous pouvez maintenant laisser tourner R en tache de fond et vous attaquer \u00e0 la documentation de l&rsquo;extension netlogo (qui se trouve pour nous dans \/opt\/netlogo-5.0.5\/extensions\/rserve\/doc\/r-extension.html).<\/p>\n<p>La plupart des fonctions qui \u00e9taient port\u00e9es par l&rsquo;extension netlogo-R sont pr\u00e9sentes en ce qui concerne la discussion entre les deux softs. Mais il faudra tout de m\u00eame modifier un peu vos scripts. Tout est dans la documentation, mais quelques points sont \u00e0 mettre en \u00e9vidence :<\/p>\n<p>Le fonctionnement de cette extension se fait via une connexion TCP\/IP avec le serveur R que vous venez d&rsquo;instancier. Ce qui veut dire qu&rsquo;il faut en d\u00e9but de script initialiser la connexion (par exemple juste apr\u00e8s clear-all)<\/p>\n<pre>#initialisation d'une connexion locale\r\nrserve:init 6311 \"localhost\"<\/pre>\n<p>Et il faudra fermer cette connexion une fois le mod\u00e8le termin\u00e9<\/p>\n<pre>if ticks &gt; 100 [\r\n  stop ;;stop le mod\u00e8le\r\n  rserve:close ;;ferme la connexion\r\n]<\/pre>\n<p>On peut \u00e9galement\/alternativement int\u00e9grer la fermeture de la connexion dans le BehaviorSpace comme sur la figure suivante.<\/p>\n<p><a href=\"http:\/\/elcep.legtux.org\/wp-content\/uploads\/2014\/08\/BS_Rserve.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-144\" src=\"http:\/\/elcep.legtux.org\/wp-content\/uploads\/2014\/08\/BS_Rserve.png\" alt=\"BS_Rserve\" width=\"494\" height=\"746\" srcset=\"https:\/\/elcep.legtux.org\/wp-content\/uploads\/2014\/08\/BS_Rserve.png 494w, https:\/\/elcep.legtux.org\/wp-content\/uploads\/2014\/08\/BS_Rserve-198x300.png 198w\" sizes=\"auto, (max-width: 494px) 100vw, 494px\" \/><\/a><\/p>\n<p>\u00c0 partir de l\u00e0, cela devrait se passer suffisamment bien \ud83d\ude42 et j&rsquo;esp\u00e8re que vous ne passerez pas un mois \u00e0 chercher comment parall\u00e9liser netlogo et R&#8230; A suivre, il faudra que je teste la chose avec <a title=\"openmole\" href=\"http:\/\/www.openmole.org\/\" target=\"_blank\">OpenMole<\/a>, mais le fait de passer par TCP\/IP devrait faciliter la chose !.<\/p>\n<p>Bon courage!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>J&rsquo;ai \u00e9voqu\u00e9 le mois dernier le mariage possible entre netlogo et R via l&rsquo;extension netlogo-R d\u00e9velopp\u00e9e par Jan C. Thiele et Volker Grimm. Une extension g\u00e9niale, mais que je n&rsquo;arrivais pas \u00e0 lancer en multithread (la question est toujours en suspens, visiblement un probl\u00e8me de r\u00e9f\u00e9rencement du package rJava ou JRI de R sous Fedora &hellip; <a href=\"https:\/\/elcep.legtux.org\/?p=137\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">Netlogo et R (via Rserve)<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[9,5,22],"class_list":["post-137","post","type-post","status-publish","format-standard","hentry","category-sma","tag-netlogo","tag-r","tag-rserve"],"_links":{"self":[{"href":"https:\/\/elcep.legtux.org\/index.php?rest_route=\/wp\/v2\/posts\/137","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/elcep.legtux.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/elcep.legtux.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/elcep.legtux.org\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/elcep.legtux.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=137"}],"version-history":[{"count":18,"href":"https:\/\/elcep.legtux.org\/index.php?rest_route=\/wp\/v2\/posts\/137\/revisions"}],"predecessor-version":[{"id":267,"href":"https:\/\/elcep.legtux.org\/index.php?rest_route=\/wp\/v2\/posts\/137\/revisions\/267"}],"wp:attachment":[{"href":"https:\/\/elcep.legtux.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=137"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/elcep.legtux.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=137"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/elcep.legtux.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=137"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}