Natural Algorithms -A new paradigm for algorithm development

odecrackΤεχνίτη Νοημοσύνη και Ρομποτική

29 Οκτ 2013 (πριν από 3 χρόνια και 7 μήνες)

93 εμφανίσεις

Natural Algorithms
-

A new paradigm for algorithm development


A.

Joshua Jeyasooriyan* and R. Soodamani**

* josh@mailcity.com ** sooda@bharathi.ernet.in

Department of Computer Science & Engineering

Bharathiar University, Coimbatore 46, India



Abstract


In
this paper, we propose a new paradigm for algorithm development that gives a new dimension to the process of
building an algorithm. The algorithm developed using the new approach is here defined as a
Natural Algorithm
because it emulates natural physical
processes.


Whenever posed with a problem, say sorting numbers, a computer scientist racks his brain to develop an algorithm
such as
Bubble sort

to solve it with a computer. He unlike a mechanical engineer is not provided with a ready
-
made
design data bo
ok
to augment his
thought process

and make him stumble on an algorithm. The proposed paradigm
helps the computer scientist do the
thought process

that accompanies the task of developing an algorithm in a new
way.


In this paper, the concept of natural algo
rithms is defined and the technique is validated through illustrative
examples.



1 Notion of Natural Algorithms


Nature, a source of minerals and precious stones is a mine of algorithms too. In nature there are phenomena that
resemble
sorting

action, ph
enomena which closely resemble
division

operation and so on. By observing and
studying these phenomena computer algorithms can be extracted. For instance, a sorting action can be seen in the
system shown in Fig. 1

(a merry
-
go
-
round)

when the central spin
dle is rotated.


Fig. 1 Sorting action in a merry
-
go
-
round


Balls moving away from the spindle due to centrifugal force get
sorted

in the air according to their masses, the
smaller ones moving farther away from the spindle than the bigger ones.


The term

Natural Systems

in the present context will refer to systems that function by obeying simple and systematic
laws of nature. As soon as a natural system with a phenomenon resembling the problem to be solved is located, it is
simply emulated in the compute
r as a solution process. The following examples of natural algorithms make the
theory clear and concrete.






2 Natural Algorithm for Sorting


The system to be emulated consists of three cylindrical containers as shown in Fig. 2.1 together with objects
similar
to balls.


Fig 2.1 System for sorting


The number of cylinders is dictated by the largest number in the data set to be sorted. In Fig. 2.1, the markings
along the X
-
axis indicate cylinder number and that along the Y
-
axis different levels across th
e containers. Let the
data set to be sorted be A = {3,1,2}. A sorting action can be seen after carrying out the following steps.



1.

Drop three balls (unshaded ones) representing the first data in A, into the system, one per container starting
from left to

right (Fig. 2.2)

2.

Repeat step(1) with one ball (shaded one) representing the second data in A (Fig. 2.3)

3.

Repeat step(1) with two balls (dotted ones) representing the third data in A (Fig. 2.4)




Fig. 2.2





Fig. 2.3





Fig. 2.4

Sortin
g {3,1,2}


One can notice the balls arranging themselves in descending order by level, starting from level 1 to 3 of the
container (Fig.2.4). This sorting action can be noticed even when balls are dropped in a different order depending
on the order in wh
ich elements occur in the data set. Fig. 2.5 shows the system after dropping balls in the following
order : two balls (dotted ones) first, then three balls (unshaded ones) and finally one ball (shaded one) corresponding
to the set {2,3,1}.



Fig. 2.5



Fig. 2.6


Sorting {2,3,1} Sorting {1,1,3,2}


It is to be noted that the arrangement of balls, cylinder
-
wise (across the X
-
axis) too seems to represent the sorted set
as in Fig. 2.4 and Fig. 2.5. This will not be true fo
r all data sets. Fig. 2.6 showing the final state of the system after
sorting the data set {1,1,3,2} illustrates the above point. Only the level
-
wise arrangement of balls across the Y
-
axis
will always represent the final sorted data.


Thus any data set c
an be sorted in this fashion by choosing the number of cylinders based on the largest number in
the set. Note that the total number of balls dropped will be equal to the sum of elements in A. The system can be
emulated thereby deriving an algorithm for s
orting numbers. The algorithm thus derived[1] is given below.



2.1

Algorithm
Ball Sort


Array
Cylinder
[
CYL_MAX
] is used to keep track of the number of balls in each cylinder and
Level
[
LEV_MAX
] to
record the number of balls in each level (Fig. 2.7)


Fig. 2.7

Data structure showing a snap
-
shot of the process


CYL_MAX

