(00:01) Hello, everyone (00:02) Welcome to the next lecture in the courseant Theory of Automata (00:07) Till now, in this course we have been (00:09) studying finite Automata and pushdown automatic (00:13) We have studied these two machines, (00:15) and we also studied the class of languages they accept (00:18) And now as we move one step ahead, (00:21) we are going to study about the next topic, which is Turing machine (00:25) So if you remember from very first lecture (00:29) where I told you what topics I'll be covering in this course (00:33) So we started from and studied about (00:35) finite state machines and in finite state machines (00:39) We saw that the class of languages they accept are known as regular languages (00:44) Then we studied about push down Automata (00:47) and the class of languages they accept were context three languages (00:55) So we saw the limitations of finite state (00:58) machines, and we studied how their limitations were overcome by push down (01:02) Automata because it is more powerful than finite state machines (01:07) And now as we move ahead, (01:09) we are going to study about Turing machines, which is more powerful than (01:13) finite state machines and also more powerful than Porton Automata (01:18) And the class of languages that is (01:20) accepted by the Turing machines are known as recursively enumerable languages, (01:25) which we will be discussing as we proceed further in this module of Turing machines (01:33) Now let us see what were the data (01:35) structures in finite state machines and push down Automata (01:40) So if you remember in finite state machine which accepted the regular languages, (01:45) the data structures that we had were only the input string (01:50) We just had an input string, (01:52) and we had a control which can move only to one direction and that is forward (01:58) Also, we saw that finite state machine has a very limited power and limited memory (02:04) And the class of languages they accepted were only regular languages (02:08) And we saw, what are the regular languages (02:13) now coming down to the pushdown Automata in pushdown Automata, (02:18) the data structure that we had was only was the input string (02:22) And apart from the input string, we had a stake (02:28) So the presence of this stake makes (02:31) the push down Automata different from finite state machine (02:34) So because of the presence of stake (02:36) in pushdown Automata, we saw that push down Automata was more (02:40) powerful than finite state machine, and the class of languages that these (02:45) pushed on Automata except are contextfree languages (02:52) now coming down, we have Turing machines, (02:58) which we are going to discuss in this lecture and in Turing machine, (03:02) the data structure that we have is something known as tape (03:08) So tape is something that looks like as shown in the diagram (03:12) And this tape is a sequence of infinite cells (03:15) And above this tab we see a downward arrow which is known as the tape head (03:22) So the tape head is positioned on the symbol (03:27) in the cell on which the current control is present (03:31) And this tab head can move either one step (03:34) to the left or one step to the right, depending on the kind of our computation (03:40) Also, the sales in this step is filled (03:42) with the input symbol, and it is an infinite sequence of cells (03:46) So the remaining cells are filled with empty symbol (03:50) So instead of leaving the remaining cells (03:52) blank, we fill them with a special kind of symbol called blank symbol (03:59) So here we have the tape alphabets represented by Sigma (04:05) And these tape alphabets can contain zero (04:09) one, A-B-X-Z, Naught, or any kind of symbol like this (04:16) And then, as I told you, the blank symbol is a special kind of symbol (04:23) Also, note that blank symbol does not belong to Sigma, the set of input symbols (04:29) So blank symbol is not part of the tape Alphabet, but instead it is just a special (04:36) symbol that is used to fill the infinite tape (04:42) Now let us look at the initial configuration of a Turing machine (04:49) So the initial configuration of the tape in Turing machine looks like this (04:54) So here we have the input strings, as I told you (04:59) And then there are blank symbols which have filled the rest of the tape cells (05:06) So it is blank out to Infinity, (05:10) blanks out to Infinity (05:12) And then we have the tape head, (05:15) which is positioned at the leftmost cell or starting cell of the tape (05:21) Now let us see what are the operations that we can have on the tab (05:30) These are the operations that we can have on our table (05:34) The first one is read or scan symbol below the tape head (05:40) So as we know that the tape head is (05:43) positioned above the cell, so we can only scan or read the symbol (05:48) below the table head in that particular cell (05:52) The second operation is to update or write a symbol below the table head (05:56) So after reading or scanning a particular (05:58) symbol in the cell below the tab head, we can write it (06:02) The third operation option (06:05) that you can perform is move the tab head one step left, and the fourth operation (06:10) that we can perform is to move the table head one step right, (06:13) so you can either move the tab head one step to the left or one step to the right (06:20) So remember that you cannot move more (06:23) steps at a time, but one step only to the left or to the right (06:28) So these are the operations you can perform on the tape of our Turing machine (06:34) Now we come to the second part of our introduction (06:39) to the Turing machine (06:41) So here you see a diagram which shows how a Turing machine looks like (06:45) So we have the control portion and a tape which we already discussed (06:52) The control portion is similar to finite state machine or pushdown Automata (06:56) So this is the program or the control portion of our Turing machine (07:01) And remember that it is deterministic (07:06) Now we will discuss some rules of operations (07:09) We have two sets of rules of operations (07:12) So this is rules of operations (07:15) One, it says that at each step of computation (07:21) What we have to (07:24) First, we can read the current symbol, (07:27) and then we can update the current symbol that is right, the same cell (07:32) And we can move exactly one cell either to left or to the right (07:38) And also remember that if you are (07:41) at the left end of the tab and trying to move left, then not move (07:46) Stay at the left end (07:49) Now, here we have the transition diagram of our Turing machine (07:55) The circles represent the States, (07:57) and the transition is represented by some symbols (08:00) Let us see what these symbols mean (08:03) So we have A, then an arrow pointing to B, and we have R over here (08:10) So the leftmost symbol that is A is (08:12) a symbol which we read from the tab, the symbol that follows the arrow that is B (08:18) It represents the symbol that we write (08:20) So we update the cell having A with B, (08:25) and the next step is to move exactly one step either to the left or to the right (08:29) So the symbol R over here gives us the direction to move left or right (08:34) So if it is L instead of R, then we have to move one step to the left (08:40) Now, if we don't want to update, then we just (08:44) write the same symbol (08:49) So this transition, one arrow, one comma L represent the same situation (08:57) Here we update one with one (08:59) It means that one remain as one and we move one step to the left (09:10) Now, coming to the second set of rules of operations (09:16) The first point is (09:20) the control is with a sort of finite state machine (09:24) So as I already told you that the control (09:27) portion of a theorem machine is somehow similar to finite state machine, (09:33) then we have our initial stat (09:36) And if we talk about final state and Turing machine, (09:39) we come to know that there are exactly two final States in Turing machine, (09:47) the accept state and the reject state (09:50) Another thing we need to know is when does the computation of a Turing machine? ... the tape of our Turing machine (06:34) Now we come to the second part of our introduction (06:39) to the Turing machine (06:41) So here you see a diagram which shows how a Turing machine looks... contextfree languages (02:52) now coming down, we have Turing machines, (02:58) which we are going to discuss in this lecture and in Turing machine, (03:02) the data structure that we have is something... (04:42) Now let us look at the initial configuration of a Turing machine (04:49) So the initial configuration of the tape in Turing machine looks like this (04:54) So here we have the input strings,