« Gershenson och Heylighen om självorganisation | Main | Talking to bacteria »
februari 15, 2004
Heylighen, Gershenson: The Meaning of Self-organization in Computing
Francis Heylighen och Carlos Gershenson försöker i The Meaning of Self-organization in Computing (PDF) beskriva sin vision hur man ska åtgärda den komplexa (komplicerade) värld som systemutveckling blivit. Se förra blogganteckningen Gershenson och Heylighen om självorganisation för referenser till författarna.
Problemställning är sålunda:
The wave of innovation unleashed by the first user-friendly PCs in the 1980's and the Web in the 1990's seems to have gotten drowned in complexity and confusion. Software developers are scrambling to keep their systems up-to-date with all the new standards, plugins and extensions. While we constantly hear announcements of the most spectacular innovations, few seem to reach maturity. The problem is that developers tend to underestimate the complexity of the task environment: today's information systems depend on so many modules, sources of data, network connections, input and output devices that it has become impossible to predict or control their interactions. The result is software full of bugs, corrupted data, security holes, viruses, and other potentially catastrophic side-effects. Moreover, systems have become so complex that the human mind simply no longer can learn or remember all procedures needed to use them. Add to this constant change in hardware, software, protocols, data, and user expectations, mix well, and you have a recipe for chaos.
De nämner IBM:s autonomic computing som en lösning på problemet, men menar att denna väg inte är tillräckligt radikal. De föreslår en mer radikal vision: självorganisande datorsystem.
Efter en inledande diskussion om principen bakom självorganisation i naturen förklarar de hur de tänker sig:
How can we apply this general vision to information systems? Imagine a variety of components: hardware and software modules, files, websites, interfaces, users... All these components interact by exchanging information. Assume that neighboring components have the capability to mutually adapt: by sending messages back and forth they negotiate until they achieve a common "understanding", in which they both can settle. But coordination does not stop there: it propagates back and forth between all components, until a globally stable order is created. Any change, such as a newly introduced component or local breakdown, will restart the negotiation process with its immediate neigbors. Its effects will ripple further through the neighborhood until this perturbation too is absorbed, and the system is back to equilibrium. Of course, we will need to overcome important hurdles before we can achieve this vision. Most obviously, we must create a universal protocol for interaction that supports unrestricted selforganization.
Sedan nämns exempel på existerande implementationer av sådana system: myralgoritmer, routning av meddelanden i nätverk samt organisation av länkar på webben (som Heylighen har skrivit en del om).
De avslutar på följande sätt:
With some minor variations, we could apply this scheme to the construction of shared ontologies, clustering similar concepts into categories, and linking the categories that are most strongly associated. Object-oriented programming too could profit from this approach, with objects mutually negotiating message passing protocols, and spontaneously assembling into higher level objects. (For example, the latter is supported by the SWARM programming environment). The same goes for ubiquitous computing or intelligent environments: various devices such as fridges, thermostats, or phones connected to a network can learn to mutually coordinate their activities, thus minimizing the burden on the user.
The possibilities seem endless. Is this the future of computing? Only time can tell...
Posted by hakank at februari 15, 2004 07:43 EM Posted to Komplexitet/emergens