You are on page 1of 32

LINDO ()

LINDO (LP)
LINDO (IP) (QP)


11
, , LINDO

, , , .
DOS
, (Command). , ,
. ,
. , ,
.
LINDO LINDOGINOLINGO LINGO NLLINGO2
LINDO
LINDO LINDO
LINDOGINOLINGO LINGO NL
1 LINDO Linear INteractive and Discrete Optimizer Linus
Schrage 1986 , (LP----Linear Programming),
(IP----Integer Programming) (QP----Quadratic Programming) . LINDO
LINDO 200
100
2GINO (NLP----Nonlinear Linear Programming)
GINO
GINO
50 30
3LINGO
4 LINGO NLLINGO2
LINDO GINO LINGO LINGO NLLINGO2

(List)TableLINGO LINGO NLLINGO2


200 100
5
LUTOS 1-2-3 WK1
MS-OFFICE EXCEL
1

12
LINDO DOS
(install.exe) (read.me)
(lha.exe).

( A> B>) install ENTER

1 11
Y
N
2

LINDO LP
2.1 LINDO
LINDO LINDO ,
. LINDO LP :
(No feasible solution) (Feasible)
: (Optimal Solution)(Unbounded Solution).
, ,
.
LINDO LINDO.EXE LINDO
LINDO/PC 5.02 (4 MAR 92)
STUDENT VERSION. FOR EDUCATIONAL USE ONLY.
SINGLE USER LICENSE FOR EDUCATIONAL USE ONLY
DISTRIBUTED WITH TEXTBOOKS BY WADSWORTH PUBLISHING
:

LINDO
LP
Max
s. t .

z 2 x 3y
4 x 3 y 10
3x 5 y 12
x, y 0

LINDO ,
LINDO
<= >=< >
: MAX 2x + 3Y
? ST
? 4X + 3Y < 10
? 3x + 5Y < 12
? END
:
LINDO INSTANCEMODEL
GO

:GO
LP OPTIMUM FOUND AT STEP

OBJECTIVE FUNCTION VALUE


1)

7.4545450

VARIABLE
VALUE
X
1.272727
Y
1.636364

REDUCED COST
.000000
.000000

ROW SLACK OR SURPLUS DUAL PRICES


2)
.000000
.090909
3)
.000000
.545455
NO. ITERATIONS=

DO RANGE(SENSITIVITY) ANALYSIS?
3

?N

LP OPTIMUM FOUND AT STEP2


OBJECTIVE FUNCTION VALUE 1) 7.4545450 7.4545450.
VALUE(VARIABLE): X =1.272727, Y =1.636364.
REDUCED COST 0 ( max ).
reduced cost 0, reduced cost
0
SLACK OR SURPLUS : 23 0,
23
DUAL PRICES : 23 .090909.545455
NO. ITERATIONS= 2
, LINDO DO RANGE (SENSITIVITY)
ANALYSIS? NNO.
LOOK , LINDO .
3, 1-2, ALL, , 3 , 1-2 , .
: LOOK
ROW:
3
3)
:

3 X + 5 Y <= 12

: LOOK all
MAX 2x + 3Y
SUBJECT TO
2) 4 X + 3 Y <= 10
3) 3 X + 5 Y <= 12
END
:
ALTER , LINDO , , .
4 x 3 y 10 6 x 3 y 10
ALTER 2,X, 6,
ALTER
ROW:
4

2
VAR:
X
NEW COEFFICIENT:
6
:LOOK ALL
MAX 2 X + 3 Y
SUBJECT TO
2) 6 X + 3 Y <= 10
3) 3 X + 5 Y <= 12
END
:go
LP OPTIMUM FOUND AT STEP

OBJECTIVE FUNCTION VALUE


1)

7.3333330

VARIABLE
VALUE
X
.666667
Y
2.000000

REDUCED COST
.000000
.000000

ROW SLACK OR SURPLUS DUAL PRICES


2)
.000000
.047619
3)
.000000
.571429
NO. ITERATIONS=

DO RANGE(SENSITIVITY) ANALYSIS?
?N
: QUIT
QUIT, LINDO
LP
EDIT
22 LP
5


1 LP LOOK

LOOK 3 --- 3
LOOK 1-3 --- 1-3
LOOK ALL ---
2
ALTER LINDO

