I kind of circled in on the Particle Swarm Optimisation (PSO) algorithm through a huge detour. In our survey of algorithms, I was soon drawn towards rewriting systems, since I liked the idea of growing and shrinking of objects, of mutation of objects, and I find challenging the inherently symbolic level of the processing which would require the crossing of a gap when coming from a signal processing perspective – which I guess is our starting point with the live microphone signal being our only environmental knowledge (until we connect the layers with their own communication protocol). Everyone of course knows Lindenmayer systems as one of the favourite toys of "algorithmic composers" and hobby fractalists, so perhaps let's not go there.

I then discovered the formalism called P-system which I found very intriguing, particularly because I had never heard of it before, despite it having a history of twenty years. Like L-systems, there is a connection to "nature" and "biologically inspired" algorithms, apparent with the naming of nested containers or sub-routines as "membranes", as well as its basic theoretical advantage – theoretical, because AFAIK P-systems have never been found in-vitro but only been simulated in-silico – of free parallelism and cell division making it a tool for "solving" NP-hard problems. Soon after, we had a discussion on whether something like P-systems should be included in our selection process, as technically it is a computation model and not "an algorithm". Of course, and I have argued that in the discussion, "an algorithm" also doesn't really exist as a reified "thing" with clear boundaries. Indeed, when coming back to the PSO now, I think that both the P-system and the PSO offer a similar degree of "conceptual, aesthetical, algorithm configuration" that make them suitable for our project. Even though Kennedy and Eberhart argue that PSO, while inspired by bird flocking, should be thought of as "without metaphorical support", it is clear to me that everyone dealing with PSO is departing from the metaphorical support. If you look at the hundreds of variants and experiments, many of them are still based on biological templates (birds, catfish, fireflies) or physical templates (black hole). In a way, PSO is a prescription of a concept, even though a canonical "algorithm" exists, and that prescription is no more concrete than the prescriptions of the P-system, defined as a set of elements, such as membranes, objects, clearly outlined rules, etc.

Whatever one makes of the difference, I keep thinking that none of these two guarantees in any way that there will be a perceivable "cohesion" between the four artists. I think the cohesion is a work that we have to engage in. That is to say, we can all depart from an algorithmic proposal such as PSO, but the crucial aspect will be that we stay in communication about what each of us is doing, as I believe it is this dialogue that eventually ensures a form of cohesion. I would like to avoid that we fall into this trap of the reified algorithm and a "pedagogical" request to "show" how there is a balance of cohesion and differentiation when implementing "the same" algorithm over and over again. For me, ALMAT has always been about understanding the processual agency of the algorithmic, and this becoming and continuous exchange should stand in the foreground of the project; we should not care about circling in on a pre-determined outcome, otherwise it is not a true experiment, we should instead care about paying attention to the process.

That said, I think PSO is a good option to work with. I have listed above multiple of its properties. The canonical algorithm is quickly described in a few lines. As the original authors write, it is also not a demanding algorithm in terms of complexity and resources. Conceptually, there is an interesting tension between being a pure simulator (social psychologist Kennedy) and an optimiser (electrical engineer Eberhart); as a metaheuristic and form of unsupervised learning, it makes little assumptions about the material it works with. What is a particle? What is a "fitness"? What is a "distance"? And so on. As a form of structuring an abstract space, PSO can easily be employed for multiple purposes, also noted above, such as clustering or segmentation. This would indeed be a question from me – should we say, our disposition is not just PSO, but rather PSO plus one particular scenario, say clustering or compression?


{function: proposal, author: HHR, keywords: [rewriting, PSO, reconfiguration, biology, particle, swarm, process, experimentalism, clustering, segmentation]}

what I see as

Elements in the space

  • concrete
  • flights (perspectives)
  • moving (vertically)
  • reflection / reverberation
  • transitory
  • pseudo/a- symmetry


{function: comment, author: HHR}

A Proposal: PSO


If you comment on any of this, simply add a text box and prefix with your initials {dp}, {dpoz}, {hhr}, {jyk}, perhaps choose an individual faint background colour.

I propose as basic algorithm

(I'm still kind of sad that there is no obvious way to connect this to rewriting systems)

{kind: note}

Particle Swarm Optimisation (PSO)


{function: comment, function: overview, author: HHR}


  • A. Jain, Data clustering: 50 years beyond K-means, Pattern Recognition Letters 31 (2010) 651–666.


  • J. Kennedy, R. Eberhart, Particle Swarm Optimization. Proceedings of the IEEE international conference on neural networks, Vol. 4 (1995), 1942–1948.





{kind: reference}


The basic working of PSO is to assume a number of "particles", objects, points, feature vectors etc. which are situated in a "space" and "animated" in a step-by-step fashion, as in a discrete dynamical system, cellular automaton etc. In the simplest form, a "velocity" vector is maintained for each object, and memory consists of "best" individual positions and best global position, both of which are used to update the velocities. Thus over time, the particles are supposed to arrange according to an underlying unknown structure or find a particular "good" position, of course exhibiting a dynamic as a "side effect". PSO has been compared to other evolutionary algorithms such as genetic algorithm, where we have a similar concept of a population of objects adapted over time.

Variants exists that prefer to use local / neighbourhood memory instead of a single global best position; or that operate on graphs rather than "point" vectors. Some variants do with more, some with less parameters to be specified, some variants do away with the stochastic element, and so on.


{function: overview, author: HHR, keywords: [rewriting, PSO, reconfiguration, biology, particle, swarm, population, adaptation]}

This is a good overview not only of the different algorithms, but of the general properties, parameters and challenges of clustering.
Not open access, but manuscript (?) version available.

{function: comment}

Seminal paper, a very nice and clear read, beginning with the conceptual framing and the connections to other ideas such as Reynolds' bird flocking.
{function: comment}

A quite extensive list into papers working on all kinds of aspects, variants, extensions, applications of PSO. A bit tedious to go through. The PSO pseudo-code on the right is taken from this paper but probably originates from elsewhere.
{function: comment}

"An operational definition of clustering can be stated as follows: Given a representation of n objects, find K groups based on a measure of similarity such that the similarities between objects in the same group are high while the similarities between objects in different groups are low."

{kind: quote}

"… comprises a very simple concept, and paradigms can be implemented in a few lines of computer code. It requires only primitive mathematical operators, and is computationally inexpensive in terms of both memory requirements and speed."

{kind: quote}

"The method was discovered through simulation of a simplified social model; thus the social metaphor is discussed, though the algorithm stands without metaphorical support."

{kind: quote}

"The aim of clustering is to find structure in data and is therefore exploratory in nature."

{kind: quote}

meta: true
author: HHR
artwork: ThroughSegments
project: AlgorithmicSegments

function: proposal
keywords: [particle swarm optimisation, particle, swarm]