は じ め に
本資料の目的は,弘津(2006
b)で使用した,プログラムを提示すること
にある。このプログラムは試行錯誤をしながら作成したものであった。その ためプログラムの中が十分に整理されている状態ではなかった。まだ十分と はいいがたいが,その整理を行った。この過程で小さなバグが見つかったた め,その修正も行った。この修正によって,弘津(2006b)で示したグラフ
に変化が現れたので,これらのグラフも追加した。しかし,弘津(2006b)
で示した結論を大きく変えるものではない。
1.プログラムの概要とプログラムリスト
まず,プログラムリストの関係をクラス図で示したものが図表1である。
そして具体的なプログラムのリストはこの後ろのプログラムリスト1−1〜
《資 料》
可変価格取引システムの実験に 使用したプログラム
弘 津 真 澄
目 次 はじめに
1.プログラムの概要とプログラムリスト 2.グラフの修正
3.再構築の必要性−拡張と配布−
おわりに
−65−
( 1 )
14−2に示される。これらのプログラムの仕様ついては弘津(2006
a)と弘
津(2006
b)に記してあるため,ここでは触れない。また,開発環境には
Microsoft Visual Basic 2005
を使用した。プログラムの中心は,「cエージェント」というクラスである。これが
「Form 1」上でオブジェクトとして生成され,これらが相互作用をした結果 として,図表2−1−1〜図表2−1−4で示されるようなグラフのもとと なるデータが出力されることになる。
実行する際にウィンドウに表示されるフォームのデザインは,図表1−2 に示される通りである。この部分は完全に,プログラム公開用のお化粧部分 である。もともと
CSV(カンマ区切り)のテキストファイルへの出力しか
していなかったが,Excelへの出力も可能にさせてみた。本来的な機能のみ1) http : //mas.kke.co.jp/(MAS
コミュニティ)。 図表1−1 クラス図−66−
( 2 )
であれば,コマンドプロンプトからコマンドを打ち込み実行させたので十分 である。
コーディングスタイルは
KK-MAS(KK-Multi Agent Simulator)
1)のサンプ ルプログラムに似たものにし,変数名などをできる限り日本語で記述した。このように記述することでプログラムに縁遠い人でもコードをある程度読め ると思う。また,このような記述方法をしたため,多くのコメントは冗長で あるので削除した。
試行錯誤を繰り返しながらコーディングをしたため,整理はしたものの,
まだ冗長なコードや不要な変数が含まれている。これらの中には,このプロ グラムの拡張性を考慮した部分であったり,プログラムのテストに使用した 部分であったりするものが含まれる。そのため無理に取り除くことはしな かった。それにしても,「c製造業」「c流通」「c消費者」の間,そして「Form 1」
中のオブジェクト生成部分に冗長なコードが見受けられる。また,各クラス の変数の宣言を,ほとんど
Public
で行っていることも,実行上問題なくプ ログラムのテストに必要であったということを考えても,少し安易であった と思う。これらの問題には,このプログラムを再構築するときに対処する予定である。
図表1−2
Form 1
のデザイン可変価格取引システムの実験に使用したプログラム(弘津) −67−
( 3 )
プログラム1−1
c
エージェント−68−
( 4 )
プログラム1−2
c
エージェント可変価格取引システムの実験に使用したプログラム(弘津) −69−
( 5 )
プログラム1−3
c
エージェント−70−
( 6 )
プログラム1−4
c
エージェント可変価格取引システムの実験に使用したプログラム(弘津) −71−
( 7 )
プログラムリスト2
c
流通−72−
( 8 )
プログラムリスト3
c
小売業プログラムリスト4
c
卸売業可変価格取引システムの実験に使用したプログラム(弘津) −73−
( 9 )
プログラムリスト5
c
製造業−74−
( 10 )
プログラムリスト6
c
消費者可変価格取引システムの実験に使用したプログラム(弘津) −75−
( 11 )
プログラムリスト7−1
Form 1
−76−
( 12 )
プログラムリスト7−2
Form 1
可変価格取引システムの実験に使用したプログラム(弘津) −77−
( 13 )
プログラムリスト7−3
Form 1
−78−
( 14 )
プログラムリスト7−4
Form 1
可変価格取引システムの実験に使用したプログラム(弘津) −79−
( 15 )
プログラムリスト7−5
Form 1
−80−
( 16 )
プログラムリスト7−6
Form 1
可変価格取引システムの実験に使用したプログラム(弘津) −81−
( 17 )
プログラムリスト7−7
Form 1
−82−
( 18 )
プログラムリスト7−8
Form 1
可変価格取引システムの実験に使用したプログラム(弘津) −83−
( 19 )
プログラムリスト8−1 共通の変数など
−84−
( 20 )
プログラムリスト8−2 共通の変数など
プログラムリスト9 黒板統計
可変価格取引システムの実験に使用したプログラム(弘津) −85−
( 21 )
プログラムリスト10 帳簿
−86−
( 22 )
プログラムリスト11−1
c
予約可変価格取引システムの実験に使用したプログラム(弘津) −87−
( 23 )
プログラムリスト11−2
c
予約−88−
( 24 )
プログラムリスト11−3
c
予約プログラムリスト12 予約_ステップ内
可変価格取引システムの実験に使用したプログラム(弘津) −89−
( 25 )
プログラムリスト13 予約_個別
プログラムリスト14−1 …のソート
−90−
( 26 )
プログラムリスト14−2 …のソート
可変価格取引システムの実験に使用したプログラム(弘津) −91−
( 27 )
2.グラフの修正
先のプログラムの整理を行う過程で小さなバグが見つかり,修正を行った。
この修正によって,弘津(2006
b)で示したグラフが変わった。そのグラフ
が図表2−1−1〜図表2−2−4である。ここの図表2−1−1〜図表2−1−4が弘津(2006
b)の図表2−1〜図表2−4に対応し,ここの図表
2−2−1〜図表2−2−4が弘津(2006b)の図 表2−9〜図 表2−1
2に 対応している。それぞれのグラフの意味合いや集計方法についての説明は省 略する。弘津(2006b)を参照されたい。
これらで,大きく異なる部分は次の2点である。ひとつは,図表2−1−
1における製造業の個数が,弘津(2006
b)の図表2−1のように大きく振
れていない点である。もうひとつは,図表2−1−3における卸売業と製造 業の個数が,弘津(2006b)の図表2−3と比較して,安定するまでにステッ
プ数(時間)がかかっていることである。図表2−2−1〜図表2−2−4を見てもわかるように予約があるほうが,
本来あるべきエージェントの個数である理論値に近くなるということには弘
津(2006
b)と同じである。また図表2−1−1〜図表2−1−4から,新
規参入がエージェントの個数を早く安定させるために寄与していることも同 様である。そのため弘津(2006
b)の結論には大きな影響はない。
3.再構築の必要性−拡張と配布−
ここで提示したプログラムは,図表1−1のような全体像が見えない中で 試行錯誤を繰り返しながら作成したものである。そのため,柔軟な拡張がで きない。また時間的な制約もあったため回りくどいコーディングを避け,安 易なコーディングとなっている部分がある。そのため他の人に配布するには 適していない部分もある。本節のサブタイトに掲げた,拡張と配布を考える
−92−
( 28 )
図表2−1−1 50000ステップ時系列(予約:なし,新規参入:なし)
図表2−1−2 50000ステップ時系列(予約:なし,新規参入:なし)
図表2−1−3 50000ステップ時系列(予約:あり,新規参入:なし)
図表2−1−4 50000ステップ時系列(予約:あり,新規参入:あり)
可変価格取引システムの実験に使用したプログラム(弘津) −93−
( 29 )
図表2−2−1 個数の出現頻度(予約:なし,新規参入:なし)
図表2−2−2 個数の出現頻度(予約:なし,新規参入:あり)
図表2−2−3 個数の出現頻度(予約:あり,新規参入:なし)
図表2−2−4 個数の出現頻度(予約:あり,新規参入:あり)
−94−
( 30 )
と,このプログラムは再構築をしたほうが良いと思われる。
次のようにたとえると理解してもらいやすいだろう。建て増しに建て増し を重ねて,うねうねと曲がった廊下が連なる旅館が,現在のプログラムであ る。これを縦横に真っ直ぐな廊下が通ったビルにしようというのである。そ の際に,これまでのプログラムの持つ問題を克服したいと考えている。
現在のプログラムには次のような問題がある。
第1に,流通の段階が,製造・卸・小売・消費の4段階に固定されている ことである。この流通の段階数を可変化しようというのである。これは比較 的簡単に行うことができると考えている。図表1中の「c流通」から派生し た「c卸売」「c小売」はほとんど同じものであり,これらをもとに作成され たオブジェクトの管理の方法を工夫するだけでよさそうである。
第2に,処理速度の遅さである。現在「予約:あり」の条件で50000ステッ プの実験に2時間を要している。ハードウェアの進歩によって,ある程度の 処理速度の改善は期待できるが,このプログラムのままでは劇的な改善は見 込めない。プログラムの仕組みの根本を変えてしまうため,まったく同じ結 果は得られなくなるが,実験時間を1/4〜1/16に短縮できる可能性がある。
2時間のものであれば30分〜7.5分にできるということである。これが実現 すれば,様々な要素を変えた多様な比較実験が容易になる。ただし,この実 現にはハードウェアの更新も必要となる。
第3に,複数の商品の流通ができないことである。これには,大幅な修正 が必要になると思われる。現在のところ簡単に解決するアイデアはない。こ の部分は,今までと同様に試行錯誤をしながら進めていく以外にない。
第4に,カプセル化が十分でないため,プログラムの一部を部品化して他 の人に配布し活用してもらうことが,容易にできないことである。これから 試行錯誤をしながら開発をしていく部分は別として,その他の部分は他の人 への配布が容易になるようカプセル化を進めていく必要がある。プログラム 可変価格取引システムの実験に使用したプログラム(弘津) −95−
( 31 )
がいろんなことを表現できるようになったとき,そのさまざまな要素を変え た比較実験の数は,幾何級数的に増加すると思われる。このとき処理速度の 向上だけでは吸収しきれないことが起こる,と予想される。そのためにも,
多くの人がこのような実験に参加できる環境の整備が,必要だと考える。
以上4つ以外にも問題はあると思われるが,当面これらに取り組む予定で ある。
お わ り に
本資料の目的は,弘津(2006
b)で使用した,プログラムを提示すること
であった。そのため第1に,「プログラムの概要とプログラムリスト」で示 した。このプログラムを提示するために,それを整理している過程で見つけ られたバグによって弘津(2006b)で示したグラフが変化することが明らか
になった。そこで第2に「グラフの修正」として追加した。そして今後の課 題として第3に,「再構築の必要性」として4つの問題点を提示した。(2007年3月19日提出)
参 考 文 献
弘津真澄(a)「流通のためのマルチエージェント型モデル−総取引数極小化原理につ いての発見物−」『福岡大学商学論叢』50巻
4
号,2006年3
月,309〜328頁。弘津真澄(b)「可変価格取引システム−自律分散型
SCM
システムの拡張−」『福岡 大学商学論叢』51巻1
号,2006年6
月,91〜114頁。山影進・服部正太編『コンピュータのなかの人工社会−マルチエージェントシミュ レーションモデルと複雑系』構造計画研究所,2002年
8
月。http : //mas.kke.co.jp/(MAS
コミュニティ)。−96−
( 32 )