Tip:
Highlight text to annotate it
X
Today, we shall consider one more topic namely Lindenmayer systems. These are very useful
in creating pictures, and in computer imagery. So, what are these systems? Lindenmayer systems
were defined in 1968 by professor Lindenmayer, who is theoretical biologist; he was looking
into the growth of organism plants and other things. And how they could be modeled using
a formal system. The formal language theory with the chomskyan hierarchy was present at
the time. And he changed the model and created a new model, which is parallel in rewriting.
And it could explain the behavior of the growth of organisms. So, these are defined L-systems,
because lindenmayer defined the them they are called L-systems they were defined in
nineteen sixty eight. And in developmental biology, the important
changes that take place in the cells, and the during the development can be modeled
by this systems. They provide a frame work within which these aspects of development
can be expressed in a formal manner. Now, the formal language theory point of view,
L-systems differ from Chomskyer hierarchy in three ways. In Chomskyan hierarchy we saw
that the rewriting is sequential. At any step only one symbol or one substring is rewritten
as something else, the left hand side is replaced by the right hand side of a rule. And only
one rule is used at a particular step. But here in Lindenmayer system, we consider
parallel rewriting of symbols in every step, this is a major difference. And then we do
not make any distinction between non terminals and terminals here. The reason for this is
when you try to model the growth of an organism there is nothing like, non terminal and terminal
all symbol are equivalent. Whereas, from the parsing point of view when you consider, a
natural language sentence you have syntactic categories. And the word generated by the
language so there is naturally a distinction between non terminals and terminals. So, here
there is no purpose in having a non terminals, and terminals if you want to model the growth
of organisms. But from formal language theory point of view,
sometimes it is advantages to have the distinction and. So, later on we defined extended L-systems
where, we make a distinction between these two categories. Not only that in Chomskyan
hierarchy, we have always seen that the start symbol was a single symbol s. Even when we
use regulate rewriting the start symbol was only, a single symbol s which is noted as
start symbol or the sentence symbol. Now, here the starting point will be a string,
that is called the axiom. So, with these distinctions let us see how the system is defined.
A zero L-systems, 0 denotes without interaction. A 0 L it is not 0 L it is 0 L. 0 L system
is an ordered triple, V w naught P where V is the alphabet. We are considering only one
alphabet, and w naught is a string it is a non empty word over V. And that is called
the axiom of the system and p is a set of production rules. If they are without interactions
the rules are of this form, left hand side you have a symbol you have a symbol from V
and on the right hand side you have a string. So, a belongs to b and alpha belongs to V
star now, for each a there should be at least one rule. With a on the left hand side this
is called the completeness condition. Because we want to explain the growth for each and
every cell of the organism. So, a cell can be represented as a symbol. And every symbol
grows or changes and that is denoted by these rules. Now, the relation is defined like this,
the derivation step is defined if a 1 a two a n is a string over v and the rules are given
by a. I goes to w I, then if you have a one a two a n in one step.
In the next step all symbols are rewritten simultaneously a 1, is rewritten as w 1 a
two is rewritten as w two a three is rewritten as w three a n is rewritten as w n. All steps
take place simultaneously all rewriting takes place simultaneously and this is called one
step of the derivation. Now, as usual we denote by double arrow star the reflexive transitive
closure of w. The language generated by the system is defined as the set of strings, it
can be derived from the axiom. w belongs to V star and from the axiom it should be possible
to derive w. Take for example, a system like this.
You start with the axiom a b, rule for a is a goes to a a, rule for b is b goes to b b,
then starting with a b you have a rewritten as a a, b rewritten as b b. And the next step
each a is rewritten as a a, each b is rewritten as b b. So, in two steps you get this and
generally the string, generated will be of the form a power 2 power n b power 2 power
n. The number of as is doubled in the next step the number of bs is also doubled in the
next step,
now, on the left hand side you have a single symbol and, on the right hand side you have
a string. The string can be epsilon free and, if it
is epsilon free the system is called a propagating. Now, if you have only one rule for each a
then the system is set to be deterministic. A 0 L, system pi which is equal to V W naught
P is deterministic, if for every a belonging to V there is exactly one rule in P. And it
is propagating if it is epsilon free that is epsilon is not on the right hand side of
any production. So, you have a D zero L system you have a p zero L system you have a D P
L, zero system which is a combination of deterministic and propagating.
The language classes will be like this, if you have DP0L system. It will be contained
in 0 L system D0L and that is contained in the general 0 L. Similarly, DP0L will be contained
in P0L and that will be contained in the 0 L.
Consider one more deterministic propagating 0 L system. Where the alphabet consist of
0,1, 2, 3, 9, left parenthesis right parenthesis. One of the symbols 4 is the axiom, the set
of production are given by this 0 goes to 1 0 1 goes to 3 2 2 goes to 3 within bracket
4 and so on these are the rules.
And with this in the first step you have 4 second step you get 5 6, in the third step
you ge 3 7 5 8 and so on. So, proceeding like this in 9 steps you get derivations of this
form.Because look at the rules, 0 goes to 1 0 and so on 4 goes to 5 6 and 5 goes to
3 7, 6 goes to 5 8. So, you see 4 goes to 5 6 second step you get 5 6 then 5 goes to
6 7 6 goes to 5 8. In the third step you get this and if you proceed you will get strings,
of this form. Actually if you denote the integers, to represent sort stream length. And brackets
within brackets you have the branches.
Then you have 1 step 2 step 3 step and so on 4 you have a single branch, then two branches
you get, in the next step got three branches and so on.
So, you find that the steps can be defined by, the growth of a step and branches are
developing from this step. And this way the growth of a plant can be described, this is
it is with this a that lindenmayer defined the system.
One more example, we shall consider consider the deterministic and the propagating 0 L
system, that is both deterministic and propagating. Because you see that for every, there is,
only one rule the symbols are 0 to 1 to 8 0 to 8 0 is here. And three more symbols left
parenthesis, right parenthesis hash symbols. The rules are 1 goes to 2 hash 3 2 goes to
2 3 goes to 2 hash 4. 4 goes to 5 0 4, 5 goes to 6, 6 goes to 7 and so on. And the right
hand side of the, production is given in the lower row. Left hand side is given in the
upper row, and you start with p naught is equal to one the axiom is one if you use this.
Then you find that at the first step you have 1, then the next step 1 goes to2 hash 3 then
the next step you go get 2 hash 2 hash 4 and so on. In the sixth step you get this now,
in the n plus sixth step for al n greater than or equal to 0. The n plus sixth step,
the string will be of this form P n P n minus 1 etcetera and in between you have these symbols.
So, the development stages can be represented again as, the growth of a plant and branching
out P 6, P 8, P 13 are given in the figure see the figure P 6. We will see it later,
the parenthesis expressions are branches whose position is indicated by the 8. When you have
a eight, a branch will start from that position. And the branches are shown as attached on
alternative sides of the main branch. And hashs are marked by vertical walls, then zeros
are marked with the slanting position alternatively mark this way and that way.
So, look at the string for p 6 this is p 6, then the string for p 7, at the 7 instance
you get this string, at the 8 instance you get this string.
So, look at p 6 is the 2 hash 2 hash etcetera. So, the hash is represented a by a vertical
wall in the stem or a plant you can stem like plant. And 8 is where the branches, branch
out you have a branch which is mentioned within the parenthesis. So, one is this there is
a branch is growing from this plantm then the zeros are represented by oblique walls.
So, you have between 0 7 6 5 4, the labels of these cells are given as 7 6 5 4.
Now, this is P 6 now from P 6 how do you get P 7 these are the rules. So, 2 goes to 2 hash
goes to hash, 2 goes to 2 hash goes to hash 8 goes to 8 let parenthesis goes to left parenthesis
you see this. 1 goes to 2 hash 3 so at this stage from one you get 2 hash 3 right parenthesis
goes to right parenthesis 0 goes to 0. But 7 goes to 8, 1 so at this stage you have from
7 8 1 6 goes to 7 5 goes to 6 and 4 goes to 5 0 4. So, the string obtained in the next
step is this. And you see it is represented by a little
bit grown steam like this stem there are two eights and in when you have a 8 a branch starts.
This branch which as say earlier just 1 has grown like this it has grown into 2 and 3.
And another branch has started growing here that is this now this is P 7 from this again
the applying the rules 2 goes to 2 hash goes to hash etcetera you get this string, 2 hash
3 will go to 2 goes to 2 hash goes to hash. But 3 will go to 2 hash 4 so we have 2 hash
4 and 1 goes to 2 hash 3 again 7 goes to 8 within parenthesis 1.
So, at the next instance you get this string so when you get this string see that at the
places where you have 8 a branch is started. So, the earlier branch has grown into this
now the earlier branch in the previous step has grown like this. A new branch has come
at this position. So, the earlier branches have grown a new branch has come and this
process is repeated the branches themselves will start creating sub branches.
And at the thirteenth step you have a very long string and that represent a structure
like this you have the main stem from which you have the branches. The first branch has
grown into this and it has developed two sub branches. The second branch has developed
one sub branch and other branches have been generated and they have grown like this. So,
a growth of a plant can be represented in this manner and this was the main intension
of lindenmayer in generating this system or in defining this system.
Now, the hierarchy within this is given by this, all DP0L languages are D0L languages
as well. And P0L languages as well and they are included in the family of 0 L languages.
Now, from formal language theory point of view the main interest in those days was to
consider whether a new system is closed under operation and especially six operations have
been considered.
They are union concatenation clinic closure epsilon free h and sometimes ordinary h interception
with regular set inverse homomorphism. If a family is closed under all these operations
it is called a abstract family of languages. Now, we find that this 0 L languages are not
closed under any of these operations look at this language a a which has got just two
strings a a. Now, a alone is a 0 L language you can just have an axiom a and a rule a
goes to a this will generate only a. a a alone is a 0 L language with axiom a a and the rule
a goes to a a this will generate only this string.
But when you consider the union the union has two strings, a and a a it cannot be generated
by any 0 L system not 0 L this is not a 0 L language. By we can have only one axiom
so if i take a as the axiom I should have a rule of the form a goes to a a to generate
this. And if I have this rule then from a I will get a a I can still use the rule and
get a a a a and so on the language generated would be a power two power n and not this.
So, this is not possible suppose I start with the axiom a a to get a I have to use the rule
a goes to lambda also a goes to a. So, from a a I can apply this rule for one a this rule
for another a and get a, but if I do that again I can use this rule and get lambda also
in the language, but lambda is not here so this way also it is not possible.
And so this is not a 0 L language similarly, you can prove that the family is not closed
under any of the other operations as well. So, it is called an anti A F L this was the
interest from the formal language theory of you,
in order to overcome that extended systems were defined we will come to that in a moment.
The table to 0 L system was defined what is a table to 0 L system actually the motivation
for this was to describe the growth of plants mainly plants any organism for that matter.
And when you want to describe the growth of a plant they may follow a certain set of rules
during daytime. Because in the presence of sunlight something hapsence and in the absence
of sunlight something else happens. So, the growth mechanism may be different
during daytime and it may be different during night. So, you may require two sets of rules
to describe the growth of a plant alos the growth of a plant will differ during summer
during winter actually they may shed all the leaves during autumn. And the in spring the
leaves start coming and in winter they only have stems such a thing happens so during
different seasons different things happen in a plant. And the rules of growth will be
different during each season so you may have to have different sets of rules to describe
the growth of such a plant. And that is why we have what is known as a table 0 L system.
Lindenmayer defined this to describe the growth in different season and different time during
a day. A table 0 L systems is an ordered triple like
this where it is denoted as a t pi where v is the alphabet naught is the axiom P is the
set of tables. Now, each table contains rules of the form a goes to alpha where on the left
hand side you have a single symbol and on the right hand side you have a string. Each
table will have at least one rule with a on the left hand side for each a belonging to
v this is called the completeness condition. And if you have only one rule it is called
a deterministic system. Now, suppose alpha is a one a two a n then from alpha you can
derive beta by this a one will be replaced by beta 1 a two will b replaced by beta two
and so on. But all these rules a I goes to beta I should
be from the same table that is at a particular step. You can use only rules from the particular
table. Where t is a table only rule of the same table should be used at a particular
step. Now, as usual double arrow star will represent the reflexive transitive closure
of this the language generated is denoted as w w belongs to v star w naught derives
w. That is starting from the axiom you should be able to derive a set of strings if w is
derivable from the axiom then w belongs to the language generated by the system.
Consider this example you have only one symbol a which is the axiom and two tales are there.
In one table you use the rule a goes to a squared in another table you use the rule
a goes to a cubed. So, suppose I start with a the next step if I use this table I will
get a squared if I use this table I will get a cubed. So, a squared also belongs to the
language a cubed also belongs to the language. Now if I have a a then there are possibilities
like this.
Starting with a if I use one table I get a a if I use another table I may get a a now
for this again if I use rule from the table a goes to a a I may get a a a a. I should
use the same table for this a and this a if I use the rule a goes to a cubed for this
a a. I shall get a a a a a a, but I cannot apply a rule from one table for this a and
a rule for another table for this a. I have to use the rule from the same table so if
you look carefully you will find that the number of as will be doubled in the next step
or tripled in the next step. So, in general you will get a string of the
form a power i where i will b of the form 2 power m 3 power n. Again we can define deterministic
systems propagating systems, and so on now we have tables if each table exactly one rule
for ev ery a belonging to the alphabet. Then you call it as a deterministic system if you
do not have epsilon rules then it is a propagating system. So, you have deterministic table to
0 L system propagation table to 0 L system deterministic and propagating table to 0 L
systems.
The main defect from formal language theory point of view is the non closure under operations.
Table 0 L systems were also closed under many operations so in order to make the system
closed under many of the operations. The distinction between non terminals and terminals was introduced
actually this is the one which creates the non closure property. So, non distinction
between non terminals and terminals are affected the closure properties so from formal theory
point of view extended systems have been defined. Which make the families closed under many
operations, here we have two sets of symbols terminals and non terminals or instead you
consider. The total alphabet and the subset of it as a target alphabet target alphabet
corresponds to the terminals. And the total alphabet corresponds to both
terminals and non terminals or the union of terminals and non terminals a e 0 L system
or a extended 0 L-system is defined as a four tuple. v the total alphabet sigma the target
alphabet which is the subset of v. And an axiom w naught a set of production p similar
derivation steps are defined at every step you have to parallelly rewrite the symbols.Then
double arrow star is the reflexive transitive closure and the language consist of strings,
which belong to the target alphabet. That is from the axiom it should be possible to
derive the string w where w belongs to sigma star. If it contains a symbol which is not
in the target alphabet that string will not belong to the language. Again within this
also we can define tables and so you have E T 0 L systems.
For example, tale this start from s s is the axiom you have rules s goes to a s goes to
a a, a goes to a. So, you start with this you will get a you start with this you will
get a a then you can apply this rule and no more strings will be generated. Now, S will
not be in the language the axiom will not be in the language because it is not in the
target alphabet. But a will be in the language a a will be in the language and so this is
a extended 0 L language you see that we saw that this is not a 0 L language. So, but it
is a E 0 L language.
Now, so far we have considered systems without interaction you can also talk about systems
with interaction. What is interaction on the left hand side you have a and a b in a string
a b c occurs like this. To the towards a left of a b a occurs and to the right of b c occurs
then v is replaced by w. That is replacing b by w depends not only on b, but the left
neighbor a and the right neighbor c. Something known as cellular automata is very is similar
to that the state changes in a cellular automata occur like this.
I will not go into depth in the system so the 2 0 L system everything depends on the
left neighbor and the right neighbor. So, when you have a string like this a 1 a 2 a
n on the left of a you have the environment. The environment is denoted by a dollar symbol
that is why you have one more component in the system. So, the first symbol the rule
will depend on the environment and the right neighbor. The second symbol the rule will
depend on the left and the right neighbor and so on for the last symbol a n.
The rule will depend on the left neighbor and the environment the rule will be of this
form. So, a one will be replaced by alpha one a two will be replaced by alpha two and
so on so you get from a one a two a n alpha one alpha two alpha n. And the rewriting is
completely parallel the language generated again is the set of strings, which are derivable
from the axiom. Sometimes the growth of the plant cannot be explained in a proper manner
just by rules without interaction. But if you have interaction or rules with interaction
then the growth can be explained in a much easier manner.
Now, if you have just on one side the rule it is called a 1 L system. See either you
have only considered the left neighbor or you only considered the right neighbor it
is called a 1 L system.
Again some examples, are given here so the system has an axiom a tewo symbols a b rules
are given like this. So, starting with a you have dollar and dollar and then you can replace
it by a squared a cubed a cubed b etcetera. Then when you have a a b then the rule will
be of this form b can be go to b or b squared. So, this sort of a language will be generated
by this system.
The hierarchy between this and the class were 0 L languages are include is given by this.
This is a system you find that 0 l does not include some finite sets also a a is the finite
set, but it is not a 0 L language. But some context sensitive languages like a power two
power n are there so the class of zero l languages like this. The class of one l languages are
like this where this is the chomskyan hierarchy.
Some of these rules are like this consider this system it is a deterministic system.
Now, we will consider only deterministic system where you have only one rule for each symbol.
You have a goes to a squared then at the nth step you get a power two power n the length
of the string is given by two power n and this is called the growth function in this
case. So, consider this rule or this system. Initially you have a as the axiom next step
it goes to b. Next step it is rewritten as a b. Then next
step a is rewritten as b b, is rewritten as a b and so on. If you look at the length of
the strings this is zeroth step one first step second step and so on. The length of
the string here is five it is the sum of the previous two steps the length of the string
is eight here which is the sum of the length of these two strings. So, you see that the
length of these words are just fibonacci sequence fibonacci numbers.
And if you look at this one, you find that the sequence generated is a goes to a b c
c, then again replacing a by this rule b by this rule c by this rule you find you get
this. The lengths are one four nine sixteen and so or they are squares of the natural
numbers. Similarly, if you considered this system the sequence generated is this, one
three six ten etcetera. The length of the sequences are one one plus two one plus two
plus three one plus two plus three plus four and so on they are called triangular numbers.
The length of the n string will be sigma i is equal to one to n. Now, another system
is given like this if you look into the length of the strings, it is one eight twenty seven
and so on the length of the words are cubes of natural numbers.
The whole thing can be explain in a convenient manner.
Let me take this particular example, the axiom is a and the rules are like this so the lengths
of the sequences are given like this.
Now, the parikh mapping of a string is like this Parikh mapping; suppose I have a string
a a b I will take the alphabet here. Some string a a b c b c a b something like this;
the parikh mapping of this is denote by this it is a vector where the elements of integers.
The first one denote the number of a(s) so I assume the order a b c for symbols in sigma.
The second denotes the number of b(s) the third denotes the number of c(s). So, in this
example it will be number of as will be one, two, three. The number of b(s) will be one
2 3 the number of c(s) is 2, so the parikh mapping of this string is 3, 3, 2.
Now this idea if you use.You find a a connection between matrix algebra.
And this M is a n by n matrix, where n is the size of the alphabet.
So, three a b c is three so it is a three by three matrix. The order is a is first then
b is second then c is third so if you look at the right hand side further rule a b c
c. The rule for a is this and the number of as on the right hand side is one one number
of bs is one number of cs is two. The parikh mapping will be one one two and that is the
first row. The second symbol is b the parikh mapping of that is 0 1 2, and that is a second
row. For c the right hand side is c the parikh mapping of that is 0 0 1, and you have the
third row. The parikh mapping of the axiom is given by this M is known as the growth
matrix and if you have a column vector e eta. Which consist of just once pi M eta is pi
multiplied by M then by eta it gives you four. That is what you get in the first step so
this is a string and this is the length of the string. In the second step in the length
of the string is nine if you calculate pi n squared eta that will be nine. So, in general
at the nth step the length of the string is given by pi M power n eta. And you can specify
the growth function in this manner making use of the parikh vector for the axiom and
the growth matrix. Now, the growth function if it is polynomial bounded it is not malignant
if it is not bounded by a polynomial it is called malignant.
Now, the use of L-systems is really in computer imagery, not only describing the growth of
the plants you can describe, picture. And also generate beautiful pictures making use
of L-system you have to only write a few rules and the specify the number of iterations and
you can get beautiful patterns. Three dimensional objects also can be modeled using this. Now,
the description of the string is captured as a string of symbols. And L-system is used
to generate the string and then this string of symbols is viewed as commands controlling
a logo like turtle. You can have dimensional or three dimensional turtle the basic commands
used are move forward by drawing a line. Make a right turn make a left turn etcetera.
Line segments are drawn in various directions specified by the symbols to generate the straight
line pattern. Since most of the have smooth curves the positions after each move of the
turtle are taken and the controlled points. They are taken as the controlled points for
B-spline or b-spline interpolation. That is the position after each move of the turtle
are taken as controlled points. And B-spline interpolation is used to draw a smooth curve,
this approach is very concise we will see with some examples.
You can generate beautiful fractals using this. In general the position of the curser
turtles is denoted by three point x y or the x y coordinates and a is the orientation of
the curser. Then if you move through a distance delta, the step size is d and the angle increment
is delta. So, from one point if you move through a distance d then the new position will be
x dash y dash a. Where x dash is given by x plus d cos A and y dahs is given by d sin
a y plus d sin A. A line is drawn between two points x y and x dash y dash if suppose
you denote f. Then it may represent the command to the curser move forward as above without
drawing a line. Small f may denote move forward a step length of d by drawing a line, plus
may denote turn the turtle left by angle delta. So, the new position will be x y and then
angle will be incremented by delta that is anti clockwise rotation, minus may denote
the corresponding clockwise rotation.
So, with this you find that you can interpret a string and then draw a picture. For example,
start with this rule with the axiom with this axiom and rule like this. For f we have a
rule f goes to f plus f minus f minus f f plus f plus f minus f of course. I have not
specified the other rules plus goes to plus minus goes to minus. So, if you look at the
axiom.
Look at it carefully again, plus f plus f plus f plus f and if f denotes draw a line
of unit length. And plus denotes turn anti clockwise through ninety degrees, what does
the axiom denote it denotes f plus plus means turn f plus f plus f so you draw a square.
Now, you use a rule like this so in the axiom each f will be replaced by this string then
let us see what we get. The first f when you replace it start from here, f plus f minus
f minus f f f plus f plus f minus f. From this to this replacing one f you will get
then again turning anticlockwise through ninety degrees using a plus from this to this position.
You will have another f replaced by the string. Then again from this to this position and
the last f will be replaced by this. So, you find that at the next stage you get this one.
And in the next stage you will get this one, if you want to draw a smooth curve it will
become the cost island.
Consecutive positions of the turtle can be considered as control points specifying a
smooth interpolating curve. B-spline interpolation is used or most of the kolam patters. Kolam
patterns are those patterns which are drawn in front of the house especially in south
india. Every morning in villages now a days towns or cities have only one flats and they
do not have enough space to draw the patterns. But in villages even today every morning you
will find that. The ladies spray water and use rice flower to draw beautiful patterns,
in front of the house that is taken as a daily routine. And those patterns, can be very easily
generated using the L-systems using B-spline interpolation and just one or two rules.
For example, this is a kolam pattern this is called candies or. Actually the first you
will get only this one this pattern it will there should be some more dots also which
are not marked here actually. This is the first one and then when you combine four of
them you will get this picture. Then if you combine four of such pictures you will get
this again four of this can be combined to form a bigger pattern.
So, starting with one axiom, which is this and a rule of this form four rules are there.
Rule for D is this then for C is this A and B will be replaced by such strings. And in
the next step again you will use similar patterns, you find that if you specify the number of
iterations you will get beautiful patterns in this manner. Of course, successive points
are joined by smooth curve using B-spline interpolation.
Now, plant structures can be generated and you can get beautiful imagery computer imagery
using this. For generating living organism like plants, the three-dimensional turtle
is used a three dimensional turtle is different in some aspects. Compare to the two dimensional
one in the two dimensional one you have the x coordinate y coordinate and the angle orientation.
Here you have the y z coordinates denoted by P that is a position vector which gives
you the x y z coordinates. H L U, H L U give the orientation organelles the turtle. Then
w represent the width and you can keep on changing the colour also, c represents the
colour in which the lines have to be drawn. So, the three dimensional turtle has other
parameters like with end colour.
So, for generating plant like structures some special systems are used making use if a three
dimensional turtle. The special systems are stochastic L-systems, so with each rule you
attach a probability see the growth if the plant is not identical. Suppose you sow six
seeds all the six plants will not grow in the same manner. There will be slight difference
and that sort of a thing is captured using probability. You attach some probability with
the rules and that is called a stochastic system. Brackets are used to separate the
branches that we have already seen you use brackets so that the branches are separated.
And sometimes, you use a different type of a bracket so that you want to move to something
and draw then come back to the same position. Without drawing anything you use a different
type of a bracket. Then in stochastic L-systems as I told you probabilities are used.
Also, cutting and then cutting a branch and when you cut how the branch grows all these
are captured in computer imagery when you want to describe plants. Another example is
this again f plus f plus f denotes this.
Then you use a certain rule you get another kolam pattern like this which is called a
snake pattern, snake kolam. See that first one if you use spline approximation you may
get this and then the second iteration when you use you may get this one kept four times
is this.
And then beautiful patterns like this can be generated.
Some leaf pattern the growth of a plant like this with stems and so on. Here the same plant
may not grow in a similar manner. So, if you use probability different types of plants
can be got. And also you can have by cutting that this string this is represented as a
string. And then the symbols in the strings are interpreted as move of a curser so if
you cut this remove a portion of this string. And then use the growth the plant may grow
in a different manner that can also be captured using L-systems. So, we defined that L-system
is a different model from formal language theory point of view. Then main difference
is parallel rewriting of symbols in every step.
And then you can interpret the symbols in a string and use it for computer imagery.
In two dimensions you can have fractals generated you can have kolam patterns generated. And
in three dimensions you can have plants and other structures generated using this system.
Not only this even music can be generated using this in fact we have tried to use this
to generate a some music. You write some sort of a tables, for each symbol there are seven
swaras sa re ga ma pa da ni. And for each one you can write a a rule in
a similar manner and have tables. And apply these tables in some particular order and
use a sound generating device along with that you can generate some particular raga some
sort of a tune in that raga. Thus L-systems can also be used for generating some music.
Not necessarily voice or anything, but some sort of a instrumental type of a music can
be generated using this. And theoretically it is a different form always it is a a different
form and then formal language theory point of view.
The study has been interesting some of the problems related to this that is given two
deterministic zero L-system. Whether they are growth equivalent whether they represent
the same growth was remaining as a whole as an open problem for a longtime and finally,
it was solved.So, this is a another topic which is of interest. And recently there is
something like watson greek zero L-systems that is also being explode. So, this is another
advance topic which we are considering.