輸送網非凸型費用関数例


下図のようなネットワークをもつ輸送問題を考えます。
ネットワーク図

供給地A、B、Cから需要地I、J、K、L、Mに製品を輸送することを考えたとき、 中継地点D、E、F、G、Hを通る道があります。

供給地:Aの供給量 12、Bの供給量 15、Cの供給量 9
需要地:合計需要量 20

この最小費用輸送問題は非凸型費用関数を持つ、この種の問題には今までのOut-Of-Kilter法が 適用できません。そこでTNFSは「非凸型費用関数を持つ輸送問題」に適用でき、 最適解を求める事のできるアルゴリズムを開発しました。
以下TNFSを使って最適化計算を行います。

枝(1,2)の非凸型費用関数図
ネットワークの各アーク(枝)に対するデータは下の表の通りです。
FromToLower 固定費CostLimit Arc型
123 3003005 非凸型
    9001007  
    110015010  
    170020012  
135 5002508 非凸型
    155020011  
    215010015  
143 2001005 凸型
    4002007  
    8003009  
254 4003007 非凸型
    13002509  
    180020013  
    260010015  
351 1004003 非凸型
    9002005  
361 2003002 非凸型
    5002504  
    10002006  
463 2002005 非凸型
    60010011  
560 04009 直線
572 1503005 非凸型
    10502008  
582 4004004 非凸型
    12002008  
    200010013  
681 2005003 非凸型
    12003006  
    210015010  
    270010015  
691 40020015 直線
7100 04003 非凸型
    120010010  
7112 2003004 非凸型
    8001508  
    14005015  
7120 025010 直線
8121 3003004 非凸型
    12002009  
8133 4003004 非凸型
    7002506  
    120015010  
    18005012  
9131 2002504 非凸型
    11002007  
    170010012  
9140 05002 非凸型
    10003004  
    160015010  
    250010015  
10150 0099999 直線
11150 0099999 直線
12150 0099999 直線
13150 0099999 直線
14150 0099999 直線
15120 0020 直線

 TNFS用インプット・データ

実際このモデルのインプット・データは‥‥\Program File\TNFS\のフォルダ内にあります。
TNFSメニューバーの ファイル → 開く→ Sample12.TNFファイルを開くことによって見ることができます。

ショートカット
ツールバー:
キーボード: CTRL+O
インプット・データの与え方はTNFS操作ガイドを参照して下さい。

インプット・データ一覧
!
! 非凸型費用関数例
!
TITLE Sample12
ARC(1,2) 3,300,300,5,900,100,7,1100,150,10,1700,200,12
ARC(1,3) 5,500,350,8,1550,200,11,2150,100,15
ARC(1,4) 3,200,100,5,400,200,7,800,300,9
ARC(2,5) 4,400,300,7,1300,250,9,1800,200,13,2600,100,15
ARC(3,5) 1,100,400,3,900,200,5
ARC(3,6) 1,200,300,2,500,250,4,1000,200,6
ARC(4,6) 3,200,200,5,600,100,11
ARC(5,6) 0,0,400,9
ARC(5,7) 2,150,300,5,1050,200,8
ARC(5,8) 2,400,400,4,1200,200,8,2000,100,13
ARC(6,8) 1,200,500,3,1200,300,6,2100,150,10,2700,100,15
ARC(6,9) 1,400,200,15
ARC(7,10) 0,0,400,3,1200,100,10
ARC(7,11) 2,200,300,4,800,150,8,1400,50,15
ARC(7,12) 0,0,250,10
ARC(8,12) 1,300,300,4,1200,200,9
ARC(8,13) 3,400,300,4,700,250,6,1200,150,10,1800,50,12
ARC(9,13) 1,200,250,4,1100,200,7,1700,100,12
ARC(9,14) 0,0,500,2,1000,300,4,1600,150,10,2500,100,15
ARC(10,15) 0,0,0,999999
ARC(11,15) 0,0,0,999999
ARC(12,15) 0,0,0,999999
ARC(13,15) 0,0,0,999999
ARC(14,15) 0,0,0,999999
ARC(15,1) 20,0,0,20
END
最適化計算

最適化計算の操作

メニューバーのTNFS最適流量計算 をクリックします。
ショートカット
ツールバー:
キーボード: Alt+T

このような入力をもとに計算された結果は下の表の通りです。
//
//***** TNFS計算経過一覧表 *****
//
T N F S Data Input 2005/09/27 14:03:10

Data = SAMPLE12
THIS PROBLEM HAS 15 Nodes, 25 Arcs DATA ERROR = 0

計算終了、最適解が求められました。 2005/09/27 14:03:11

Branches = 186

Elapsed Time = 00:00:01

計算結果

//
//***** ネットワーク最適流量費用一覧表 *****
//
No.FromTo LowerUpperArc Cost Flow
112 3121000 6
213 515500 5
314 391400 9
425 4151000 6
535 15100 1
636 161000 4
746 3111000 9
856 090 0
957 28750 4
1058 213800 3
1168 115200 1
1269 1152600 12
13710 0100 0
14711 215200 2
15712 010500 2
16812 19300 1
17813 312400 3
18913 1122200 12
19914 0150 0
201015 0999990 0
211115 0999990 2
221215 0999990 3
231315 0999990 15
241415 0999990 0
25151 20200 20

輸送費用合計 = 13950.

結果考察
この非凸型費用関数輸送問題は、15個の枝が非凸型費用関数型を持ち、 非凸型のコストカーブの組合せ(Segment Combination)は7,962,624組みありますが、 TNFSはたった186回で、しかも計算時間が一秒以内に最適解に到達するという、 無駄のない画期的な計算方法と言えるでしょう。

Copyright(C)1998-2005 M.Shiimori , All Rights Reserved.