ALTER
RHS right-hand side
< >) DIR
EXT (), DEL (), APPC (
) EDIT
3
SAVE LINDO
RETR
4 GO LP
GO DIVERT LINDO GO
GO
LINDO YYESN NO.
QUIT
LINDO LINDO :
HELP: HELP , . HELP,
.
CATEGORIES ( CAT): ,
.
COMMANDS ( COM) COM: , (INPUT),
(OUTPUT), .
:
MAX 60 DESKS + 30 TABLES + 20 CHAIRS
Subject TO
8 DESKS + 6 TABLES + CHAIRS <= 48
4 DESKS + 2 TABLES + 1.5 CHAIRS <= 20
2 DESKS + 1.5 TABLES + 0.5 CHAIRS <= 8
6

TABLES <= 5
END
: ( RETR LINDO DAKOTA)
MAX 60 DESKS + 30 TABLES + 20 CHAIRS
SUBJECT TO
2) 8 DESKS + 6 TABLES + CHAIRS <= 48
3) 4 DESKS + 2 TABLES + 1.5 CHAIRS <= 20
4) 2 DESKS + 1.5 TABLES + 0.5 CHAIRS <= 8
5) TABLES <= 5
END

:GO
LP OPTIMUM FOUND AT STEP

OBJECTIVE FUNCTION VALUE


1)

280.00000

VARIABLE
DESKS
TABLES
CHAIRS

VALUE
2.000000
.000000
8.000000

REDUCED COST
.000000
5.000000
.000000

ROW SLACK OR SURPLUS DUAL PRICES


2)
24.000000
.000000
3)
.000000
10.000000
4)
.000000
10.000000
5)
5.000000
.000000
NO. ITERATIONS=

DO RANGE(SENSITIVITY) ANALYSIS?
?
"Y" :
RANGES IN WHICH THE BASIS IS UNCHANGED:
OBJ COEFFICIENT RANGES
VARIABLE
CURRENT
ALLOWABLE
ALLOWABLE
COEF
INCREASE
DECREASE
7

DESKS
TABLES
CHAIRS

60.000000
30.000000
20.000000

20.000000
5.000000
2.500000

4.000000
INFINITY
5.000000

RIGHT HAND SIDE RANGES


ROW
CURRENT
ALLOWABLE
ALLOWABLE
RHS
INCREASE
DECREASE
2
48.000000
INFINITY
24.000000
3
20.000000
4.000000
4.000000
4
8.000000
2.000000
1.333333
5
5.000000
INFINITY
5.000000
23
DAKOTA
LP OPTIMUM FOUND AT STEP2 LINDO

OBJECTIVE FUNCTION VALUE 280.000000 280.


VALUE. Dakota 2 desks, 0
tables, 8 chairs.
SLACK OR SURPLUS
s1= 2 =24
s2= 3 =0
s3= 4 =0
s4= 5 =5
REDUCED COST 0 ( max ).
reduced cost 0 Xj, reduced cost Xj

TABLEAU LINDO
BV={s1, Chairs, DESKS, s4} SLK5 s4. ART
artificial variableART z; z+ 5TABLES +10s2+10s3=280
TABLEAU
THE TABLEAU
ROW (BASIS)
DESKS TABLES CHAIRS SLK 2 SLK
1 ART
.000 5.000
.000
.000 10.000
2 SLK 2
.000 -2.000
.000 1.000 2.000
3 CHAIRS
.000 -2.000 1.000
.000 2.000
8

4 DESKS
5 SLK 5

1.000 1.250
.000
.000 -.500
.000 1.000
.000
.000
.000

ROW SLK 4 SLK 5


1 10.000
.000 280.000
2 -8.000
.000 24.000
3 -4.000
.000 8.000
4 1.500
.000 2.000
5
.000 1.000 5.000

LINDO , . ,
REDUCED COSTS, DUAL PRICES. ,
.
REDUCED COST, x,
, 1 , x .
DUAL PRICE. x,
1 , x .
REDUCED COST DUAL PRICE 0, .
, DUAL PRICE, .
24
1. LINDO , ":" LINDO .
2 . LINDO . 8
3 <= >= , < >.
2 . LINDO .
2 .
3 LINDO ( )"," , :400(X1+X2) 400X1+400X2 10,000
10000.
7. EDIT . Esc
Ctrl
+ Break
8. LINDO DEL, EXT, ALTER , EDIT
, DEL , ALTER .
9. LOOK (EDIT ).
10. RANGE .
11. SAVE , RETR TAKE
. TAKE LINGO .
9