specifies the largest element in the set that can be sorted and
LEV_MAX

the maximum number of
elements (cardinality of the set) that can be sorted. Let
A

be the data set to be sorted.


1.

{Initializ
e arrays
Cylinder

&
Level
}

For I = 1 to
CYL_MAX


Cylinder
[I] = 0

For J = 1 to
LEV_MAX


Level
[J] = 0

2.

For every element
x

in
A

repeat step(3)

3.

{Drop
x

balls}

For I = 1 to
x

{


Cylinder
[I]++;


Level
[
Cylinder
[I] ]++;

}

4.

Print
Level

array con
taining sorted data

5.

Exit



3 Natural Algorithm for Shortest Path


A natural algorithm for determining the shortest path between two vertices in a graph is detailed here.


Consider a system that consists of metal strips of different lengths joined together

in the form of a network as shown
in Fig. 3.1.


Fig. 3.1 Graph depicted with metal strips


The strips are assumed to be flexible. Now hold the source(B) and the destination(E) vertices and pull them apart
along the imaginary straight line joining them as

shown in Fig. 3.2.


Fig. 3.2 Source & Destination pulled apart


As they are pulled apart, the other nodes tend to move towards the imaginary straight line. What happens as you
keep on pulling is that the set of strips in the network that comprises the
shortest path forms a straight line between
the source and destination (Fig. 3.3).



Fig. 3.3 BCDE forms straight line between B(source) and E(Destination)


Even if there are more than one path with the same minimal distance, they together will form straig
ht lines
simultaneously. In the network shown in Fig. 3.1 BCDE is the shortest path between B and E.


The above argument is based on the intuitive suggestion that the straight line formed between the source and
destination vertices must be the shortest be
cause the shortest path between any two points is the straight line joining
them. The system and the pulling action described can be emulated using principles of
mechanics
[2].


The complexity of this new stretch algorithm does not depend much on the total

number of vertices but rather on the
physical arrangement of vertices; for instance, how close the set of vertices that are part of the shortest route lies to
the imaginary straight line determines the complexity to a great extent.



4 Natural Algorithm f
or Travelling Salesman Problem


The travelling salesman problem(TSP) is defined as follows :

A salesman must start from a specified city and visit each of n
-
1 other cities exactly once and then return to the
initial city through the shortest route possibl
e. More formally, the problem is to choose the shortest circuit
containing all vertices in a given graph. Fig. 4.1 shows a map of four cities A,B,C,D depicted using metal strips.


Fig. 4.1 Metal strips depicting map of four cities


A natural algorithm f
or solving TSP can be improvised using the natural algorithm for shortest path discussed
above. In Fig. 4.1, both the source and the destination are the same vertex and hence can not be pulled apart.
Therefore a set
-
up similar to the one shown in Fig. 4.
2 is used
-

the set
-
up shown in Fig. 4.1 is merged with a replica
of its own at a common point.




Fig. 4.2 The set
-
up used for solving TSP


