Download presentation
Presentation is loading. Please wait.
Published byBernard Joshua Watts Modified over 9 years ago
1
Theory of computing, part 1
2
Von Neumann Turing machine Finite state machines NP complete problems -maximum clique -travelling salesman problem -colour graph
3
1Introduction 2Theoretical background Biochemistry/molecular biology 3Theoretical background computer science 4History of the field 5Splicing systems 6P systems 7Hairpins 8Detection techniques 9Micro technology introduction 10Microchips and fluidics 11Self assembly 12Regulatory networks 13Molecular motors 14DNA nanowires 15Protein computers 16DNA computing - summery 17Presentation of essay and discussion Course outline
4
Old computers
5
Abacus
7
Born December 26, 1791 in Teignmouth, Devonshire UK, Died 1871, London; Known to some as the Father of Computing for his contributions to the basic design of the computer through his Analytical machine.. The difference engine (1832)
8
The ENIAC machine occupied a room 30x50 feet. The controls are at the left, and a small part of the output device is seen at the right. ENIAC (1946)
9
The IBM 360 was a revolutionary advance in computer system architecture, enabling a family of computers covering a wide range of price and performance. ENIAC (1946)
10
Books
12
Introduction
13
Finite state machines (automata) Pattern recognition Simple circuits (e.g. elevators, sliding doors) Automata with stack memory (pushdown autom.) Parsing computer languages Automata with limited tape memory Automata with infinite tape memory Called `Turing machines’, Most powerful model possible Capable of solving anything that is solvable Models of computing
14
Regular grammars Context free grammars Context sensitive grammars Unrestricted grammars Chomsky hierarchy of grammars
15
Computers can be made to recognize, or accept, the strings of a language. There is a correspondence between the power of the computing model and the complexity of languages that it can recognize! Finite automata only accept regular grammars. Push down automata can also accept context free grammars. Turing machines can accept all grammars. Computers can recognise languages
16
Languages
17
A set is a collection of things called its elements. If x is an element of set S, we can write this: x S A set can be represented by naming all its elements, for example: S = {x, y, z} There is no particular order or arrangement of the elements, and it doesn’t matter if some appear more than once. These are all the same set: {x, y, z}={y, x, z}={y, y, x, z, z} Sets
18
A set with no elements is called the empty set, or a null set. It is denoted by ={}. If every element of set A is also an element of set B, then A is called a subset of B : A B The union of two sets is the set with all elements which appear in either set: C = A B The intersection of two sets is the set with all the elements which appear in both sets: C = A B Combining sets
19
A string a sequence of symbols that are placed next to each other in juxtaposition The set of symbols which make up a string are taken from a finite set called an alphabet E.g. {a, b, c} is the alphabet for the string abbacb. A string with no elements is called an empty string and is denoted . If Σ is an alphabet, the infinite set of all strings made up from Σ is denoted Σ*. E.g., if Σ ={a}, then Σ *={ , a, aa, aaa, …} Alphabet and strings
20
A language is a set of strings. If Σ is an alphabet, then a language over Σ is a collection of strings whose components come from Σ. So Σ* is the biggest possible language over Σ, and every other language over Σ is a subset of Σ*. Languages
21
Four simple examples of languages over an alphabet Σ are the sets , { }, Σ, and Σ *. For example, if Σ={a} then these four simple languages over Σ are ,{ },{a},and{ , a, aa, aaa, …}. Recall { } is the empty string while is the empty set. Σ* is an infinite set. Examples of languages
22
The alphabet is Σ = {a,b,c,d,e…x,y,z} The English language is made of strings formed from Σ: e.g. fun, excitement. We could define the English Language as the set of strings over Σ which appear in the Oxford English dictionary (but it is clearly not a unique definition). Example: English
23
The natural operation of concatenation of strings places two strings in juxtaposition. For example, if then the concatenation of the two strings aab and ba is the string aabba. Use the name cat to denote this operation. cat(aab, ba) = aabba. Concatenation
24
Languages are sets of strings, so they can be combined by the usual set operations of union, intersection, difference, and complement. Also we can combine two languages L and M by forming the set of all concatenations of strings in L with strings in M. Combining languages
25
This new language is called the product of L and M and is denoted by L M. A formal definition can be given as follows: L M = {cat(s, t) | s L and t M} For example, if L = {ab, ac} and M = {a, bc, abc}, then the product LM is the language L M = {aba, abbc, ababc, aca, acbc, acabc} Products of languages
26
The following simple properties hold for any language L: L { } = { } L = L L = L = The product is not commutative. In other words, we can find two languages L and M such that L M M L The product is associative. In other words, if L, M, and N are languages, then L (M N) = (L M) N Properties of products
27
If L is a language, then the product L L is denoted by L 2. The language product L n for every n {0, 1, 2, …} is as follows: L 0 = { } L n = L L n-1 if n > 0 Powers of languages
28
For example, if L = { a, bb} then the first few powers of L are L 0 = { } L 1 = L = {a, bb} L 2 = L L = {aa, abb, bba, bbbb} L 3 = L L 2 = {aaa, aabb, abba, abbbb, bbaa, bbabb, bbbba, bbbbbb} Example
29
If L is a language over Σ (i.e. L A*) then the closure of L is the language denoted by L* and is defined as follows: L* = L 0 L 1 L 2 … The positive closure of L is the language denoted by L + and defined as follows: L + = L 1 L 2 L 3 … Closure of a language
30
It follows that L* = L + { }. But it’s not necessarily true that L + = L* - { } For example, if we let our alphabet be Σ = {a} and our language be L = { , a}, then L + = L* Can you find a condition on a language L such that L + = L* - { }? L* vs. L+
31
The closure of Σ coincides with our definition of Σ* as the set of all strings over Σ. In other words, we have a nice representation of Σ* as follows: A* = A 0 A 1 A 2 …. Closure of an alphabet
32
Let L and M be languages over the alphabet Σ. Then: a){ }* = * = { } b)L* = L* L* = (L*)* c) L if and only if L + = L* d)(L* M*)* = (L* M*)* = (L M)* e)L (M L)* = (L M)* L Properties of closure
33
Grammars
34
A grammar is a set of rules used to define the structure of the strings in a language. If L is a language over an alphabet Σ, then a grammar for L consists of a set of grammar rules of the following form: where and denote strings of symbols taken from Σ and from a set of grammar symbols (non-terminals) that is disjoint from Σ Grammars
35
A grammar rule is often called a production, and it can be read in any of several ways as follows: replace by produces rewrites to reduces to Productions
36
Every grammar has a special grammar symbol called a start symbol, and there must be at least one production with left side consisting of only the start symbol. For example, if S is the start symbol for a grammar, then there must be at least one production of the form S Where to begin ……
37
1.An alphabet N of grammar symbols called non-terminals. (Usually upper case letters.) 2.An alphabet T of symbols called terminals. (Identical to the alphabet of the resulting language.) 3.A specific non-terminal called the start symbol. (Usually S. ) 4.A finite set of productions of the form , where and are strings over the alphabet N T The 4 parts of a grammar
38
Let Σ = {a, b, c}. Then a grammar for the language Σ* can be described by the following four productions: S S aS S bS S cS Or in shorthand: S | aS | bS | cS S can be replaced by either , or aS, or bS, or cS. Example
39
A string made up of grammar symbols and language strings is called a sentential form. If x and y are sentential forms and is a production, then the replacement of by in x y is called a derivation, and we denote it by writing x y x y String
40
S | aS | bS | cS, S aS S aS aaS. S aS aaS aacS aacbS.. S aS aaS aacS aacbS aacb = aacb A short hand way of showing a derivation exists: S * aacb Sample derivation
41
The following three symbols with their associated meanings are used quite often in discussing derivations: derives in one step, + derives in one or more steps, *derives in zero or more steps. Other shorthand
42
S AB A | aA B | bB We can deduce that the grammar non-terminal symbols are S, A, and B, the start symbol is S, and the language alphabet includes , a, and b. A more complex grammar
43
Let's consider the string aab. The statement S + aab means that there exists a derivation of aab that takes one or more steps. For example, we have S AB aAB aaAB aaB aabB aab Another derivation
44
If G is a grammar, then the language of G is the set of language strings derived from the start symbol of G. The language of G is denoted by: L(G) Grammar specifies the language
45
If G is a grammar with start symbol S and set of language strings T, then the language of G is the following set: L(G) = {s | s T* and S + s} Grammar specifies the language
46
If the language is finite, then a grammar can consist of all productions of the form S w for each string w in the language. For example, the language {a, ba} can be described by the grammar S a | ab. Finite languages
47
If the language is infinite, then some production or sequence of productions must be used repeatedly to construct the derivations. Notice that there is no bound on the length of strings in an infinite language. Therefore there is no bound on the number of derivation steps used to derive the strings. If the grammar has n productions, then any derivation consisting of n + 1 steps must use some production twice Infinite languages
48
For example, the infinite language {a n b | n 0 } can be described by the grammar, S b | aS To derive the string a n b, use the production S aS repeatedly --n times to be exact-- and then stop the derivation by using the production S b The production S aS allows us to say If S derives w, then it also derives aw Finite languages
49
A production is called recursive if its left side occurs on its right side. For example, the production S aS is recursive. A production S is indirectly recursive if S derives (in two or more steps) a sentential form that contains S. Recursion
50
For example, suppose we have the following grammar: S b | aA A c | bS The productions S aA and A bS are both indirectly recursive S aA abS A bS baA Indirect recursion
51
A grammar is recursive if it contains either a recursive production or an indirectly recursive production. A grammar for an infinite language must be recursive! However, a given language can have many grammars which could produce it. Recursion
52
Suppose M and N are languages. We can describe them with grammars have disjoint sets of nonterminals. Assign the start symbols for the grammars of M and N to be A and B, respectively: M : A N :B … Then we have the following rules for creating new languages and grammars: Combining grammars
53
The union of the two languages, M N, starts with the two productions S A | B followed by the grammars of M and N A … B … Combining grammars, union rule
54
Similarly, the language M N starts with the production S AB followed by, as above, A … B … Combining grammars, product rule
55
Finally, the grammar for the closure of a language, M*, starts with the production S AS | followed by the grammar of M A … Combining grammars, closure rule
56
Suppose we want to write a grammar for the following language: L = { , a, b, aa, bb,..., a n, b n,..} L is the union of the two languages M = { a n | n N} N = { b n | n N} Example, union
57
Thus we can write a grammar for L as follows: S A | B union rule, A | aAgrammar for M, B | bBgrammar for N. Example, union
58
Suppose we want to write a grammar for the following language: L = { a m b n | m,n N} L is the product of the two languages M = {a m | m N} N = {b n | n N} Example, product
59
Thus we can write a grammar for L as follows: S AB product rule, A | aA grammar for M B | bBgrammar for N Example, product
60
Suppose we want to construct the language L of all possible strings made up from zero or more occurrences of aa or bb. L = {aa, bb}* = M* M = {aa, bb} Example, closure
61
So we can write a grammar for L as follows: S AS | closure rule, A aa | bbgrammar for {aa, bb}. Example, closure
62
We can simplify this grammar: Replace the occurrence of A in S AS by the right side of A aa to obtain the production S aaS. Replace A in S AS by the right side of A bb to obtain the production S bbS. This allows us to write the the grammar in simplified form as: S aaS | bbS | An equivalent grammar
63
LanguageGrammar {a, ab, abb, abbb} S a | ab | abb | abbb { , a, aa, aaa, …}S aS | {b, bbb, bbbbb, … b 2n+1 } S bbS | b {b, abc, aabcc, …, a n bc n } S aSc | b {ac, abc, abbc, …, ab n c} S aBc B bB | Some simple grammars
64
Regular languages
65
There are many possible ways of describing the regular languages: Languages that are accepted by some finite automaton Languages that are inductively formed from combining very simple languages Those described by a regular expression Any language produced by a grammar with a special, very restricted form What is a regular language?
66
We start with a very simple basis of languages and build more complex ones by combining them in particular ways: Basis: , { } and {a} are regular languages for all a Σ. Induction: If L and M are regular languages, then the following languages are also regular: L M, L M and L* Building a regular language
67
For example, the basis of the definition gives us the following four regular languages over the alphabet Σ = {a,b}: ,{ },{a}, {b} Sample building blocks
68
Regular languages over {a, b}. Language { , b} We can write it as the union of the two regular languages { } and {b}: { ,b} = { } {b} Example 1
69
Language {a, ab } We can write it as the product of the two regular languages {a} and { , b}: {a, ab} = {a} { , b} Example 2
70
Language { , b, bb, …, b n,…} It's just the closure of the regular language {b}: {b}* = { , b, bb,..., b n,...} Example 3
71
{a, ab, abb,..., ab n,...} = {a} { , b, bb,..., b n,... } = {a} {b}* Example 4
72
{ , a, b, aa, bb,..., a n, …, b m,...} = {a}* {b}* Example 5
73
A regular expression is basically a shorthand way of showing how a regular language is built from the basis The symbols are nearly identical to those used to construct the languages, and any given expression has a language closely associated with it For each regular expression E there is a regular language L(E) Regular expressions
74
The symbols of the regular expressions are distinct from those of the languages Regular expressionLanguage L ( ) = L ( ) = { } aL {a} = {a} Basis of regular expressionslanguages Regular expressions versus languages
75
There are two binary operations on regular expressions (+ and ) and one unary operator (*) Regular expressionLanguage R + SL (R + S ) = L (R ) L (S ) R S, R SL (R S ) = L (R ) L (S ) R*L (R* ) = L (R )* These are closely associated with the union, product and closure operations on the corresponding languages Operators on regular expressions
76
Like the languages they represent, regular expressions can be manipulated inductively to form new regular expressions Basis: , and a are regular expressions for all a Σ. Induction: If R and S are regular expressions, then the following expressions are also regular: (R), R + S, R S and R* Building regular expressions
77
For example, here are a few of the infinitely many regular expressions over the alphabet Σ = {a, b }: , , a, b + b, b*, a + (b a), (a + b) a, a b*, a* + b* Regular expressions
78
To avoid using too many parentheses, we assume that the operations have the following hierarchy: *highest (do it first) +lowest (do it last) For example, the regular expression a + b a* can be written in fully parenthesized form as (a + (b (a*))) Order of operations
79
Use juxtaposition instead of whenever no confusion arises. For example, we can write the preceding expression as a + ba* This expression is basically shorthand for the regular language {a} ({b} ({a}*)) So you can see why it is useful to write an expression instead! Implicit products
80
Find the language of the regular expression a + bc* L(a + bc*) = L(a) L(bc*) = L(a) (L(b) L(c*)) = L(a) (L(b) L(c)*) = {a} ({b} {c}*) = {a} ({b) { , c, c 2,., c n,…}) = {a} {b, bc, bc 2,...... bc n,…} = {a, b, bc, bc 2,..., bc n,...}. Example
81
Many infinite languages are easily seen to be regular. For example, the language {a, aa, aaa,..., a n,... } is regular because it can be written as the regular language {a} {a}*, which is represented by the regular expression aa*. Regular language
82
The slightly more complicated language { , a, b, ab, abb, abbb,..., ab n,...} is also regular because it can be represented by the regular expression + b + ab* However, not all infinite languages are regular! Regular language
83
Distinct regular expressions do not always represent distinct languages. For example, the regular expressions a + b and b + a are different, but they both represent the same language, L(a + b) = L(b + a) = {a, b} Regular language
84
We say that regular expressions R and S are equal if L(R) = L(S) and we denote this equality by writing the following familiar relation: R = S Regular language
85
For example, we know that L (a + b) = {a, b} = {b, a} = L (b + a) Therefore we can write a + b = b + a We also have the equality (a + b) + (a + b) = a + b Regular language
86
Properties of regular language Additive (+) properties: R + T = T + R R + = + R= R R + R = R (R +S) +T = R + (S+ T) These follow simply from the properties of the union of sets
87
Properties of regular language Product () properties R = R = R = R = R (RS)T =R(ST) Distributive properties R(S + T) = RS + RT (S + T)R = SR +TR
88
* = * = R* = R*R* = (R*)* = R+R* RR* = R*R R(SR)* = (RS)* R (R+S)* = (R*S*)* = (R* + S*)* = R*(SR*)* Closure properties
89
Show that ( + a + b)* = a*(ba*)* ( + a + b)*= (a + b)*(+ property) = a*(ba*)*(closure property) Example
90
Regular grammars
91
A regular grammar is one where each production takes one of the following forms: S S w S T S wT where the capital letters are non- terminals and w is a non-empty string of terminals Regular grammar
92
Only one nonterminal can appear on the right side of a production. It must appear at the right end of the right side. Therefore the productions A aBc and S TU are not part of a regular grammar, but the production A abcA is. Regular grammar
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.