Okay, so let's do some improvement. Notice that in previous lecture, the formulation of our model is combination of some numbers and decision variables. If we want to make our models more flexible and extendable, we should do model-data decoupling. In this lecture, I will introduce how to do model-data decoupling. Okay, so the purpose of doing this is to make our model more flexible and extendible. So to do this, we will prepare for several lists to store the data when the data is according to each instance. We have list consists of instance parameters, and the model part should only contain an abstract model. There should not be any number in the model. In this example, we will first define the data part and then the model part. Okay, so before we get started, we can take a quick look at the codes and we run through it to give you a basic concept and take a look at the codes. The first cell we defined the data part and we execute it, and the second cell, we construct the model and add some variables here and said abducted function. Then we add constraints, optimize it, and print out all the decision variables and objective value. Here we have some message pop outs and the display of the information is here, so let's turn back to our slides. Okay, let's take a look at the codes. The codes now we have two products and three resources. For each product we have its price and for each product and resources, we have the relationship between them, which is the resource consumptions. For each resources, we have resource limitations here. So you can notice that the numbers in prices is exactly the numbers in the objective function. The numbers here exactly the coefficients of the constraints in the left-hand side, and here the number in the resource limitation is exactly the right-hand side of the constraint. So please check it by yourself. We can see that we use list to store the data in this example. Next, we can also construct a model by using the constructor model and give the name each you want decoupling, which means is example one and we use model data decoupling. Here we use a list to store our decision variable, so we add variables for each product and we use the append function to add new items into a list. Again, we use at var function to add a new variable and we set the lower bound of the variable and the type of the variable to be continuous and we gave a name of it. When you are writing codes beware of the punctuation marks and the timing of use of them. Okay, so after we set all the decision variables, we can now objective function of these model. Here we use set objective again, and here we use a function called quicksum with four comments here. Add up a group of decision variables together in one comment. The expression here means that for each product, we calculate the process of the product and the amount produced of this product together and now we add up all products. Accordingly, we have the sales revenue of the products and now we have the maximize here to show that we are doing a maximization problem. After we set objective function, we can add some constraints. Here we use at C-O-N-S-T-R-S, notice that here we have a S to add multiple constraint in one comment. So the comment represents that for each resources, we add a constraint and for each resources, we must satisfy these constraints, and these constraints are core resource limitations. When you are writing computer codes beware of the things of the list. Okay, so after we've defined the model, we can use optimize to solve the problem, and we use the same expression to print the decision variables and objective value. You will see that the solution is exactly the same as before. Okay, so that's the basic concept of model-data decoupling. Finally, there are some remarks for you. The first one is that Python is case sensitive so that if you have two variables, one with identical names, but one with uppercase and one with lowercase. Python will treat them as different variables, so make sure you test this. Second, do model-data decoupling to make your model more flexible and extendible. Be sure that there should not be any hard-coded number in the model part. Finally, if you have not learned Python yet, you may find lots of tutorials in the internet, so check it by yourself. That's all for today. Thank you.