Well, I'm really happy to see you because if you made it that far, it basically means that you have successfully, you know, done the knapsack, you know, assignments and you are still willing to continue in the class. So, this is about coloring, and this is when things get more difficult. This is a very fantastic, amazingly beautiful assignment. You'll see that, okay. Conceptually, it's amazingly simple, right? So, we saw in the lecture, you have notes, you have edges between the notes. You want to color these things with as few colors as possible, okay. Such that two adjacent vertices are given a different color, okay. So, this is a beautiful graph. We've actually four nodes. It's a tree, so we could so optimal solutions very quickly, okay. And this is a particular solution. We've one node which is blue, another node red. Two green nodes, okay. And so we are using three colors, okay. So, this is what we will have to solve, okay. So this is the formalization of the problem, okay. You can look at it, okay. But, essentially the important things here is that we have a certain number of node and we have a certain number of edges, you know E. And that's what's going to drive the input of this assignment, okay. And we'll have a long, long, long list of edges because some of the problems we'll solve here are going to be pretty, pretty interesting in some societies, okay. So, we have a decision variable for everyone of the nodes and that's going to be the color of that node. That's going to be the output of this assignment, okay. So the assignment itself is basically minimizing the largest color that you are using. We are using numbers here, okay. So, you know, mini-, max, minimizing the maximum color that we are using, okay. And then we have only a single constraint which is reasonably easy. You know, two different, two adjacent vertices have to be given a different color, okay. So, when you look at this, you have to know what the input and the output are going to be, okay. So, the input here is going to have basically two ints, okay. The beginning that will tell you the size of the number of vertices, and then the number of edges, that's the two things that you will see there, okay. Number of vertices, number of number of edges. And then what you will have is a long list of edges, okay. Now an edge is basically defined by what? By essentially two vertices, okay. So, every line here that you see, the input is going to be basically telling you that there is an edge between, you know, the first vertex and the second vertex, okay. And, so that's basically going to be the input. So, the input is basically how many nodes, you know, how many, how many vertex, how many edges between these vertices. And then a long list of what these edges are. And that's just basically two, two vertices, okay. Now the output is going to be as usual, okay. So, what is the optimal solutions that you, or the best solutions that you have found? And whether it's optimal or not, okay. And then you will have also the colors of all these vertices, okay. So, for everyone of the vertex, you know, you will basically specify its color in the optimal well or the best form solution, okay. So, that's the basic idea, okay. This is a particular example, okay. So, you see that we have basically three vertices we have four vertices and three edges, okay. Those what you see there. And these are the various edges. We have an edge between node zero and node one, vertex zero, vertex one. We have another edge between vertex one and vertex two, and so on and so forth, that's what you see, okay. And then you see a particular of solutions there, which has basically three colors. And it's not proven optimal, and you see the various colors of these things 0122, okay. So, that's basically input. Very simple, long list essentially of edges and then the output, which is basically the color of every one of these vertices, okay. So, input output is very simple in this problem, okay. It's conceptually a very simple problem. But graph coloring is this beautiful property that is very very difficult to solve, okay. yeah, and this is an illustration of actually the two solution, the solutions that we just produce here. so let me give you some assignment tips here, okay. So, one other thing which is important whatever the, whatever the approach that you're actually using. Is that, you know, the degree of a node is important. The higher the degree of a node, you know, the more difficult it is, the more constrained that node is in a sense. You know, what the color that node can take is basically limited by all it's neighbors, okay. So, think about how that information can be exploited, okay. So, other things that you have to think about is that there are a lot and lot of symmetries in these problems, okay. So, we had a lot of lectures on symmetries inside the constrained programming lecture. Think about them, and think how they can be exploited inside this particular assignment, okay. So, what you see there is the solution there, okay. So, this is a solution, this is a solution which is completely symmetric, okay. You know, think about why these two things are symmetric. There is a very simple rule and, you know, this is essentially some of the techniques that we have seen in constrain programming there, for telling you what kind of symmetry this is. But, this can be exploited and if want or find actually, you know, very good solution and improve optimality, you will have to use things like this, okay. And then, there are other things that you want to do if, you know, if you want to improve optimality or if you want to find, you know, to get a, a sense of what your solution is. Try to find if they are easy lower bound that you can compute. There is one very simple conceptual lower bound that you can take, and that will tell you the best you can ever achieve, okay. So, you know, there are lot of structure here, although the problem is very simp-, you know it's very simple conceptually but there are lot of things that you can exploit and that's why I love this problem, okay. Now this is a beautiful graph here, you know, this is 250 vertices, it's about 3000 edges, okay. Which basically means that the density here the den, you know, the density of the edges is 0.1% compared to the full graph, okay. It's a reasonably easy answer. I mean it's medium difficulty. It's still hard to prove optimality, but this is not some of the most difficult, this is not one of the most difficult instance. Now you can imagine a bushy, you know, it becomes when you have 50% density, okay. So, that's much more complex and much more difficult to solve, okay. So, so, this is essentially, you know, what I wanted to tell you about the graph coloring assignment. You can be really, really creative on this assignment. It's a fantastic assignment, okay. And I look forward to see you compete in finding a high-quality solution and proving optimality on some of these instances. Okay, have fun, it's going to be really interesting.