|
目標計画法Ver3.1.1 正式版販売ご案内
一. 目標計画法GLPS 正式版販売
- GLPS 正式版販売価額。
「目標計画法(GLPS)Ver3.1.1正式版」特別価額29,000円
- ご購入申込みについては本サイトの正式版商品販売ご案内をご覧下さい。
二. GLPS Ver3.1.1正式版の特徴
GLPSはgoal programming system を略したもので目標計画法専用の
パッケージです。
- 絶対順数のインプリメンテーション目標計画法を採用しています。
- 解法は有界変数法による改定シンプレックス法と改定双対シンプレックス法両方を併用しています。
- 整数変数と連続変数の混在を許す混合整数計画法を採用しています。
- 計算精度を上げるために逆行列計算の再逆転(reinversion)を取入れています。
- 単体判定基準は複合加重法を用いています。
- 開発環境はVisual c++ 6.0です。
- すべて倍精度演算です,出力有効数字桁数を最大17桁まで指定できます。
- モデル規模(制約式と変数の数)実用上無制限、ユーザ使用システム構成によります。
- 計算中ステータス ダイアログが現れます。数理計画問題は、現実全て解けるわけではなく、
特に大規模なモデルには計算時間が掛ります。ステータスダイアログは問題の解かれ具合を報告しているリアルデータです。
本格的モデルの構築が最適なパッケージとなっております。
- GLPSデータ入力には、定式化したモデルを、ほぼそのまま編集画面に入力するだけで済みます。
- LINDO用のLPモデルファイルの拡張子をGPDに変更するだけで、GLPSで再利用できます。
例 test1.ltx を test1.gpd に拡張子変換
- 組合せ最適化の対応。
三. GLPS ver3.1応用例
- 生産管理応用例
ある工場でa、b二つの作業係があるとします。この二つの作業係はP1、P2種類の製品を作っています。a係は経験者がたくさんいるので作業率はb係より上回ります。一時間P1製品10kg、P2製品8kgの生産能力があります。一方b係は新入社員が混じっているため、一時間P1製品8kg、P2製品5kgしか生産能力がありません。a、b二つの作業係とも一日八時間の正常勤務時間が規定されます。この勤務時間内作った各製品の利益は、製品P1が20円/kg、P2が10円/kgです。また正常時間以外に必要があれば、各係とも一日四時間の残業が許され、残業時間内作った製品利益はP1が15円/kg、pP2が7円/kg。少なくとも各作業係とも一日四時間以上働かなければなりません。製品販売については、現在の工場の生産能力を十分上回るだけの需要が見込まれています。
この工場の経営方針を目標重用度の順序にまとめると以下になります。
- p2製品はこれからの主力製品として売り出すことを考えており、潜在的市場は有望であると判断しています。そこで市場獲得のためにも、目標として一日75kg以上を生産したいと思っています。
- 一日の利益を2000円以上にします。
- なるべく残業しないこと、もし残業しなければならない場合、a係に先に残業させます。
この工場の目標分析を目標計画法で表現すると下のようなモデルになります。
まず変数の設定
X11 :a係正常時間内P1製品を作る勤務時間。
X12 :a係正常時間内P2製品を作る勤務時間。
X13 :a係残業時間内P1製品を作る勤務時間。
X14 :a係残業時間内P2製品を作る勤務時間。
X21 :b係正常時間内P1製品を作る勤務時間。
X22 :b係正常時間内P2製品を作る勤務時間。
X23 :b係残業時間内P1製品を作る勤務時間。
X24 :b係残業時間内P2製品を作る勤務時間。
Y1+ :一日の目標利益を超える値。
Y1― :一日の目標利益の不足値。
Y2+ :P2製品の生産量を75kg超える値。
Y2― :P2製品の生産量の目標75kg達成不足値。
P :一日の利益。
P = 20(10X11+8X21)+10(8X12+5X22)+15(10X13+8X23)+7(8X14+5X24)
目的関数
- 目標行1 minimize Y2ー
- 目標行2 minimize Y1ー
- 目標行3 minimize X23 + X24
- 目標行4 minimize X13 + X14
制約条件
- 利益 P + Y1ー ー Y1+ = 2000
- P2 8(X12 + X14 + 5(X22 + X24) + Y2ー ー Y2+ = 75
- T1 4 ≦ X11 + X12 ≦ 8
- T2 4 ≦ X21 + X22 ≦ 8
- T3 0 ≦ X13 + X14 ≦ 4
- T4 0 ≦ X23 + X24 ≦ 4
- すべての変数 ≧ 0
GLPS用インプット・データ
!
TITLE 生産管理応用モデル
!X11 :A係正常時間内P1製品を作る勤務時間。
!X12 :A係正常時間内P2製品を作る勤務時間。
!X13 :A係残業時間内P1製品を作る勤務時間。
!X14 :A係残業時間内P2製品を作る勤務時間。
!X21 :B係正常時間内P1製品を作る勤務時間。
!X22 :B係正常時間内P2製品を作る勤務時間。
!X23 :B係残業時間内P1製品を作る勤務時間。
!X24 :B係残業時間内P2製品を作る勤務時間。
!
!この工場の経営方針を目標重用度の順序にまとめると以下になる
!P2製品はこれからの主力製品として売り出すことを考えており
!目標として一日75kg以上を生産したいと思っている。
MIN Y2-
!一日の利益を3500円以上にする
MIN Y1-
!なるべく残業しない
MIN X23 + X24
MIN X13 + X14
ST
利益) 200X11 + 160X21 + 80X12 + 50X22 + 150X13 + 120X23 + 56X14 + 35X24 + Y1- - Y1+ = 2000
P2) 8X12 + 8X14 + 5X22 + 5X24 + Y2- - Y2+ = 75
T1) 4 <= X11 + X12 <= 8
T2) 4 <= X21 + X22 <= 8
T3) 0 <= X13 + X14 <= 4
T4) 0 <= X23 + X24 <= 4
END
GLPSの計算結果
@ 作業時間割り
X11 = 0.017 X12 = 7.983
X13 = 0 X14 = 1.392
X21 = 8 X22 = 0
X23 = 0 X24 = 0
A 目標分析
第一目標 P2製品=75kg目標達成した。
第二目標 利益=2000 目標達成した。
第三目標 b係残業なし、目標達成した。
第四目標 a係残業1.392時間。
連続変数の最適化計算の結果は残業時間は1.392になるのもやむを得ませんが、実際管理上勤務時間は1時間の整数単位が望ましいです。
今度はver2.7.6のGLPSを使って勤務時間の変数だけ(X11,X12,X13,X14,X21,X22,X23,X24)を整数変数に指定してもう一回実施最適化計算。
実際インプット・データの修正は次のようになる。(赤色部分)
!
TITLE 生産管理応用モデル
!X11 :A係正常時間内P1製品を作る勤務時間。
!X12 :A係正常時間内P2製品を作る勤務時間。
!X13 :A係残業時間内P1製品を作る勤務時間。
!X14 :A係残業時間内P2製品を作る勤務時間。
!X21 :B係正常時間内P1製品を作る勤務時間。
!X22 :B係正常時間内P2製品を作る勤務時間。
!X23 :B係残業時間内P1製品を作る勤務時間。
!X24 :B係残業時間内P2製品を作る勤務時間。
!
!この工場の経営方針を目標重用度の順序にまとめると以下になる
!P2製品はこれからの主力製品として売り出すことを考えており
!目標として一日75kg以上を生産したいと思っている。
MIN Y2-
!一日の利益を3500円以上にする
MIN Y1-
!なるべく残業しない
MIN X23 + X24
MIN X13 + X14
ST
利益) 200X11 + 160X21 + 80X12 + 50X22 + 150X13 + 120X23 + 56X14 + 35X24 + Y1- - Y1+ = 2000
P2) 8X12 + 8X14 + 5X22 + 5X24 + Y2- - Y2+ = 75
T1) 4 <= X11 + X12 <= 8
T2) 4 <= X21 + X22 <= 8
T3) 0 <= X13 + X14 <= 4
T4) 0 <= X23 + X24 <= 4
END
!変数X11, X12, X13. X14, X21, X22, X23, X24 は整数
GIN X11,X12,X13,X14,X21,X22,X23,X24
追加部分(GIN)は整数変数指定のパラメータです
正式版混合整数計算結果
@ 作業時間割り
X11 = 0 X12 = 8
X13 = 1 X14 = 1
X21 = 7 X22 = 1
X23 = 0 X24 = 0
A 目標分析
第一目標 P2製品=77kg目標達成した。
第二目標 利益=2016 目標達成した。
第三目標 b係残業なし、目標達成した。
第四目標 a係残業2時間。
-
0-1計画問題の適用
0-1変数整数計画法の例
obj 4X1+8X2+9X3+4X4+ X5 ⇒ min
sub.to 2X1−3X2+6X3+ X4−3X5 ≧ 3
X1−6X2+2X3+ X4−3xX5 ≦ 1
2X2+3X3−2X4− X5 ≧ 1
0 ≦ Xj ≦ 1 Xj: 整数(j=1,2…5)
GLPS用インプット・データ
TITLE 01program01
MIN 4X1 + 8X2 + 9X3 +4X4 +X5
ST
2X1 - 3X2 + 6X3 + X4 - 3X5 >= 3
X1 - 6X2 + 2X3 + X4 - 3X5 <= 1
2X2 + 3X3 -2X4 - X5 >= 1
END
INT 5
Ver.2.7.7正式版GLPSの計算結果
//
//***** glps columns変数最適化解 *****
//
[ モデル名 : 01program01 ]
---------------------------------------------------------------
Number ColumnsName At Activity ReducedCost
---------------------------------------------------------------
1 | X1 | | 0. | 4. |
2 | X2 | | 0. | 8. |
3 | X3 | BD | 1. | 9. |
4 | X4 | | 0. | 4. |
5 | X5 | BD | 1. | 1. |
//
//***** GLPS rows変数最適化解 *****
//
[ モデル名 : 01program01 ]
---------------------------------------------------------------
RowName At SlackActivity DualPrice
---------------------------------------------------------------
目標行1 | BS | -10. | 0. |
制約行1 | | 0. | 0. |
制約行2 | BS | 2. | 0. |
制約行3 | BS | 1. | 0. |
*
**************************
* GLPS 目標達成分析
**************************
*
1 目標行1 目標値 10.
|