2002the0043/gamsbunpo.doc  · web viewdnlp...

29
2002.6.12 Ver.1.0 専専専専専専専専専 GAMS 専専専専 1.GAMS 専専専専専専専専専専専専専 GAMS専 専 専 専 、、、。 GAMS専 専専専専 専 専 専専専専 専 、、。(、 .gms” GAMS 専 専専専専専“ 。、( .lst” 専専専専専専専専専 専専専専専 )。、 GAMS modela.gms 専専専専modela.lst 専 GAMS 専 専 、(statements 専専専専専専専専専専専専専 )。(。)、、、、、、()。 専専専専専専専専専専 、(;)。、。(。) GAMS専 専 専 専 専 専 専 専 専 専 専 、()。一。一、()。 専専専専専専専 ()、。、。、GAMS専 専 専 専 専 専 、、、。一、120 専 専専専専専専 GAMS専 専専専専専専 一。一( * 専専専専専専専専専専 )( $ 専専専 )、、。 専専専専専 一、、、、。 専専専専専専専 、、 GAMS OUTPUT 専専専専専 専専専専 専専専専専専専専専 、・。 専専専専専専 専専 $TITLE A TRANSPORTATION MODEL 専専専専専専専専専OUTPUT 専専専専専専専専専 A TRANSPORTATION MODEL 専専専専専専専専専専専専専専専専 専専 、、 $OFFUPPER 専専専専専 、。( 1 専専専 GAMS 専 専専専専 専専専 、、、一 self- contained 専 1

Upload: others

Post on 27-May-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 2002the0043/GAMSBUNPO.doc  · Web viewdnlp 非連続微分非線形計画。「滑らか」でない関数があらわれる非線形計画。 rmip 緩和混合整数計画。非連続変数を含むが非連続制約が緩和されている。整数、0-1変数は上下限内の任意の値を取ることができる。

2002.6.12 Ver.1.0専修大学大学院講義

GAMS文法概要

1.GAMSはプログラミング言語であるGAMSは、プログラミング言語であり、それを使うためには、プログラムをその言語で書かかなければならない。

GAMSのプログラムは、ふつうテキスト・エディタを使って作成され、ファイルに収められる。このプログラムの入ったファイル(インプット・ファイル、拡張子“.gms”)にGAMSを走らせる。すると、アウトプット・ファイル(拡張子“.lst”)に結果が出てくる。たとえば、

GAMS modela.gms

とすると、modela.lstという名前のファイルが返されてくる。GAMSのプログラムは、ひとつないしそれ以上の文(statements)からなる。(下の通り。)文があらわすものは、さまざまであるが、それは、データの構造を定義したり、

初期値を与えたり、データの変更をしたり、シンボル間の関係(つまり方程式)を定義

したりする。

各々の文の末尾には、セミコロン(;)をつける。最後の文には、セミコロンはあって

もなくてもよい。(セミコロンをつねにつけることを習慣にしたほうがよいだろう。)

GAMSのインプットは、自由形式(フリー・フォーマット)である。一行の中のどこに文があってもよい。一行に複数の文があってもよいし、数行(何行でもよい)にまた

がる文があってもよい。

空白とエンドオブライン(リターン)は、シンボルや単語の間に自由に使用すること

ができる。したがって、空白行を挿入してプログラムを読みやすくすることができる。

また、GAMSは、ケース・センシティブでないから、大文字、小文字の区別はない。一

本稿は、専修大学大学院経済学研究科の講義原稿として用意したものである。ダンティーグによる輸送問題(付録 1を見よ)をGAMS言語の説明に使っていることもあり、輸送問題について、あるいは、線形計画問題一般についての self-containedの解説を含んでいる。

1

Page 2: 2002the0043/GAMSBUNPO.doc  · Web viewdnlp 非連続微分非線形計画。「滑らか」でない関数があらわれる非線形計画。 rmip 緩和混合整数計画。非連続変数を含むが非連続制約が緩和されている。整数、0-1変数は上下限内の任意の値を取ることができる。

行は、120桁まで使える。すべての行が GAMS言語の一部分というわけではない。行の一桁目にアステリスク(*)かダラー・シンボル($)があれば、その行は、非言語行である。一桁目にアステリスクがあると、その行は、コメント行であり、加工されず、コメン

ト行として取り扱われる。

一桁目にダラー・シンボルが置かれている場合、その行には、コンパイラ・オプショ

ンが含まれているという意味となる。GAMS OUTPUTにおいては、エコー・プリントされない。

たとえば、付録の輸送問題のインプット・ファイルの冒頭には次の文が見える。

$TITLE A TRANSPORTATION MODEL

このタイトル文では、OUTPUTの各ページの先頭に、A TRANSPORTATION MODELというテキストがプリントされる。

また、次の行には、

$OFFUPPER

とあるが、この$OFFUPPER文は、エコー・プリントが大文字、小文字をともに含むことができるようにするために必要である。

また、ブロック・デリミター($ONTEXT……$OFFTEXT)は、コメント行を作るもうひとつの方法である。段落単位のブロック・コメントを GAMSプログラムに挿入することができる。もちろん、ダラー・シンボルは、一桁目に置く。

2.GAMSの文の分類と構成このような非言語行を例外として GAMSプログラムは、GAMSの文法に則ったGAMS言語で書かれることになる。

GAMSの文は、次の2つのグループのいずれかに分類される。1. 宣言文(declaration statements)・定義文(definition statements)2. 実行文(execution statements)

宣言文は、シンボルの集合を定める。宣言で初期値を与えてしまう場合も多い。その場合、

定義文と呼ばれる。宣言・定義文には、以下のようなものがある。

2

Page 3: 2002the0043/GAMSBUNPO.doc  · Web viewdnlp 非連続微分非線形計画。「滑らか」でない関数があらわれる非線形計画。 rmip 緩和混合整数計画。非連続変数を含むが非連続制約が緩和されている。整数、0-1変数は上下限内の任意の値を取ることができる。

ACRONYM(HERCULESでしか使われない)SETALIASPARAMETERSCALARTABLEVARIABLEEQUATION DECLARATIONEQUATION DEFINITIONMODEL

実行文は、データを変換するとか、モデルを解くとか、レポートを作成するとかという

アクションを実行する。以下のようなものがある。

OPTIONDISPLAYASSINGNMENTLOOPABORTSOLVE

宣言文と定義文との区別であるが、

SET C CROPS;

は、宣言文であり、

SET C /WHEAT, CLOVER, BEANS/;

は、定義文である。前者は、集合の名前(「識別子」)をさしあたって宣言しているだけ

である(Cという名前は集合の名前であることを述べている)が、後者は、宣言と同時に、さらに、集合の要素(=「ラベル」)を指定している。同様に、

PARAMETER YIELD Crop yield;

3

Page 4: 2002the0043/GAMSBUNPO.doc  · Web viewdnlp 非連続微分非線形計画。「滑らか」でない関数があらわれる非線形計画。 rmip 緩和混合整数計画。非連続変数を含むが非連続制約が緩和されている。整数、0-1変数は上下限内の任意の値を取ることができる。

は、宣言文であり、YIELDという名前(識別子)をもったパラメータの存在を宣言している。後でプログラムの中にあらわれるであろう、次のような文は、定義文である。こ

こでは、要素と値の対が初期値として与えられている。

PARAMETER YIELD / WHEAT 1.5 CLOVER 6.5 BEANS 1.5 /;

GAMSプログラムにどのように文を並べるかに関しては、大きな自由度がある。ごく常

識的な制約は、識別子等のシンボルは、それが使われる前にその存在が宣言されていな

ければならない、というものである。さらに細かく注釈すると、方程式中で使われる

SET、PARAMETER 等は、方程式 EQUATIONが定式化(宣言と定義)される前に宣言さ

れなければならない。しかしながら、定義は、その後でもかまわない。ただし、その方

程式が SOLVE文で使われる前には定義されていなければならない。

4.リーガル・キャラクター

 GAMS言語で使用可能なキャラクタ(「リーガル・キャラクタ」)は、以下の通りで

ある。ブレース({…})などが含まれていないことに注意する。

A to Z(アルファベット大文字)

a to z(アルファベット小文字)

0 to 9(数字)

&(アンバーサンド) “(ダブル・クオート) #(シャープ)

*(アステリスク) =(等号) ?(クエスチョン・マーク)

@(アット・マーク) >(不等号、大なり) ;(セミコロン)

\(バック・スラッシュ)1 <(不等号、小なり) ‘(シングル・クオート)

:(コロン) -(マイナス) /(スラッシュ)

,(コンマ) ()(括弧) (スペース)

$(ダラー) %(パーセント) _(アンダースコア)

1 言うまでもないが、わが国のパソコンでは、円記号とバックスラッシュとが区別されない。

4

Page 5: 2002the0043/GAMSBUNPO.doc  · Web viewdnlp 非連続微分非線形計画。「滑らか」でない関数があらわれる非線形計画。 rmip 緩和混合整数計画。非連続変数を含むが非連続制約が緩和されている。整数、0-1変数は上下限内の任意の値を取ることができる。

.(ドット)2 +(プラス)

5.予約語と予約記号

GAMSは、以下の「予約語」Reserved Wordあるいは「キーワード」および予約された

シンボルをもっている。

ABORT EQUATIONS OPTIONS SOLVEACRONYM FREE OR SOS1ACRONYMS GE ORD SOS2ALIAS GT PARAMETER SUMALL INF PARAMETERS SYSTEMAND INTEGER POSITIVE TABLEASSIGN LE PROD USINGBINARY LOOP SCALAR VARIABLECARD LT SCALARS VBARIABLESDISPLAY MAXIMIZING SET XOREPS MINIMIZING SETS YESEQ MODEL SMAXEQUATION MODELS SMIN

予約された非アルファベット・シンボル

=L= =G= =E= =N=

6.識別子・ラベル

 識別子は、集合、パラメータ、変数等の名前である。集合の要素は、ラベルと呼ばれる。

識別子とラベルについて、以下の表に示されるような制約がある。

識別子 引用符なしのラベル 引用符つきのラベル

キャラクタ数 10 10 10 最初のキャラクタ 文字(アルファ

ベット)

文字・数字 任意

文字・数字以外で

使用可能なキャラ

クタ

なし +および- 使用された引用符以外

のすべて

2 「ドット」は、「中黒」でなく、「ピリオド」である。

5

Page 6: 2002the0043/GAMSBUNPO.doc  · Web viewdnlp 非連続微分非線形計画。「滑らか」でない関数があらわれる非線形計画。 rmip 緩和混合整数計画。非連続変数を含むが非連続制約が緩和されている。整数、0-1変数は上下限内の任意の値を取ることができる。

例 ○ A A15× 15

○ 1952-53× MILK&MEAT

"YES"'NO' '12" / FOOT'

          

7.テキスト

 GAMS言語中にドキュメンテーション・テキストを比較的自由に置くことができる。

一行(120桁)におさまる範囲で、80桁まで、引用符(シングル・クオートあるいはダ

ブル・クオート)をつけて、あるいは、引用符をつけずに、テキストを書き込んでおく

ことができる。

 テキストは、予約語と“..”と“=”で始まらず、セミコロン“;”あるいはコンマ“,”あるいはスラッシュ“/”で終わる。

 テキストは、コメント行とは異なり、たとえば、計算結果のドキュメンテーション中

にそのままあらわれ、それを見やすくすることができる。

8.デリミタ(セパレータ)

 GAMS言語のデリミタ(セパレータ)にはいくつかのレベルがある。既に見たとおり、

個々の文を他の文から区切るのは、セミコロン(“;”)である。しかし、次の行が予約語

で始まる場合、セミコロンを使わなくてもよい(relaxed punctuation)。 スラッシュ(“/”)は、集合の要素など、データ・リストをGAMS言語他の部分から切

り離すために使われる。

データ・リスト中の区切りとしては、コンマ(“,”)、行末(end of line)が使われる。もちろん、ブランクは、もっとも基本的なセパレータである。ブランクを 0の意味でつかうことはできない。当然のことであるが、識別子や数の中にブランクを入れること

はできない。

9.GAMSにおける数 GAMSにおいては、整数、実数の区別はないので、小数点なしの数字を書いてもすべ

て実数として格納されることになる。

Eは、通常通り、たとえば、1E-5=1×10-5=0.00001の意味である。GAMS言語では、実数だけでなく、INF(無限大)、-INF(マイナスの無限大)、

UNDF(定義されない)、EPS(ε)、NA(not available)が使われる。ただし、UNDFは、数の入力には使えない。とくにNAは、表中にデータの欠損がある場合のデータ・エ

ントリーに便利である。

10.データ・タイプと定義

6

Page 7: 2002the0043/GAMSBUNPO.doc  · Web viewdnlp 非連続微分非線形計画。「滑らか」でない関数があらわれる非線形計画。 rmip 緩和混合整数計画。非連続変数を含むが非連続制約が緩和されている。整数、0-1変数は上下限内の任意の値を取ることができる。

 GAMSには、次の 6つの基本的なデータ・タイプがある。シンボル(識別子)は、そ

のうちのどれかに属すことが宣言されなければならない。それは、

SETSVARIABLESPARAMETERS(SCALAR、TABLE)EQUATIONSACRONYMSMODELSである。

定義文は、次のような共通の構造をしている。

PARAMETER A (I, J) INPUT-OUTPUT MATRIX

データ・タイプのキーワー

識別子 ドメイン・リス

テキスト

ドメイン・リストとテキストは、常にオプションである。以下、順に説明する。

SET・SETS

S={a, b, c}と書く代わりに、

SET S / a, b, c /

と書く。a, b, cは、集合の要素である。順序は、関係ない。

 末尾のダンティーグの輸送問題では、

SETS I Canning plants / SEATTLE, SAN-DIEGO / J Markets / NEW-YORK, CHICAGO, TOPEKA / ;

と工場、市場の添え字の集合が定義されている。

順序に意味を持たせたいときには、特別な操作をする。すなわち、最初の SET宣言文があらわれる前に、プログラムの第 1桁から始まる、コンピューターへの指示

($ONUELLIST)を行なう。

7

Page 8: 2002the0043/GAMSBUNPO.doc  · Web viewdnlp 非連続微分非線形計画。「滑らか」でない関数があらわれる非線形計画。 rmip 緩和混合整数計画。非連続変数を含むが非連続制約が緩和されている。整数、0-1変数は上下限内の任意の値を取ることができる。

集合の要素は、キャラクター・ストリングとして格納されるので、

SET T / 1991, 1992, 1993, 1994, 1995 /;

のように、書いても数字ではない。なお、この場合、

SET T / 1991 * 1995 /;

のように、アステリスク(“*”)によって系列を表現することができる。このようなとき、

GAMSは、2つのラベルの差(1桁ないし数桁、1 ヶ所に限る)を見てラベル・リストを

作る。もちろん、左の数字が右の数字より小さくなければならないが、たとえば、A1BC * A20BCであれば、20 個のラベルが作られることになる。

 同一の集合に複数の名前を付ける必要がある場合がある。たとえば、SAMにおいて産

業名を行のラベルにも列のラベルにも使いたいことがあるだろう。その場合、使われる

のが ALIASステートメントである。

SET C Commodities / FOOD, CLOTHING/ ;ALIAS (C, CP);

CPは、Cプライムのつもりである。”ALIAS”は、もともと「またの名は」という意味である。ALIASステートメントでは、集合のグループが宣言されている。 SET文にドメインがつくのは、部分集合をあわわす場合である。

SET I All sectors

/ LIGHT-IND, FOOD+AGR, HEAVY-IND, SERVICES /;T(I) Traded sectors

/ LIGHT-IND, FOOD+AGR, HEAVY-IND /;

このようにプログラムを書いておけば、GAMSは、ドメイン・チェッキングをやってく

れる。

 多次元集合を記述することができる。

たとえば、以下のとおりである。

SET C Countries   / JAMAICA

8

Page 9: 2002the0043/GAMSBUNPO.doc  · Web viewdnlp 非連続微分非線形計画。「滑らか」でない関数があらわれる非線形計画。 rmip 緩和混合整数計画。非連続変数を含むが非連続制約が緩和されている。整数、0-1変数は上下限内の任意の値を取ることができる。

  HAITI   GUYANA  BRAZYL /;

SET P Port / KINGSTON S-DOMINGO GEORGETOWN BELEM /;

SET PTOC( P, C) Port to country relationship / KINGSTON .JAMAICA S-DOMINGO .HAITI GEORGETOWN.GUYANA BELEN.BRAZIL /;

ラベルとラベルの間にドット(ブランクは自由)を置いて国・港のペア(tuple)を指定してゆく。ドメイン・リストから、最初のラベル、次のラベルが含まれる集合がわかる

(GAMSは、ドメイン・チェッキングを行なってくれる)。さらに、次のように、括弧

を使うこともできる。

SET CR Crude oils / WESTTEX West Texas MIDCON Mid Continent /;

SET CI Intermediate Products/ NAPHTHA GASOIL DISTILLATE /;

SET CICR(CI, CR) Tagges Intermediate Products/ NAPHTHA. (WESTEX, MIDCONT)

GASOIL. (WESTTEX, MIDCONT) DISTILLATE. (WESTEX, MIDCONT)/;

のように、あるいはより簡潔に

SET CICR(CI, CR) Tagges Intermediate Products/ (NAPHTHA, GASOIL, DISTILLATE). (WESTEX, MIDCONT)/;

9

Page 10: 2002the0043/GAMSBUNPO.doc  · Web viewdnlp 非連続微分非線形計画。「滑らか」でない関数があらわれる非線形計画。 rmip 緩和混合整数計画。非連続変数を含むが非連続制約が緩和されている。整数、0-1変数は上下限内の任意の値を取ることができる。

と書けば、

/ NAPHTHA. WESTTEX     NAPHTHA. MIDCONT GASOIL. WESTTEX

GASOIL. MIDCONTDISTILLATE. WESTTEXDISTILLATE. MIDCONT /;

と書いたことになる。一般に n-tuplesでも同様である。系列の場合には、括弧を使わな

いで、たとえば、1*3.A 1*A6. 1995*2002で同等である。

PARAMETER・PARAMETERS・SCALAR・SCALARS・TABLE おそらく最もGAMSらしいデータ・エントリーの方法は、TABLEステートメントによるものであろうが、GAMSのデータ・エントリーの方法には、3つある。

第 1の方法は、データ・リストによる方法である。以下では、SETステートメントで添え字の集合がまず定義され、次に PARAMETERSステートメントでパラメータの値が与えられる。PARAMETERSステートメントでは、データ・リストの両側をスラッシュ

でくくることと要素・値の対ごとにコンマを付すか改行することを要求されるほかは、

かなり自由にデータ・エントリーができる。たとえば、要素と値の間を等号で結ぶなど

してもよい。なお、すべてのパラメータに対するディフォルト値は 0である。

SETS I Canning plants / SEATTLE, SAN-DIEGO / J Markets / NEW-YORK, CHICAGO, TOPEKA / ; PARAMETERS A(I) Capacity of plant i in cases / SEATTLE 350 SAN-DIEGO 600 / B(J) Demand at market j in cases / NEW-YORK 325 CHICAGO 300 TOPEKA 275 / ;

10

Page 11: 2002the0043/GAMSBUNPO.doc  · Web viewdnlp 非連続微分非線形計画。「滑らか」でない関数があらわれる非線形計画。 rmip 緩和混合整数計画。非連続変数を含むが非連続制約が緩和されている。整数、0-1変数は上下限内の任意の値を取ることができる。

括弧およびアステリスクは、SETステートメントの場合と同様に使用できる。さらに、次のような使い方もできる。

 SET ROW / ROW-1* ROW-10/ COL / COL-1* COL-10/ SRO(ROW) / ROW-7 * ROW-10/ ; PARAMETER A(ROW,COL), B(ROW,COL), R(ROW) /ROW-1 22 , ROW-4*ROW-7 4.7 , (ROW-2, ROW-9) 2.4 )/, C(COL) / COL-4 17.4, COL-1 8.8, COL-9*COL-10 11.1/;

集合と結びつけられていない、言い換えればドメインなしのパラメータは SCALARステートメントによって与えることができる。

     SCALAR F Freight in dollars per case per thousand miles /90/ ;

PARAMETERステートメント(あるいは SCALARステートメント)を宣言文でとどめておき、あとで、直接割り当てる(DIRECT ASSSIGNMENT)こともできる。これがGAMSのデータ・エントリーの第 2の方法である。FORTARANの代入文のようなもので

ある。

   SCALAR X ; X=1.2 ; X=X+2 ;

SET D /NORTH, SOUTHY/ ; PARAMETER DA(D) /NORTH 21.2, SOUTH 3.07 / DJ(D) ; DJ(D) = 2.75*DA(D) ; 最後の行の assignmentの場合、添え字(index)Dのついた DJ 全体に値が割り当てら

れる。Indexed Assignmentという。Dがコントロール・インデックス(Controlling index)あるいはコントロール集合としての役割を果たしている。添え字のついた要素全

体に値を割り当てるのではなく、特定の要素への割り当てには、引用符(シングル・ク

オートまたはダブル・クオート)を使う。

   A ( ‘ROW-7’, ‘COL-4’ )=-2.36 ;

コントロール・インデックス1つでは、十分な割り当てがなされない場合がある(以下

を見よ)。

11

Page 12: 2002the0043/GAMSBUNPO.doc  · Web viewdnlp 非連続微分非線形計画。「滑らか」でない関数があらわれる非線形計画。 rmip 緩和混合整数計画。非連続変数を含むが非連続制約が緩和されている。整数、0-1変数は上下限内の任意の値を取ることができる。

B( ROW, ROW) =7.7-R(ROW);このステートメントでは、10 個の「対角要素」に値が割り当てられる。非対角要素は 0のままである。そのような場合、ALIASを使う。   ALIAS (ROW, ROWP); B( ROW, ROWP) =7.7-R(ROW);

TABLE表形式でデータ・エントリーを行なう。以下の 2次元の表(行列)の例では、パラメー

タDがドメインつきで宣言され、その値が表形式で与えられる。表中にブランクがあれ

ば 0と解釈される。単数形であることに注意してほしい。SET、PARAMETER、SCALARとは異なり、TABLEステートメントではひとつの識別子しか定義(宣言・初期値の割り

当て)できない。

TABLE D(I,J) Distance in thousands of miles  NEW-YORK CHICAGO TOPEKA SEATTLE   2.5 1.7 1.8 SAN-DIEGO   2.5 1.8 1.4 ;

1行ですべての列が表示できない場合、“+”記号で継続できる(以下)。

TABLE D(I,J) Distance in thousands of miles  NEW-YORK CHICAGO SEATTLE   2.5 1.7 SAN-DIEGO   2.5 1.8 ;        +         TOPEKA

SEATTLE        1.8SAN-DIEGO       1.4

VARIABLE・VARIABLESGAMSの変数は、経済学でいう内生変数、LPにおける列・アクティヴィティー、ORにおける意思決定変数(decision variable)である。すなわち、モデルが解かれるまでは一般にその値は未知であるような変数のことである。輸送問題では、次の VARIABLEステートメントがあらわれている。Zは、スカラー量なのでドメインなしで宣言されてい

る。GAMSの最適化モデルには、少なくともそのような変数がひとつはあらわれ、最大

化ないし最小化されるべき量となる。

VARIABLES

12

Page 13: 2002the0043/GAMSBUNPO.doc  · Web viewdnlp 非連続微分非線形計画。「滑らか」でない関数があらわれる非線形計画。 rmip 緩和混合整数計画。非連続変数を含むが非連続制約が緩和されている。整数、0-1変数は上下限内の任意の値を取ることができる。

X(I,J) Shipment quantities in cases Z Total transportation costs in thousands of dollars ;宣言された変数は、その型を割り当てなければならない。

変数の型         変数のとりうる範囲

FREE(ディフォールト)    -∞~+∞

POSITIVE           0~+∞

NEGATIVE         -∞~0BINARY            0または 1INTEGER           0,1,2,...,100

最適化されるべき変数は、スカラーであり、なおかつ FREE TYPEでなければならない。輸送問題の X(I, J)は、非負だから、次のようなステートメントを書く。ドメインをつ

けてはならない。

POSITIVE VARIABLE X ;

GAMSのパラメータとのちがいを明確にしておかなければならない。パラメータにお

いては、ひとつのラベル(の組み合わせ)に対してひとつの値が対応する。しかし、変

数では、4つの値が対応する。

.LO   下限

.UP   上限

.L   アクティヴィティのレベル

.M   限界値(マージナル) あるいは双対値、費用削減値。

GAMSは、それぞれの変数と方程式とにレコードが維持されている、小さなデータベ

ース・システムを持ったものとして設計されている。各々のレコードには上記のような

4つのフィールドがある。ユーザーは、このデータベースにリード・ライトのアクセス

ができる。たとえば、変数の上限・下限は、変数の型に応じて自動的に設定されるが、ユ

ーザーはそれらをオーバーライトできる。レベル変数と限界値のフィールドに関して

は、ユーザーが初期値を与えることができるが、そのあとは、ソルバーがコントロール

する。非線形計画について、レベル変数の初期値を設定できる意味は大きい。

EQUATION・EQUATIONSEquation文では、宣言と定義とを別の文で行わなければならない。宣言のフォーマットは、 GAMS の他の識別子と同様である。輸送問題には、 3 つの EQUATION DECLARATIONがある。

13

Page 14: 2002the0043/GAMSBUNPO.doc  · Web viewdnlp 非連続微分非線形計画。「滑らか」でない関数があらわれる非線形計画。 rmip 緩和混合整数計画。非連続変数を含むが非連続制約が緩和されている。整数、0-1変数は上下限内の任意の値を取ることができる。

EQUATIONS COST Define objective function SUPPLY(I) Observe supply limit at plant i DEMAND(J) Satisfy demand at market j ;

GAMS における EQUATION は、不 等式の意味をも含んでいることに注意。ま

た、COSTは、ドメインがないので単一方程式である。方程式の定義 EQUATION DEFINITIONは、シンボル間の関係が定義される。以下の構成要素からなる。

1. 定義される方程式の名前。

2. ドメイン。

3. (オプショナル)ドメイン制限条件。ダラー・コントロールで行なう。

4. シンボル“..”。5. 左辺の式。

6. 関係演算子。

=L=(すなわち“≦”)

=E=(すなわち、“=”)

=G=(すなわち、“≧”)。

7. 右辺の式。

輸送問題には、以下のステートメントがあらわれている。

COST .. Z =E= SUM((I,J), C(I,J)*X(I,J)) ;  SUPPLY(I) .. SUM(J, X(I,J)) =L= A(I) ; DEMAND(J) .. SUM(I, X(I,J)) =G= B(J) ;

Zは、輸送問題の目標関数である。目標関数は、EQUATION DEFINITIONのうちのどれかにあらわれなければならない。

GAMSの方程式では、右辺と左辺に同じ変数があらわれてもかまわない。GAMSの側で

変換してくれる。EQUATION DEFINITIONは、含まれる変数やパラメータが既に宣言さ

れていれば、GAMSインプットのどこに置いてもかまわない。

MODEL MODELステートメントは、方程式をグループ分けし、それに名前をつけ、SOLVEのプロセスに進むことができるようにする。モデル文は、以下の構成をもつ。テキストは、

オプション、モデル名は、GAMSの識別子

MODEL   TRANSPORT   A transportation model    / ALL / ;キーワード   モデル名      テキスト        /モデル・リスト/

14

Page 15: 2002the0043/GAMSBUNPO.doc  · Web viewdnlp 非連続微分非線形計画。「滑らか」でない関数があらわれる非線形計画。 rmip 緩和混合整数計画。非連続変数を含むが非連続制約が緩和されている。整数、0-1変数は上下限内の任意の値を取ることができる。

11.GAMS言語における数式と標準関数

 実行文の説明に入る前に、GAMSにおける演算記号と標準関数を導入する。GAMS言語では以下の演算記号を使用する。演算の優先順位も、以下の順である。括弧がないか

ぎり、表中の上の演算が優先して実行される。

 ** べき乗(実数べき)3

* / 乗算・除算

+  - 加算・減算

GAMS言語には、次のような Indexed Operationがある。SUMPRODSMINSMAXGAMSの和記号(サメーション)は、ふたつのアーギュメントをもった演算であり、

SUM( index of summation, summand)

の形式で使う。たとえば、SUM(J, X (I, J ) )は、   のことである。ネステド・サ

メーションも、たとえば、SUM( I, SUM(J, C (I, J )* X ( I, J ) ) )のように書ける。 積記号は、SUMのかわりに PRODを使う。たとえば、PROD(J, X (I, J ) )は、 の

ことである。

 SMIN、SMAXの演算子は、たとえば、SMIN( I, X( I, J ))のかたちで の最大、最小を

与える。

GAMSの標準関数

名前 説明 説明 argの数

ABS Absolute value

| arg | 1

ARCTAN Arctangent arctan(arg); 結果は、ラジアン。 1CEIL Ceiling 最小の整数≧arg 1COS Cosine cos(arg); argは、ラジアン。 1

3 整数べきは、標準関数として用意されている POWERを使う。

15

Page 16: 2002the0043/GAMSBUNPO.doc  · Web viewdnlp 非連続微分非線形計画。「滑らか」でない関数があらわれる非線形計画。 rmip 緩和混合整数計画。非連続変数を含むが非連続制約が緩和されている。整数、0-1変数は上下限内の任意の値を取ることができる。

ERRORF Error function

-∞から argまでの標準正規分布の積分値。 1

EXP Exponential 1FLOOR Floor 最大の整数≦arg 1LOG Natural

logarithmargの底 の対数値。 1

LOGIO Common logarithm

argの底 10の対数値。 1

MAPVAL Mapping function

特別な値に一意数を割り当てる。 1

MAX Largest value

max(arg1, arg2, arg3,…) >1

MIN Smallest value

min(arg1, arg2, arg3,…) >1

MOD Remainder arg-trunc(arg1/arg2)×arg2 2NORMAL Normal

random平均が arg1、標準偏差が arg2である(疑似)正規

乱数。方程式にあらわれてはならない。 ”seed”は、OPTION SEED=numberによってリセットできる。シードは、ひとつづきのコンパイレーションで

維持されている。

2

POWER Integer power

。ここで、arg2は、整数。 2

ROUND Rounding round(arg)は、最も近い整数に丸められもの。

round(arg1, arg2)は、小数点以下 arg2桁に arg1を丸めたもの。

1 ないし

2SIGN Sign      +1 if arg>0

sign(arg)= -1 if arg<0 0 if arg=0

1

SIN Sine Sin(arg);argは、ラジアン。 1SQR Square arg×arg 1SQRT Square root 1TRUNC Truncation sign(arg)×floor(abs(arg)) 1UNIFORM Uniform

randomArg1と arg 2の間の一様乱数。方程式にあらわれて

はならない。”seed”は、OPTION SEED=numberによってリセットできる。シードは、ひとつづきのコ

ンパイレーションで維持されている。

2

16

Page 17: 2002the0043/GAMSBUNPO.doc  · Web viewdnlp 非連続微分非線形計画。「滑らか」でない関数があらわれる非線形計画。 rmip 緩和混合整数計画。非連続変数を含むが非連続制約が緩和されている。整数、0-1変数は上下限内の任意の値を取ることができる。

12.実行文

SOLVE GAMSによって解くことのできる問題はさまざまある。しかし、解くためには、問題の型を知らなければならない。また、解き方は一通りではないから、0-1変数や整数変数

が含まれていても、MIP(Mixed integer Programming)問題として解くか、RMIP(Relaxed Mixed integer Programming)問題として解くかは、選択の余地があ

る。SOLVEステートメントに必要となる、問題類型とその識別子は、以下の通り。ただ

し、GAMSそのものが問題を解くのではなく、正しく定式化された問題をソルバー・プ

ログラムに送る。

LP 線形計画。NLP 非線形計画。 モデルに「滑らかな」関数しかあらわれない非線形計画。

DNLP 非連続微分非線形計画。「滑らか」でない関数があらわれる非線形計画。

RMIP 緩和混合整数計画。非連続変数を含むが非連続制約が緩和されている。整数、0-1変数は上下限内の任意の値を取ることができる。

MIP 混合整数計画。RMIDNLP 非連続微分緩和混合整数計画。MIDNLP 非連続微分混合整数非線形計画。SOLVEステートメントのシンタックスは単純である(以下の通り)。

SOLVE TRANSPORT USING  LP MINIMIZING COST;キーワード  モデル名  キーワード モデル・タイプ 最大・最小の指定 目標変数

ディレクション(最大・最小の指定)は、“MAXIMIZING”、“MINIMIZING”というもうひとつのキーワードを使う。4 目標変数(Objective Variables)は、既に述べた通り、ス

カラーで FREE 型でなければならない。もちろん、モデル中の少なくともひとつの方程

式にあらわれなければならない。

 なお、ソルバー・プログラムを自由にGAMSにリンクすることができる。そのためのドキュメントが用意されているし、そのようなリンクのための既存のソースコードは、

公開されている。

ソルバーの一覧表

モデル・ソルバーの型 ソルバー・サブシステム

4 アメリカン・スペリングであることに注意。

17

Page 18: 2002the0043/GAMSBUNPO.doc  · Web viewdnlp 非連続微分非線形計画。「滑らか」でない関数があらわれる非線形計画。 rmip 緩和混合整数計画。非連続変数を含むが非連続制約が緩和されている。整数、0-1変数は上下限内の任意の値を取ることができる。

LP BDMLP、MINOS 5、ZOOM、MPSX、SCICONIC、APEX IV NLP MINOS 5、CONOPT、GRG 2、NLPNETG、NPSOL MIP ZOOM、MPSX、SCICONIC、APEX IV

DISPLAYソルバーのアウトプットを表示させるには。DISPLAY文を使う。輸送問題には、次のステートメントがあらわれている。変数を表示させるには、どの値か

(.UP、.LO、.L、.M)をしめさなければならない。

DISPLAY X.L, X.M ;

GAMSアウトプットには、以下のように計算結果が示される。

VARIABLE X.L SHIPMENT QUANTITIES IN CASES

NEW-YORK CHICAGO TOPEKA

SEATTLE 50.000  300.000SAN-DIEGO 275.000   275.000

VARIABLE X.M SHIPMENT QUANTITIES IN CASES

CHICAGO TOPEKA

SEATTLE 0.036SAN-DIEGO 0.009

13.GAMSアウトプット エコー・プリント、(エラーメッセージ)、レアフェンス・マップ、方程式リスト、モ

デル統計、ステータス・レポート、ソリューション・レポートなどが出力される。

参考文献

A.Brooke, D.Kendrick, and A.Meeraus, GAMS : A User's Guide, Release 2.25 ,Scientific Press.

18

Page 19: 2002the0043/GAMSBUNPO.doc  · Web viewdnlp 非連続微分非線形計画。「滑らか」でない関数があらわれる非線形計画。 rmip 緩和混合整数計画。非連続変数を含むが非連続制約が緩和されている。整数、0-1変数は上下限内の任意の値を取ることができる。

付 録   1   ダ ン テ ィ ー グ の 輸 送 問 題 の GAMS イ ン プッ ト ・ フ ァ イ ル

ダ ン テ ィ ー グ 『 線 形 計 画 と そ の 周 辺 』 ( George B. Dantzig, Linear Programming and Extensions, Princeton University Press, 1963) は 、 現 在 で も 線 形 計 画 法 ( LP ) の 基 本 文 献の ひ と つ で あ る 。 そ の 第 3 章 第 3 節 に 輸 送 問 題 の 数値 例 が 与 え ら れ て い た 。 以 下 の プ ロ グ ラ ム で は 、そ の 数 値 例 が 若 干 変 更 さ れ て 使 用 さ れ て い る 。 以下 の イ ン プ ッ ト ・ フ ァ イ ル を 読 み と る こ と は 容 易で あ り 、 問 題 そ の も の の 説 明 は 不 要 と 思 わ れ る 。

$TITLE A TRANSPORTATION PROBLEM$OFFUPPER

SETS I canning plants / SEATTLE, SAN-DIEGO / J markets / NEW-YORK, CHICAGO, TOPEKA / ;

PARAMETERS

A(I) capacity of plant i in cases / SEATTLE 350 SAN-DIEGO 600 /

B(J) demand at market j in cases / NEW-YORK 325 CHICAGO 300 TOPEKA 275 / ;

TABLE D(I,J) distance in thousands of miles NEW-YORK CHICAGO TOPEKA SEATTLE 2.5 1.7 1.8 SAN-DIEGO 2.5 1.8 1.4 ;

SCALAR F freight in dollars per case per thousand miles /90/ ;

PARAMETER C(I,J) transport cost in thousands of dollars per case ;

C(I,J) = F * D(I,J) / 1000 ;

19

Page 20: 2002the0043/GAMSBUNPO.doc  · Web viewdnlp 非連続微分非線形計画。「滑らか」でない関数があらわれる非線形計画。 rmip 緩和混合整数計画。非連続変数を含むが非連続制約が緩和されている。整数、0-1変数は上下限内の任意の値を取ることができる。

VARIABLES X(I,J) shipment quantities in cases Z total transportation costs in thousands of dollars ;

POSITIVE VARIABLE X ;

EQUATIONS COST define objective function SUPPLY(I) observe supply limit at plant i DEMAND(J) satisfy demand at market j ;

COST .. Z =E= SUM((I,J), C(I,J)*X(I,J)) ;

SUPPLY(I) .. SUM(J, X(I,J)) =L= A(I) ;

DEMAND(J) .. SUM(I, X(I,J)) =G= B(J) ;

MODEL TRANSPORT /ALL/ ;

SOLVE TRANSPORT USING LP MINIMIZING Z ;

DISPLAY X.L, X.M ;

20

Page 21: 2002the0043/GAMSBUNPO.doc  · Web viewdnlp 非連続微分非線形計画。「滑らか」でない関数があらわれる非線形計画。 rmip 緩和混合整数計画。非連続変数を含むが非連続制約が緩和されている。整数、0-1変数は上下限内の任意の値を取ることができる。

付 録   2  輸 送 問 題 に つ い て の ノ ー ト

線 形 計 画 法 の 特 殊 ケ ー ス で あ る 輸 送 問 題 は 、 もち ろ ん 、 よ く 知 ら れ た 線 形 計 画 問 題 の 特 殊 ケ ー スで あ る 。輸 送 問 題 は 、 カ ン ト ロ ヴ ィ ッ チ ( L.V.

Kantorovich ) 、 ヒ ッ チ コ ッ ク ( Frank L. Hitchcock) 、 ク ープ マ ン ス ( T.C. Koopmans) に よ っ て 第 二 次 世 界 大 戦 中お よ び そ の 直 後 に 定 式 化 さ れ た 。輸 送 問 題 は 、 シ ン プ レ ッ ク ス 法 ( 単 体 法 ) が ダ

ン テ ィ ー グ に よ っ て 確 立 さ れ る 以 前 に 、 本 質 的 には 、 シ ン プ レ ッ ク ス 法 と 同 等 の 方 法 を た か だ か 紙と 鉛 筆 に よ っ て 解 く こ と が で き る こ と が 知 ら れ てい た 。 い わ ゆ る DOSSO、 す な わ ち 、 『 線 形 計 画 と 経済 分 析 』 ( Robert Dorfman, Paul Samuelson & Robert Solow: Linear Programming and Economic Analysis,McGraw-Hill,1958 ) で は 、 第 5章 を 輸 送 問 題 に 充 て 、 こ の 略 式 解 法 を 紹 介 し て いた 。  以 下 で は 、 DOSSOに お け る 簡 単 な 例 示 と と も に 輸送 問 題 を 定 式 化 し て み よ う 。 ま ず 、 次 の デ ー タ は所 与 で あ る 。 i を 工 場 ( た と え ば 、 缶 詰 工 場 ) の添 字 、 j を 市 場 の 添 字 と す る 。

意 志 決 定 の 対 象 と な る 変 数 は 、

で あ る 。 こ の 変 数 に は 、 非 負 制 約 が あ る 。 す な わち 、

工 場 i の 供 給 制 約 、 市 場 j の 需 要 制 約 が あ る 。

21

Page 22: 2002the0043/GAMSBUNPO.doc  · Web viewdnlp 非連続微分非線形計画。「滑らか」でない関数があらわれる非線形計画。 rmip 緩和混合整数計画。非連続変数を含むが非連続制約が緩和されている。整数、0-1変数は上下限内の任意の値を取ることができる。

…………(1)

…………(2)

目 的 関 数 は 、 輸 送 費 用 の 最 小 化 で あ る 。 ( 単 位

は 、 $ K)…………(3)

DOSSOの 数 値 例 は 、 工 場 が 3 ヶ 所 ( A,B,C) に あ り 、市 場 が 5 ヶ 所 ( 1,2,3,4,5) に あ る ケ ー ス で あ る 。 生 産能 力 、 所 要 量 ( 単 位 ト ン ) 、 1 ト ン 当 た り の 輸 送費 用 ( 単 位 ド ル ) が 次 の 表 の よ う に 与 え ら れ て いる こ と に す る 。

販 売 地区

工 場 所 要 量

    A B C1 $10 $20 $30 252 $15 $40 $35 1153 $20 $15 $40 604 $20 $30 $55 305 $40 $30 $25 70 生 産 能力

50 100 150 300

ス タ ー テ ィ ン グ ・ ル ー ル ( 最 初 の 実 行 可 能 基 底解 の 求 め 方 ) は 、 複 数 あ る 。 い ず れ も 、 計 算 を ほと ん ど 必 要 と せ ず 表 を 見 る だ け で 最 初 の 実 行 可 能基 底 解 が 得 ら れ る 。 こ こ で は 、 DOSSOの も の を 紹 介す る 。 工 場 Aか ら 始 め よ う 。 Aの 列 で 最 小 の 輸 送 費用 を 与 え る cijを も つ 行 ( 市 場 1 cA1=15) を 見 つ け る 。そ こ で 、 工 場 Aの 供 給 能 力 を 市 場 1に 充 て る 。 ま だ25 ト ン 供 給 能 力 が 残 っ て い る か ら 、 次 に 輸 送 費 の安 い 市 場 2 に 充 て る ( cA2=15) 。 こ れ で 工 場 Aは 、

22

Page 23: 2002the0043/GAMSBUNPO.doc  · Web viewdnlp 非連続微分非線形計画。「滑らか」でない関数があらわれる非線形計画。 rmip 緩和混合整数計画。非連続変数を含むが非連続制約が緩和されている。整数、0-1変数は上下限内の任意の値を取ることができる。

供 給 能 力 を 使 い 果 た し た が 、 ま だ 、 市 場 2 の 需 要は 、 90 残 っ て い る 。 そ こ で 、 市 場 2 の 列 を 観 察し 、 次 に 輸 送 費 の 安 い 供 給 源 を 探 す 。 工 場 Cが 安い の で 、 工 場 Cか ら 90 ト ン 市 場 2に 輸 送 す る こ と にす る 。 市 場 2 は 、 こ れ で 所 要 量 を 満 た し た こ と にな る 。次 に 工 場 Bに つ い て 同 じ 作 業 を す る 。 5 ま ず 、 市場 3 に 供 給 し 、 供 給 余 力 40 は 、 市 場 4 、 5 ど ち ら でも よ い が 、 市 場 5に 回 す 。 市 場 5の 需 要 が ま だ 30 ある か ら そ れ を 満 た す た め に 工 場 C か ら 30 輸 送 する 。 工 場 Cの 供 給 余 力 30 は 、 も ち ろ ん 市 場 4に 輸 送す る 。 DOSSOの 設 例 で は 、 各 工 場 の 供 給 能 力 の 合 計と 各 市 場 の 需 要 量 の 合 計 は 等 し く 設 定 さ れ て い るこ と に 注 意 す る 。 こ の こ と は 、 8 つ の 制 約 式 の うち 、 独 立 な 方 程 式 は 、 7 つ し か な い こ と を 意 味 する 。 上 の プ ロ セ ス で も 0 で な い xijが 7 つ し か な い こと に 注 意 す る 。 実 は 、 こ の プ ロ セ ス は 、 実 行 可 能基 底 解 を 見 い だ す た め の も の で あ る 。

第 1 次 出 荷 計 画

販 売 地区

工 場 所 要 量

    A B C1 25 252 25 90 115 3 60 604 30 305 40 30 70 生 産 能力

50 100 150 300

  こ の よ う に 得 ら れ た 「 第 1 次 出 荷 計 画 」 が 基 底解 と な っ て い る こ と を ど の よ う に 確 か め れ ば よ いの だ ろ う か 。 あ る い は 、 第 1 次 出 荷 計 画 を 作 成 する た め の 以 上 の 作 業 の キ ー ・ ポ イ ン ト は ど こ に あっ た の だ ろ う か 。 次 の 2 つ の 図 を 比 べ て み よ う 。

5 どうせ、ここで、工場Cが登場しているのだから、工場 Cから輸送費の安い 5に工場の能力いっぱいまで(150-90=60)割り当てて、残りの分を工場Bでまかなうことも合理的に思える。この方法だと、本文で説明したDOSSOの「第 1次出荷計画」を改善した「第 2次出荷計画」に対応する。

23

Page 24: 2002the0043/GAMSBUNPO.doc  · Web viewdnlp 非連続微分非線形計画。「滑らか」でない関数があらわれる非線形計画。 rmip 緩和混合整数計画。非連続変数を含むが非連続制約が緩和されている。整数、0-1変数は上下限内の任意の値を取ることができる。

図 の 読 み と り 方 は ほ と ん ど 自 明 で あ る 。 上 の 図 では 、 す べ て の 「 辺 」 と 「 点 」 が ひ と つ な が り に なっ て お り 、 下 の 図 は そ う で な い 。 3つ の 工 場 、 5つの 市 場 の す べ て を ひ と つ な が り に す る た め に は 、少 な く と も 7 つ の 辺 が 必 要 で あ る こ と に も 注 意 する 。 グ ラ フ 理 論 に よ れ ば 、 8つ の 点 、 7つ ( 点 の 数- 1 ) の 辺 か ら な る グ ラ フ が 連 結 ( ひ と つ な が りの ) グ ラ フ で あ る こ と と サ イ ク ル を も た な い こ とは 同 値 で あ る 。 サ イ ク ル を も た な い 連 結 グ ラ フ は「 木 」 と 呼 ば れ る 。 木 に お い て は 、 辺 の 数 は 、 点の 数 - 1で あ る 。 要 す る に 、 第 1次 出 荷 計 画 を 作 成す る プ ロ セ ス は 、 「 木 」 を 作 る 作 業 そ の も の な ので あ る 。 上 の 図 の グ ラ フ は 木 で あ り 、 下 の 図 の グラ フ は 木 で な い 。 下 の 図 の グ ラ フ は 、 木 で な い( 連 結 で な い ) か ら 、 サ イ ク ル を 持 っ て い る こ とに も 注 意 す る 。 木 に お い て は 、 そ れ に 含 ま れ な いひ と つ の 辺 を 付 け 加 え る と ち ょ う ど ひ と つ の サ イク ル を も つ よ う に な る こ と も 知 ら れ て い る 。 6

6 たとえば、J. A. Bondy & U. S. R. Murty/立花俊一・奈良知恵・田澤新成訳『グラフ理論への入門』、共立出版、1991年、22-23頁。

A

B

C

1

2

3

4

5

輸送問題(第 1次出荷計画)のグラフ

24

Page 25: 2002the0043/GAMSBUNPO.doc  · Web viewdnlp 非連続微分非線形計画。「滑らか」でない関数があらわれる非線形計画。 rmip 緩和混合整数計画。非連続変数を含むが非連続制約が緩和されている。整数、0-1変数は上下限内の任意の値を取ることができる。

た と え ば 、 ( B-1) と い う 計 画 に 含 ま れ な い 工 場- 市 場 の ( 任 意 の ) 組 み 合 わ せ を 新 し い 「 辺 」 とし て 書 き 加 え て み る と 、 (B-1) ( 1-A) ( A-2) ( 2-C)( C-5) ( 5-B) と い う 第 1 次 出 荷 計 画 に 含 ま れ て いる 「 辺 」 を た ど っ て Bに 戻 っ て く る こ と が で き る 。見 方 を 変 え て い え ば 、 Bか ら 1 へ 向 か う 2 通 り の 径路 が あ る 。 直 接 径 路 と 間 接 径 路 で あ る 。  直 接 径 路 : ( B-1)  間 接 径 路 : ( B-5) ( 5-C) ( C-2) ( 2-A) ( A-1)こ の よ う に 、 ど の 工 場 - 都 市 の ペ ア に 対 し て も 、木 に 含 ま れ る 径 路 を た ど る こ と に よ っ て 両 者 を つ

な ぐ こ と が で き る 。 こ れ は 、 こ の 木 が ベ ク ト ル 空間 の 基 底 で あ る こ と を も 意 味 す る 。

A

B

C

1

2

3

4

5

不適切な第 1次出荷計画のグラフ

25

Page 26: 2002the0043/GAMSBUNPO.doc  · Web viewdnlp 非連続微分非線形計画。「滑らか」でない関数があらわれる非線形計画。 rmip 緩和混合整数計画。非連続変数を含むが非連続制約が緩和されている。整数、0-1変数は上下限内の任意の値を取ることができる。

    式 に

よ っ て こ の こ と を 見 て み よ う 。 輸 送 問 題 を 線 形 計画 問 題 と し て 定 式 化 し な お し た の が 第 (4) 式 で ある 。 工 場 の 生 産 能 力 制 約 を あ ら わ す 不 等 式 の 向 きを 市 場 需 要 制 約 を あ ら わ す 不 等 式 の 向 き と あ わ せる た め に 符 号 を 工 夫 し て い る 。 こ れ は 、 線 形 計 画に お け る 典 型 的 な 工 夫 で あ る 。 ま た 、 係 数 行 列 を観 察 す る と 、 縦 に す べ て の 式 を 足 し 合 わ せ る と すべ て 0 に な っ て い る こ と が わ か る 。 つ ま り 、 す べて の 式 が 独 立 で あ る わ け で は な い 。 そ こ で 、 最 後の 式 を 省 略 す る こ と に す る 。 ( こ の 数 値 例 の 場合 、 厳 密 な 不 等 式 は あ り え な い こ と は 最 初 か ら 明ら か で あ る 。 )  木 を 作 る よ う に 選 ば れ た 辺 を ベ ク ト ル と 解 釈 する こ と が で き る 。 ベ ク ト ル の 最 初 の 3 つ の 要 素は 、 工 場 、 あ と の 4つ の 要 素 ( 8番 目 の 、 最 後 の 要素 は 省 略 ) は 都 市 を あ ら わ す 。 そ こ か ら 出 発 す る工 場 に は 、 マ イ ナ ス 1 、 そ こ に 到 達 す る 都 市 には 、 プ ラ ス 1の 数 字 を 記 入 し 、 そ の 他 の 要 素 は 、 0を 記 入 す る 。  第 1 次 出 荷 計 画 に 含 ま れ な い 、 た と え ば 、 ( B-1) は 、 こ の 基 底 ベ ク ト ル 群 の 1次 結 合 と し て 表 現で き る 。 第 ( 5 ) 式 に そ の こ と を 示 し た 。 右 辺 のベ ク ト ル は 、 そ の 作 り 方 か ら 右 辺 の 行 列 A 0 の 逆 行列 を 左 辺 の ベ ク ト ル の 左 側 か ら 掛 け た も の で ある 。

 

26

Page 27: 2002the0043/GAMSBUNPO.doc  · Web viewdnlp 非連続微分非線形計画。「滑らか」でない関数があらわれる非線形計画。 rmip 緩和混合整数計画。非連続変数を含むが非連続制約が緩和されている。整数、0-1変数は上下限内の任意の値を取ることができる。

……………….. ( 5)

第 ( 4 ) 式 を 等 式 に し て 、 基 底 部 分 、 非 基 底 部 分に 係 数 行 列 を 分 割 し ( A 0 、 A1 ) 、 プ ロ セ ス の レ ベル を あ ら わ す ベ ク ト ル x も 2 つ に 部 分 ( x 0 、 x

1 ) に わ け 、 さ ら に さ き に 述 べ た よ う に 最 後 の 式を 省 略 す る と 、 右 辺 の 定 数 ベ ク ト ル を b と す る こと に よ り 、 次 の よ う に 書 け る 。

………….. ( 6)

A 0 の 逆 行 列 を 左 側 か ら 掛 け 合 わ せ る と

…………… ( 7)

こ こ で 、 目 標 関 数 を

………….. ( 8)と 書 く こ と に す る と 、

………….( 9)

上 式 で x 1 の 係 数 は 、 直 接 費 用 ( c 1 ) 部 分 と 木 に

含 ま れ る 径 路 を 利 用 し た 間 接 径 路 に 拠 っ た 場 合 の間 接 費 用 と の 差 に な っ て い る こ と に 注 目 す る 。 この 係 数 が す べ て プ ラ ス な ら 現 在 の 木 が 最 小 費 用 を

27

Page 28: 2002the0043/GAMSBUNPO.doc  · Web viewdnlp 非連続微分非線形計画。「滑らか」でない関数があらわれる非線形計画。 rmip 緩和混合整数計画。非連続変数を含むが非連続制約が緩和されている。整数、0-1変数は上下限内の任意の値を取ることができる。

あ た え て い る こ と に な る 。 マ イ ナ ス の 要 素 が あ れば 、 現 在 の 選 択 に は 改 善 の 余 地 が あ る 。と こ ろ で 、 第 ( 5) 式 の 右 辺 の ベ ク ト ル に つ い て述 べ た 注 意 に よ り 、

は 、 間 接 径 路 す な わ ち 、 ( B-5) ( 5-C) ( C-2) ( 2-A) ( A-1) 上 で 工 場 か ら 都 市 に 向 か う プ ロ セ ス には そ の 費 用 に プ ラ ス の 符 号 を 付 し 、 都 市 か ら 工 場に 向 か う 逆 の プ ロ セ ス に は 、 マ イ ナ ス の 符 号 を 付し て 合 計 し た も の で あ る 。 た と え ば 、 こ の 場 合 、直 接 費 用 は 、 $20 、 間 接 費 用 は 、 +$30-$25+$35-$15+$10=$35 で あ り 、 直 接 費 用 が 間 接 費 用 よ り 安 い 。 した が っ て 、 ( B-1) を 導 入 す る こ と に よ り 第 1 次 出荷 計 画 は 改 善 す る こ と が で き る 。 第 1 次 出 荷 計 画に 含 ま れ な い 他 の 組 み 合 わ せ に つ い て も 間 接 費 用が 計 算 で き る 。 下 の 表 で は 、 間 接 費 用 を 一 覧 表 にし 、 直 接 費 用 - 間 接 費 用 も 表 に し て い る 。

第 1次 出 荷 計 画 の 間 接 費 用

A B C1 * 35 302 * 40 *3 -10 * 104 35 60 *5 5 * *

直 接 費 用 と 間 接 費 用 の 差 ( 第 1次 出 荷 計 画 )

A B C1 * -15 02 * 0 *3 30 * 204 55 -30 *5 35 * *

直 接 費 用 と 間 接 費 用 の 差 ( マ ー ジ ナ ル ) の 表 を 見

る と 、 ( B-1) よ り ( B-4) を 出 荷 計 画 に 組 み 込 ん だ

28

Page 29: 2002the0043/GAMSBUNPO.doc  · Web viewdnlp 非連続微分非線形計画。「滑らか」でない関数があらわれる非線形計画。 rmip 緩和混合整数計画。非連続変数を含むが非連続制約が緩和されている。整数、0-1変数は上下限内の任意の値を取ることができる。

方 が よ さ そ う に 見 え る の で 、 ( B-4) を 導 入 す る こと に し よ う 。 間 接 径 路 は 、( B-5) ( 5-C) ( C-4) であ る か ら 、 ( B-4) を 1単 位 導 入 す る ご と に 、 第 1次出 荷 計 画 か ら ( B-5) を 1単 位 減 ら し 、 ( C-5) を 1単位 増 や し 、 ( C-4) を 1 単 位 減 ら さ な け れ ば な ら ない 。 ( B-5) の レ ベ ル が 40 、 ( C-4) の レ ベ ル が 30 であ る か ら 、 こ の プ ロ セ ス は ( C-4) の レ ベ ル を ち ょう ど 0 に す る と こ ろ ま で し か 進 め ら れ な い 。 そ うす る と 、 次 の よ う な 第 2次 出 荷 計 画 が 得 ら れ る 。

第 2次 出 荷 計 画

販 売 地区

工 場 所 要 量

    A B C1 25 252 25 90 115 3 60 604 30 60 305 10 70 生 産 能力

50 100 150 300

再 び 間 接 費 用 の 表 お よ び 直 接 費 用 と 間 接 費 用 の 差の 表 を 作 成 す る と 、 以 下 の 通 り に な る 。

第 2次 出 荷 計 画 の 間 接 費 用

A B C1 * 35 302 * 40 *3 -10 * 104 5 * 255 5 * *

直 接 費 用 と 間 接 費 用 の 差 ( 第 2次 出 荷 計 画 )

A B C1 * -15 02 * 0 *3 30 * 304 15 * 305 35 * *

29

Page 30: 2002the0043/GAMSBUNPO.doc  · Web viewdnlp 非連続微分非線形計画。「滑らか」でない関数があらわれる非線形計画。 rmip 緩和混合整数計画。非連続変数を含むが非連続制約が緩和されている。整数、0-1変数は上下限内の任意の値を取ることができる。

マ ー ジ ナ ル が マ イ ナ ス の エ レ メ ン ト は ひ と つ し かな い か ら 、 今 度 は 、 ( B-1) を 導 入 し て 第 3 次 計 画を 作 成 す る 。

第 3次 出 荷 計 画

販 売 地区

工 場 所 要 量

    A B C1 15 10 252 35 80 115 3 60 604 30 70 305 70 生 産 能力

50 100 150 300

第 3次 出 荷 計 画 の 間 接 費 用

A B C1 * * 302 * 25 *3 5 * 254 20 * 405 5 15 *

直 接 費 用 と 間 接 費 用 の 差 ( 第 3次 出 荷 計 画 )

A B C1 * * 02 * 15 *3 15 * 154 0 * 155 35 15 *

上 の 表 か ら 知 ら れ る 通 り 、 第 3次 出 荷 計 画 で は 、マ イ ナ ス の マ ー ジ ナ ル は 存 在 せ ず 、 こ れ で 最 適 な出 荷 計 画 が 得 ら れ て い る こ と が わ か る 。 ( た だ

30

Page 31: 2002the0043/GAMSBUNPO.doc  · Web viewdnlp 非連続微分非線形計画。「滑らか」でない関数があらわれる非線形計画。 rmip 緩和混合整数計画。非連続変数を含むが非連続制約が緩和されている。整数、0-1変数は上下限内の任意の値を取ることができる。

し 、 こ の 問 題 の 最 適 解 は 一 意 で は な い 。 )

 練 習 問 題 DOSSOの 輸 送 問 題 を GAMS 言 語 で 書 け 。

31

Page 32: 2002the0043/GAMSBUNPO.doc  · Web viewdnlp 非連続微分非線形計画。「滑らか」でない関数があらわれる非線形計画。 rmip 緩和混合整数計画。非連続変数を含むが非連続制約が緩和されている。整数、0-1変数は上下限内の任意の値を取ることができる。

 付 録 3   線 形 計 画 問 題 に お け る 双 対 と 限 界 費 用

DOSSOに な ら い 、 食 餌 問 題 ( Diet Problem; diet= 常 食 ) を例 に 線 形 計 画 問 題 を 定 式 化 す る 。 5 種 類 の 食 品( 1 、 2 、 3 、 4 、 5 ) が あ り 、 そ の 中 か ら 適 当 な もの を 選 ん で メ ニ ュ ー を 作 り 、 必 要 な カ ロ リ ー と ビタ ミ ン を 確 保 す る と い う 問 題 で あ る 。 DOSSO第 2 章第 3 節 で は 、 以 下 の 数 値 例 が 与 え ら れ て い る 。

食た分

品り

1の

単栄あ養

1 2 3 4 5標準量

栄養素:カロリー

1 0 1 1 2 700

ビタミン

0 1 0 1 1 400

価格

2 20 3 1

112

こ の 数 値 例 の も と で 食 餌 問 題 と は 、 次 の よ う な費 用 最 小 化 問 題 を さ す 。

32

Page 33: 2002the0043/GAMSBUNPO.doc  · Web viewdnlp 非連続微分非線形計画。「滑らか」でない関数があらわれる非線形計画。 rmip 緩和混合整数計画。非連続変数を含むが非連続制約が緩和されている。整数、0-1変数は上下限内の任意の値を取ることができる。

線 形 計 画 問 題 は 、 こ の 食 餌 問 題 の よ う に 、 非 負制 約 を も っ た 変 数 が 一 次 不 等 式 で あ ら わ さ れ る 制約 を 満 た し な が ら 、 あ る 目 的 関 数 を 最 小 化 あ る いは 最 大 化 す る 問 題 の こ と で あ る 。線 型 計 画 法 に 関 し て 、 双 対 性 “ duality” と し て 知 られ て い る こ と が ら が あ る 。 す な わ ち 、 線 形 計 画 問題 に 対 し て 双 対 問 題 と 呼 ば れ る 問 題 が 構 成 で き 、原 問 題 と 以 下 の よ う な 関 係 を も っ て い る こ と が 知ら れ て い る 。

1. 双 対 問 題 は 、 原 問 題 の 制 約 式 1 本 に つ い て 1つ づ つ の 変 数 を も っ て い る 。

2. 双 対 問 題 は 、 原 問 題 の 変 数 1 つ に つ い て 1 つづ つ の 制 約 式 を も っ て い る 。

3. 最 大 化 問 題 の 双 対 は 、 最 小 化 問 題 で あ り 、最 小 化 問 題 の 双 対 は 最 大 化 問 題 で あ る 。

4. 原 問 題 の 目 的 関 数 の 係 数 は 、 双 対 問 題 の 制約 式 の 定 数 項 と し て あ ら わ れ 、 原 問 題 の 制 約式 の 定 数 項 は 、 双 対 問 題 の 目 的 関 数 の 係 数 にな っ て い る 。

5. 原 問 題 と 双 対 問 題 と で は 、 制 約 条 件 の 係 数の 配 列 状 態 は 、 互 い に 転 置 行 列 の 関 係 に ある 。

6. 原 問 題 と 双 対 問 題 の 不 等 号 の 向 き は 、 逆 にな っ て い る 。

7. 原 問 題 で も 双 対 問 題 で も 、 変 数 の 非 負 制 約は 変 わ ら な い 。

8. ( 双 対 定 理 ) 原 問 題 、 双 対 問 題 が と も に 制約 条 件 を み た す 解 ( 実 行 可 能 解 ) を も て ば 、と も に 最 適 解 を も ち 、 両 問 題 の 目 的 関 数 の 最大 値 と 最 小 値 は 等 し く な る 。 7

7 たとえば、二階堂副包『経済のための線型数学』培風館、1961年を見よ。

33

Page 34: 2002the0043/GAMSBUNPO.doc  · Web viewdnlp 非連続微分非線形計画。「滑らか」でない関数があらわれる非線形計画。 rmip 緩和混合整数計画。非連続変数を含むが非連続制約が緩和されている。整数、0-1変数は上下限内の任意の値を取ることができる。

具 体 的 に は 、 上 の 食 餌 問 題 を 原 問 題 と す る 双 対 問題 は 、 以 下 の 通 り で あ る 。

双 対 問 題 の 変 数 の 意 味 は 何 だ ろ う か 。 u1 、 u2 をカ ロ リ ー の ( 潜 在 ) 価 格 、 ビ タ ミ ン の ( 潜 在 ) 価格 と 考 え れ ば 、 z’ を 価 値 額 と み な す こ と が で き るで あ ろ う 。 食 品 の 価 格 は 、 少 な く と も そ の 食 品 に含 ま れ る 栄 養 素 の ( 潜 在 ) 価 格 の 合 計 額 と 同 じ であ る 必 要 が あ る と 考 え ら れ る で あ ろ う 。こ こ で 、 「 限 界 費 用 」 と い う 概 念 を 導 入 す る 。

所 与 の 実 行 可 能 解 を 出 発 点 と し て 、 ビ タ ミ ン の 摂取 量 を か え ず に カ ロ リ ー の 摂 取 量 を 1 単 位 増 や した 場 合 ( カ ロ リ ー の 摂 取 量 を か え ず に ビ タ ミ ン の摂 取 量 を 1 単 位 増 や し た 場 合 ) に 生 じ る 食 餌 費 用の 増 加 分 を 限 界 費 用 と 呼 ぶ 。 実 は 、 双 対 変 数 は 、限 界 費 用 の こ と な の で あ る 。た と え ば 、 100 単 位 の 食 品 4お よ び 300 単 位 の 食 品

5 か ら な る 制 約 条 件 を 満 た す ( 実 行 可 能 な ) 食 餌を 出 発 点 と し て み よ う 。 ち ょ う ど 、 カ ロ リ ー 1 単位 だ け を 摂 取 す る た め の 食 品 、 ま た 、 ち ょ う ど 、ビ タ ミ ン 1 単 位 だ け を 摂 取 す る 食 品 の 組 み 合 わ せを 次 式 の よ う に 見 い だ す こ と が で き る 。 マ イ ナ スの 要 素 は 、 た と え ば 、 最 初 の 式 の 場 合 、 次 の よ うに 説 明 す れ ば よ い で あ ろ う 。 食 品 5 を 1 単 位 増 やし 、 同 時 に 食 品 4を 1単 位 減 ら す と 費 用 は 、 12 ド ル- 11 ド ル = 1 ド ル か か る 、 と 。 同 様 に あ と の 式 では 、 限 界 費 用 = 10 ド ル と 計 算 で き る 。

34

Page 35: 2002the0043/GAMSBUNPO.doc  · Web viewdnlp 非連続微分非線形計画。「滑らか」でない関数があらわれる非線形計画。 rmip 緩和混合整数計画。非連続変数を含むが非連続制約が緩和されている。整数、0-1変数は上下限内の任意の値を取ることができる。

こ の 場 合 は 、 簡 単 に 一 意 に 限 界 費 用 が 確 定 で きる が 、 出 発 点 と な る 食 餌 が 非 効 率 な も の で あ っ たり す る と 、 限 界 費 用 が マ イ ナ ス に な っ て し ま う 可能 性 も あ る が 、 そ の よ う な 食 餌 は 考 察 か ら は ず して よ い で あ ろ う 。上 式 は 、 各 栄 養 素 を い わ ば 個 別 に 購 入 す る 方 法を 示 し て い る 。 ま た 、 明 ら か に 、

で あ る 。 各 栄 養 素 の 限 界 費 用 を 並 べ て ベ ク ト ル u’ と 書 く こ と に す る と 、

.

付 録 2 の 用 語 で 間 接 費 用 と 呼 ん で い た も の は 、 この u’ に A の 列 ベ ク ト ル を 左 か ら 乗 じ た も の で ある 。 最 小 化 問 題 の 最 適 解 で は 、 直 接 費 用 - 間 接 費用 ≧ 0 と な る は ず だ か ら 、 こ の u’ は 、 次 式 を 満 たす 。

あ る い は

と こ ろ で 、 原 問 題 ( 最 小 化 問 題 ) の 制 約 式

と 上 の 式 を 比 べ 、

で あ る こ と が わ か る 。 双 対 問 題 ( こ の 場 合 、 最 大化 問 題 ) の 最 適 解 に お け る 目 的 関 数 u’bの 値 は 、 原問 題 ( 最 小 化 問 題 ) の 任 意 の 実 行 可 能 解 に お け る

35

Page 36: 2002the0043/GAMSBUNPO.doc  · Web viewdnlp 非連続微分非線形計画。「滑らか」でない関数があらわれる非線形計画。 rmip 緩和混合整数計画。非連続変数を含むが非連続制約が緩和されている。整数、0-1変数は上下限内の任意の値を取ることができる。

目 的 関 数 c’x の 値 以 下 で あ る 。原 問 題 ( 最 小 化 問 題 ) の 最 適 解 で は 、 直 接 費 用

- 間 接 費 用 ≧ 0で あ る こ と は す で に 見 た と お り で ある 。 ま た 、 正 の レ ベ ル で あ る プ ロ セ ス で は 、 直 接費 用 - 間 接 費 用 = 0 だ か ら 、 「 双 対 定 理 」 が 成 り立 つ 。 つ ま り 、 最 小 化 問 題 の 最 適 解 に お け る 目 的関 数 の 値 と 最 大 化 問 題 の 最 適 解 に お け る 目 的 関 数の 値 と は 等 し い 。

な お 、 輸 送 問 題 ( 付 録 2 ) に つ い て 、 原 問 題 を再 掲 す る と 、

s.t.

双 対 問 題 は 、 以 下 の よ う な 問 題 で あ る 。

双 対 問 題 の 制 約 式 は 、 任 意 の 工 場 i と 販 売 地 区 j の組 み 合 わ せ に 対 し て 、 そ の 地 区 で の 価 値 が 工 場 での 価 値 と 輸 送 費 の 和 よ り 大 き く な っ て は な ら な いこ と を 意 味 す る 。 独 立 な 式 が 足 り な い の で 、 未 知数 の う ち ど れ か ひ と つ に 任 意 の 値 ( た と えば 、 uC ) を 与 え れ ば よ い 。 結 果 は 、 次 表 。

工 場 需 要 地

A B C 1 2 3 4 5変数

uA uB uC v1 v2 v3 v4 v5

36

Page 37: 2002the0043/GAMSBUNPO.doc  · Web viewdnlp 非連続微分非線形計画。「滑らか」でない関数があらわれる非線形計画。 rmip 緩和混合整数計画。非連続変数を含むが非連続制約が緩和されている。整数、0-1変数は上下限内の任意の値を取ることができる。

トンあたりドル

20 10 0 30 35 25 40 25

37