IENG313 Operation Research I

advertisement
RESEARCH ASSISTANTS
Mazyar Ghadirinejad
&
Farhood Rismanchian
Introduction
 Lingo is a software that helps you to model and solve some kinds of
optimization problems, such as:
 Linear
 Nonlinear
 Integer
 It consists of 3 parts:
 Variables: Quantities to find the optimum value of objective function.
 Objective Function: A formula to optimize the model, for example:
maximize profit, maximize products, minimize cost and etc.
 Constraints: Define the limits of the variables.
Linear Programming
 f(x1, x2, …,xn) = c1x 1± c2x2 ± … ± cnxn is a linear function.
Note that we have no power of 2, 3 or …
 f(x1, x2, …,xn) ≥ b or f(x1, x2, …,xn) ≤ b is a linear inequality.
 A linear programming problem (LP) is an optimization problem to
max. or min. of the linear objective function.
 The values of decision variables should satisfy a set of constraints.
Notes
 Variable names must begin with a letter A-Z and continue with letters








and digits 0-9. They are not case sensitive.
Enter the objective function by typing: MIN=…; or MAX= … ;
Each statement (line) must be end in a semi-colon (;).
Asterisk used to denote multiplication (*) .
carat sign is used as a power symbol (^) In nonlinear programming.
Comments are initiated with exclamation point (!).
Parentheses should use to define the order of mathematical
operations.
Type the constraints after the objective function without: “St.”,
“Such that” and “Subject to”.
In Lingo, the lower bound for variables is zero.
A simple example
 A company produces product A and B. Product A sells for $3 per
unit, and product B sells for $5 per unit. Producing a unit of product
A requires 2 unit of raw material 1 and 1 unit of raw material 2.
Producing a unit of product B requires 5 unit of raw material 1 and 2
unit of raw material 2. 60 units of raw material 1 and 25 unit of raw
material 2 are available.
 Formulate an LP that can be used to maximize revenue.
Formulating the problem
 Variables:
 x1: units of product A that should be produced
 x2: units of product B that should be produced
 Objective Function:
 Max Z= 3x1 + 5x2
 Subject to (constraints):

2x1 + 5x2 ≤ 60 (Raw material 1 constraint)

1x1 + 2x2 ≤ 25 (Raw material 2 constraint)

x1 ≥ 0

x2 ≥ 0
Solving a LINGO Model
 Each model can be solved by:
1. Clicking the solve button
2.
3.
Selecting Solve from the LINGO menu
Using Ctrl+S keyboard shortcut.
LINGO Solver Status Window
 If no errors are found, the LINGO solver status window appears:
LINGO Solution Report Window
Developing a LINGO Model in Windows
 Modeling Problem:
The CompuQuick Corporation produces two models of computers Standard and Turbo. CompuQuick can sell every Standard unit it produces
for a profit contribution of $100, and each Turbo unit for a contribution of
$150. At the CompuQuick factory, the Standard computer production line
can produce, at most, 100 computers per day. At the same time, the Turbo
computer production line can turn out 120 computers per day. Furthermore,
CompuQuick has a limited supply of daily labor. In particular, there is a
total of 160 hours of labor available each day. Standard computers require 1
hour of labor, while Turbo computers are relatively more labor intense
requiring 2 hours of labor. The problem for CompuQuick is to determine the
mix of Standard and Turbo computers to produce each day to maximize
total profit without exceeding line and labor capacity limits.
Developing a LINGO Model in Windows
 In general, an optimization model will consist of the following three
items:
1. Objective Function is a formula that expresses exactly what it is you
want to optimize.
In business oriented models, this will usually be a profit function you
wish to maximize or a cost function you want to minimize.
Models may have, at most, one objective function.
In our example, the objective function will compute the company's
profit as a function of the output of Standards and Turbos.
Developing a LINGO Model in Windows
2. Variables: Variables are the quantities you have under your control. You
must decide what the best values of the variables are. For this reason,
variables are sometimes also called decision variables.
In our example we will have two variables: one corresponding to the
number of Standards to produce and the other corresponding to the
number of Turbos to produce.
3. Constraints: Limitation on the values of the variables in a model (e.g.,
time, raw materials, your budget, etc).
In our example, we will have one constraint for each of our production
lines and one constraint on the total labor used.
Developing a LINGO Model in Windows
Variables: We will let the variables STANDARD and TURBO denote the
number of Standard and Turbo computers to produce, respectively.
Objective Function is to maximize total profit as the sum of the profit of
the Standard computer ($100) multiplied by the total Standard computers
produced (STANDARD) and the profit of the Turbo computer ($150)
multiplied by the total Turbo computers produced (TURBO).
Finally, we tell LINGO we want to maximize an objective function by
preceding it with "MAX =". Therefore, our objective function is written
on the first line of our model window as:
Developing a LINGO Model in Windows
 Modeling Problem:
The CompuQuick Corporation produces two models of computers Standard and Turbo.
Profit of every Standard computer unit is $100, and
Profit of every Standard computer unit is $150.
Limitation of Standard computer production line is at most, 100 per day, and
for Turbo computer production line is at most, 120 per day.
Total labor available is 160 hours each day.
Standard computers require 1 hour of labor, while Turbo computers require
2 hours of labor.
Objective function is maximizing the total profit.
Developing a LINGO Model in Windows
 Therefore, our objective function is:
 MAX = 100 * STANDARD + 150 * TURBO;
 Constraints: The number of Standard and Turbo computers produced




