 Welcome to the session on non-deterministic finite automata that is NFA, myself Rashmi Dixit. So, let us begin the session learning outcome at the end of this session students will be able to define non-deterministic finite automata they are able to solve problems based on extended transition function for NFA and they are able to find out the difference between DFA and NFA. So, before actual session spent we will spend a couple of minutes on revision so as described by Chomsky the hierarchy of languages which is categorized into four types regular language which is accepted by finite automata, context free language which is accepted by push down automata, linear bounded automata accept recursive language and Turing machine accept recursively enumerable languages. Regular language, context free language, recursive language and recursively enumerable languages all are accepted by Turing machine. As we have already seen what is finite automata it has finite number of states, finite set of symbols, compulsory a single start or initial state at least one end or final state it can be deterministic that is DFA or non-deterministic that is NFA. First look at the figure which explains the block diagram of finite automata it has input tape which is broken into cell each cell consist of a single input symbol finite control unit along with head which read one cell at a time it is forward input tape. What is deterministic finite automata it is a machine with five tuple where q indicate a finite set of states, alphabet indicate a finite set of input symbol, q 0 is the initial or starting state which belongs to q, f a set of final or accepting states which is a subset of q delta is a transition function which explains machine in any state by processing a single symbol at a time machine either remains in the same state or move to the next state. Non-deterministic finite automata is same as a DFA with five tuple where q a finite set of states, alphabet a finite input symbol q 0 the initial or starting state which is in q, f a set of final or accepting states which is a subset of q. Now, here is a difference in deterministic finite automata machine in any state by processing a single symbol machine either remains in the same state or move to the next state. Now, in non-deterministic finite automata machine in any state by processing a single symbol machine may move to 2 raise to q 2 raise to q is the power set of q the set of all subsets of q the main difference between DFA and NFA is here in NFA non-determinism is present there may be 0 or more than one path from any state to other state after processing a single symbol. Just look at these two diagrams the picture will be clear in DFA there are two states q 0 q 1 in NFA also there may be number of states here for any symbol there is exact one path. So, from q 0 by processing 0 it is compulsory either to machine remains in the same state or move to the next state. Now, here at q 0 by processing 1 machine remains in the same state vice versa in NFA from q 0 by processing 0 machine remains in the same state at the same time machine move from q 0 to q 3 that is a difference or the main difference between DFA and NFA. Now, as we have already seen all the models or real time examples are deterministic you can take the example of human being or any computer system. Now, why non-determinism is useful non-determinism is mainly used where lots of searching is required with the help of backtracking. Now, take the example of any game that is chess. Now, in chess at any time there are two moves either you lose or win you can select depending upon the condition. Now, if we go for determinism in chess either you lose or win you cannot get extra chance, but because of the non-determinism multiple copies of the same thing is exist for the checking or for the finding whether you will lose or win. So, non-determinism is a help pool in backtracking which with the help of which we can solve lots of problem. Now, in non-determinism as the information processing for all is not compulsory. So, compressed information is available non-determinism is used in lots of programming languages nowadays. For example, prologue which is easy to program at a higher level with the help of which what we want to do rather than how to do it. Useful in algorithm complexity study. So, can we say that is NFA more powerful than DFA that is accepts type of language that any DFA cannot we will see at the end what is the answer of this particular question. Now, here one example of NFA is given. Alphabet set consists of A and B and NFA which accept the string containing AB. Q0, Q1, Q2 as we know that there is a no processing of all the symbol is compulsory and there may be more than one or zero path for any symbol. So, from Q0 there are two path for A one remains in the same state and other go to Q1. At Q1 there is a zero path for A. So, this NFA accept the string contain AB extended transition function for NFA as we have seen in DFA what is a means of extended transition function. After complete processing of string where the machine ends up means extended transition function same in NFA, but as compared to DFA in NFA there may be more than one path for a single symbol. So, it is a little bit complex. So, the definition the extended transition function explain as a follow for any Q which belongs to Q delta star Q comma null machine remains in the same state that is Q for any Y which is a string and A which is a symbol and Q which belongs to Q delta star Q comma Y A we are combining all the result states which are possible before processing the last symbol A and we are combining remaining one remember one thing we are here combining all the result state. So, union of sets that is delta R comma A for each possible P in the set delta star Q comma Y. We will see one example so that you will get a major idea what is that. Now, given NFA with the three states Q0, Q1, Q2. Now, from Q2 is the final state and Q0 is the initial state. Now, we want to check whether the input string 110 is accepted by machine or not. So, extended transition function gives us where the machine end after the complete processing of a string. If machine end at a final state at that time we can say that string is accepted by that particular machine. So, start from the basic definition that is delta star Q0 that is initial state comma null. So, machine remains in the same state that is by the definition of extended transition function. Now, time to process the first symbol 1. So, delta star Q0 comma 1. Now, delta Q0 comma 1, Q0 comma Q1 that is by processing 1 at a Q0 machine remains in the same state as well as goes to Q1. Now, time to process the next symbol delta star Q0 comma 1 1. So, we are here combining delta Q0 comma 1 union delta Q1 comma 1. So, the answer state is Q0 comma Q1. Now, we will consider the third symbol and we will process that is delta Q0 comma 0 union delta Q1 comma 0. So, the answer state is Q0 comma Q2 that is after processing 1 1 0 from Q0 machine gives us Q0 comma Q2. Now, time to consider the fourth symbol from Q0 that is 1 1 0 1 and after combining all the state the answer state is Q0 comma Q1. Now, delta star Q0 comma 1 1 0 1 1 delta Q0 comma 0 union Q1 comma 0. So, the answer is Q0 comma Q2. Now, the answer state consists of the final state. So, we can say that input string 1 1 0 1 0 is accepted by machine. All the student please now pause the video and try to find out the difference between NFA and DFA. Check out your answer. An NFA is a more general as compared to DFA. It is easier to construct. So, it is more useful in proving theorems. In general, it has less number of states. So, less cumbersome and more readable. We can relax some rules as compared to DFA, maps a symbol and a state to a set of 0 comma 1 or more next state. NFA can be in a several state at once versus DFA in exactly one state. NFA as a whole accept same language as DFA's that is a regular language and last but not least it is no more powerful than DFA. Let us summarize all the points in the one slide. NFAs are more general. Eight NFAs recognize same language of DFA's for every state and input symbol the transition function associate a set of state. A string is accepted by NFA if it contains final state and for any every NFA it is possible to construct a DFA. This is the reference.