Now let's take a look at an example. Consider the problem we have introduced in operations research 1, modeling application. Now we have a problem of producing desks and tables. In this problem, we have two decision variables. The first one is the number of desks produced in one day, and the second, decision variables is the number of tables we produce in a day. According to the previous videos we have the formulation here. Our goal is to maximize the total revenue of producing desks and tables, so we have maximization objective function. We have three resources in this model. The first one is the wood, so we have wood resources limitation, which is the first constraint. The second constraint is the labor resources constraint, and the third one, is machine resource limitation. Finally, we have two sign constraints, which force our decision variables to be non negative. Now we have a mathematical formulation, and we have to build a new model with gurobipy, and please open your development environment, and type this code into a new Python file. Let's quickly run through all these codes first to give you a basic concept. Our Example 1 is here. The formulation we have already displayed here, and let's look at the codes. The first cell, import the gurobipy package, And the second cell we define the model and add some decision variables into it. Next, we set the objective function and add three constraints here. Also run it. After we defy all of our model constraint and decision variables, we can optimize it. There should be some message pop out, and that means your computer successfully solved this problem. Finally, if we want to print out the decision variables, you can use these commands, so execute it. You will see some decision variables value display here, and objective value display here. Let's turn back to our slides. That's what we just introduced you just in some seconds and please copy and paste these codes in your environment and run it by yourself. The solution process Gurobi generate, and if you want to see solutions, just copy and paste these codes into your Python codes. You may also customize your own output format by writing your own programs, and you may even save the solution into a file, so it's up to you. According to the Gurobi Solver, we have the optimal solution here. Here is the optimal solution of x1 and x2, and we have our objective value here. Let's take a closer look on our codes. I will introduce the code's detail step by step. First, we should construct a model by the constructor model, and we give a name of this model. We call it eg1, which means that it is Example 1, and we should add some decision variables into the models so we use addVar function. The function has three parameters. The first one is a lower bound of the decision variable, which corresponding to the sign constraints, so we set it as zero. The second parameter is the type of the variable, so we set it as continuous. The third parameter is the name of the variable, so we call the first decision variable x1, and the second variable as x2. When we are writing codes, don't forget to use pound sign to write comments. We have some comment here. Next, we can set our objective function here. We use set objective to add a new objective function to our model. The first parameter is the mathematical expression of the objective function, and the second parameter we used GRB MAXIMIZE, which means that we are solving a maximization problem. Now we can add some constraints. We use addConstr, this function to add constraints one by one. The first parameter is the mathematical expression of the constraint, which is inequality. The second parameter is the name of this constraint. Make sure that you give all constraints, variables, and models distinct names so that you can identify them one by one. Although we don't use the name of the constraint in this course, but one day we will use it in the future, so make sure you do this. After we define all our model formulation, we can use optimize to invoke Gurobi Solver, and solve this problem. There should be some message display in your environment, please take a look at it. If you want to display the decision variable with more information, you can use getVars function to get all of the variables in the model. Here, we print the variable's name and its value one by one, so we have the for loop and print here. Finally, we can print out our objective value with objVal to get the objective value. That's the basic idea of constructing a linear program by Gurobi and Python.