ArticlePDF Available

Bead--Sort: A Natural Sorting Algorithm

Authors:

Abstract and Figures

Nature is not only a source of minerals and precious stones but is also a mine of algorithms. By observing and studying natural phenomena, computer algorithms can be extracted. In this note, a simple natural phenomenon is used to design a sorting algorithm for positive integers, called here Bead-Sort. The algorithm's run- time complexity ranges from O(1) to O(S) (S is the sum of the input integers) depending on the user's perspective. Finally, three possible implementations are suggested.
Content may be subject to copyright.
In The Bulletin of the European Association for Theoretical Computer Science 76 (2002), 153-162.
Bead–Sort: A Natural Sorting Algorithm
Joshua J. Arulanandham, Cristian S. Calude, Michael J. Dinneen
Department of Computer Science
University of Auckland
Auckland, New Zealand
Email: hi josh@hotmail.com,{cristian,mjd}@cs.auckland.ac.nz
Abstract
Nature is not only a source of minerals and precious stones but is also a mine
of algorithms. By observing and studying natural phenomena, computer algorithms
can be extracted. In this note, a simple natural phenomenon is used to design a
sorting algorithm for positive integers, called here Bead–Sort. The algorithm’s run–
time complexity ranges from O(1) to O(S)(Sis the sum of the input integers)
depending on the user’s perspective. Finally, three possible implementations are
suggested.
1BeadsandRods
According to Dijkstra [3], “our systems are much more complicated than can be con-
sidered healthy, and are too messy and chaotic to be used in comfort and confidence.
. . . unmastered complexity is at the root of the misery”. One way to cope with this situa-
tion is to “go back to Nature” for resources and inspiration (see, for example, [4, 5, 2]), a
trend strongly advocated by Rozenberg (see his ideas in the inaugural column “Natural
Computing”, [6]; a recent account was presented in [7]).
In this note, a simple natural phenomenon is used to design a sorting algorithm for
positive integers, called here Bead–Sort. In what follows, we represent positive integers
by a set of beads (like those used in an Abacus) as illustrated below in Fig. 1.
beads
number 3 number 2
 
Fig. 1
Beads slide through rods asshowninFig.2.
4
3
34
2
3
4
2
 


 