Here the initial city is found at two places (A & A') and can be pulled apart. Paths with repeated edges due to th
e
replication and paths that do not contain all vertices are unacceptable. In Fig. 4.2 ABCD'A’ and ADCB'A' are the
only acceptable shortest routes.



5 Essence of Natural Algorithms


Based on the above case studies, a natural algorithm can now be defined
as a ready
-
made solution embedded in a
natural system which one has to simply discover. Like a mathematical transform, the new approach transforms the
problem in the abstract domain to another in the
natural

domain which is tackled in a
natural

way with e
ase. Like
any other paradigm natural algorithms is not a panacea. The merits of this approach are that it is



A new way of looking at the algorithm development process.



A
natural

solution to the problem, hence very understandable.



6 Search for Natural A
lgorithms


It is possible to identify or observe natural phenomena from which algorithms can be derived, by accident or
through a random search. At the same time, it is difficult to propose a formal procedure ( a set of well
-
defined
steps) to search for a

natural system that
solves

the problem at hand. Nevertheless, the following suggestions given
in the form of an algorithm will be useful in hunting for a suitable natural system.


1.

Try to associate the data items that are central to the problem with entit
ies in nature. Let their attributes (mass,
length, volume etc.) represent the magnitude of the data items.


2.

Any algorithm transforms the input data which is in a particular state into another form which is the output data.
Therefore, keeping the entities

in mind, try imagining a particular state of the system that depicts the input data
and another state that depicts the output.


3.

Now try to conceive a set of activities that can change the system state from the input state to the output state.

The above st
eps augmented with a little intuition should help the problem solver to zero
-
in onto a suitable natural
system.



7 Analysis of
Ball Sort

-


Natural Algorithm for Sorting


In this section, the performance of the
Ball Sort
algorithm discussed in Section 2 i
s analysed and compared with that
of common sorting algorithms like
Bubble Sort

and
Quick Sort
. The time complexity of Ball Sort is a function of
both number of data to be sorted and average size of data. The time complexity T is derived considering
incr
ement

as the key operation. Let A = {d
1
,d
2
,d
3
…d
n
} be the data set to be sorted, n its cardinality and s the average size of
data.


T(n,s) = 2d
1

+ 2d
2

+ 2d
3

+ … + 2d
n


= 2(d
1

+ d
2

+ d
3

+ … + d
n
)


= 2 * ((d
1
+d
2
+d
3
+…d
n
)/n) * n



= 2.s.n


=
O
(s.n.)


The factor 2 corresponds to incrementing
Cylinder

and
Level

arrays every time a ball gets dropped, and note that
d

balls are dropped corresponding to every element
d
in

A
. The execution time in seconds for the three sorting
techniques experimentally determined by varying the number of data to be sorted and the average size of data is
tabulated below.


n



Cardinality of data set to be sorted

T1

-

Bubble Sort
T2

-

Quick Sort
T3

-

Ball Sort


Average Size of Data 0
-
50

n

100
0 3000 5000 7000 9000 10000


T1

2.58 22.47 62.14 121.7 201.15 248.62

T2

0.05 0.38 1.04 1.75 2.74 3.02

T3

0.16 0.38 0.60 0.82 1.09 1.20


Average Size of Data 100
-
500

n

1000 3000 5
000 7000 9000 10000


T1

2.52 21.97 61.20 120.2 197.25 244.17

T2

0.10 0.27 0.43 0.65 0.93 1.04

T3

1.31 3.90 6.59 9.06 11.75 13.02


Average Size of Data 500
-
5000

n

1000 3000 5000 7000

9000 10000


T1

2.52 22.14 60.82 119.6 197.8 244.83

T2

0.05 0.21 0.43 0.60 0.82 0.93

T3

13.35 38.4 62.96 89.61 115.49 127.47


Fig. 5(a) Performance over small range of data

Fig. 5(b) Performance over me
dium range data












Fig. 5(c) Performance over large range data


Fig. 5(a) reveals that Ball Sort is the fastest among the three techniques for a small range of data. Fig. 5(b) shows
that for a medium range of data the performance of Ball Sort is
in
-
between that of the other two and Fig. 5(c)
indicates that it is close to Bubble Sort for a larger range of data.



8 Possible Areas of Enquiry


Research on Natural Algorithms can be pursued in the following possible directions :



Discovering n
atural algorithms for newer problems

Natural algorithms for problems such as sorting and determining the shortest path in a graph have been discussed.
Natural algorithms for various other fundamental problems can be discovered.




Developing a systematic

Natural Algorithms Search Procedure

Though the natural algorithms presented in this paper are outcomes of imagination and intuition, a formal systematic
procedure should be evolved to enable problem
-
solvers to associate a given problem with a natural syst
em
effortlessly.




Tackling the Travelling Salesman Problem in polynomial time

The travelling salesman problem is one that has drawn the attention of researchers world
-
wide and has till now
remained unsolved by conventional computing techniques in polynom
ial time. The possibility of developing a
polynomial time natural algorithm for the problem is speculated.



9 Future Research


The ultimate product that should evolve over a period of time from these theoretical foundations is an environment
that would
facilitate practical software development using the new approach. The environment can be provided
with a set of icons depicting natural system components along with certain predefined operations on them. The
problem solver could use them as if they were
a
mechano

set and
create

on the screen a natural phenomenon that
solves

the problem. An intelligent software running in the background can map each of his manipulations on the
screen to a single step or a sequence of steps in an algorithm.


References


[1
] A. Joshua Jeyasooriyan, “Ball Sort


a natural algorithm for sorting”, Sysreader, pp. 13
-
16, May 1995


[2] Irving Shames, Engineering mechanics, Prentice Hall of India, 1998


[3] A. Joshua Jeyasooriyan, “Natural Algorithms


a new paradigm for algorithm
development”, M.E. thesis,
Bharathiar University, 1996


[4] Ellis Horowitz, Sartaj Sahni, Fundamentals of Computer Algorithms, New Delhi, Galgotia Publications, 1996


[5] Jean
-
Paul Tremblay, Paul Sorenson, An introduction to data structures with applicatio
ns, New Delhi, Tata Mc
Graw Hill Publishing Company, 1991

B
a
l
l