12. DIVERT , . RVRT


DIVERET. divert PRN , .
13LINDO (COMMANDS), [!]. : ! This is
a comment.
14LINDO
8
15
LINDO LP . ,
. , 100,000 .0001.
LINDO , .
16
, .
:
1.
2.
3.
, ,
; .
?
, . LINDO .
PICTURE , .
:
MIN 5 A0 +6 A1 +2 A2 +4 B0 +3 B1 +7 B2 +2 C0 +9 C1 +8 C2
SUBJECT TO
2) A0 +A1 +A2<=8
3) B0 +B1 +B2<=9
4) A0 +A1 +A2<=6
5) A0 +B0 +CO =6
6) A1 +B1 +C1 =5
7) A2 +B2 +C2 =9
END
PICTURE
AAABBBCCCC
012012012O
1: 5 6 2 4 3 7 2 9 8 MIN
10

2: 1 1 1
<8
3:
111
<9
4:
1 1 1 <6
5: 1
1
1 =6
6:
1
1
1
=5
7:
1
1
1 =9
, 1 . 5) C0
CO .
, 1 .
. (dimensional
analysis). , .
2.5 LINDO
LINDO LINDO :
HELP CATEGORIES ( CAT) COMMANDS ( COM)
:
HELP: HELP , . HELP,
.
CAT: ,
.
COM: , (INPUT), (OUTPUT), .
LINDO (
):
1. Information
HELP Gives help in various situations
COM
Lists commands by category
LOCAL Give info specific to your local installation
CAT
Lists categories of commands
2. Input
MAX
MIN
RETR
RMPS
TAKE
LEAVE

Start natural input


Start natural input
Retrieve old problem from file
Retrieve an MPS format file
Take terminal input from a file
Undo the previous TAKE
11

3. Display
LOOK
Print (part of )problem in natural format
SOLUTION Print standard solution report
RANGE Print RANGE analysis report
PICTURE Print logical PICTURE of matrix
SHOCOLUMN Display a column of the problem
TABLEAU Print current tableau
NONZEROES Print nonzero variables solution report
BPICTURE Print logical PICTURE of basis
4. File output
SAVE Save current problem to file
DIVERT Divert output to file
RVRT Revert output to terminal
SMPS
Save current problem in MPS format
5. Solution
GO
Go to solve the problem
PIVOT Do the next simplex pivot
6. Problem editing
ALTER Alter some element of current problem
EXT
Extend problem by adding constraints
DEL
Delete a specified constraint
SUB
Enter a simple upper bound for a var.
APPC Append a new column in the formulation
7. Integer programs
INT
Identify integer variables
8. Conversational Parameters
WIDTH Set terminal width
TERSE Set conversational style to terse
VERBOSE Set conversational style to verbose (default)
BATCH Tell LINDO that this is a batch run
9. User supplied subroutines
USER
Call user written subroutine
10. Miscellaneous
12

INVERT Invert current basis to get more accurate answers


STAT Print matrix summary statistics
BUG
What to do if you find a bug
11. Quit
QUIT Quit

******************************************************************************

LINDO
******************************************************************************
LINDO , .
:
MAX 2X + 3Y
ST
4X + 5Y < 9
7X + 6Y < 13
END
GO
LINDO , ":", . LINDO
.
, "COMMANDS" LINDO .
, "HELP name" , "name". , "HELP
MAX" LP , .
, "END", ":".
,.
:

--------------------------------------------------------------------------
4000

201
13

()

101
200
8

******************************************************************************
LINDO . , "HELP " + " ".
1)
HELP COM

LOCAL CAT

2)
MAX MIN

RETR RMPS TAKE LEAV RDBC

3)
PIC TABL LOOK

NONZ

TIME

SHOC

4)
SAVE DIVE RVRT SMPS SDBC

FBR

SOLU RANGE BPIC CPRI RPRI

FBS

5)
GO
PIV
6)
ALT EXT

DEL

SUB

APPC SLB

