When we were first conceiving the work for the Kunsthaus staircase one of the early ideas was to take a specific algorithm, or class of algorithms, and use that as a common basis for our sound installation. Each of us four would then decline such algorithm according to his/her own practice, formulating an idiosyncratic implementation that could let emerge different affordances of the algorithmic and make them aurally perceivable.

This page was created during an early brainstorming, in which we were looking for algos we might have an interest to work with.

{author: POZ, date: 200512, function: contextual}

**Survey of Algorithms**

{author: poz, date: 191024, function: brainstorming}

Optical flow (lucas-kanade is a possible implementation)

- it assumes that the flow is essentially constant in a local neighbourhood of pixel under consideration, and solved the basic optical flow equations for all the pixels in the neighbourhood, by the least squares criterion

- rewriting system
- self similarity
- easy to communicate

{DP} how to think the input signal as part of the program?

{hhr, 191120} more random thoughts:

- Quorum sensing
- Particle swarm optimisation
- Something
*opposed*to the concrete structure; thus biological growth, plants, living organism...

More on P Systems:

- {L} J.Kleijn and M.Koutny, "Synchrony and Asynchrony in Membrane Systems" - "The aim of our work, however, is different in that we are interested in describing what is actually going on
*during*an execution of a membrane system; alternatively, one might say that we are interested in*computations*rather than*computability*." and "**Tissue membrane systems**In this case objects are transported through channels rather than membranes. Thus the nested tree-like structure of membranes is replaced by a graph, with its edges representing channels connecting compartments in a completely arbitrary way."

{hhr, 191121} more random thoughts:

- (Minimum) Spanning Trees
- Clustering
- Region Segmentation

- clustering algorithms
- rewriting systems (how to think it more abstract?)

- in parallel (lindenmayer)
- in series (chomsky)

- cellular automata
- referntial transparency

{function: memo, keywords: [algorithms, rewriting]}

the 10 "most important" algorithms for:

**Graph algorithms****Dynamic programming****Searching and Sorting:****Number theory and Other Mathematical****Geometrical and Network Flow Algorithms****Data Structures**

{kind: list, keywords: [algorithms, chart]}

axiom: | 0 |

1st recursion: | 1[0]0 |

2nd recursion: | 11[1[0]0]1[0]0 |

3rd recursion: | 1111[11[1[0]0]1[0]0]11[1[0]0]1[0]0 |

[L] John R. Rice (1975), The Algorithm Selection Problem {kind: reference}

**P Systems**

elements:

- environment
- membrane
- symbols
- catalysts
- rules
- application process

{hhr, 191024} Reading through WP article, I think that's very interesting in that it operates with these "abstractions" or "metaphors", as the article tries to describe the commonalities between various "P systems". That's kind of the abstract description of "algorithm" that I would deem suitable for exploration, as it doesn't prescribe yet how all of this is operationalised.

Example: "Membranes are the main “structures” within a P system. A membrane is a discrete unit which can contain a set of objects" ... that's both very particular and open at the same time.

[hhr] P system seems to be more a model of computation than a particular algorithm, perhaps it could be called an algorithmic or computation strategy? The dissolution of membranes I find rather beautiful.

{author: hhr, kind: note, keywords: [rewriting, system, process, symbols, graphs, topology, p system, membranes]}

simulation: "As there is no current method of directly implementing a P system in its own right, their functionality is instead emulated"

criteria for selection

- renowned / unknown
- classical (input->run->output) vs non-terminating

{function: memo}

**Abstract Rewriting**

"Confluence (abstract rewriting)": https://en.wikipedia.org/wiki/Confluence_(abstract_rewriting)

Knuth-Bendix "rules": delete / compose / simplify / orient / collapse / deduce

"Trace Monoid": "In computer science, a trace is a set of strings, wherein certain letters in the string are allowed to commute, but others are not. It generalizes the concept of a string, by not forcing the letters to always be in a fixed order, but allowing certain reshufflings to take place."

Peitgen: Multiple-reduction copying machine

Liskov substitution principle

"Symbolic chemical system based on abstract rewriting system and its behavior pattern": https://link.springer.com/article/10.1007/BF02471142

; ARMS - abstract rewriting system on multisets

P System: "A P system is a computational model in the field of computer science that performs calculations using a biologically-inspired process. They are based upon the structure of biological cells, abstracting from the way in which chemicals interact and cross cell membranes."

{function: survey, author: HHR, keywords: [rewriting, p system]}

dedicated subpage for

(this is then used to define nested membrane structures)

{kind: caption}

{author: hhr, kind: note, keywords: [rewriting, system, process, symbols, language, graphs, topology]}

What I find interesting about rewriting systems is

- that they may potentially run forever, as a process
- that they usually assume "symbols" or an "alphabet", making the connection to sound and signal processing not directly obvious (it's a challenge).
- that they relate to graphs and topologies

{kind: conversation, origin: spoken, persons: [DP, HHR], place: experimental studio, keywords: [rules, machine learning, turing machine, cellular automaton, Wolfram]}

DP [file: "IT5/191024/cut/ZOOM0017cut.wav", time: 45m30s]

Rule 110 is one of these simple ML rules, with which you can build turing complete machines. Build means that you have a 2D cellular automaton, where you place the beginning points and then the machine computes something. And it's really funny to look at, it has a very machine-like movement that is really interesting.

HHR

It's probably similar to these artificial life people that take ants or bees and make them compute something.

DP

Yeah. But that's interesting for me because there's a very strong aesthetics of where computation is in nature. I mean, Wolfram, who was one of the guys who used these things, he thinks that nature computes. It's a massive statement, right? And all these kind of things are based on this idea, which is a very strong aesthetic.

[in SC]

simple graph rewriting rule application in a computer program: replace multiplication-by-two by addition-with-itself

{kind: caption}

**Machine Learning (terms, ideas)**

- neural gas
- novelty detection
- unsupervised learning
- backpropagation
- clustering
- self-organising (maps)
- Hebbian theory
- Autoassociative memory

**Data Structures**

- Non-oblivious data structure (leaving a trace of its evolution): https://en.wikipedia.org/wiki/Oblivious_data_structure
- amortized (i.e. irregular performance operation, a notion of "time" in the sequence of performance)

{kind: note, keywords: [machine learning, data structures], author: HHR}

---

meta: true

author: [HHR, POZ, DP]

artwork: ThroughSegments

project: AlgorithmicSegments

function: survey

date: 191024

keywords: [algorithms, survey, brainstorming]

---