数理システム 最適化メールマガジン

バックナンバー ( 2011 Vol.3 ) 2011 年 5 月 25 日 発行

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  数理システム NUOPT メールマガジン  http://www.msi.co.jp/nuopt/
                           2011 Vol.3 ( 2011 年  5 月 25 日 発行 )
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

数理システム NUOPT メールマガジンでは,数理計画法パッケージ NUOPT 
に関する様々な情報やご案内を提供していきます.

++++ [目次] ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 ■ <トピック> FIOPT 新バージョンリリース
 ■ <トピック> マーケティングソリューションページ公開
 ■ <トピック> 発表・出展の報告
 ■ <トピック> 数理計画用語集 用語追加
 ■ <トピック> 数理計画問題の豆知識(第 5 回)
 ■ <セミナー> NUOPT セミナーのご案内
 ■ <  tips  > SIMPLE 記述のテクニック(第 1 回)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

******************************************************************
■ <トピック>  FIOPT 新バージョンリリース
******************************************************************

金融工学分野に特化したソフトウェア FIOPT の新バージョンがリリース
されました!

最適化エンジンとして NUOPT,統計処理として S-PLUS/R が一つのプラッ
トフォーム上でシームレスに繋がり,マウス操作一つで様々なモデルを構
築することが出来ます.

以下に FIOPT で出来ることの例を挙げます.

  ・マルチファクターモデルを繰り返し実行してバックテスト
  ・慶応大学枇々木先生による多期間モデル
  ・データクレンジングはもちろん統計的手法でデータを整備
  ・上記を含め典型的な処理フローは全てサンプルとして収録済み
  ・各々の機能は独立しており,思い通りにカスタマイズ可能

詳しくは HP
  http://www.msi.co.jp/fiopt/
をご覧ください.

ご興味がある方は,是非
  http://www.msi.co.jp/nuopt/info/index.html
よりお問い合わせください.

                                                 (村山 昇)

******************************************************************
■ <トピック>  マーケティングソリューションページ公開
******************************************************************

NUOPT の導入事例紹介のページに新たな項目「マーケティングソリュー
ション」が加わりました.
  http://www.msi.co.jp/nuopt/solution/marketing/index.html

膨大なデータの集まるマーケティングにおいて,数理計画法を用いた意思
決定は重要な位置を占めています.その代表的なソリューションとして,
本ページでは広告配信割当の最適化およびリスティング広告最適化を紹介
しています.是非ご覧ください.

また,リスティング広告最適化のページからは,リスティング広告最適化
のソフト KeyOpt の試用版が Web 上からダウンロードできます.
  [(注)提供を終了したためアドレスを削除いたしました]

是非試用し,最適化の効果を実感してください.

                                                 (藤井 浩一)

******************************************************************
■ <トピック>  発表・出展の報告
******************************************************************

5 月 7 日~ 8 日に開催された「日本計算機統計学会第 25 回大会」にて
出展・ソフトウェア発表を行いました.お立ち寄り頂いた方々誠にありが
とうございました.発表は統計・データマイニング・最適化・シミュレー
ションのトータルソリューションについて行いました.

5 月 11 日~ 13 日に開催された「データウェアハウス & CRM EXPO」に
て出展・ブース内発表を行いました.最適化に関連する発表については,

  ■ 生産スケジューリング最適化~見える化の次のステージへ~
  ■ SCM とトータルソリューション
  ■ 金融統合プラットフォーム FIOPT ご紹介
  ■ 広告配信最適化~膨大なデータと効率的な配信計画の立案~

というテーマでお届けいたしました.

                                                 (佐藤 誠)

******************************************************************
■ <トピック>  数理計画用語集 用語追加
******************************************************************

弊社数理計画部では,「数理計画用語集」を公開しています.
    http://www.msi.co.jp/nuopt/glossary/index.html

今回の新語は以下の通りです.

  <新語>
     ・CRM
     ・スポット価格
     ・スポット市場
     ・スポット電力
     ・需要予測

ご意見,ご要望等ございましたら,お気軽に用語集編集委員会
  nuopt-glossary@ml.msi.co.jp
までご連絡ください.

                                                 (村山 昇)

******************************************************************
■ <トピック>  数理計画問題の豆知識(第 5 回)
******************************************************************

このコーナーでは数理計画に関する豆知識をご紹介していきます.

今回は,NUOPT で解ける非線形最適化問題の規模についての調査結果を紹
介します.

調査に使用した問題は次の通りです.

-----------------------------------------------------------------
  maximize:
    sum( f[i], i )

  subject to:
    sum( g[i], i) >= L
    sum( x[i], i) <= B
    l[i] <= x[i] <= u[i]  (i=1, ..., n)
-----------------------------------------------------------------

