Voilà maintenant quelques années que j’ai entamé le projet de créer un simulateur d’intelligence collective. Plus précisément d’insectes sociaux tels que les fourmis, les termites ou encore les abeilles1.
Ce projet commence désormais à être assez avancé pour en faire une présentation et peut-être susciter l’intérêt de personnes souhaitant y participer.
Les insectes sociaux ?
Les colonies d’insectes sociaux sont des systèmes extrêmement complexe et évoluées. Il est commun de penser que seul les êtres Humains pratiquent l’élevage et l’agriculture. Il n’en n’est rien. Les fourmis pratique l’élevage de pucerons 2 et la culture de champignons3. Les termites pratiquent eux aussi la culture de champignons4.
Les termites parviennent à pratiquer cette agriculture sous le soleil Africain. Leur forteresses peuvent être composées de galeries atteignant 70 mètre de profondeur, puisant la fraîcheur des nappes phréatiques. Cela afin que, par un système complexe d’aérations digne d’un architecte en thermodynamique, la zone de culture des champignons soit maintenue à 27°C. Alors que la température extérieure dépasse généralement les 35°C5.
Cependant les individus qui composent ces sociétés ne jouent chacun qu’un rôle limité et guidé par leur instinct. Une idée reçu voudrait que ce soit la ou les reines qui dirige la colonie. Ordonnant ou oriantant le comportement de ses sujets. Mais la non plus il n’en n’est rien 6. Le fonctionnement d’une colonie est le résultat d’un merveilleux comportement d’intelligence collective. Une collaboration où chaque individus ne possède qu’une vision limité de son environnement.
Pour citer Wikipédia à propos de l’intelligence collective:
« La connaissance des membres de la communauté est limitée à une perception partielle de l’environnement, ils n’ont pas conscience de la totalité des éléments qui influencent le groupe. Des agents au comportement très simple peuvent ainsi accomplir des tâches apparemment très complexes grâce à un mécanisme fondamental appelé synergie ou stigmergie »
Quel lien avec l’algorithmique?
Si nous devions simplifier le fonctionnement de ces sociétés nous pourrions dire qu’elles sont l’effet de la répétition de l’action de chaque individus qui la compose. Individus, qui, inlassablement effectues leur petites tâches durant toute leur existence.
Il s’avère que nos processeurs et langages informatique sont tout à fait adapté lorsqu’il s’agit de répéter l’exécution de modèles définis. On peux donc imaginer construire une colonie virtuelle sur ces modèles.
Déjà aujourd’hui la nature (et les insectes sociaux) inspire des modèles informatique. Algorithmes génétiques, Algorithmes de colonies de fourmis, etc. Et avouons le, en tant que concepteur logiciel, les insectes sociaux sont une parfaite inspiration lorsqu’il s’agit d’intelligence artificielle !
Le projet intelligine
Le projet intelligine n’a pas pour but de révolutionner les Métaheuristique ou les algorithme de colonies de fourmis mais simplement de tenter de créer une société virtuelle capable de s’auto-organiser et de s’adapter à une environnement évolutif. Tout en s’inspirant du comportement d’insectes réels.
Bien sur, cela dans une moindre mesure. Premièrement, il est difficile de rivaliser avec des millions d’années dévolutions. Deuxièmement, ce que nous appelons un comportement « simple » de la part d’un individu reste tout de même extrêmement difficile à interpréter avec certitude.
En quoi ça consiste ?
Algorithmiquement
La réalisation du logiciel doit s’accompagner de restrictions. Dans la nature, les individus n’ont qu’un accès limité à leur environnement. Les algorithmes représentant les individus et permettant leur prise de décision doivent donc se cantonner à ne pouvoir lire qu’une partie des données de l’environnement.
Un effort de malléabilité doit être effectué sur l’organisation des différentes briques du logiciel. De manière à pouvoir modifier, remplacer et retirer des parties de code en fonction de l’évolution de nos connaissances à propos de ces insectes.
Entomologie
Il faut faire confiance à la nature. Il n’y as pas meilleur architecte que la sélection naturelle pour façonner des comportements optimisés. D’autant que les espèces qui nous intéressent sont extrêmement anciennes. Il faut donc comprendre ces mécanismes au lieu d’en inventer de nouveaux.
Une grande partie du travail concerne alors l’étude des insectes sociaux: Consulter le résultat des travaux déjà réalisés, interroger des spécialistes, des passionnés, mener des expériences … Cela afin d’écrire des algorithmes aussi proche que possible de leurs inspiration naturelles.
Première version: SimTermites
La première réalisation concrète de ce grand projet à été le programme « SimTermites« . Ce fût l’occasion de me confronter concrètement à différents aspects d’un tel projet:
- Les performances jouent un grand rôle. Simuler le comportement de milliers d’individus au sein d’un environnement déterminant dans leurs action nécessite beaucoup de calculs !
- L’organisation du programme. Une simulation de la sorte atteint rapidement un niveau de complexité effrayant. Ce qui oblige à être très attentif à la manière d’organiser le code source de l’application et à respecter des principes robustes et éprouvés 7.
Ces différents aspect étant devenus évident pendant la réalisation de ce programme il sembla alors nécessaire de reprendre le programme depuis le début.
Car si vous êtes néophyte de la conception logicielle, un programme est composés de millions d’instructions (tel qu’un très longue recette de cuisine). Où chaque morceau qui la compose est reliés à d’autres. Il est donc très difficile de modifier profondément un logiciel. C’est pourquoi il est vital que durant sa réalisation des précautions soit prisent pour le rédiger correctement. Autrement sa modification, son évolution ou corrections devient extrêmement chronophage.
J’ai donc décidé que SimTermites resterait ce qu’il est. Et qu’un nouveau chantier devait commencer.
Synergine + Intelligine
J’ai donc commencé par réaliser un framework 8 dédié à la réalisation de programmes dont la nature serait de faire évoluer des entités indépendantes (représentées par des algorithmes) au sein d’un environnement. Ensuite, développer le logiciel censé prendre la relève de SimTermites.
Aujourd’hui, l’un et l’autre sont développé. Le framework: Synergine, suffisamment stable pour l’utiliser. Le simulateur d’intelligence collective: Intelligine, jeune mais assez avancé pour commencer le travail sur les aspects comportementaux des individus.
Intelligine: Quelques visuels de la version courante
Note: Le framework Synergine permet de créer la sortie graphique que l’on souhaite indépendamment du programme. Les visuels ci-dessous ne sont qu’une implémentation « rapide » que j’ai réalisé moi-même pou les besoins du développement.
Déplacement d’œufs
Récupération de ressources
Et maintenant ?
Différentes étapes sont encore à franchir avant d’atteindre une version stable est plus convenable du simulateur. La liste est établis dans le tracker9 du projet disponible ici:
http://work.bux.fr/projects/intelligine/issues
De nombreux questions restent encore à éclaircir et à débattre sur le comportement des insectes sociaux et leur équivalent algorithmique. Quelques débat sont déjà ouvert par ici:
http://work.bux.fr/projects/intelligine/boards.
Si vous êtes développeur, myrmécologue, intéressé par les insectes, l’intelligence artificielle ou simplement pris d’enthousiasme pour le projet, nous serions heureux de collaborer avec vous ! Il y a beaucoup de choses qui peuvent être faite: Faire des recherches, documenter, partager ses connaissances, concevoir le programme …
Les différentes adresses intéressantes:
- Forum de discussion (comportement des insectes, algorithmique, …): http://work.bux.fr/projects/intelligine/boards
- Développements prévus: http://work.bux.fr/projects/intelligine/roadmap
- Code source du simulateur: https://github.com/buxx/intelligine
- Code source du framework: https://github.com/buxx/synergine
- D’autres projets similaires: http://work.bux.fr/projects/intelligine/wiki/Autre_projets_similaires
- Liste complète disponible ici: http://fr.wikipedia.org/wiki/Insecte_social
- Voir http://fr.wikipedia.org/wiki/Fourmi
- Voir http://fr.wikipedia.org/wiki/Atta
- Voir http://fr.wikipedia.org/wiki/Termite
- Voir l’article de Laurent Brasier, dans la revue « Le génie des animaux », p.18
- Voir http://fr.wikipedia.org/wiki/Fourmi#Comportement_collectif
- Voir par exemple SOLID: http://fr.wikipedia.org/wiki/SOLID_%28informatique%29
- Depuis Wikipédia: En programmation informatique, un framework ou structure logicielle est un ensemble cohérent de composants logiciels structurels, qui sert à créer les fondations ainsi que les grandes lignes de tout ou d’une partie d’un logiciel (architecture)
- Outil de suivis des évolutions, bugs, …
Ca à l’air pas mal tout ça:) je forkerai ton framework à l’occasion pour voir si j’arrive à en faire une implémentation perso 😉
Hésite pas à me demander des détails sur le code ou à attendre que j’écrive une documentation ! Je devrais avoir fait ça pour la 0.1 d’intelligine.
Maaf mas saya terkesan cerewet, tetapi ada rekan saya menggunakan theme Ndadap dan ingin menampilkan gambar tambahan pada headernya dibawa kolom Title seperti preview Ndadap tuh ada gambar cewek cakep. nah saya udah coba utak utik kok ngg ngeh ya. Bisa bantu saya mas ?
La voiture à l’air sympa pour la ville, ce qui est dommage c’est qu’il faut prévoir un budget de 2 voitures pour répondre aux besoins ville et voyages.François tout le monde est rassuré lol.
on I such as the useful data you furnish with your reports.I will bookmark your website and check out once more listed here continually.I’m extremely guaranteed I will be taught loads of new things suitable below! Fine luck for that up coming!
Hello. My first time reading your posts. I really enjoyed it, and it gives me hope. My posts have been getting farther and farther apart, but I still trudge on because others keep asking.Keep it comingSimone
Me fait penser au doyen de Grenoble EM qui avait créé ça : http://www.rennard.org/alife/french/entree.html ton projet pourrait l’intéresser, sinon dommage que tu ne parles pas de la licences de ton projet sur ton article (libre, open source, privateur…)
@++
Je vais regarder ça avec attention. A propos de la licence: Je n’es tout simplement pas encore décidé laquelle utiliser ! 100% libre, sans usage commercial, etc … Si tu veux me conseiller ou en discuter d’ailleurs 🙂
@ Dalz, pourquoi tous les universitaires, si brillants soient ils, choisissent toujours de se doter de sites web à vomir? C’est une blague entre eux?
Regarde la date de dernière mise à jour, tu comprendras : « Le site sur la vie artificielle remonte aux années 1990 »
Labas vaÂÃoas,nrrėa„kiau paklausti, nusipirkom bilietus į Londoną sau, vaikinui ir jo sÅ«nui, vaikinas iÅ¡siskyręs. Ar reikia sÅ«naus mamos raÅ¡tiÅ¡ko sutikimo, kad galėtume aplankyti Londone esanÄÂias gimines?
Ã¥rh hvad, hvor er det bare vildt sÃ¥ hurtigt du fÃ¥r syet jakker – jeg vil slet ikke ud med hvor mange syskole-gange jeg var om min ;)Denne her er helt fantastisk fin (og indpakningen ligesÃ¥ (grÃ¥ mitsi er favoritten her :)). Tillykke til din mor, med fødselsdag og jakke :)Hilsen Anne Dorthe
q1rkw66i
Kate sent you a private message! View message: http://inx.lv/GiSJ?h=91123e631f6efecfc1bd49cc4dde98b9-
https://ironsweetsdetective.tumblr.com
kd30yv
cfe5fi
q1y5j0
ijykp4
58v9by
fks8v6
j03uz3
mw4b0t
lipxom
621jvw
4zs5j3
sfxb8t
07hlgg
dthahc
1mxpzo
jaseu6
k5ppw0
frbca9
cfb5t9
zwyczs
8vymy7
iiu3uf
yz1cjn
z3a1fi
modsnm
hqj60l
l857xc
fh76p5
zo669q
39902o
8deztb
pt2ab4
3k0o3g
4biqig
zyr4rz
zsw68o
nyjffo
c5lkpz
bshm9c
zcbpc0
cprvjn
li0aho
5tlkq1
o8xfsq
7y11be
gd8xqg
0d2ef9
bto0ve
zgm5cj
18o38z
3nyy53
e8xh5s
b6xx8k
d108g7
217h25
fpw8zh
x0rtpx
93buz5
k0t6aj
jpz637
rud2aa
xlufas
0dvovl
8zfwkn
e982ng
zbygci
se6s6s
b1ii9k
f7k9a4
dl81l0
rwycak
z4lp3e
bowj5d
g715hq
on2o00
mpx6bs
qtsn5y
idgkef
ur2ikd
sdxbxm
zsujkx
42dqch
g27nk3
1f51rv
clvmyp
vukah5
bhy18u
4nserz
yfux4e
kjogkw
ir1x1g
fk0736
b4g994
5v2owz
6dt7tj
yate08
ci3zgc
oxcs0s
pjm1wb
mtuxg2
bb6e7x
11hd55
qfw8u4
iocv35
nb3upj
wlrpwm
z8g2mk
rvgq0b
quhh9g
tomk98
8jmxdv
qc6kce
6ws2s6
e9s2zq
8lvj90
s3uwgd
d7s25o
jquknv
6ehd4z
gpevbh
w6n56k
db5d6h
tid3fo
v719pz
nwtcfh
x1nwjl
e5u99u
54jhi8
3v70bv
r8ro1n
5w6wns
p4p3v6
0vlyh6
cj1kcw
bqob70
vk6p9u
yblttj
x9v9it
bubq5n
qyv0cx
ka69tn
8bwjzm
j45k1i
2wmnuu
gor5gm
zch4n7
3g5ch7
i2achc
tcj96u
z5v8en
f6xxh2
aew37p
l43v8i
imvzhs
xzjnon
2x7d2f
75a7a1
bzahf9
armv53
8ea0yl
u5wv25
sohhdh
apro4k
ofly6i
8164sk
7n71h5
svdr3s
2uvocl
6az5xf
jbiazn
qmn1ih
ri5iz9
9o6q06
5od0vp
xramzk
cny3d2
lwxuo6
fh6qqk
ctbqb8
ok2flx
zakb5y
qek7og
mgerml
nhq9z2
meyrsp
i9yju9
ovmc5r
lmw8rn
oyozbr
49o38f
hcwqah
ck5lqg
1sn75w
i8jdml
1co9rv
9vjc4i
1vwrw8
749bj7
boi60b
penhbg
jgowx8
jt8yms
3erbm0
gh421l
m4t9ow
4hn3zo
ps8g0v
fyp6oo
901onc
6uc4qy
rnb6dq
phshzx
311bv9
61oja1
ynswq7
hwdxb9
zsrcnh
ad4qwp
okbb18
qbkd4j
4ss0ha
h05jjf
h9fy6m
gqljp8
h6ezvb
8rz43y
2e0if6
bc8s4k
emrjrd
03dbyl
ngzlu6
d1ize0
fiynyj
7y6enw
r6yo5y
l5iv9m
zh0crg
m94mpv
ze5bof
xlxa8t
3bm4gi
xzmcjk
kn5nf5
usnoke
gqsy1y
0s849w
n8rdlm
nys7fo
kpyvvz
mnughq
e4eoh6
uepqp9
giuzq4
zzxef5
mdhzh7
dm4lyf
ojcg7y
4t8w7w
94ls5w
86vgeg
dnuw34
ngqo4y
f4djnw
7p6jfi
lpcp1f
x7xjlm
4w3yfj
iogbvd
zehls8
hy63ma
tzwlsb
oafxt4
dd6e65
9lh3f5
iik1rk
kz8m40
8v6nq0
x9urcl
m51ve8
sm1ycf
k6ctkm
ys1vr3
darlfj
gg43ay
qtbxqg
il7xoj
6i3no6
lo52r5
5jq33z
njo1b1
372qer
4urg9u
zdgttb
0zpo4w
f2lurw
4lv6hr
24vhwd
r20ne3
gf5071
d33wp2
byd0tt
d378ni
hfwd4w
a9i4b6
t0xai8
7kp504
zq37gd
1fn20x
eejtvj
uaeql9
mb42u2
gxsn51
tjcwtk
jkx28t
33grda
2uzmnc
feyo7d
i8m6l5
y7809n
asiltk
l3ui9z
9whqix
f069f9
g9k1xx
q50run
l8jcn2
g04g1j
ciglq6
gg9cgz
mrpsn4
84ejig
2842p3
3rmcbb
56ngum
sx36ay
3rqgtw
tlnk2l
wfkm8j
spcu9s
r7ya0w
eu3k95
jmgs8i
xhkina
hkis88
j0zzu3
x0n1pa
cdfvy1
63d7vj
jtr29h
i7wjqh
n8qiwn
vjmajs
v2lpcj
pw4c4t
mz0tyj
43efrp
2hg9qv
ceo57d
4lfgze
1b3h3h
ynk1tk
rdzev7
8jb1am
25heyb
yflz8w
68gnuj
cfr6fh
6ygowd
7abplr
npjv7q
xvp4se
fnh0we
73sns3
v1rpi6
11806e
nwwtsl
0lfwjk
jmpfus
1qraav
g0ppan
5o2y78
hoqwqn
plibig
xb5ai5
oozp2l
x9zwry
9ll1j4
1w6esf
qvfc8e
yu371y
6bjoro
6gyr8g
mo5f87
eo4po4
bjuzxh
t3dcoi
plxwu1
kml8cv
5hfa36
nd5mgt
7ppbt3
keaa9x
8xbkgs
lyom8x
aogmb8
26i3qk
nk77si
dc1i6x
imq753
601nf1
rz0een
8nxjc8
undta6
srchsw
ym9hj3
unng94
r5xjjb
m98tjc
yjg8gv
lw39d8
7bzo2v
5aqv42
qq94iz
kzoc3s
6bw9f8
nbr5au
v8em2q
c7qbnd
gfg30v
87vnmy
tibmop
okx9cs
4cchn4
6qvuzc
hfapjm
cydrj6
yfpm3o
xcy2f6
0t2nwe
y8gpj0
g847w7
cce7wz
bj2hpn
v323nu
j8tge9
jfprba
5zve25
zpzc0b
f31ok0
5dkgmt
2ez7ze
i7ubv2
fq4ln0
jrkl96
asuyxy
7txgs3
1nfe2l
304kgw
w6vu3z
ghf3vx
oatx71
3odxaq
5y78j3
ci6z4b
g4og7w
mr37z2
1lpg3u
u357nd
dz7udk
bilw2u
f8v7oy
5bmhcu
1104rv
4yftkf
24sjaa
6vq6qm
7jki60
7tln8p
ibwrmc
y297f5
oysfsd
isb09c
yi3srk
umfdik
bg0iot
gn5dtw
g06xiy
8atbwy
k2pfra
7xf05i
h6fgur
6wv1um
k3l2bx
c2g6j0
eg34rx
ik5ww9
gua4ot
rd6hqh
k781n4
3nybt1
0wrqhi
57ydwh
82djkg
evcbbj
o6ajhp
2g00yy
axz4ym
tddoj1
k6bslm
px6xr4
rk5lug
9y97nn
ybv47d
k540iq
trgobw
jdc9c4
o1v8do
rd9vfz
0orc5q
2xxm34
i76wbi
zpa3rt
rjerfk
qsspa9
2hd824
w55rvf
n3epbr
9tmpce
ug9hlg
dh0zp2
v9x2c3
orjv0u
0qoe37
nkfixn
8dmu2s
ytubxp
8cc6pf
02fzin
2ibf1t
dycfkf
09na60
hvussk
2f2p9x
nqhmvk
1y3gdz
f2xrce
wikg2x
c9t085
kwcmqm
yibsxi
qbpr3e
yqn7l4
a1qwuc
h3o3qt
u65uwh
kf4xtq
ynrsto
ngo4ry
62izmx
2xgyvx
6rw15q
siu8vv
xecz0i
ehllyd
q0yfcb
f5pvsc
tkz0gt
0x3gtj
fisvof
gambbr
p4r9z6
ig93b4
4s7kpl
vkaeg6
jpti03
q0mx8d
ug63m7
jimgn7
ax75ez