For the last few years I’ve had a couple of topics constantly on my mind: social software and evolutionary computation. Though equally geeky, it may not be obvious why they actually share roots. Both of these are rather diverse fields, so I’ll outline exactly what part of each I’m thinking of — by which time those roots ought to be showing.
The particular brand of social software I’m excited about is social awareness, i.e. knowing what’s going on with people and things in a way that is anchored to the here and now. Why? Because it sparks positive interactions. Advice is dispensed. A coffee chat occurs. An item is lent. A nodding acquaintance is tipped into a valued friendship. There’s a net gain.
None of these consequences is explicitly coded into the social software platform which solely aims to emulate a kind of telepathy. For this, it must gather and represent the information somehow to avoid overload, irrelevancy and ego. Getting this model right an open problem.
My preferred flavour of evolutionary algorithm is the constructive sort. This approach builds solutions to problems from the ground up making more complex solutions from simpler ones. Via trial-and-error, it learns which parts of the solution depend on each other and can then support those associations.
The beauty of this approach is that, not only it can search for solutions that I don’t have but it is finding out stuff I don’t know along the way. It’s an automatic creative process.
The buzzword that connects these two endeavours is emergence. Both should intrinsically reinforce ‘positive’ interactions, even though the form of the interaction may not be anticipated in advance. Balanced against this is the need for exploratory interactions which give an unknown payoff. Most likely the payoff will not be as good as current interactions but some will and these are the ones that lead away from stagnation.