 So far, we have discussed about NP completeness by showing satisfiability problem is NP complete. Through a chain of NP complete problems, we have conducted reduction and then shown that satisfiability problem is NP complete. Of course, NP satisfiability problem was the first to show that it is NP complete by Stefan Koch and this is the Koch's theorem that we have established in our lectures. Of course, so far the examples that we have presented to show that these problems are NP complete, they are essentially related to touring missions and some tiling problem and then we have finally, reduced this problem and establish satisfiability problem. So, you know how to establish a problem is NP complete by now through these lectures. So, in this lecture I will present some more NP complete problems which are of some importance in this in practice and we will establish them there NP complete. These problems are among the sort of very first that are established to be NP complete. As I had mentioned in sometime around 1970-71, Stefan Koch has established that satisfiability problem is NP complete and then within one year time Koch established about 21 problems that mostly they are graph theoretic problems they are NP complete. You know graph models are essentially the models for very practical real world problems. So, they are essentially sort of transfer to graph theoretic questions and established those are NP complete. So, in this lecture I cover few more NP complete problems which are of which are mainly graph theoretic problems and having some importance with some real world problems. So, in this connection first I will prove that 3 set is NP complete. Of course, I had already mentioned what is k set is able to problem k set that is given a Boolean formula in its c n f in which each disjunction I mean the sum has at most k literals each sum has at most k literals. Now, given such an instance of the problem we have to cross check whether or not the formula is satisfiable that is what is k set problem. Now, I have already mentioned that if you take k equal to 2 this 2 set is can have a polynomial time algorithm. Now, if k greater than or equal to 3 of course, I will establish that 3 set is NP complete then you can understand for k greater than or equal to 3 these are hard problems. So, to show 3 set is NP complete you know by definition we have to establish the 3 set is in NP and 3 set is NP hard that means 3 set is as hard as any other NP complete problem that is what we have to look into. Observing that 3 set is in NP it is similar to what we have observed that satisfiability problem is in NP. So, you can mimic in the similar lines and write that 3 set is also in NP. Now, to establish that 3 set is NP hard what do we do since we have already established that satisfiability is NP complete we will give a reduction polynomial time reduction to 3 set from a set. That means what we have to do given a Boolean formula f in c n f we construct a Boolean formula f prime an instance of 3 set such that f is satisfiable if and only if f prime is satisfiable this was this what we have to do the meaning of this particular statement is essentially this is what we have to do. Now, you take what do we do if you look at this satisfiability problem instance satisfiability problem instance you will have you know a formula is essentially something like you know some certain sums will be there. So, say c 1 and c 2 and so on c k for example, where each c is a disjunction sum I means it is of the form you know some literals say l 1 or l 2 or l 3 at maximum you will have 3 literals because in case of 3 set now in case of satisfiability problem here you can have any number of literals that is there is no restriction for satisfiability problem. So, say l 1 or l 2 or l 3 and so on or say some l r you can have each c i you know l r i I will put. So, you may have something like this each clause will be of the form. Now, what do we concentrate if we can write each clause any an equivalent formula an equivalent formula which fits in 3 set then we can do it for every c i and thus this f prime whatever that we are constructing that an equivalent formula which is having in each clause say for example, c 1 is now somehow divided into say c 1 1 and c 1 2 and so on say some c 1 k 1 c 1 k 1. So, this is corresponding to c 1 and similarly for c 2 and for c 3. So, what are we going to do each some c 1 now when we are writing this conjunction of disjunction of literals each c i j here will maintain that it will have at most 3 literals by maintaining this we will construct a formula f prime an equivalent formula equivalent formula we mean whenever this is satisfiable this is satisfiable if and only if this is satisfiable likewise we will construct the truth assignment you can have if it satisfies this and this satisfies here and vice versa that is what is essentially we are targeting to. So, that means it is sufficient to concentrate on one disjunction one sum if I do you can do it for the other sums and establish the things. Now, each disjunction in f with more than k literals with more than 3 literals say for example, if you take one sum disjunction which is having say for example, x 1 or x 2 and so on or x k if you have like that this will be replaced by the following sum what do we do we will take this formula c prime corresponding to that. So, corresponding to this c 1 whatever that we are writing here if it is having more than 3 literals then only I will do this if say for example, c 2 has only one literals. So, no problem if it has 2 literals no problem because it is anyway fitting to the instance of 3 set. So, if it is having more than 3 literals then only we do this process whatever I am now mentioning. So, that is what is essentially c 1 prime for example. So, what is the formula here I am writing just carefully see this. So, this disjunction c will be replaced by this c prime in the formula f what is this if we have this literals say x 1 or x 2 and so on x k do not just think that these are variables this I could have written may be some l 1 or l 2 likewise some l 1 or l 2 likewise because this can be you know complement of the Boolean variable whatever that under consideration. So, consider a sum x 1 or x 2 and so on x k what we are doing this x 1 or x 2 or y 1 now what is y 1 we are going to choose now some k minus 3 new Boolean variables and construct a sum in the following. So, x 1 or x 2 or y 1 and y 1 bar because these are Boolean variables this is a negation of this y 1 or x 3 whatever is the third component here in this in c what you have that you put it here or y 2. So, what I am doing here y 1 bar or y 3 or y 2 I will explain you. So, and then this is y 2 bar or y 4 y 3 then if you look at here I have 4 then I have 2 here. So, if when I go to this x k minus 2 then I will have the here this if you continue this way y k minus 4 bar and here y k minus 3. So, these are the new variables that we have chosen and this y k minus 3 bar I mean complement of that negation or x k minus 1 or x k. So, this is what is the formula constructed. Now, let me explain you the theme like if you look at any of this sum here say if you look at y 1 bar or x 3 or y 2 y 1 complement or x 3 or y 2. Now, we look at this this is equivalent to you know this is same thing as y 1 implies x 3 or y 2. So, what is the meaning how do we look at the truth assignments for this. If y 1 is true then x 3 is true or y 2 should be true you know. So, that is what is the formula equivalence here. So, the theme here is if y 1 is true then one of these should be true right. So, with that we have constructed this formula and now we can see that this c is satisfiable if and only if c prime is satisfiable that is what we will look at now. Now, the point is one side you can see that we are going to observe that c is satisfiable if and only if c prime is satisfiable. That means, if you have a truth assignment which satisfies c I will construct a truth assignment that satisfies c prime and vice versa. That is what we have to do now assume you have a truth assignment t that satisfies c. That means, you look at this sum a truth assignment satisfying this sum we mean in at least one of this x i's will be satisfied by the truth assignment right. So, that is t x i equal to 1 for some i. Now, what I will ask you to do here let j be the smallest index such that t x j is equal to 1. So, that means, here in this x 1 or x 2 and so on x k what we have looked into here. So, at x j we have truth value 1 and before that all are receiving truth value 0 that is how we have. Now, what do we do we will extend this truth assignment t to all these variables this all this Boolean variables x 1 x 2 x x k and the new variables y 1 y 2 and so on y k minus 3. And we give truth assignment this way because this is an extension. So, that therefore, what are the truth assignment t that gives for all x i's that will be the same. And now we have to tell for other variables this y 1 y 2 y k minus 3. So, what are we going to assign here is this t prime at y l if you take any variable here in among y i's for all l with less than equal to j minus 2 we give truth value 1 otherwise we give 0. So, now you can cross check that this t prime satisfies that c prime. How it is look at the formula because what I have to say that this t prime satisfies each of this sums this sum this sum and so on all these things. Now, we know that till x j all the way all these literals x i's they are receiving truth value 0. But, now from the definition of t prime you see till l less than equal to j minus 2 we have we have assigned truth value 1 for this y l. So, that means in the if x j is somewhere here in between now y 1 has received truth value 1. Therefore, this sum will be satisfied by t prime similarly, y 2 is receiving truth value 1. So, this will also be satisfied and so on. Now, wherever we have say for example, x j here. So, that has been satisfied that has been satisfied by the truth assignment t and therefore, t prime. Now, there after now you look at there after now you look at what is here. There after we are assigning this y i's truth value 0 for this j minus 2. So, whatever here if I have truth value 1 that is the least here of course, till this point we have assigned truth value 1 for all these y i's. So, you can concentrate on these things these variables and see these sums are satisfied. Now, there after for all the variables y we are assigning truth value 0 for y i's. Now, you concentrate on the first one now you concentrate on the first one. Now, this candidate we have assigned for y k minus y k minus 4 for example, we have truth value assigned truth value 0. So, it is complement will receive truth value 1 similarly, here. So, the truth assignment t prime. We have assigned this way for all y l truth value 1 if this l is less than equal to j minus 2 and elsewhere 0 I mean there after that means, when you are looking at the first one you have y 1 here this will assign truth value 1 and when I have y 2 here this will assign truth value 1 and so on. When I have got this x j which is having truth value 1. So, this will be satisfied by that t prime in which and there after what are the classes what are the sums that we have this clauses you just concentrate on the first one. Because we have assigned truth value 0 for all other cases here I have the candidate that you if you look at this y i prime. So, there after this first component now you concentrate on and this y i since we are giving truth assignment 0 with respect to t prime. So, this will receive truth value 1 and therefore, all this sums in this formula will be receiving truth value 1 with respect to this t prime the truth assignment and hence the c prime is satisfiable. Now, converse assume you have a truth assignment that satisfies this formula let me write this formula once again. So, the formula is this x 1 or x 2 y 1 y 1 bar x 3 y 2 y 2 bar x 4 y 3 and so on. And of course, at the end we have this y k minus 3 prime y k minus 3 complement or x k minus 1 or x k this is what we have. Now, if you have a truth assignment that satisfies this that means every one of this is getting satisfied by the truth assignment. Let me probably write that truth assignment say t 1 what is the meaning of this this t 1 satisfies this this this and all this sums will be satisfied by this. Now, what I have to say this c is satisfied by some truth assignment that is what we have to look into. So, here it is very easy now whatever this t 2 let me call which satisfies that c how do we look at now look at this t 1 which is this is satisfying this. For example, if this t 1 is giving truth value to y 1 1 only, but not for x 1 and x 2 if any one of this x 1 x 2 is getting truth value 1 by this t 1 we are through because the same t 1 will work to satisfy c because in c we have x 1 or x 2 and so on x k if x 1 or x 2 if any one of them is getting truth value 1 with respect to this t 1 then we are through if not this y 1 should get truth value 1. Now, when y 1 is getting truth value 1 then y 1 bar will receive truth value 0, but if you look at this sum if when y 1 is true this 1 is true or this 1 is true. Now, since y 1 is getting 1 this will receive truth value 0 when it is receiving truth value 0 since t 1 satisfies this sum also one of this y x 3 or y 2 one of them should get truth value 1. If x 3 is getting truth value 1 then we are through if we are not getting truth value 1 for this that means if we are getting 0 here this should get truth value 1 then only this will be satisfied by t 1 correct. Now, let us continue this way suppose if none of this x i's are receiving truth value 1 till this point that means till x k minus 2. Now, let us look at that means this y k minus 3 must be receiving truth value 1 through this t 1 correct. Therefore, this can date should receive truth value 0 because y k minus 3 is receiving truth value 1 and therefore, its complement must be 0 and now what are the variables left over here laterals this x k minus 1 x k. So, one of them should receive truth value 1 then only this clause will be satisfied is a very simple argument. Therefore, what is our t 2 this same t 1 will work for us. So, if you have a truth assignment t 1 which satisfies the formula c prime that is the that is this formula every one of its sum should be satisfied by the t 1. Now, the same t 1 will serve our purpose because if any one of this x i's is satisfied before you know in any one of this clauses then we are through if not what is going to happen if not the first one then second one in x 3 we have x 3 if it is satisfied then fine. If x 3 is not satisfied by that t 1 I mean is not receiving truth value 1 then it has to receive 0 which forces us to get truth value 1 for this y 2. So, you can argue this and continue till you know x k minus 2 if you are not getting truth value 1 with respect to the assignment t 1 then what will happen as x k minus 1 or x k should receive truth value 1 with respect to this truth assignment t 1 and hence what are the truth assignment which satisfies c prime will also satisfy c. Hence I conclude that c is satisfiable if and only if c prime is satisfiable. Now, as I had explained in the beginning you take any formula now each of this sum will replace it by you know if it is having more than 3 literals will replace it by this kind of constructive sum and construct this f prime which is an instance of 3 set and we can observe that f prime is satisfiable if and only if f is satisfiable. Thus the conclusion is we have reduced this 3 set to sorry satisfiable to problem to 3 set. Now, the question is whether this reduction is possible in polynomial time because you look at this less than equal to p what it indicates less than equal to is a reduction and p indicates that should work in polynomial time. Now, you tell me whether this works in polynomial time what is the construction that we are doing what are the input that you have if you have this you know each sum you consider because total input if you look at the formula the entire formula you have c 1 and c 2 and so on c k these are the disjunctions right these are the sums that we have. Now, with respect to the length of the literals which are appearing in c 1 now you look at if I have this x 1 or x 2 and so on x k is some k say number given to you. Now, what we are constructing here we have included with respect to k few more new variables which are not appearing anywhere in f. So, this you have to consider and construct this fixed formula because this formula is a fixed one with respect to that k and hence this construction with respect to the input parameter k we do not have you know anything bigger than you know just a multiple of k. And therefore, you can easily perform this task within polynomial time the constructing that formula in polynomial time and hence this reduction is a polynomial time reduction. Therefore, 3 set is NP hard to conclude that 3 set is NP complete. Now, the what I will do I will present few more graph theoretic problems as I had mentioned which are NP complete further purpose I might use this 3 set is a ability also because just we have established that 3 set is NP complete. I can use 3 set I mean I can use 3 set to reduce to the problems that we are targeting to other than satisfiability or any other problems which we have established so far. So, let me present this problem coloring problem in graphs. Let G equal to V e a pair V a graph I hope you are aware of this definition because V set of vertices this first component of this pair E a set of edges I am writing graph this is undirected graph that means you know I am not going to if you are considering an example I am not going to put any directions of this this undirected I mean something like this. Here each edge V is vertices let me give label say V 1, V 2, V 3, V 4 for example. Now, E you know edges we have put here between V 1 and V 2, V 2, V 3, V 1, V 3, V 2, V 4. So, since this is an undirected graph I may I may write this V 1, V 2 edge by unordered pair V 1, V 2, V 1, V 2. So, this is an element of E alright similarly V 2, V 3 unordered pair it is an element of E V 1, V 3 it is an element of E. So, here essentially E the cardinality of E in this example I have 1, 2, 3, 4 edges. So, unordered pairs here and vertex set of course it has 4 vertices. So, V cardinality is also 4 here anyway. So, let me that is what is I mean graph here. Let us consider a graph G now in a graph a k coloring of G this is a mapping is a function f from the vertex set to you know some k element set I might choose 0, 1 and so on k minus 1. Essentially coloring I mean here what do we do for each vertex we associate a number that means we label we give color may be you can take this set of colors may be red, blue, green that way. So, just to say that these colors are now named as 1, 2, 3 and so on k minus 1 some k minus 1 colors. So, some k colors 0, 1, 2 and so on k minus 1. So, essentially coloring a graph we mean you just give some color to each of its vertex. For example, this I give red for example, this I give green this may be some blue some yellow whatever and you can give may be yellow to this as well whatever it is merely just a function from vertex set to a set of colors. Here we are choosing colors 0 to k minus 1 for some k colors instead of naming red, blue, green whatever now we say a k coloring is a proper coloring we said is a proper coloring when whenever you know you see taken edge the colors which are given to you know this vertices the adjacent vertices should be different such a coloring we call it as a proper coloring. So, a k coloring of g is said to be proper any take any 2 vertices whenever there is an edge which we require the colors given to the vertices should be different whatever the in this example I had written this is anyway proper coloring. For example, if I choose here also yellow now you see this is not a proper coloring. Now, a graph is said to be a graph is k colorable it is k colorable if it has a proper k coloring. So, using some k colors you will be able to give a proper coloring to that graph we say graph is k colorable. Now, regarding this problem so what is the problem here you will be given a graph and given some k color colors and you will be asked whether this is k colorable. So, I give you a graph of 10 vertices for example, and I give you some 3 colors and ask you whether there is possibility of having some coloring using this 3 colors and the coloring should be a proper coloring. You can always have a coloring because there is simply assignment of colors you just keep on, but what we are looking at what we are looking at you can have a proper coloring we mean no 2 adjacent vertices should have the same color. So, that is what is the problem. Now, of course the problem we look at is a decision problem here because this I had already mentioned when I am talking about satisfiability. We are not worried whether you give me what is called a solution for this. That means, if you have in this context if you have such a k coloring what is that coloring I am not worried about we are worried about the counter decision problem. We mean if you are given a graph and some k colors whether it is k colorable or not you have to say s or no this is the problem that we are looking into for NP complete problems the decision problems. In this connection this 3 colorability is the problem given a graph G whether or not G is 3 colorable. And we will establish that this 3 colorability problem is NP complete. Once again to establish this is NP complete we have to observe that this is NP problem as well as it is NP hard to observe that this is NP problem what do we require you are given a coloring you have to only cross check whether it is proper coloring or not. So, that is very easy you just take each edge and cross check the vertices end of that edge whether they are having the same color or not. If they are having same color somewhere for some edge you simply say that this is not a proper coloring otherwise you report yes this is a proper coloring. So, what is the time you require you have to just traverse through all the edges and see what is the what is the color given to the end of those edges. So, that is also it is very quick that you can give an algorithm that works in a polynomial time with respect to the input here the input is graph you have vertices edges. So, you look at you have to simply just with respect to the input edges that you it will work in a polynomial time. So, it is not a problem for you to check whether it is in NP. Now, what do we do we reduce this 3 set problem which we have established it is NP complete to this 3 colorability in polynomial time of course. So, what I have to do I given an instance f of 3 set I will construct an instance of 3 colorability that means I graph. So, given a Boolean formula in 3 set that means each of which has utmost 3 literals what do we do we will construct a graph and such that whenever this formula is satisfiable we have the corresponding graph is 3 colorable and vice versa this is what we have to establish. Now, what I will do instead of considering I mean you take an arbitrary instance of 3 set we can always now say in 3 set I will always consider the formula in which each sum has exactly 3 literals because you know if I have only 1 literals I can always extend say for example, I have only x 1 what I will do I will just adjoin few more few more literals it is easy for you because this are you can put with 0. For example, this is equivalent to x 1 or say another variable you bring into picture x 2 and x 2 bar this is 0. Now, if you expand this x 1 or x 2 and x 1 or x 2 bar x 2 and x 1 or x 2 bar. So, when I have a clause with only 1 literal I can now write I can make it equivalent formula in which I can bring 2 literals each and similarly if you want one more literal to bring into the picture what you do here x 1 or x 2 and now for example, are x 3 and x 3 complement this is same thing with this and this can it also. So, what do I get here similarly this x 1 or x 2 or x 3 and let me put a bracket here x 1 or x 2 or x 3 complement you see you can easily extend a given formula in which you can have you know exactly 3 literals. So, what I will now assume without loss of generality that means, what are the formula that I am considering an instance of 3 set I assume that each of its sum has exactly 3 literals. So, by assuming that what I will do I will construct a graph corresponding p f g f such that f is satisfiable if and only if this g f is 3 colorable. How do we do that let f be this formula say u 1 1 u 1 2 and so on u 1 3 you know these are the 3 literals as I had just mentioned in this sum I assume that I have that k sums in the formula f where each u i here what I mentioned these are literals or the variables say x 1 x 2 x n these are the variables that I have x 1 x 2 x n. Now, how do I construct a graph what I will do to each sum of f say what do I have u 1 1 u 1 2 or u 1 3 this is the first sum and so on u k 1 or u k 2 or u k 3 is the second sum. Now, what I will do is when we have like this for variables x 1 x 2 x n what I am asking you corresponding to each of these variables you consider 2 nodes like this x 1 x 1 prime x 2 x 2 bar complement and so on x n x n bar likewise you consider and take a new node let me call it as a and make a triangle here for all these literals make it like this and then corresponding to each of this sum I will now tell you what do we have to do you consider a graph of following right you look at. So, this many vertices we will be choosing let me call it as g i say u 1 1 u 1 2 u for example, for g 1 u 1 1 u 1 2 u 1 3. So, in general for each of this sum you construct a graph like this. Now, what is the important feature of this graph if you observe let me for example, give you know 0 color to all these 3 nodes what is going to happen since I am giving 0 to this this can receive 1 or 2 among the 3 colors. Since I am giving 0 here 0 here to give a proper coloring of this here for example, if I am giving 0 I have I can give 1 here since I am giving 1 here and this is 0 here I should get 2 only here. Since I am having this 1 and 2 here I should give 0 here there is no alternative because these 2 are given 0s. Since I am getting 0 here if I am giving 1 here I can give 2 if I am giving 2 here I can give here 1. So, that means let me write 2 or 1 1 of them only. So, in this triangle now it will receive 0. So, if this all these 3 nodes if we are giving 0 color you see it will force us to give 0 color to vertex v i there is no alternative. So, that is what I am making a point here if all u i j's have 0 color then any proper 3 coloring any proper 3 coloring will give you know v i color 0. And moreover if any 1 of them is relax to you know have 0 that means if 1 of them is non 0 you can always have some proper coloring 3 coloring. So, that this v i can also receive a non 0 color among the 3 0 1 2. So, that kind of graph g i is this. So, what I would suggest you this g i how it is this g i it has say something like 3 input thing. So, and say v i is here. So, this is what is u i 1 u i 2 u i 3 let me look at j graph like there are several vertex what is this inside this I can only I will only look at these 3 vertices and this. So, what I will do I take for each of this some a copy of this and put it here g 1 and so on I have k some. So, g k whatever this what are these vertices this is either x i or some x i bar whatever it is you connect it to that if it is say for example, x 2 the first one you connect it to x 2. And say for example, this x i 2 sorry u i 2 is x 1 bar you connect it to that and say for example, something else you connect it to like. So, similarly this g k whatever this literals that you have that you connect it to that whatever the connections you have here I have v 1 say in between some v i's and this is v k this is what we have. So, what is the in this construction what we have done first we have made this triangles and what are the graph that we have constructed g i you put it here and look at this literals wherever those literals are appearing in this list you connect to them. And then I am not worried about this g i I have already mentioned this graph is here in between. Now, then this v i's we will now connect to a node say some b. So, you make it like that and moreover make this a adjacent to b as a construction clear once again all these variables you have x 1 x 2 x n corresponding to which you consider 2 n vertices with the labels x 1 x 1 bar x 2 x 2 bar x n x n bar. So, that you know I can quickly see that this is having straight forward correlation with these variables. Now, if you consider any sum you see corresponding to which I want to consider the graph g i in which this let me call them as input nodes and this is an output node sort of these are the you know what are the sum that we are considering you have exactly 3 literals there these literals wherever they are appearing in this list they have to appear here you connect to them. And this v i you connect to a vertex b and make this vertices a and b are also adjacent I hope this construction is clear to you that is what is exactly I wanted to look at. Now, we will argue that the formula f is satisfiable if and only if this graph is 3 colorable how do we argue that now you cross check carefully suppose you have a truth assignment which satisfies that formula that means what is the meaning of that this in this sum one of them will receive truth value 1 one of them will receive truth value 1. That means for this graph among these 3 connections you see at least one of them will have truth value 1 that means a non 0 color. So, I will give a color here using 0 1 2 these 3 colors and whatever the truth assignment that you are giving to this you first give them straight away this x 1 x 1 bar if x 1 is receiving truth value 1 you give it to that then automatically x 1 bar will receive truth value 0. So, you make that color similarly for x 2 what are the truth value it is having you just give it to that and its complement will receive the opposite truth value that means either 0 or 1 will be you know. So, if it is 0 x 2 bar will be 1 and so on. Now, you cross check since this is formula is satisfiable each of this literal at least one of this literal in each sum you will have truth value 1 that means among these 3 connections you will have truth value I mean the color 1 here. Once you have color 1 I can always make it a proper coloring such that this v i will receive non 0 color v i will receive non 0 color when it is receiving non 0 color now what I will do I will give this I can always give 0 color to this because these are all this v i will receive non 0 colors. So, I can put 0 here and then here since x i and x i complement they are having 0 1 as colors I will give color 2 here. Now, you see this graph I can have a proper 3 coloring all right once again the truth values whatever that you are having to x i x i's you just give them as color and automatically their complements will receive the opposite truth value that means the corresponding color. So, that since each clause at least each sum since it is satisfied by this truth assignment at least one of the literals will receive truth value 1 once we have having that once we are having that this each v i can receive truth value non 0 when I am having this truth value I mean not truth value you can always give a proper 3 coloring such that each v i can receive a non 0 color. So, since we are having a non 0 values here I can now take them as colors and I can easily give coloring 0 to b since anyway these are 2 are having 0 and 1 I will give color 2 to a. So, that you see this graph can be given as a proper 3 coloring all right and then suppose you have a proper 3 coloring of this suppose you have a proper 3 coloring of this converse part I wanted to give a truth assignment which satisfies the formula f how do we do that assume you have some proper 3 coloring f to this graph. Now, what do I suggest you in this in this graph what are the proper coloring that you are considering you make a small permutation so that this f of b is receiving 0 and f of a is receiving 2 among the colors 0 1 2 why I mean how it is possible you just give a permutation what are the colors you have this is a proper coloring you just relabel them if I am receiving say for example, a equal to 0 just you call wherever 0 is there you call them as 2 just a permutation between 0 1 2 you give that will be that will still be a proper coloring fine. So, what I am asking you you just will relabel it and give the coloring color 0 to b and color 2 to a first you do that since it is a proper 3 coloring what is going to happen since a is receiving truth value sorry color 2 this x 1 and x 1 bar should receive among the truth value colors 0 and 1 because it is a triangle in this triangle to have a proper coloring here if it is receiving truth value 2 either this should be 0 and 1 or this will be 1 or 0. So, in all these triangles we will have 0 1 2 colors in all these triangles we will have 0 1 2 colors now you see let us look at b b is given color 0 and therefore, none of this v is can get color 0 none of this can get 0. Now, in this proper coloring you can argue that since this is getting a proper coloring which is having truth value non 0 and in this proper coloring each g i here in this proper coloring each g i any one of these connections at least one of these connections you will have color 1 and thus each of this sum here in f can have truth value one of these letters can have truth value 1 what are the color that we are assigning to. So, that you can give a truth assignment which satisfies the formula f and therefore, f is satisfiable. So, likewise we can construct a truth assignment which satisfies f and thus we can conclude that this 3 satisfiability is can be reduced to 3 colorability. Now, polynomial time again you can argue very quickly because you look at the literals that we have the size of this and this graph construction with respect to each of this can work in constant time with respect to the input parameter a multiple of the input parameter and this was in a polynomial time and hence 3 satisfiability can be reduced to 3 colorability. So, that 3 colorability is also an NP complete problem.