(a) (b) (c) (d)
Fig. 2
Fig. 2 (a) shows the numbers 4 and 3 (represented by beads) attached to rods; beads
displayed in Fig. 2 (a) appear to be suspended in the air, just before they start sliding
down. Fig. 2 (b) shows the state of the frame (a frame is a structure with the rods
and beads) after the beads are ‘allowed’ to slide down. The row of beads representing
number 3 has ‘emerged’ on top of the number 4 (the ‘extra’ bead in number 4 has dropped
down one ‘level’). Fig. 2 (c) shows numbers of different sizes, suspended one over the
other (in a random order). We allow beads (representing numbers 3, 2, 4 and 2) to slide
down to obtain the same set of numbers, but in a sorted order again (see Fig. 2 (d)). In
this process, the smaller numbers emerge above the larger ones and this creates a natural
comparison (an online animation of the above process can be seen at [1]).
To study our main procedure, called Bead–Sort, we will adopt a few conventions.
Rods (vertical lines) are counted always from left to right and levels are counted from
bottom to top as shown in Fig. 3. A frame is a structure consisting of rods and beads.
..
1
2
3
n
...
.
.
.
Rods
.
Levels
123 m
Fig. 3
2 Algorithm and Complexity
In this section, we present the Bead–Sort algorithm and analyze its complexity in three
different ways.
2
Consider a set Aof npositive integers to be sorted and assume the biggest number
in Ais m. Then, the frame should have at least mrods and nlevels. The Bead–Sort
algorithm is the following:
The Bead–Sort Algorithm
For all aAdrop abeads (one bead per rod) along the rods, starting
from the 1st rod to the ath rod. Finally, the beads, seen level by level,
from the nth level to the first level, represent Ain ascending order.
The Algorithm Bead–Sort is correct. We prove the result by mathematical induction
on the number of rows of beads. We claim (*) that the set of positive integers represented
by the states of the frame before and after the beads are dropped is the same. Also we
claim (**) that the number of beads on each row i, after dropping, is at most the number
of beads on row i1 (the row directly below it).
Consider a set of cardinality n= 1. Since there is no possibility for a bead to drop
the above two claims hold. Now assume that these two properties hold for an input set
whose cardinality is k. Suppose a row k+1 of m<mbeads is now dropped on top
of these krows. Since claim (**) holds there is an index jmsuch that all mj
beads in columns greater then jdrop down (from row k+1). If mj= 0, we are done.
Otherwise, the values of row k+1 and row khave been swapped, with any excess beads
on row kready to drop further. Thus, claim (*) holds, after a series of at most kswaps1.
Claim (**) also holds since we repeat these swaps until the force of gravity cannot pull
down any more beads.
The time complexity of Bead–Sort can be evaluated at three different coarseness
of discretization: complexity (1) treats ‘dropping all beads together’ as a single (si-
multaneous) operation, complexity (2) treats ‘dropping the row of beads in the frame
(representing a number)’ as a distinct operation and complexity (3) treats ‘dropping each
and every bead’ as a separate operation.
According to the first measure of complexity, the ‘dropping’ works in one unit of time
and hence the complexity is O(1). For the second measure, there are ndistinct rows of
input beads in the frame and therefore the complexity is O(n). For the third measure,
the complexity is equal to the total number of beads dropped. Hence, the complexity is
O(S), where Sis the sum of the input integers.
Note that in each of the above cases, the number of levels each bead drops is not
taken into account. Some implementations might require that this factor is taken into
account, since a bead dropping down from a higher level could cost more.
3 An Analog Hardware Implementation
The presence or absence of a bead is represented by an analog voltage across electrical
resistors. A rod is represented by a series of electrical resistors of increasing value from
top to bottom (see Fig. 4).
1Note that, physically, there are no ‘swaps’, but, the proof assumes the occurrence of ‘pseudo–swaps’,
for convenience; the actual algorithm operates in one unit of time to do all these pseudo–swaps.
3
.
.
.
.
.
..
.
.
Rod m
.. .
V1 V2
R 1,n
R 1,1
R 1,2
R 2,n
R 2,2
R 2,1
Vm
R m,2
R m,n
R m,1
Rod 1 Rod 2
Level 1
Level 2
Level n
Fig. 4
If the voltage across a resistor is above a preset threshold–voltage t, then it indicates
the ‘presence of bead’. The values of resistances in series (representing a rod) are ar-
ranged in increasing order so that when a voltage is applied across them, there is more
‘concentration’ of charge (voltage–drop) in the bottom resistors than in the top ones; this
is the electrical equivalent of the effect of gravity (that attracts beads downward). Let
the voltages across the rods be V1,V2,...,Vm, respectively. Let the currents through the
rods be C1,C2,...,Cm, respectively. Each resistor is denoted by Ri,j where iis the rod
number and jthe level number; xi,j represents the voltage–drop across Ri,j . The resistors
lying on the same level (say, j) have the same value, i.e. R1,j =R2,j =... =Rm,j .
.
.
.
R 1,n
R 1,2
R 1,1
.
.
... .
.. .
.
.
.
R 2,1
R 2,2
R 2,n
Data Entry Device
Trim
Trim
Trim
Trim
Trim
Trim
R m,n
R m,1
Trim
Trim
Trim
R m,2
vn
v1
v2
Fig. 5
4
The voltage across each resistor is fed into a trimmer circuit (threshold unit) whose
output is given by x
i,j =1,ifxi,j t,x
i,j = 0, otherwise. This is shown in Fig. 5, where
dotted lines/dashes do not indicate physical connections. Let v1,v2, ...,vndenote the
sums of individual voltages across resistors (after thresholding) in the 1st,2
nd, ...,nth
levels, respectively (note that in Fig. 5, the detailed circuitry for adding voltages is not
shown). Hence we have:
v1=x
1,1+x
2,1+...+x
m,1,
v2=x
1,2+x
2,2+...+x
m,2,
.
.
.
vn=x
1,n +x
2,n +...+x
m,n.
The data–entry device is used to enter data to be sorted. When an integer is keyed
in, the equivalent unary representation is generated (for instance, the number 3 is rep-
resented as three 1’s followed by 0’s). The output lines from the data–entry device are
attached to the rods consisting of series of resistors as shown in Fig. 5, the first unary
digit connected to the 1st rod, and so on. For every ‘1’ in the ith digit of the unary
representation, a voltage increment δv is applied to the corresponding ith rod (of resis-
tors), i.e. the voltage across the ith rod is increased by δv. This is the way a new bead
is introduced onto a rod.
Every time a new data is entered, the individual resistors would have a different
voltage level; and these voltage levels should reflect the presence/absence of a bead in the
frame at that point of time. Hence, the values of the resistors, the voltage increment δv
and the threshold–voltage tshould be designed accordingly. After the whole data has
been entered, the voltage vector v1,v2,...,vnwill contain the sorted list (in descending
order).
To get a concrete example, consider a simple analog resistor circuit (see Fig. 6) that
can sort 3 positive integers, the biggest of which is 3.
1
3
2
1
3
2
1
3
2
v3
v1
v2
Fig. 6
The circuit has three rods and three levels, 9 resistors on the whole. Let us show how it
can sort the data set {2,1,3}. The total resistance in each rod Ris 1Ω + 2Ω + 3Ω = 6Ω.
The threshold voltage tis 0.5 volt; the voltage increment δv for every new bead is 1
5
volt. The integers 2, 1, 3 are entered one by one; the corresponding changes in voltage
levels across individual resistors and the current after entering the data 2 (110 in unary),
1 (100), 3 (111) are shown in Fig. 7 (a), 7 (b) and 7 (c), respectively. The slanting
arrows represent the flow of current and the values of current are shown in amperes.
The figures written close to the individual resistors represent the voltage levels across
them (xi,j ); those within the brackets represent the voltage after thresholding (x
i,j ). The
corresponding state of the frame is shown together. Note that after the last integer has
been entered, v1,v2and v3represent the sorted list.
1 v
0.5
0.3
0.2
(0)
(0)
(1)
1 v
0.5
0.3
0.2
(0)
(0)
(1)
0 v
(0)
0.0
0.0
0.0
(0)
(0)
3 v 2 v 1 v
1.5
1.0
0.5
(1)
(1)
(1) 1.0
0.7
0.3
(0)
(1)
(1) 0.5
0.3
0.2
(0)
(0)
(1)
0.5
0.3
0.2
(0)
(0)
(1)
0 v
0.0
0.0
0.0
(0)
(0)
(0)
2 v
1.0
0.7
0.3
(0)
(1)
(1)
1 v
0
(b)
(a)
(c)
0
1
3
1
2
1
6
1
3
1
6
1
6
1
6
Fig. 7
The time complexity of sorting using the above implementation is due to two com-
ponents: data entry time and the actual sorting time (time taken for electrical charges
6
to settle down). In this implementation, data entry and sorting action alternate each
other; sorting does not wait till all data have been entered. Let t1be the average time
taken for entering a single data item and t2be the average charge settling–time. It takes
t1+t2units for every single data item in the set. The overall complexity is therefore
n×(t1+t2), i.e. O(n).
In the case of manual data entry, t2will be so small compared to t1such that the
actual sorting time (before the next data is entered) is negligible.
4 A Cellular Automaton Implementation
A cellular automaton (CA) is a suitable choice for simulating natural physical systems
because it is massively parallel, self-organizing and is driven by a set of simple, local
rules (see, for example [8]).
In its simplest form, a CA can be considered a homogeneous array of cells in one,
two or more dimensions. Each cell has a finite discrete state. Cells communicate with
a number of local neighbors and update synchronously according to deterministic rules.
A cell updates its state depending on its current state and its neighbor states.
When modeling physical systems using cellular automata, space is treated as having
finitely many locations per unit of volume. Each location is represented by a cell and a
state is associated with each cell.
To emulate Bead–Sort, we use a two dimensional CA as shown in Fig. 8.
0
0
0
0
0
0
0
000
0
0
0
0
0
0
00
0
0
0
000
1
1
1
1
1
1
1
1
1
1111
1
11
1
1
1
1
1
Fig. 8
Each cell has two discrete states. A cell in state ‘1’ represents the space occupied by a
bead and a cell in state ‘0’ represents a space without any bead. The local CA rule used
to ‘roll down’ a bead into its ‘empty’ lower–neighbor is “a state–1 cell and its state–0
(empty) lower–neighbor cell always swap their states”. Table 1 shows in detail how this
rule is applied. The local rules are applied until no change in the configuration can be
obtained by any further application. The snap-shots of the CA configurations that evolve
while sorting the data-set {1, 3, 2, 1}are shown in Fig. 8.
The number of sequential updates of CA configuration necessary for sorting a partic-
ular set of data would depend on the ‘degree of disorder’ (entropy) associated with the
initial configuration (state) of the frame; this is the extent to which the initial state of
the frame ‘deviates’ from the state of a sorted frame (showing the same set of data in
sorted form). In the worst case, there will not be more than n1 sequential updates of
CA configuration (note that state–changes in a CA are simultaneous) which leads to a
worst–case complexity of O(n).
7
Present State Upper–neighbour(x)Lower–neighbour(x)Next State
of Cell xof Cell x
0 0 0 0
0 0 1 0
0 1 0 1
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 0
1 1 1 1
Table 1
5 A Digital Hardware Implementation
We now discuss a digital implementation: the presence and absence of a bead is repre-
sented by the states ‘1’ and ‘0’ of a cell (flip–flop). A rod is represented by an array
of cells. Fig. 9 shows how the frame can be described with a two–dimensional array of
cells cell[i, j ]; cell[i, j]=1,ifthereisabead in the ith rod at the jth level, cell[i, j ]=0,
otherwise.
1
2
3
4
j
i (rods)
(cells)
flip-flops
0
0
0
0
00 0
0
0
0
0
234
0
1
(levels)
1
1
1
1
1
1
1
1
1
1
11
Fig. 9
There are several possible approaches to make beads ‘go down’ one of which is discussed
here. The input data (in unary form) is entered one–by–one into a data entry register as
shown in Fig. 10. Let the register be represented by a Boolean vector Bead[i]; Bead[i]
= 1 indicates that a bead is to be ‘dropped’ along the ith rod. All 1–bit cells from the
register are to be shifted ‘downward’ into the two dimensional array of cells cell[i, j]
(representing a frame) beneath, before the next data is entered. Thus, after the last data
is entered, the whole set would already be sorted in the array of cells.
A simple logic circuit shown in Fig. 10 is connected to each and every cell in the two
dimensional array of cells (the frame); when Bead[i] = 1, the circuit helps to locate that
cell in the ith rod which should ‘receive’ the bead. The circuit attached to that cell alone
‘triggers’ and makes it flip to a 1–state. Thus, shifting the bead downward is quite fast;
the 1–bit states in the register (the beads) do not have to ‘propagate’ cell–by–cell along
the corresponding rods.
8
0
3
0
0
00
4
0
1
0
1
0
0
0
00
0
0
0
0
0
0
0
0
0
00
0
0
0
0
0
00
0
0
0
00
0
0
2
0
j
0
0
0
0
(levels)
i (rods)
Data Entry Register
4
3
Bead[i]
Cell[i, j-1]
Cell[i, j] Cell[i, j]
2
1 1
1
1
1
1
1
1
11
Fig. 10
The circuit attached to each and every cell cell[i, j] enforces the following logic: Set
cell[i, j ](makecell[i, j] = 1) if (a) it is currently OFF, i.e. cell[i, j] = 0 and (b) the cell
in the data–entry register representing the ith rod is ON, i.e. Bead[i] = 1 (there is a
bead up ready to ‘drop down’ along ith rod) and (c) its immediate lower neighbour cell
(cell in the next lower level) is ON, i.e. cell[i, j 1] = 1 (which means the bead falling
down can not go any further). Note that cell[i, 0] is assumed to be 1. Thus, after the
last data is entered, the frame cell[i, j ] will have the whole set of data in a sorted form.
The time complexity of sorting using the above implementation is due to two com-
ponents: data entry time and the actual sorting time (time taken for the cells to switch
states). In this implementation also, data entry and sorting alternate each other; sorting
does not wait till all data are entered. Let t1be the average time taken for entering a
single data item and t2the average time taken for the cells to switch states. It takes
t1+t2units for every single data item in the set. The overall complexity is therefore
n×(t1+t2), i.e. O(n).
The observation made at the end of section 3 is equally valid here.
6 Conclusions
A way to design a natural algorithm is to discover an analogous natural property in
a physical system, and then to compute by “hitching a ride” on that inherent natural
property. In our case, “beads fall down in the sorted order”. Bead–Sort, the emergent
sorting algorithm, is simple, parallel and low cost. Some possible implementations of
Bead–Sort have been discussed. The analog implementation is the most natural imple-
mentation; electrical charges behave in the same manner as beads react to gravity. The
cellular automaton implementation is simple and very easy to understand. The digital
design is easy to implement and is cost effective.
References
[1] J. J. Arulanandham. The Bead–Sort. Animation, www.geocities.com/natu-
ral algorithms/josh/beadsort.ppt.
9
[2]C.S.Calude,G.P˘aun, Monica T˘at˘arˆam. A glimpse into natural computing,
J. Multi Valued Logic 7 (2001), 1–28.
[3] E. W. Dijkstra. The end of computing science? Comm. ACM 44, 3 (2001), 92.
[4] A. J. Jeyasooriyan. Ball Sort — A natural algorithm for sorting, Sysreader (1995),
13–16.
[5] A. J. Jeyasooriyan, R. Soodamani. Natural algorithms — A new paradigm for
algorithm development, In Proc. 2nd International Conference on Information,
Communications and Signal Processing, CD-Rom, ICICS ’99, 1999.
[6] G. Rozenberg. The natural computing column, Bulletin of EATCS 66 (1998), 99.
[7] G. Rozenberg. The nature of computation and the computation in nature, Inter-
national Colloquium on Graph Transformation and DNA Computing, Technical
University of Berlin, 14 February 2002.
[8] S. Wolfram. Theory and Applications of Cellular Automata, World Scientific Pub-
lishers, Singapore, 1986.
10
... In [3] we have proposed Bead-Sort, a natural sorting algorithm. Working closely on the same theme, and using a physical mechanism similar to the one used for Bead-Sort, we propose a natural algorithm for searching a sorted list in O( √ N ) time. ...
... The following is a review of the sorting algorithm we proposed in [3]. The sorting algorithm for positive integers, which we call Bead-Sort, is based on a simple natural phenomenon. ...
... See [3,2] for a formal proof of correctness and for various implementations of Bead-Sort. Note that we work with a row-of-beads as a basic "data object" (similar to a "byte" or a "word" in a digital computer) and not with a single bead. ...
Article
In this note we present two natural algorithms—one for sorting, and another for searching a sorted list of items. Both algorithms work in time, N being the size of the list. A combination of these algorithms can search an unsorted list in time, an impossibility for classical algorithms. The same complexity is achieved by Grover's quantum search algorithm; in contrast to Grover's algorithm which is probabilistic, our method is guaranteed correct. Two applications will conclude this note.
... In [3] we have proposed Bead-Sort, a natural sorting algorithm. Working closely on the same theme, and using a physical mechanism similar to the one used for Bead-Sort, we propose a natural algorithm for searching a sorted list in O( √ N ) time. ...
... The following is a review of the sorting algorithm we proposed in [3]. The sorting algorithm for positive integers, which we call Bead-Sort, is based on a simple natural phenomenon. ...
... . . . See [3,2] for a formal proof of correctness and for various implementations of Bead-Sort. The time complexity of Bead-Sort is actually the time taken by the beads to settle down in a state of rest. ...
Article
Full-text available
In this note we present two natural algorithms—one for sorting and another for searching a sorted list of items. Both algorithms work in O(√ N) time, N being the size of the list. A combination of these algorithms can search an unsorted list in O(√ N) time, an impossibility for classical algorithms. The same complexity is achieved by Grover's quantum search algorithm; in contrast to Grover's algorithm which is probabilistic, our method is guaranteed correct. Two applications will conclude this note.
... Computational Capabilities of the Dynamics. As a first look at the computational capabilities of the model, we show that we can sort natural numbers simulating The Bead-Sort model described by Arulanandham et al. [1]. This model consists on sorting natural numbers through gravity: numbers are represented by beads on rods, like an abacus, and are let loose to be subjected to gravity. ...
... This model consists on sorting natural numbers through gravity: numbers are represented by beads on rods, like an abacus, and are let loose to be subjected to gravity. As shown in [1], this process effectively sorts any given set of natural numbers. It is reasonable to think that because of the dynamics and constraints of our model (one direction of movement for the particles), the same sorting method can be applied within our model, which is in fact the case. ...
Preprint
We introduce a restricted version of the Diffusion Limited Aggregation (DLA) model. DLA is a cluster growth model that consists in series of particles that are thrown one by one from the top edge of a two (on more) dimensional grid, where they undergo a random walk until they join the cluster. In our restricted version, particles are limited to move in a subset of the possible directions. We study the restricted DLA model in the context of Computational Complexity, defining a decision problem consisting in computing whether a given cell in the grid will be occupied after the deterministic dynamics have taken place. We find that depending on the imposed restrictions, this problem can be either efficiently parallelizable of inherently sequential. More precisely, we show that the prediction problem associated with particles allowing two or more movement directions is P-Complete, as it can simulate arbitrary Boolean circuits. On the hand, the prediction problem associated to particles restricted to move in one direction is much more limited, despite still having non-trivial computational capabilities. Indeed, in this case we show that the prediction problem can be solved by a fast parallel algorithm.
... where x i is a uniform random value in [0, 1] [10]. The distance distributions of the Sibuya distribution are well-defined and follow the results of the concentration of measure phenomenon. ...
... Application of l-Function on (1,0). Let some function f define a sorting algorithm known as bead sort [1] on N random integers B in their matrix rank order representation such that: ...
Article
Full-text available
An archetypal problem discussed in computer science is the problem of searching for a given number in a given set of numbers. Other than sequential search, the classic solution is to sort the list of numbers and then apply binary search. The binary search problem has a complexity of O(logN) for a list of N numbers while the sorting problem cannot be better than O(N) on any sequential computer following the usual assumptions. Whenever the problem of deciding partial order can be done in O(1), a variation of the problem on some bounded list of numbers is to apply binary search without resorting to sort. The overall complexity of the problem is then O(log R) for some radius R. A logarithmic upper-bound for finite encodings is shown. Also, the topology of orderings can provide efficient algorithms for search problems in combinatorial spaces. The main characteristic of those spaces is that they have typical exponential space complexities. The factorial case describes an order topology that can be illustrated using the combinatorial polytope . When a known order topology can be combined to a given formulation of a search problem, the resulting search problem has a logarithmic complexity. This logarithmic complexity can then become useful in combinatorial search by providing a logarithmic break-down. These algorithms can be termed as the class of search algorithms that do not require read and are equivalent to the class of logarithmically recursive functions. Also, the notion of order invariance is discussed.
... Le tri par boulier est un méthode originale pour trier des entiersécrits en une colonne de nombres en base unaire [ACD02]. Les nombres sont triés en laissant tomber les bits verticalement, comme le montre le schéma ci-dessous où l'on trie les nombres [3,2,4,2]. ...
Article
This work is part of the MGS project which studies the integration of topological notions into programming languages. We study and develop the notions of topological collection (a set of values equipped with a neighborhood relation and of transformation (a function defined by a set of rewriting rules using the topological relation). These notions supply an unified point of view on data structures, an extension of case based function definition and an alternative framework for the notion of polytypism, without being limited to algebraic data types. In this thesis we develop : - a generic pattern matching algorithm; - an higher order evaluation scheme; - a type system dealing with heterogeneous collections, polytypic transformations and shipped with automatic type reconstruction; - the use of types in compilation; - many examples validating the relevance of the choices we have made.
... Bead sort is a new sorting algorithm[ACD02]. The idea is to represent positive integers by a set of beads, like those used in an abacus. ...
Conference Paper
Full-text available
I take the opportunity given by this invited talk to promote two ideas: (1) a topological point of view can fertilize the notion of rewriting and (2) this topological approach of rewriting is at the core of the modeling and the simulation of an emerging class of dynamical systems (DS): the DS that exhibit a dynamical structure (or (DS)2 in the rest of this paper).
... Here, the vertices of the Cayley graph are linked by edges labeled by the group generators N orth, East, etc. The bead-sort is an original way to sort positive integers proposed by [ACD02]. The sorting algorithm considers a columns of numbers written in unary basis. ...
Chapter
Full-text available
The chemical paradigm is an unconventionnal programming paradigm well fitted to the high-level specification of parallel systems. Based on the fixed point iterations of local rules, its use has been advocated for the programming of autonomic and amorphous systems. However , this model lacks an explicit handling of spatial relationships. In this contribution, we show how the the chemical paradigm can be extended beyond multisets to arbitrary topological collections. Topological collection handle in a uniform way sophisticated data structures needed in algorithmics as well as distributed data structures needed for the pro-grammation of autonomic or amorphous systems. Then we adapt a well known result on multiset ordering to the more general case of topological collections. Well-founded ordering on topological collection can be used to prove the termination of fixed point iteration of local rules.
... trans Bubble = { x,y/x>y → y,x } Bead sort is a new sorting algorithm designed by J. J. Arulanandham et al. (2002). The idea is to represent positive integers by a set of beads, like those used in an abacus. ...
Chapter
Full-text available
Biology has long inspired unconventional models of computations to computer scientists. In this paper, we will focus on a model inspired by biological development both at the molecular and cellular levels. Such biological processes are particularly interesting for computer science because the dynamic organization emerges from many decentralized and local interactions that occur concurrently at several time and space scales. Thus, they provide a source of inspiration to solve various problems related to mobility, distributed systems, open systems, etc. The fundamental mechanisms of biological development are now understood as changes within a complex dynamical system. We advocate that these fundamental mechanisms, although mainly developed in a continuous framework, can be rephrased in a discrete setting relying on the notion of rewriting in a topological setting. The discrete formulation is as formal as the continuous one, enables the simulation, and opens a way to the systematic study of the behavioral properties of the biological systems. Directly inspired from these developmental processes we present an experimental programming language called MGS. MGS is dedicated to the modeling and simulation of dynamical systems with dynamical structures. We illustrate the basic notions of MGS through several algorithmic examples, and also by the sketch of various biological models.
Conference Paper
This paper introduces and makes use of spiking neural P systems with anti-spikes and rules on synapses to sort integers. Here we discuss two types of sorting, bead sort and bitonic sort to sort integers.
Chapter
This chapter introduces dozens of metaheuristic optimization algorithms that are related to physics, natural phenomena, chemistry, biogeography, and mathematics.
Article
We consider as pertaining to Natural Computing (in some sense, characterizing it) the following five domains: Neural Networks, Genetic Algorithms, DNA Computing, Membrane Computing, and Quantum Computing. The first two domains are well established, the last three are just now looking for a place in the toolkit of practitioners. Here, we briefly introduce the last three domains to the reader. The main point is that in all these areas one aims at solving intractable (NP-complete) problems in polynomial (in many cases, even linear) time. Taking into account that most significant practical problems (optimization, scheduling, programming, combinatorial, etc.) are intractable, it follows that the promises of Natural Computing should be taken seriously.
Article
The article focuses on intangible goals that are still needed to be explored by the computer scientists. There is a widespread belief that computing science has matured from a theoretical topic for scientist to a practical issue for engineers, managers and entrepreneurs. According to the author, computing's central challenge for smooth process has not yet been met. Most of the computer systems are complicated, messy and chaotic to be used in comfort and confidence. The unmastered complexity is at the root of the misery. The future of computer science depends on courage and imagination of scientists. The article suggests that scientists need not to blame the lack of education of an average engineer, the shortsightedness of managers, and the malice of the entrepreneurs for unsatisfactory services for the computer industry customers. The industry and scientists need to overcome problem created by bug-ridden software for future of the industry.
Natural algorithms — A new paradigm for algorithm development
  • A J Jeyasooriyan
  • R Soodamani
A. J. Jeyasooriyan, R. Soodamani. Natural algorithms — A new paradigm for algorithm development, In Proc. 2nd International Conference on Information, Communications and Signal Processing, CD-Rom, ICICS ’99, 1999.
The natural computing column
  • G Rozenberg
G. Rozenberg. The natural computing column, Bulletin of EATCS 66 (1998), 99.
The Bead–Sort. Animation, www.geocities.com/natural algorithms
  • J J Arulanandham
J. J. Arulanandham. The Bead–Sort. Animation, www.geocities.com/natural algorithms/josh/beadsort.ppt.