FREE

EDIT

GIN

IPTOL

7)
QUIT
8), ,
INT QCP PARA POSD TITAN BIP
9)
WIDTH TERS VERB BAT

PAGE

PAUS

10)
USER
11)
INV STAT BUG

DEB

SET

TITL

14

******************************************************************************

LINDO ():
1)INFORMATION
HELP COM

LOCAL CAT

TIME

HELP :
"HELP" LINDO . "HELP command", LINDO
, "command".

COMMAND :
LINDO .

LOCAL :
.

CATEGORY :
LINDO ,.

TIME :
LINDO CPU .

-------------------------------------------------------------------------------------------------------------------------------

2)INPUT
MAX

MIN

RETR RMPS TAKE LEAV RDBC

MAX/MIN :
, LP .
15

FBR

: "MAX" ( "MIN" ), ;
"SUBJECT TO"( "ST"), . , "END" .
"GO" .
, 18 , .
, : .258E+29 . 6.5 DIGITS.
("MAX","ST","END"...) .
, . .
:
1) MIN 2X+3Y SUBJECT TO -5X-2Z<=10
+10X - Y >5 END
2) MIN 2X + 3 Y
ST -5X-2Z
< 10
10X -Y>+5
END
, , ::
DEMAND) 10X - Y > 5

RETRIEVE :
. LINDO
UNIT NUMBER. RETRIEVE "SAVE" .

RMPS :
MPS , . MPS IBM MPSX

TAKE :
LINDO ., :
. "LEAVE".
16

LEAVE :
"TAKE" . TAKE
LEAVE.

RDBC :
. "SDBC" .

FBR :
FBS (). ()
.
-------------------------------------------------------------------------------------------------------------------------------

3)DISPLAY
PIC TABL LOOK
CPRI RPRI

NONZ

SHOC

SOLU RANGE BPIC

PICTURE :
LP . DEBUG .
:
Z
Y
X
W
V
U
T
A
B
C
D
E

.000000 -.000001 -.000010 -.000100 -.001000 -.010000 -100000 -1.000001 -10.000001 -100.000001 -1000.000001 -10000.000001 --

.000001
.000009
.000099
.000999
.009999
.099999
.999999
10.000000
100.000000
1000.000000
10000.000000
100000.000000
17

F
G

100000.000001 -1000000.000000
> 1000000

TABLEAU :
.

LOOK :
"LOOK". "LOOK ALL".
"LOOK row1,row2" row1 row2.
5 , 9 . *****.

NONZEROES :
, . : "NONZ"
, "GO" , "NONZ""TERSE"
.

SHOCOLUMN :
"SHOC variable-name" variable-name .

SOLUTION :
. , "DIVERT" . ,
"NONZ", "CPRI""RPRI" .

RANGE :
RHS() OBJ().

BPICTURE :
18

/() .
-------------------------------------------------------------------------------------------------------------------------------

4) OUTPUT
SAVE DIVE

RVRT SMPS SDBC

FBS

CPRI/RPRI :
( CPRI) ( RPRI) . CPRI :
CPRI print-list : conditional-expression
,
CPRI N P : N = "M%%X" .AND. D > 0
(PRIMAL VALUE), : =
M, =X, (DUAL ACTIVITY).
"print-list" , . print-list conditionalexpression /:
N = NAME()
P = PRIMAL VALUE ()
D = DUAL VALUE ( REDUCED COST )
R = RIM ( OBJ(), ; RHS() )
U = SIMPLE UPPER BOUND(), L = SIMPLE LOWER BOUND()
T = ("C", "I", or "F"; "<", "=", OR ">")
Z = .
% =(N)
:


+-/*^
.AND.
><=#
()
LOG( ) EXP( )
.OR.
ABS( )
.NOT.

SAVE :
LINDO . "RETR"
.

DIVERT :
19

, ( ), ,
RVRT (REVERT) .

RVRT :
. "DIVERT" .

SMPS :
MPS . IBM MPSX .

SDBC :
DATABASE . , , REDUCED COST, SUB SLB
(A8,2G15.8,A1,2G15.8) .

FBS :
(). , FBR .
-------------------------------------------------------------------------------------------------------------------------------

5)SOLUTION
GO

PIV

GO :
. . GO ,
(PIVOT).

PIVOT :
(PIVOT STEP). "PIVOT"+,
, .

20

-------------------------------------------------------------------------------------------------------------------------------

6)PROBLEM EDITING
ALT

EXT

DEL

SUB

APPC SLB

FREE

EDIT

ALTER :
"ALTER". : "ALTER row-id var-id". "row-id"
,"var-id". , LINDO
. RHS(), DIRECTION() ,"var-id"
"RHS", "DIR", "NAME".
:
- , DIRECTIONS "MAX"
"MIN"; "<", "=", "<".
- "DELETE", "ALTER".

EXTEND :
. , "MAX", "MIN"
"SUBJECT TO". . "END".

DELETE :
"DELETE row-id" "row-id" . "DELETE row1
row2" row1 row2. "DELETE ALL" .

SUB :
"SUB var-id bound" , "var-id",
"bound". , SUB X < 10
.
APPEND COLUMN :
"APPC var-id" "var-id".
/. /; . A0
. "RHS", RHS().
21

SLB :
"SLB var-id bound" , "var-id",
"bound". , SUB X > 10
.
FREE :
: FREE X X , .

EDIT :
LINDO . . :
<Home>

<End>

<PgUp>/<PgDn>
Cntrl-S

Cntrl-E

Cntrl-right arrow

Cntrl-left arrow
EDIT 30998 . ALTER, DEL
EXTEND .
-------------------------------------------------------------------------------------------------------------------------------

7)QUIT
QUIT
QUIT :
"QUIT" LINDO. !
-----------------------------------------------------------------------------------------------------------------------------

8)INTEGER, QUADRATIC, AND PARAMETRIC PROGRAMS


INT

QCP

PARA POSD TITAN BIP

GIN
22

IPTOL

INTEGER :
INTEGER 0/1 . "INTEGER n" , n
. LINDO .
"INTEGER var-id" , "var-id".
GO , .

QCP :
"QCP" . :
MIN 3X*X + Y*Y - X*Y + .4Y
ST
1.2X + .9Y > 1.1
X + Y= 1
Y <.7
().
. QCP, ().
, RT, ONE UL. :

MIN X+Y+RT+ONE+UL
ST
6X - Y - 1.2RT + ONE > 0.
- X + 2Y - .9RT + ONE + UL > -.4
1.2X + .9Y > 1.1
X +Y= 1
Y < .7
END
QCP
ROW NO. OF FIRST REAL CONSTRAINT():
4
GO

PARA :

23

"PARA row-id new-rhs" "row-id" RHS() . "PARA"


RHS()"new-rhs", ()
.
, .

POSD :
"QCP" .

TITAN :
LP/IP (). , , :
2X + Y < 12
-X + 2Y < 3
SUBS :
SUB X 6
SUB Y 4.5
, . :
30W - 3X + 2Y > 3
, W 0/1 , :
21W - 3X + 2Y > 3.

BIP :
"BIP bound-val" "bound-val" IP . LINDO
B&B (). , "BIP ".

GIN :
GIN 0/1 . "GIN n" , n
24

. LINDO . "GIN var-id" ,


"var-id".
GO , IP .

IPTOL :
: IPTOL F, F . IP ,
F .
-------------------------------------------------------------------------------------------------------------------------------

9)CONVERSATIONAL PARAMETERS
WIDTH TERS VERB BAT

PAGE

PAUS

WIDTH :
"WIDTH n" LINDO n . :, "WIDTH 132"
LINE PRINTER WIDTH PAPER.

TERSE :
TERSE(), , LP .
"NONZ", "CPRI", "RPRI" . "VERBOSE" "TERSE".

VERBOSE :
"VERBOSE"() .

BATCH :
BATCH(). ,,
.

PAGE :
25

. , PAGE 24 24 . CR
. PAGE 0 , HARDCOPY TERMINALS .

PAUSE :
TAKE , . PAUSE (
).
------------------------------------------------------------------------------------------------------------------

10)USER SUPPLIED ROUTINES


USER
USER :
USER(IN) , IN UNIT. LINDO
:
1) ,
2) ,
3) ,
4) .
USERS MANUAL.

---------------------------------------------------------------------------------------------------------------

11)MISCELLANEOUS
INV

STAT BUG

DEB

SET

TITL

INVERT :
INVERTS()(). .

STATS :
, , .
BUG :

26

DEBUG :
, DEBUG
, .
SET :
LINDO . :
SET PARAM-ID NEW-VALUE.
:
PARAM-ID
PURPOSE
1

3
REDUCED COST
4
IP
5
PIVOT SIZE
TITLE :
TITLE 'TEXT'
'TEXT' .
TITLE
.

2.6 LINDO
LINDO, LINDO --command. , .
, LINDO , , ,
. , , ,
, .
:
: TAKE(LEAV), DIVE, RVRT, BAT, PAUS;
: FREE, SUB/SLB, GIN, TITAN
LINDO , . :
TK1.HLP
BAT
! WE WILL DIVERT OUTPUT TO FILE "RESULT"
DIVE RESULT
! WE WILL RETRIEVE AN OLD PROBLEM PREVIOUSLY SAVED IN FILE "DIET"
RETR DIET
27

! WE WILL SEE THE MODEL


LOOK ALL
! SOVLE THE MODEL
GO
! DO WE NEED SENSITIVE ANALYSIS (y/n)?
N
! GIVE SOLUTION ?
SOLU
! WE WILL GIVE AN MESSAGE TO THE TERMINAL TO SHOW THE END OF THE
SOLUTION
PAUS END OF THE SOLUTION, TYPE THE ENTER KEY, PLEASE!
! CLOSE FILE "RESULT", RETURN TO TERMINAL
RVRT
! RETURN TO PREVIOUS CONVERSATIONAL STYLE
BAT
! LEAVE
LEAV
TAKE TK1.HLP, DIET ,
RESULT .
: BAT , ?
?
, . FREE X 0 X
. : FREE X, SLB X 0
. LINDO
31 IP
LINDO (IP).
. IP LP , END .
0/1 INTEGER INT:
INTEGER vname
INTEGER n
vname 0/1 , n 0/1 .
, .
:

28

: max 4tom +3dick +2harry


?st
?2.5tom +3.1harrry < 5
?.2tom +.7dick +.4harry < 1
?end
:int tom
:int dick
:int harry
:go
LP OPTIMUM FOUND AT STEP 4
OBJECTIVE VALUE = 7.65898600
ENUMERATION COMPLETE. BRANCHES=

0 PIVOTS=

LAST INTEGER SOLUTION IS THE BEST FOUND


RE-INSTALLING BEST SOLUTION...

solu:
OBJECTIVE FUNCTION VALUE
1)

7.0000000

VARIABLE
VALUE
TOM
1.000000
DICK
1.000000
HARRY
.000000

REDUCED COST
-4.000000
-3.000000
-2.000000

ROW SLACK OR SURPLUS DUAL PRICES


2)
2.500000
.000000
3)
.100000
.000000
NO. ITERATIONS=
4
BRANCHES= 0 DETERM.= 1.000E

. , ,
, . ,
.
, , , SOLUTION RANGE
.
: 0/1 , LINDO INT GIN,
29

, INT .
LINDO , . ,
,
. LINDO , .
32 (Quadratic Programming)
QPC . "QCP" . :
Min

z 3x 2 y 2 xy 0.4 y

s. t .
12
. x 0.9 y 11
.
x y 1
y 0.7

()
QCP (
), RT, ONE UL .
:

MIN X+Y+RT+ONE+UL
ST
6X - Y - 1.2RT + ONE > 0.
- X + 2Y - .9RT + ONE + UL > -.4
1.2X + .9Y > 1.1
X +Y= 1
Y < .7
END

QCP
ROW NO. OF FIRST REAL CONSTRAINT(LINDO ):
4 4 1.2X + .9Y > 1.1
GO

QP OPTIMUM FOUND AT STEP

OBJECTIVE FUNCTION VALUE


30

1)

1.3555560

VARIABLE
VALUE
REDUCED COST
X
.666667
.000000
Y
.333333
.000000
RT
10.888890
.000000
ONE
9.399998
.000000
UL
.000000
.366667

ROW SLACK OR SURPLUS DUAL PRICES


2)
.000000
-.666667
3)
.000000
-.333333
4)
.000000
-10.888890
5)
.000000
9.399998
6)
.366667
.000000
NO. ITERATIONS=

lingo

31

You might also like