XpressMemoForDash.dvi

Similar documents
(B2) 序章 FICO Xpressの基礎

第 5 章 Xpress の基礎 本書の全ての問題は Xpress-Mosel( 短縮して Mosel) 言語で記述されています 問題を解く場合 ユーザは Mosel コマンド文か Xpress-IVE を選択できます 本書の最適化問題を解く場合 線形問題や混合整数計画問題を Mosel 言語で記述

Pascal Pascal Free Pascal CPad for Pascal Microsoft Windows OS Pascal

1. A0 A B A0 A : A1,...,A5 B : B1,...,B

f(x) x S (optimal solution) f(x ) (optimal value) f(x) (1) 3 GLPK glpsol -m -d -m glpsol -h -m -d -o -y --simplex ( ) --interior --min --max --check -


Mosel

xl 1 program Othello6; 2 {$APPTYPE CONSOLE} 3 uses SysUtils; 4 5 type 6 TMasuNo = 0..99; // 7 TYouso = (Soto,Kara,Kuro,Siro); // 8 TBan = array [TMasu

橡ソート手順比較

1. A0 A B A0 A : A1,...,A5 B : B1,...,B

Excel ではじめる数値解析 サンプルページ この本の定価 判型などは, 以下の URL からご覧いただけます. このサンプルページの内容は, 初版 1 刷発行時のものです.

橡挿入法の実践

コンピュータ概論