ここで,x[i] (i=1, ..., n) が変数,f[i] と g[i] は x[i] に依存する
上に凸な非線形関数とします.

この非線形最適化問題を 100 万変数から 1000 万変数の規模で NUOPT で
解いた結果(求解時間,使用メモリ)を以下にまとめます.

[求解結果]
         n,       時間,  使用メモリ
   1000000,    38.8 秒,     0.96 GB
   2000000,    68.0 秒,     1.85 GB
   3000000,    98.7 秒,     2.80 GB
   4000000,   162.1 秒,     3.75 GB
   5000000,   163.8 秒,     4.65 GB
   6000000,   204.5 秒,     5.61 GB
   7000000,   240.9 秒,     6.60 GB
   8000000,   287.1 秒,     7.67 GB
   9000000,   310.3 秒,     8.57 GB
  10000000,   413.2 秒,     9.46 GB

[実験環境]
  CPU    : Intel Xeon W3520 4core @ 2.67 GHz
  Memory : 12 GB

* 今回の問題では 1000 万変数という大規模問題でも十分に実用的な時間
   で求解出来たと言えるでしょう.ですが,どんな大規模非線形最適化問
   題も解けるという訳ではなく,数十変数でも困難な場合もあります.

* 実験にあたり NUOPT 自体をチューンしています.

                                                  (二反田 篤史)

******************************************************************
■ <セミナー>  NUOPT セミナーのご案内
******************************************************************

---- [ NUOPT セミナー開催日程 ] ----------------------------------
  ・ 6 月 14 日 (火) 13:30 ~ 17:30   NUOPT 金融工学セミナー
  ・ 6 月 16 日 (木) 10:00 ~ 12:00   <大阪開催>最適化入門セミナー
  ・ 6 月 21 日 (火) 13:30 ~ 16:30   生産スケジューリング・
                                          自動作成支援セミナー
  ・ 7 月 13 日 (水) 13:30 ~ 17:00   スキルアップセミナー・基礎編
  ・ 7 月 20 日 (水) 13:30 ~ 16:30   最適化入門セミナー

会場:
  <東京開催>
    (株)数理システム・セミナールーム
      (東京都新宿区新宿二丁目 3 番 10 号新宿御苑ビル 4 階)
  <大阪開催>
    AP 梅田大阪(西梅田)
      (大阪市北区曽根崎新地 2-3-21 ax ビル 4 階)

お申し込み先:
  (株)数理システム << NUOPT >> 担当  < nuopt-info@ml.msi.co.jp >
セミナーの詳細:
  下記 URL をご参照ください.
    http://www.msi.co.jp/nuopt/seminar/index.html
------------------------------------------------------------------

■ 金融工学セミナー 6 月 14 日開催

ポートフォリオ最適化からイールドカーブフィッティング,倒産判別まで,
数理計画は金融工学の標準ツールとして位置付けられ,その適用範囲は問
題の多様化に伴って広がっています.

本セミナーでは金融工学と数理計画の接点における理論的な背景から
NUOPT,S+NUOPT,FIOPT を用いた具体的な解決方法まで実務家の方がすぐ
に役立てることが出来る情報をご提供します.

FIOPT は 5 月 9 日にリニューアル販売された製品で,統計やデータ加工,
数理計画ソルバー(NUOPT)等必要なツールがオールインワンの統合プラッ
トフォームです.

セミナーについて詳細はこちらをご覧ください.
  http://www.msi.co.jp/nuopt/seminar/finance.html

FIOPT についてはこちら.
  http://www.msi.co.jp/fiopt/index.html


■ 生産スケジューリング・自動作成支援セミナー 6 月 21 日開催

こちらのセミナーは,最適化ソリューションのみならず意思決定に必要な
"需要予測" "シミュレーション"も併せてご紹介するお得なセミナーになっ
ています.

現実の問題を取り扱う際には,「不確実性」を考慮しなくては結局机上の
空論となってしまいます.最適化・数理計画で出せる答えは通常最も良い
答え 1 つなのですが,それでは本当に現実で使えるソリューションとは
言い難いです.

また,セミナーで取り扱う課題は生産スケジューリングですが,その他の
分野でも取り扱うことが出来る枠組みになるようにセミナーは構築してお
ります.

セミナーについて詳細は以下をご覧ください.
  http://www.msi.co.jp/nuopt/seminar/scheduling.html

両セミナーとも参加費は無料です,皆様のご参加をお待ちしております.

                                                 (佐藤 誠)

******************************************************************
■ <  tips  >  SIMPLE 記述のテクニック(第 1 回)
******************************************************************

このコーナーでは,SIMPLE のモデルファイルの記述に際して,知っておく
と得をするテクニックや,マニュアルでは紹介していない便利な機能など
について,日々 SIMPLE を使用し開発している立場から紹介させて頂けれ
ばと思います.

