The obvious questiong is : are swarms intelligent ?
As we see termite heaps, ant hills, bee hives, we would think that they are indeed intelligent. Does it not take intelligence to build such complicated and effective things ?
But there are two sides of the story.
One is being able to accomplish ‘intelligent’ tasks, like building a termite hill or predicting a president election result (prediction market).
Another one is knowing or being able to explain how you must build a termite heap or why the prediction is that and not another.
A definition of intelligence, borrowed from Wikipedia goes as folllows :
“A very general mental capability that, among other things, involves the ability to reason, plan, solve problems, think abstractly, comprehend complex ideas, learn quickly and learn from experience”
My point is that swarms can execute complex tasks, without necessarily being intelligent, without being able to explain how it (the swarm) does it, why it does it that way.
A termite swarm does not learn from previous experiences.
Take all data mining techniques based on this swarm idea (or related). Approaches like bagging, random forests, ant colony optimisation all are black boxes when it comes to explain the rules that are learnt by the data mining algorithm. They can execute a scoring on an unseen dataset with fairly good results, but you need another technique to extract the rules (not the exact ones, used by the data mining model, but simple ones that approximate the behaviour of the model.
When it comes to intelligent software : forget distributed software with a multitude of relatively simple agents. They are good to execute operations, but will they ever be able to give an answer to a difficult question ? To design something totally new ?
Some science fiction movies (e.g. Starship Troopers, I Robot) use this duality : a swarm of relatively dumb creatures to execute what is needed, but the whole thing and the final communication takes place face to ‘face’ with the central procession unit, the superbrain that controls the swarm.