...v..&.{..&....

L N P Y F C T V W Z I X Pentomino Form Name Caption Position FormMain podesktopcenter

D0050.PDF

My関数の作成演習問題集

応用数学特論.dvi


untitled

K227 Java 2

1. 入力画面

2005 D Pascal CASL ( ) Pascal C 3. A A Pascal TA TA TA

double float

第10回 コーディングと統合(WWW用).PDF

min. z = 602.5x x 2 + 2

2009 D Pascal CASL II ( ) Pascal C 3. A A Pascal TA TA

2011 D Pascal CASL II ( ) Pascal C 3. A A Pascal TA TA enshu-

数理計画法入門 サンプルページ この本の定価 判型などは, 以下の URL からご覧いただけます. このサンプルページの内容は, 初版 1 刷発行時のものです.

B Simon (Trump ) SimonU.pas SimonP.dpr Name FormSimon Caption Position podesktopcenter uses Windows, Messages, SysUtils,

PowerPoint プレゼンテーション

Microarray Data Analysis Tool Ver3.0 Manual.doc

94 expression True False expression FalseMSDN IsNumber WorksheetFunctionIsNumberexpression expression True Office support.office.com/ja-jp/ S

Copyright c 2008 Zhenjiang Hu, All Right Reserved.

2 X Y Y X θ 1,θ 2,... Y = f (X,θ 1,θ 2,...) θ k III 8 ( ) 1 / 39

(Basic Theory of Information Processing) Fortran Fortan Fortan Fortan 1

all.dvi

Excel Excel Excel = Excel ( ) 1

VDM-SL VDM VDM-SL Toolbox VDM++ Toolbox 1 VDM-SL VDM++ Web bool

scicos.dvi

AtCoder Regular Contest 073 Editorial Kohei Morita(yosupo) A: Shiritori if python3 a, b, c = input().split() if a[len(a)-1] == b[0] and b[len(

y = x 4 y = x 8 3 y = x 4 y = x 3. 4 f(x) = x y = f(x) 4 x =,, 3, 4, 5 5 f(x) f() = f() = 3 f(3) = 3 4 f(4) = 4 *3 S S = f() + f() + f(3) + f(4) () *4

新版明解C言語 実践編

Excel Excel Excel = Excel III 7 ( ) 1

syspro-0405.ppt

R による統計解析入門

記号と準備

2X Y Y X θ 1, θ 2,... Y = f(x, θ 1, θ 2,...) θ k III 8 ( ) 1 / 39

OpenMP¤òÍѤ¤¤¿ÊÂÎó·×»»¡Ê£±¡Ë


OpenMP¤òÍѤ¤¤¿ÊÂÎó·×»»¡Ê£±¡Ë

listings-ext

untitled

joho09.ppt

8 if switch for while do while 2

Excel97関数編

Windows Cygwin Mac *1 Emacs Ruby ( ) 1 Cygwin Bash Cygwin Windows Cygwin Cygwin Mac 1 Mac 1.2 *2 ls *3 *1 OS Linux *2 *3 Enter ( ) 2

D0120.PDF

JavaScript 1.! DOM Ajax Shelley Powers,, JavaScript David Flanagan, JavaScript 2

Mosel: An Overview Y. Colombani and S. Heipcke Xpress Team, FICO, Leam House, Leamington Spa CV32 5YN, UK May 2002, last re

untitled

# let rec sigma (f, n) = # if n = 0 then 0 else f n + sigma (f, n-1);; val sigma : (int -> int) * int -> int = <fun> sigma f n ( : * -> * ) sqsum cbsu

untitled

Copyright c 2006 Zhenjiang Hu, All Right Reserved.


‚æ4›ñ

Ver.1 1/17/2003 2


¥×¥í¥°¥é¥ß¥ó¥°±é½¬I Exercise on Programming I [1zh] ` `%%%`#`&12_`__~~~ alse

<303288C991BD946797C797592E696E6464>

80 X 1, X 2,, X n ( λ ) λ P(X = x) = f (x; λ) = λx e λ, x = 0, 1, 2, x! l(λ) = n f (x i ; λ) = i=1 i=1 n λ x i e λ i=1 x i! = λ n i=1 x i e nλ n i=1 x

25 II :30 16:00 (1),. Do not open this problem booklet until the start of the examination is announced. (2) 3.. Answer the following 3 proble

MQTT V3.1 プロトコル仕様

2 1/2 1/4 x 1 x 2 x 1, x 2 9 3x 1 + 2x 2 9 (1.1) 1/3 RDA 1 15 x /4 RDA 1 6 x /6 1 x 1 3 x 2 15 x (1.2) (1.3) (1.4) 1 2 (1.5) x 1

Q&A集

10-C.._241_266_.Z

プラズマ核融合学会誌5月号【81-5】/内外情報_ソフト【注:欧フォント特殊!】

<リスト1> AD コンバータへのデータの出力例 NEC PC98 用 mov al,22h // CLK -> 1, CS -> 0, DI -> 0 out 32h,al // シリアル ポートにデータ出力 PC/AT 互換機用 mov al,00h // CLK -> 1 mov dx,3fb

r08.dvi

VHDL VHDL VHDL i

WordPress Web

Fortran90/95 2. (p 74) f g h x y z f x h x = f x + g x h y = f y + g y h z = f z + g z f x f y f y f h = f + g Fortran 1 3 a b c c(1) = a(1) + b(1) c(

unix15-script2_09.key

B 5 (2) VBA R / B 5 ( ) / 34

if clear = 1 then Q <= " "; elsif we = 1 then Q <= D; end rtl; regs.vhdl clk 0 1 rst clear we Write Enable we 1 we 0 if clk 1 Q if rst =

ii

. (.8.). t + t m ü(t + t) + c u(t + t) + k u(t + t) = f(t + t) () m ü f. () c u k u t + t u Taylor t 3 u(t + t) = u(t) + t! u(t) + ( t)! = u(t) + t u(

,, etc. ( ) [Marti & Stoeckel 04] [Lloyd Smith, Chuang & Munro 90], [Staat & Heitzer 03] worst-case detection [Elishakoff, Haftka & Fang 94] 2 [Cheng

org/ghc/ Windows Linux RPM 3.2 GHCi GHC gcc javac ghc GHCi(ghci) GHCi Prelude> GHCi :load file :l file :also file :a file :reload :r :type expr :t exp

45 VBA Fortran, Pascal, C Windows OS Excel VBA Visual Basic Excel VBA VBA Visual Basic For Application Microsoft Office Office Excel VBA VBA Excel Acc

PowerPoint Presentation

Java updated

Python Speed Learning

javascript key

2 Java 35 Java Java HTML/CSS/JavaScript Java Java JSP MySQL Java 9:00 17:30 12:00 13: 項目 日数 時間 習得目標スキル Java 2 15 Web Java Java J

ohp1.dvi

Solution Report

AC-1 procedure AC-1 (G) begin Q = f(i; j) (i; j) 2 arc(g), i 6= jg repeat begin CHANGE = false for each (i; j) 2 Q do CHANGE = REVISE((i; j)) _ CHANGE

一般化線形 (混合) モデル (2) - ロジスティック回帰と GLMM

Transcription:

Xpress-MP 1 Ver 1.1 2006. 2. 16 (Ver1.0) 2006. 3. 1 (Ver1.1) 1 2006 3 Xpress-MP Xpress-MP 2006

Xpress-MP,. Dash [1]. mosel,, mosel.,,?, shokosv Xpress-MP,., 2. Example. 1 Xpress-MP 2 mosel 3 mosel 4, shakosv Xpress-MP Hyper ( ), Xpress-IVE, 0.1. 0.1: Xpress-MP.,.,,,. i

1 Xpress-MP 1 1.1 (shakosv ) : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 1 1.2 Xpress-IVE : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 4 2 Xpress-MP,! 6 2.1 (LP) (LPSimple.mos) : : : : : : : : : : : : : : : : : : 6 2.2 (IP) (IPwithData.mos) : : : : : : : : : : : : : : : : 8 2.3 (QP) (QPwithData.mos) : : : : : : : : : : : : : : : 11 2.4 0-1 (Knapsack.mos) : : : : : : : : : : : : : : : : : 14 2.5 (DEA) (DEA.mos) : : : : : : : : : : : : : : : : : : : : : : 17 3 mosel 22 3.1 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 22 3.2 model uses : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 22 3.3! writeln() : : : : : : : : : : : : : : : : : : : : : : : : : : : : 23 3.4 (declarations end-declarations) : : : : : : : : : : : : : : : : : : : 23 3.4.1 (real, integer, mpvar ) : : : : : : : : : : : : : : : : : : : : : : 23 3.4.2 (=) : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 24 3.4.3 (set of, range) : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 24 3.4.4 (array of) : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 24 3.5 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 25 3.5.1 (+, -, *, / ) : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 25 3.5.2 (:= ) : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 26 3.6 (parameters end-parameters) : : : : : : : : : : : : : : : : : : 27 3.7 (>=, <>, and, or ) : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 29 3.8 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 29 3.8.1 (if, case ) : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 29 3.8.2 (forall, while, repeat ) : : : : : : : : : : : : : : : : : : : : : : 30 3.9 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 31 3.9.1 (is free) : : : : : : : : : : : : : : : : : : : : : : : : : : 31 3.9.2 0-1 (is integer, is binary) : : : : : : : : : : : : : : : : : : : 32 3.10 (initializations from end-initializations) : : : : : : : : : : : : : : : : : : : : 32 3.11 (function, procedure) : : : : : : : : : : : : : : : : : : : : : : : : : : 33 3.12 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 33 3.12.1 (sum, prod, round, abs ) : : : : : : : : : : : : : : : : : : : 33 3.12.2 (minimize, maximize) : : : : : : : : : : : : : : : : : : : : : : : : : : : 34 3.12.3 (random) : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 34 ii

4!? 35 4.1 (fopen ) : : : : : : : : : : : : : : : : : : : : : : 35 4.2 (gettime) : : : : : : : : : : : : : : : : : : : : : : : 35 4.3 (getprobstat) : : : : : : : : : : : : : : : : : 35 4.4 (,, ) : : : : : : : : : : : 36 4.5 (minimize, maximize) (setcallback) : : : : : : : : 37 4.6 (sethidden) : : : : : : : : : : : : : : : : : : : : : : : : 37 4.7 (create) : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 37 38 38 iii

1 Xpress-MP Xpress-MP, (a) shakosv Xpress-MP. 2 (b) (c) Xpress-IVE. C Xpress-MP., (a), (b). 1.1 (shakosv ) shakosv Xpress-MP., shakosv Xpress-MP, (QP).,.. 1: mosel ( 1.1).,, ``mos''., ``Ex01.mos''. Ex01.mos model Ex01 uses "mmxprs" declarations a: mpvar b: mpvar end-declarations 3*a + 2*b <= 400 a + 3*b <= 200 profit := a + 2*b maximize(profit) 2: writeln("profit is ", getobjval) writeln(" a = ", getsol(a), "; b = ", getsol(b)) end-model. 3: ( 1.2). shakosv> mp-model > exec Ex01 > quit 2 18 Windows Xpress-MP, (b) 1

1.1: 1.2: Xpress 2

1.1: Xpress-MP mp-model exec (.mos) quit help compile (.mos) load (.mos) cload (.mos) run (.mos) list exportprob -m (.mat) Xpress-MP. mp-mosel. shokosv mp-.,. Xpress-MP.....,.. run,.,. MPS.. 3

1.2 Xpress-IVE Xpress-IVE. 1: Xpress-IVE ( 1.3). 2: mosel ( 1.4).,, ``mos''. 3: ( 1.4). 1.3: Xpress-IVE 4

1.4: 5

2 Xpress-MP,!,, mosel,., (LP) (IP). 3 (22 ), (LP), (IP). 2.1 (LP) (LPSimple.mos) : (LP) min s.t. cx Ax = b x = 0;., A b, c, A = 2 6 4 3 1 1 2 2 0 27 5 ; b = 2 1 3 2 3 6 4 4 57 5 h3 ; c = 2 4 ; 7 i. (LP) ``LPSimple.mos''. 6

LPSimple.mos 1 model LPSimple 2 uses "mmxprs" 3 4 writeln(" (LP):") 5 writeln(" min c x") 6 writeln(" s.t Ax >= b, x >= 0") 7 writeln(" ") 8 9!!! A, b, c, x 10 declarations 11 I = 1..3! I 12 J = 1..3! J 13 14 A: array(i, J) of real! A 15 b: array(i) of real! b 16 c: array(j) of real! c 17 18 x: array(j) of mpvar! x 19 end-declarations 20 21!!! 22 writeln(">.") 23 A := [1, 1, 2, 24 2, 0, 2, 25 2, 1, 3] 26 b := [4, 5, 7] 27 c := [3, 2, 4] 28 writeln(" A = ", A, " n b = ", b, " n c = ", c) 29 30!!! Ax >= b, x >= 0 31 writeln(">.") 32 forall (i in I) do 33 sum(j in J) A(i,j)*x(j) >= b(i) 34 end-do 35 36!!! ObjFunc := cx 37 writeln(">.") 38 ObjFunc := sum(j in J) c(j)*x(j) 39 40!!! 41 writeln("> ") 42 minimize(objfunc) 43 44!!! 45 writeln(" = ", getobjval) 46 forall (j in J) writeln(" x(", j, ") = ", getsol(x(j))) 47 end-model 7

. LPsimple.mos (LP): min c x s.t Ax >= b, x >= 0 >. A = [1,1,2,2,0,2,2,1,3] b = [4,5,7] c = [3,2,4] >. >. > = 9.5 x(1) = 0.5 x(2) = 0 x(3) = 2 (LPSimple.mos) 1 47 model.. 2 mmxprs. 4, wirte writeln. 9!,. 10 19. mpvar. 23 27 A b, c. 32 34. Ax = b, 33 sum(j in J) A(i,j)*x(j) = b(i). ( ). 38. 42 minimize( ) maximize( ). 45 getobjval. 46. getsol. 2.2 (IP) (IPwithData.mos), A; b; c, (IP) : (IP) min s.t. cx Ax = b x = 0 x ; 8

., LPSimple.mos forall (j in J) x(j) is integer,,. ffl A; b; c. ffl parameters. ffl procedure., ``Abc.dat''. Abc.dat!!! A, b, c A: [ 1 1 2 2 0 2 2 1 3 ] b: [ ] 4 5 7 c: [ 3 2 4 ], ``IPwithData.mos''. 9

IPwithData.mos 1 model IPwithData 2 uses "mmxprs" 3 4!!! 5 parameters 6 FName = "Abc.dat" 7 end-parameters 8 9 writeln(" (IP):") 10 writeln(" min c x") 11 writeln(" s.t Ax >= b, x >= 0, x is integer") 12 writeln(" ") 13 14!!! A, b, c, x 15 declarations 16 I = 1..3! I 17 J = 1..3! J 18 A: array(i, J) of real! A 19 b: array(i) of real! b 20 c: array(j) of real! c 21 22 x: array(j) of mpvar! 23 end-declarations 24 initializations from FName 25 A b c 26 end-initializations 27 writeln(" A = ", A, " n b = ", b, " n c = ", c) 28 29!!! 30 procedure PrintSol 31 writeln(" = ", getobjval) 32 forall (j in J) writeln(" x(", j, ") = ", getsol(x(j))) 33 end-procedure 34 35!!! Ax >= b, x >= 0 36 writeln(">.") 37 forall (i in I) do 38 sum(j in J) A(i,j)*x(j) >= b(i) 39 end-do 40 forall (j in J) x(j) is_integer 41 42!!! ObjFunc := cx 43 writeln(">.") 44 ObjFunc := sum(j in J) c(j)*x(j) 45 46!!! 47 writeln("> ") 48 minimize(objfunc) 49 50!!! ( ) 51 PrintSol 52 end-model 10

. IPwithData.mos (IP): min c x s.t Ax >= b, x >= 0, x is integer A = [1,1,2,2,0,2,2,1,3] b = [4,5,7] c = [3,2,4] >. >. > = 10 x(1) = 2 x(2) = 0 x(3) = 1 (IPwithData.mos) LPSimple.mos. 5 7 parameters. FName. 24 26 A b, c. FName. 30 33 PrintSol. 40. 51 PrintSol. 2.3 (QP) (QPwithData.mos) : (QP) min s.t. 1 2 x > Qx + cx Ax = b x = 0;., A; b; c, Q Q = 2 6 4 3 1 0 0 2 1 1 0 2 3 7 5., ``ABcQ.dat''. 11

AbcQ.dat!!! A, b, c, Q A: [ ] 1 1 2 2 0 2 2 1 3 b: [ ] 4 5 7 c: [ ] 3 2 4 Q: [ 3 1 0 0 2 1 1 0 2 ], ``QPwithData.mos''. 12

QPwithData.mos 1 model QPwithData 2 uses "mmxprs", "mmquad" 3 4 parameters 5 FName = "AbcQ.dat" 6 end-parameters 7 8 writeln(" 2 (QP):") 9 writeln(" min 1/2 x^t Q x + cx") 10 writeln(" s.t Ax >= b, x >= 0") 11 writeln(" ") 12 13!!! A, b, c, Q, x 14 declarations 15 I = 1..3! I 16 J = 1..3! J 17 A: array(i, J) of real! A 18 b: array(i) of real! b 19 c: array(j) of real! c 20 Q: array(j,j) of real! Q 21 22 x: array(j) of mpvar! x 23 end-declarations 24 initializations from FName 25 A b c Q 26 end-initializations 27 writeln(" A = ", A, " n b = ", b, " n c = ", c, " n Q = ", Q) 28 29!!! Ax >= b, x >= 0 30 writeln(">.") 31 forall (i in I) do 32 sum(j in J) A(i,j)*x(j) >= b(i) 33 end-do 34 35!!! 1/2 (x^t) Qx + cx 36 writeln(">.") 37 ObjFunc := 1/2*sum(j1 in J, j2 in J) x(j1)*q(j1,j2)*x(j2) + sum(j in J) c(j)*x(j) 38 39!!! 40 writeln("> ") 41 minimize(objfunc) 42 43!!! 44 writeln(" = ", getobjval) 45 forall (j in J) writeln(" x(", j, ") = ", getsol(x(j))) 46 end-model 13

. QPwithData.mos 2 (QP): min 1/2 x^t Q x + cx s.t Ax >= b, x >= 0 A = [1,1,2,2,0,2,2,1,3] b = [4,5,7] c = [3,2,4] Q = [3,1,0,0,2,1,1,0,2] >. >. > = 14.375 x(1) = 0.500587 x(2) = 3.59439e-008 x(3) = 1.99961 (QPwithData.mos) 2 mmquad. 37 2. 2.4 0-1 (Knapsack.mos),,.,.,.,. ( ),.., (Capacity) 100,. 2.1: 20 30 50 10 25 40 70 10 15 30 5 15 25 40, Item, i W eight(i), Value(i). x(i), (i 2 Item) x(i) = 8 < : 1 ( i ) 0 ( );, 14

., (KP). max (KP) s.t. X X i2item Value(i) x(i) W eight(i) x(i) 5 Capacity i2item x(i) 2f0; 1g (8i 2 Item): (KP) Xpress-MP, ``Knapsack.dat''. Knapsack.dat!!! Item, Weight, Value Item: [ " " " " " " " " " " " " " " ] Weight: [ 20 30 50 10 25 40 70 ] Value: [ 10 15 30 5 15 25 40 ] (KP) ``Knapsack.mos''. 15

Knapsack.mos 1 model Knapsack 2 uses "mmxprs" 3 4 parameters 5 FName = "Knapsack.dat"! 6 Capacity = 100! 7 end-parameters 8 9 writeln("0-1 ") 10 11!!! Capacity, Weight, Value, x 12 declarations 13 Item: set of string! Item 14 Value: array(item) of integer! Value 15 Weight: array(item) of integer! Weight 16 17 x: array(item) of mpvar! x 18 end-declarations 19 initializations from FName 20 Item Weight Value 21 end-initializations 22 23 writeln("----------------------") 24 writeln(" ") 25 writeln("======================") 26 forall (i in Item) do 27 writeln(strfmt(i,8), strfmt(weight(i),5), strfmt(value(i),5)) 28 end-do 29 writeln(" ", Capacity) 30 writeln("----------------------") 31 32!!! 33 forall (i in Item) create(x(i)) 34 35!!! Weight * x <= Capacity, x is binary 36 writeln(">.") 37 sum(i in Item) Weight(i)*x(i) <= Capacity 38 forall (i in Item) x(i) is_binary 39 40!!! ObjFunc := Value * x 41 writeln(">.") 42 ObjFunc := sum(i in Item) Value(i)*x(i) 43 44!!! 45 writeln("> ") 46 maximize(objfunc) 47 48!!! 49 writeln(" : ", getobjval) 50 write(" : ") 51 forall (i in Item round(getsol(x(i))) = 1) write(i, " ") 52 end-model 16

. Knapsack.mos 0-1 ---------------------- ====================== 20 10 30 15 50 30 10 5 25 15 40 25 70 40 100 ---------------------- >. >. > : 60 : (Knapsack.mos) 12 18 Item set of string., Item, Item. 27 strfmt(" ", ),. 33 Item,. 38 0-1. 51 x(i) 1. 2.5 (DEA) (DEA.mos),. (linctr ) (sethidden ). (Data Envelopment Analysis, DEA ), 1978 Charnes-Cooper., n (Decision Making Unit, DMU ), p, q., k DMU k (k =1;:::;n), k X ik (i =1;:::;p), Y jk (j =1;:::;q). DEA, DMU. DMU,,,., i v i, j 17

u j..,, DMU., DMU k (k =1;:::;n) : max k = (DEA(k)) s.t. qx Y jk u j j=1 px X ik v i i=1 qx Y jd u j j=1, : max k = s.t. (DEA(k)) qx px 5 1 (d =1;:::;n) i=1 u j = 0 (j =1;:::;q) v i = 0 (i =1;:::;p): Y jk u j j=1 px X ik v i = 1 i=1 qx X Y jd u j 5 p j=1 X id v i i=1 (d =1;:::;n) u j = 0 (j =1;:::;q) v i = 0 (i =1;:::;p):. (DEA(k)) k Λ DMU k, k Λ =1, DMU k, k Λ < 1, DMU k.,., 2.2: DMU ( 1) 8189 60469 82689 58093 16299 43064 9041 7252 128085 ( 2) 318 2216 2906 1836 629 1120 383 384 4799 ( ) 16 70 487 577 11 387 308 19 112, k 2f ;:::; g (DEA(k))., ``DEA.dat''. Xpress-MP 18

DEA.dat!!! In: [ ] " " " "!!! Out: [ " " ]!!! DMU: [ " " " " " " " " " " " " " " " " " " ]!!! (, ) X: [ 8189 60469 82689 58093 16299 43064 9041 7252 128085 318 2216 2906 1836 629 1120 383 384 4799 ]!!! (, ) Y: [16 70 487 577 11 387 308 19 112] (DEA(k)) ``DEA.mos''. 19

DEA.mos 1 model DEA 2 uses "mmxprs" 3 4 writeln("-----------------------------------------") 5 writeln(" (DEA) n coded at Feb.5.2006 by T. featuring D.Z ") 6 writeln("=========================================") 7 8!!!! 1 9 declarations 10 In: set of string! 11 Out: set of string! 12 DMU: set of string! (DEA) 13 X: array (In, DMU) of real! 14 Y: array (Out, DMU) of real! 15 v: array (In) of mpvar! 16 u: array (Out) of mpvar! 17 Const: array(dmu) of linctr! 18 end-declarations 19 20!!!! 1 21 initializations from "DEA.dat" 22 In Out DMU X Y 23 end-initializations 24 25!!!. 26 forall (i in In) create(v(i)) 27 forall (j in Out) create(u(j)) 28 29!!! Yu <= Xv, u >= 0, v >= 0 30 forall (d in DMU) do 31 sum (j in Out) Y(j,d)*u(j) <= sum(i in In) X(i,d)*v(i) 32 end-do 33 34!!! 35 forall (k in DMU) do 36!!! 37 Const(k) := sum (i in In) X(i,k)*v(i) = 1 38!!! 39 ObjFunc := sum(j in Out) Y(j,k)*u(j) 40!!! 41 maximize(objfunc) 42!!! 43 writeln(k, " n : ", getobjval) 44 forall (i in In) writeln(" ", i, " = ", getsol(v(i))) 45 forall (j in Out) writeln(" ", j, " = ", getsol(u(j))) 46 writeln("-----------------------------------------") 47!!! 48 sethidden(const(k), true) 49 end-do 50 end-model 20

. DEA.mos ----------------------------------------- (DEA) coded at Feb.5.2006 by T. featuring D.Z ========================================= : 0.0625664 = 0 = 0.00314465 = 0.0039104 ----------------------------------------- : 0.0392804 = 0 = 0.000451264 = 0.000561149 ----------------------------------------- (, ) ----------------------------------------- : 0.0769062 = 0.000137893 = 0 = 0.0040477 ----------------------------------------- : 0.0290212 = 0 = 0.000208377 = 0.000259118 ----------------------------------------- (DEA.mos) 17 linctr Const. 35 39. 37, 38 k. 48 sethidden k. 21

3 mosel, mosel. 3.1,. and, array, as, boolean, break, case, declarations, div, do, mpvar, dynamic, elif, else, end, false, forall, forward, from, function, if, in, include, initialisations, initializations, integer, inter, is binary, is continuous, is free, is partint, is semcont, is semint, is sos1, is sos2, linctr, max, min, mod, model, next, not, of, options, or, parameters, procedure, public, prod, range, real, repeat, set, string, sum, then, to, true, union, until, uses, while. 3.2 model uses model end-model ( ) model.. uses " " ( ). 3.1: mmxprs mmquad mmsystem mmodbc mmive,...,. Excel, SQL.. 22

3.3! writeln()!,, (!!) ( ).! (!,.!) write(),, writeln() ( ) write(" "),, writeln(" "). write(), writeln().,,,., writeln(" A = ", A), A = A., LPSimple.mos, A., write("nn"),, writeln. 3.4 (declarations end-declarations) declarations : 1, 2,... : = end-declarations!,. ( ). 3.4.1 (real, integer, mpvar ) mosel,. integer real string boolean mpvar linctr 3.2: -214783648 214783648-1.7e+308 1.7e+308, true false 23

3.4.2 (=). = ( ). ( ) STR = "My Const String"! MyVal = 5.0! S = f2, 0.1, "a", "e"g! Hanni = 1..4! Hanni =f1, 2, 3, 4g ( ), declarations,, parameters.., STR = "String", STR. 3.4.3 (set of, range) fa, b, cg., 2..7 f2, 3, 4, 5, 6, 7g., 3.4.1,, f1, 2, 3g, f"1", "2", "3"g.,,, set of range. set of ( ).. ( ) S1: set of integer S2: set of string range ( ).. ( ) R1: range 3.4.4 (array of), array. 24

array (,,...) of ( ). dynamic array. ( ) A1: array (1..2, 1..5) of integer A2: array (f1.5, 2.3g, 1..3, f" ", " ", " "g) of real A1 2 5 2,, A1(2,3). A2 2 3 3 3,, A2(1.5, 2, " "). ( 1) 3.4.3, S = f1, 2, 3g, 3.,, T = [1, 2, 3],, T := [1, 2, 3]., declarations T, T: array (1..3) of integer 3, T := [1, 2, 3] ( ). ( 2)., T, T(5) T(" ") 5 " " 1..3. 3.5 3.5.1 (+, -, *, / ) Xpress-MP,. 3.3: A, B A + B A B,,, A - B A B,,, A * B A B,, A / B A B, A ^ B A B, A mod B A B, ( ) f1, 2, 3g+f3, 4g = f1, 2, 3, 4g, f1, 2, 3g-f3, 4g = f1, 2g, f1, 2, 3g*f3, 4g = f3g., " "-" "+" " = " ". 25

3.5.2 (:= ). := ( ).,. ( ) B := 5! STR := "Hello"! V := [1, 2, 3]! Func := 5*x + 3!, ( 1) Xpress-MP,.,,. Const1 := 5*x + 3 = 0! Const2 := x >= 30! ( 2) delcarations,., B B := 2, B., 3.4.4,. ( 3)., declarations B C, B := 2 C := 2.0,.,., B := C. ( 3) (=),. declarations,, parameters :=.,. 3.4: A += B A -= B A := A + B A := A - B 26

3.6 (parameters end-parameters),. parameters = end-parameters ( ).,,. ( ) parameters M = 15! PI = 3.14! FName = "Abc.dat"! end-parameters. IPwithData.mos, > exec IPwithData FName="Abc2.dat",, "Abc2.dat"., ( 3.1, 3.2 ). Xpress-IVE ( 1) declarations,. S = f1, 2, 3g., parameters ( 2) declarations, model, parameters, model, uses., model DEMO uses "mmxprs" writeln(" ")! parameters parameters 1 = end-parameters parameters! paramters 2 2 = end-parameters 27

3.1: 3.2: 28

3.7 (>=, <>, and, or ) Xpress-MP., true false, boolean. 3.5: A < B A > B A >= B A <= B A = B A <> B 1 and 2 1 or 2 A < B true, false A > B true, false A = B true, false A 5 B true, false A = B true, false A 6= B true, false 1 2 true true, false 1 2 true true, false 3.8 Xpress-MP. 3.8.1 (if, case ) if ( ) then elif ( ) then else end-if ( ) if then,. if ( ), if ( ) then end-if 29

case of : : do end-do : do end-do else end-case ( ) case B of 1 : writeln(" 1")! B 1 2..5 : writeln(" 2")! B 2 5 6, 8 : do writeln(" 3") end-do! B 6 8 else writeln(" 4")! end-case 3.8.2 (forall, while, repeat ) Xpress-MP,. forall ( in ),,, forall ( in ) do end-do ( ),. forall ( in j ). while ( ),,, whilie ( ) do end-do ( ),.. repeat until ( ) ( ),.. break [n] ( ) [ n ]. 30

next [n] ( ) [ n ]. ( ) forall,.,. forall (i in 1..9) do if (i = 3) then i := 7! end-if end-do, i := 1 while (i < 10) do if (i = 3) then i := 7 end-if i += 1 end-do while. 3.9,. 3.9.1 (is free),.,, x(1) >= -1000, x(1).., is free ( ), 1. ( ) x(1) 1,. x(1) is free 31

3.9.2 0-1 (is integer, is binary),. is integer ( ). is binary ( ) 0-1. 3.10 (initializations from end-initializations),. initializations from " " end-initializations ( ),. ( ) r : 1.5! z : 2! M : [! 1 0 0 0 0 0 1 2 0 0 0 3 ] ( ) M. M : [! ] (1 1) 1! 1 1 1 (2 3) 1 2! 2 3 1, 2 (3 4) 3 (3 ) M. D : [! 2 2 3 3 (1 1 1) 1 2 3! (1,1,1) (1,1,3). ] 1 1 1! (1,2,1) (1,2,3). (2 1 1) 3 3 1! (2,1,1) (2,1,3) 5 2 7! (2,2,1) (2,2,3) 32

3.11 (function, procedure),. Xpress-MP, function procedure. procedure [( :, )] end-procedure ( ). function [( :, )] : returned :=!. end-function ( ).,.,. forward procedure [( :, )] forward function [( :, )] : ( ). 3.12, ( ).., 3.12.1 (sum, prod, round, abs ) sum ( in ) ( ). sum ( in j ). prod ( in ) ( ). prod ( in j ). round ( ) ( ). abs ( ) ( ). 33

3.12.2 (minimize, maximize) minimize( ),, maximize( ) ( ). getobjval. getsol( ) ( ). ( ) x, getsol(x).. forall (j in J) getsol(x(j)) 3.12.3 (random) random ( ) [0, 1). ( ) [1,Num] round(random*num + 0.5) setrandseed ( ) ( ). 34

4!? 4.1 (fopen ),, script typescript, Xpress-IVE,,.,,. fopen(" ", F OUTPUT)!. fclose(f OUTPUT)!. ( ) F OUTPUT. ( ) fopen("log.txt", F OUTPUT) writeln(" = ", getobjval) fclose(f OUTPUT) 4.2 (gettime)., gettime. gettime ( ). ( ) uses "mmxprs", "mmsystem", mmsystem. ( ) StartTime := gettime writeln(" = ", gettime - StartTime, " ") 4.3 (getprobstat) Xpress-MP,,,. getprobstat 35

getprobstat ( ),. getprobstat. 4.1: getprobstat getprobstat 2. 4. 6. 8. 4.4 (,, ) setparam,,. setparam(" ", ) ( ).,. ( ) setparam("xprs NODESELECTION", )!. 4.2. 4.2: 1 Local first,,. 2 Best first. 3 Local depth first,,. 4 Best first,, Best first, then local first "XPRS BREADTHFIRST", Local first.,, setparam("xprs BREADTHFIRST", 10). 5 Pure depth first. ( ) 36

setparam("xprs MAXNODE", 5000)! 5000. setparam("xprs MAXTIME", 100)! 100. setparam("xprs MIPABSSTOP", 0.99)! - <= 0.99. 4.5 (minimize, maximize) (setcallback) (IP) minimize( ), maxmize( ),,,.,.. setcallback setcallback(, " ") ( ),. ( ) setcallback(xprs CB INTSOL, "MyFunc")! MyFunc. ( ), XPRS CB INTSOL, Xpress-Mosel Language Reference Manual. 4.6 (sethidden),.,,., sethidden. sethidden(, 0)!. sethidden(, 1)!. ( ) /. ( ) Const := 3*a + b <= 3 forall (itr in 1..2) do minimize(objfunc)! 1 Const, 2 sethiden(const, 0) end-do 4.7 (create),.., create create( ) ( ). 37

,,,,., Dash Xpress-MP. [1] Dash Optimization Corp. URL: http://www.dashoptimization.com. 38