初回である今回は,何度も使い回されるデータがある場合での SIMPLE の
解釈の高速化方法について紹介いたします.

まずは,以下のモデルをご覧ください.

-- [model.smp] ---------------------------------------------------
options.noDefaultSolve=1; // 求解は行わないことの明示

Set I1(name="I1"), I2(name="I2"), I3(name="I3");
Element i1(set=I1), i2(set=I2), i3(set=I3);
Parameter P1(name="P1",index=I1), P2(name="P2",index=I2),
          P3(name="P3",index=I3);

Set I13(name="I13",dim=2); // 直積集合 I1*I3 の部分集合
Set I23(name="I23",dim=2); // 直積集合 I2*I3 の部分集合

Parameter Q1(name="Q1",index=(I1,I2,I3));
Q1[i1,i2,i3] = P1[i1]*P2[i2]*P3[i3];
Parameter Q2(name="Q2",index=(I1,I2,I3));
Q2[i1,i2,i3] = P1[i1]+P2[i2]+P3[i3];

Parameter R1(name="R1");
R1 = sum(Q1[i1,i2,i3], ((i1,i2,i3),((i1,i3)<I13, (i2,i3)<I23)));
Parameter R2(name="R2");
R2 = sum(Q2[i1,i2,i3], ((i1,i2,i3),((i1,i3)<I13, (i2,i3)<I23)));

R1.val.print();
R2.val.print();
-----------------------------------------------------------------

上記モデルでは,集合 I1,I3 の直積集合 I1*I3 の部分集合 I13 と,
集合 I2,I3 の直積集合 I2*I3 の部分集合 I23 とがあるとき,
     (i1,i3) < I13 かつ (i2,i3) < I23
を満たす (i1,i2,i3) 全体について,
	 Q1[i1,i2,i3] = P1[i1] * P2[i2] * P3[i3];
	 Q2[i1,i2,i3] = P1[i1] + P2[i2] + P3[i3];
各々の和 R1, R2 を計算し,出力しています.

このままでも正しいモデルですが,実は高速化の余地があります.上記
モデルで着目していただきたいのは,R1, R2 の計算式

-----------------------------------------------------------------
R1 = sum(Q1[i1,i2,i3], ((i1,i2,i3),((i1,i3)<I13, (i2,i3)<I23)));
R2 = sum(Q2[i1,i2,i3], ((i1,i2,i3),((i1,i3)<I13, (i2,i3)<I23)));
-----------------------------------------------------------------

における sum の添字の範囲が同一であることです.
SIMPLE では,二度手間はなるべくしないように,内部計算が最適化され
ていますので,

-----------------------------------------------------------------
Set J(name="J",dim=3);Element j(set=J);
J = setOf((i1,i2,i3),((i1,i3)<I13, (i2,i3)<I23));
R1 = sum(Q1[j],j);
R2 = sum(Q2[j],j);
-----------------------------------------------------------------

のように,2 回以上使用されるデータは予めまとめておくことで,2 回目
以降の計算時には,再計算はせずに 1 回目の計算の履歴が参照されます.
このようにすることで,特にデータが大きい時には,目に見えて高速化が
されることがあります.

いかがだったでしょうか.一般のプログラミングにおいても,何度も使い
回されるデータは予めまとめておくというのは,プログラムをコンパクト
にする意味でも推奨される作法かと思います.特に SIMPLE においては,
計算が高速化される可能性もありますので,常に心がけていただければと
思います.

それでは,次回以降も皆様にとって有用な情報をお伝えできればと思って
おりますので,どうぞよろしくお願いいたします.

                                                  (白川 達也)

==================================================================
※ このメールは,展示会・セミナー等で名刺交換をされた方,過去に
    NUOPT に関するお問い合わせを頂いたことのある方,および本メール
   マガジンの配信を希望された方にお送りしています.
※ バックナンバーはこちらから御覧頂けます.
     http://www.msi.co.jp/nuopt/mailmagazine/index.html
※ 本メールマガジンは等幅フォントでお読みになることを推奨します.
※ 今後このメールマガジンが不要な方は,誠にお手数ですが,「メール
   マガジン配信停止」という件名のメールを nuopt-ms@ml.msi.co.jp
   にお送りください.

発行:株式会社 数理システム << NUOPT >> 担当
        東京都新宿区新宿二丁目 4 番 3 号 フォーシーズンビル 10 階
                                e-mail : nuopt-magazine@ml.msi.co.jp
==================================================================

<< 記事の内容に関するお知らせ >>

「マーケティングソリューションページ公開」の記事内でご紹介している 
KeyOpt の試用版につきましては、提供を終了いたしました。
このため、本ページから該当ページへのリンクを削除いたしました。