must be constrained to the production line limits of 100 and 120,
respectively.
STANDARD <= 100;
TURBO <= 120;
The final constraint on the amount of labor used can be expressed as:
STANDARD + 2 * TURBO <= 160;
Developing a LINGO Model in Windows
You may have noticed that:
 Each mathematical expression in LINGO is terminated with a
semicolon.
 Less-than-or-equal-to (<=) signify greater-than-or-equal-to (≥).
 Wrting an expression in more than one line:
MAX = 100 * STANDARD
+ 150 * TURBO;
 Comments begin with an exclamation point (!) and end with a
semicolon (;)
For example:
X = 1.5 * Y + Z / 2 * Y; !This is a comment;
X = 1.5 * !This is a comment of a constraint; Y + Z / 2 * Y;
Developing a LINGO Model in Windows
 LINGO does not distinguish between uppercase and lowercase in
variable names. Thus, “TURBO, Turbo, Turbo” would all be considered
equivalent:
 all names must begin with an alphabetic character (A-Z). Subsequent
characters may be either alphabetic, numeric (0-9) or the underscore (_).
 Names may be up to 64 characters in length.
 LINGO’s editor is "syntax aware“. When it encounters LINGO
keywords, it displays them in blue,
Comments are displayed in green,
Matching parentheses are also highlighted in red and
all remaining text is displayed in black.
Developing a LINGO Model in Windows
The model of our example:
Problem 1
 A least cost diet has to be planned for the kitchen of
the Strong Boys High School. The total daily
requirements of the nutritional elements for healthy
young boys, and the cost and the nutritional contents
of general food types are given in the following table.
 Consider that each student may eat at most 16 units of
food stuff per day and the amount of protein taken
from animal sources should not be more than the 60%
of the total protein intake. Formulate as an LP model.
Units of Nutritional Elements Per Unit of Food Type
Total Daily
Milk
Meat
Bread
Vegetable
Requirement
Calories
160
210
120
150
≤ 2700 Calories
Carbohydrates
110
130
110
120
≥ 300 grams
Protein
90
190
90
130
≥ 250 grams
Vitamins
50
50
75
70
≥ 60 grams
$ 0.42
$ 0.68
$ 0.32
$ 0.17
Required Nutritional
Element
Cots Per Unit
Solution:
 Objective: To obtain minimum cost daily diet which
satisfying the Nutritional requirements and eating
capacity
 Decision Variables: Xj number of units of food type j
into the daily diet of the student (where j=1 (milk),
2(meat), 3(bread), 4(vegetables)).
Model:












Objective Function:
Min Z= 0.42X1+0.68X2+0.32X3+0.17X4
Subject to:
Calories:
160X1+210X2+120X3+150X4 ≤ 2700
Carbohydrate: 110X1+130X2+110X3+120X4 ≥ 300
Protein:
90X1+190X2+90X3+130X4
≥ 250
Vitamins:
50X1+50X2+75X3+70X4
≥ 60
Protein balance:
90X1+190X2 ≤ 0.6(90X1+190X2+90X3+130X4)
Or:
36X1+76X2-54X3-78X4
≤0
Eating Capacity: X1+X2+X3+X4
≤ 16
Non-negativity: Xj ≥ 0
; j=1,2,3,4
Problem 2
 Steelco manufactures two types of steel at three different
steel mills. During a given month, each steel mill has 200
hours of blast furnace time available. Because of
differences in the furnaces at each mill, the time and cost
to produce a ton of steel differs for each mill. The time
and cost for each mill are shown in the bellow table
 Each month, Steelco must manufacture at least 500 tons
of steel 1 and 600 tons of steel 2. Formulate an LP to
minimize the cost of manufacturing the desired steel.
 xij: tons of steel j that reached from mill i, where i=1,2,3
and j=1,2.
Steel
Steel 2
Cost ($)
Time (Minutes)
Cost ($)
Time (Minutes)
Mill 1
10
20
11
22
Mill 2
12
24
9
18
Mill 3
14
28
10
30
Lingo Model:
Problem 3
 Walnut Orchard has two farms that grow wheat and
corn. Because of different soil conditions, there are
differences in the yields and costs of growing crops on
the two farms. The yields and costs are shown in the
following table. Each farm has 100 acres available for
cultivation; 11000 bushels of wheat and 7000 bushels
of corn must be grown. Determine a planting plan that
will minimize the cost of meeting these demands.

Farm 1
Farm 2
Corn yield/acre
500 bushels
650 bushels
Cost/acre of corn
$ 100
$ 120
Wheat yield/acre
400 bushels
350 bushels
$ 90
$ 80
Cost/acre of
wheat
Solution:
 Objective: To decide how many acres to devote to
wheat and corn in each farm, so that total cost of
producing requested wheat and corn is minimized.

Decision Variables:
xij: amount of acres
devoted to produce i in farm j, where i= 1, 2 and j = 1, 2.

 MODEL:
 Min Z = 100 x11 + 120 x12 + 90 x21 + 80 x22
 S.T:





x11 + x21 ≤ 100
x12 + x22 ≤ 100
500 x11 + 650 x12 ≥ 7000
400 x21 + 350 x22 ≥ 11000
xij ≥ 0 for all i,j
LINGO Solver Status Window
LINGO Solution Report Window
Free Variables
 By default, a LINGO variable has a lower bound of zero
and an upper bound of infinity. @FREE removes the
lower bound of zero and lets a variable take negative
values, rendering it unconstrained in sign, or free. The
syntax is:
 @FREE( variable_name);
 where variable_name is the name of the variable you
wish to make free.
 The @FREE function may be used in a model
anywhere you would normally enter a constraint.
Download