Tag Archives: flocks

Moving in flocks: local interaction rules as a social network management tool

In my early foray into computer graphics in the late 80s I came across Symbolics, a spinoff of MIT AI Lab doing (among other things) research in advanced visualization. I was dumbfounded by this video, premiered by Symbolics at SIGGRAPH 1987. How could they achieve their flock of birds  to move in such a natural-looking way? At the time it looked like sorcery: I was a humble economics student in a small town in Italy, with not a chance in hell to grasp the extension of the knowledge wielded by MIT computer whizs. So I put it away in a corner on my mind. Until, in 2009, I chanced on a 1992 book, Mitchell Waldrop’s Complexity, that actually knows the answer to my 22-year old question. Each bird or fish in the flock follows three simple rules of behaviour:

  1. It tries to maintain a minimum distance from other objects in the environment, including other birds/fish (Symbolics’ Craig Reynolds called them “boids”).
  2. It tries to match velocities with nearby birds/fish.
  3. It tries to move toward the perceived center of mass of nearby birds/fish.

The natural-looking flocking behaviour is emergent. As far as the program is concerned, there is no entity called flock: it is just moving about individual boids. Simple rules for local interaction among them produce an elegant and effective collective behaviour.

Wait a minute. This is not so different from what is happening in Kublai. Example: we wanted the community to go and say hello to new members. Of course you cannot issue a decree that this is to happen. So what we did was this: Walter and I, who are friends and also particularly active community members, agreed that we would do it, created a Welcome Group and started doing just that. This produced some sort of flocking behaviour: our “net neighbours” (at least some of them) started imitating us, and joined the group. Soon they developed a more effective way to keep track of who was doing what (after some trial-and-error Pico proposed a widget which everyone was happy with), and their net neighbours started following their example… including the initiators!

Communities are, by definition, impossible to control: but they are certainly possible to influence. This is no rocket science: most of us have some experience of it. This flocking behaviour intuition, if confirmed by analysis, could lead to developing techniques for influencing (not sure “managing” is the appropriate word) social networks based on establishing “islands” of local interactions where certain rules apply, and watching them spread out through the network’s links. Of course where you start matters: it just so happens that Walter and I are by far the most eigenvector central people in Kublai, according to Ruggero.

I am wondering whether this mechanism could somehow help us understand why people seem “too eager” to collaborate in social networks, and why, conversely, oppurtunistic behaviour is a lot less widespread than one would be inclined to think (this remark run in several talks at Public Services 2.0). Cooperation as an emergent property of networks, as opposed to an intrinsic property of individuals?

Muoversi a stormi: regole per l’interazione locale per influenzare i social network


Nella seconda metà degli anni 80 mi sono interessato per un po’ di computer graphics, e mi sono imbattuto in Symbolics, uno spinoff del MIT AI Lab che si occupava tra l’altro di visualizzazione avanzata. Questo video, presentato da Symbolics a SIGGRAPH 1987, mi colpì moltissimo: come facevano a fare muovere uno stormo di uccelli in un modo così naturale? Al tempo sembrava stregoneria, e io del resto ero uno studente di economia della provincia italiana, senza nessuna possibilità di capire il lavoro dei maghi del computer del MIT; quindi ho accantonato la domanda. Fino a che, nel 2009, mi è capitato di leggere un libro del 1992,  Complexity di Mitchell Waldrop, che ha la risposta alla mia domanda di 22 anni prima. Ogni uccello dello stormo (o pesce del banco), segue tre semplici regole di comportamento:

  1. Prova a mantenere una distanza minima dagli altri oggetti dell’ambiente, inclusi gli altri uccelli/pesci (Craig Reynolds a Symbolics li chiamava “boids”).
  2. Prova ad adeguare la propria velocità a quella degli altri uccelli/pesci nelle vicinanze.
  3. Prova a spostarsi verso il centro di gravità degli altri uccelli/pesci nelle vicinanze.

La naturalezza dei movimenti dello stormo è emergente. Per quanto ne sa il programma, non c’è nessuna entità chiamata stormo: sta animando dei singoli boids. Semplici regole di interazione locale tra di essi producono un comportamento collettivo elegante ed efficace.

Aspetta un attimo. Questo non è poi così diverso da quello che succede in Kublai. Esempio: volevamo che la community salutasse i nuovi iscritti. Naturalmente non è una cosa che si possa fare per decreto. Quindi abbiamo fatto così: Walter e io, che siamo amici e anche membri molto attivi della community, abbiamo creato un Welcome Group e abbiamo iniziato a farlo. Questo ha generato un movimento che può ricordare il volo di un (piccolo) stormo: i nostri “vicini di rete”, o almeno alcuni di essi, si sono a loro volta iscritti al gruppo e hanno iniziato anch’essi a dare il benvenuto ai nuovi entrati. In breve tempo hanno sviluppato un modo più efficace di tenere nota di chi stava facendo cosa (dopo un po’ di tentativi-ed-errori Pico ha proposto un widget che va bene per tutti), e i loro vicini di rete hanno cominciato a imitarli… iniziatori compresi!

Le communities sono, per definizione, impossibili da controllare; ma certamente è possibile influenzarle. Questa affermazione è abbastanza ovvia, molti di noi ne hanno fatto esperienza. Questa intuizione di volare a stormi, se confermata dall’analisi, potrebbe portare allo sviluppo di tecniche per influenzare i social network (non solo sicuro che “gestire” sia una parola appropriata) basate sulla costruzione di “isole” di interazione locale in cui certe regole sono accettate, e da cui poi queste regole si propagano attraverso le connessioni della rete stessa. Naturalmente la localizzazione di queste isole è importante: in Kublai Walter e io siamo le persone di gran lunga più centrali negli autovettori, secondo Ruggero.

Mi chiedo se questo meccanismo possa aiutarci a capire perché la gente sembri “troppo collaborativa” sui social networks e perché, di converso, i comportamenti opportunistici siano molto meno diffusi di quanto si possa pensare “da fuori” (e infatti “da fuori” la rete sembra un luogo pericoloso ai vari D’Alia, Carlucci, Rossi et cetera). La cooperazione è una proprietà emergente delle reti, anziché una intrinseca delle persone?