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

バックナンバー ( 2010 Vol.1 ) 2010 年 2 月 16 日 発行

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

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

++++ [目次] ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 ■ <トピック> NUOPT V12 のリリースにあたって
 ■ <トピック> NUOPT V12 の新機能について
 ■ <トピック> 安定性試験結果について
 ■ <トピック> NUOPT FAQ 公開!
 ■ <トピック> 発表・出展案内
 ■ <トピック> 数理計画用語集 用語追加
 ■ <セミナー> NUOPT セミナーのご案内
 ■ <  tips  > SIMPLE よくある間違い(第 12 回)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

******************************************************************
■ <トピック>  NUOPT V12 のリリースにあたって
******************************************************************

「それではサイズの大きいこの問題だとどうでしょう.厳密解法(分枝限定
法)では 1 分待っても目的関数値 402 の解しか出ませんね.同じ時間をか
けるなら,メタヒューリスティクス解法 WCSP の乱数の種をかえて 30 秒
ずつ流してみましょう.ほら,目的関数値 367.グラフ見てください,ま
あ納得性のある答じゃないですか.実行経過を見ると 15 秒くらいで発見
してますね...」というのは,ここ 3 年くらい使っていたセミナーの例題
の説明の口上.0-1 計画問題に対する WCSP の優位性を示す例です.

しかし,もう使えなくなってしまいました.なぜなら V12 の厳密解法は
3 秒で目的関数値 317 という解を見つけるようになってしまったからです.

分枝限定法に組み込んだ実行可能解探査のヒューリスティクスが我々の常
識を覆してしまいました.WCSP が悪くなったわけではもちろんなく,強力
なカウンターパートが現れて,我々の問題解決の手段が増えたということ.

ほかにも切除平面法が,これまで難問とされていた問題をあっと言う間に
解いてしまったり,これまで「数分」といっていた大規模非線形計画法の
計算時間はもう既に,数秒から数十秒となってしまったりと,我々が問題
解決の場で昨今経験している驚きを V12 を通じてお届けできますこと,
切に願っております.

リリースがらみのお知らせをもう一つ.既にリリースされた統計解析パッ
ケージ S-PLUS のアドオン,S+NUOPT の最新版(V2) はまた別の意味での
最適化の可能性を広げるものです.

数理計画モデルはその適用先のデータあってこそ,というのは我々現場の
人間は身に沁みてわかっているのですが,それを実践するのは意外と難し
い.数理計画法パッケージに付属のデータは「おもちゃ」のデータという
のが実に多い.でも,それでは威力を実感して頂けないはず.

S-PLUS はデータを対話的にハンドリングできる環境ですから,フィッティン
グなどにそのまま使えるリアルなデータがビルトイン,S+NUOPT にもインス
トールで即使える数理計画法の例題と実際的なデータサンプルを付けました.
演習素材としても最適です.

ぜひ
  http://www.msi.co.jp/nuopt/finance/spnuopt.html
を覗いてみてください.

                                                 (田辺 隆人)

******************************************************************
■ <トピック>  NUOPT V12 の新機能について
******************************************************************

NUOPT は 3 月に 12 回目のリリースを迎えます.
NUOPT V12 では,以下のような新機能を予定しております.

■ 非線形計画問題におけるパフォーマンスの向上

一般の非線形最適化問題に対するアルゴリズムである,信頼領域に基づく
内点法 / 外点法の性能を向上させました.新しいスケーリング手法を開発,
チューニングの結果,産業界で現れる実際的な問題に対する全般的な性能を
向上させました.特に良い初期解が得られないケースで,その効果は顕著
に現れます.

■ 整数計画問題に対する分枝限定法の改善

整数計画問題に対する分枝限定法の性能が改善されました.この改善は最
新のヒューリスティクス及び切除平面の技術の導入によるものです.特に
実行可能解を見つける速度が向上し,得られる実行可能解の質も大幅に改
善されています.また今回導入される技術は,発電計画から広告配信まで
幅広いジャンルに対して威力を発揮します.是非ご利用ください.

■ メモリマネジメントの機能増強

権限の低いユーザ環境においても最大使用メモリ量の設定を行えるように
なりました.

■ Mac 対応

兼ねてからご要望が多数ありました Mac 版 NUOPT を新発売予定です.
対応の環境は Intel プロセッサ搭載の Snow Leopard を予定しています.
Windows で標準搭載されている GUI は対応予定はございませんが,コアの
計算部分については Windows 版・UNIX 版・Linux 版 と等価なものとなり
ます.

■ 最新の開発環境への対応

Windows 版において最新の開発環境である,Microsoft Visual Studio 2010 
に対応予定です.また Windows 7 も対応済みです.

新機能のさらなる詳細については Web でも公開しています.
  http://www.msi.co.jp/nuopt/support/v12web.html
是非ご覧ください.

                                                 (藤井 浩一)

******************************************************************
■ <トピック>  安定性試験結果について
******************************************************************

Web の安定性試験結果を最新のものに更新しました.
  http://www.msi.co.jp/nuopt/testing.html
ここ 2,3 年で非線形最適化アルゴリズムの細部に手を入れたのを期にデー
タを取り直しております.

求解に「失敗」となっている問題にも「惜しい」ものも多数含まれており,
問題個別にチューンした結果を載せることが多いのですが,「素の」性能を
実感して頂くべく,アルゴリズムも tipm に固定,パラメータはすべてデ
フォルトで行っています(失敗したものについてはアルゴリズムを切り換
える,とするとさらに安定性は向上します).

20 年近くこのプログラムをチューニングしている私にとって最も驚きなの
は,計算機環境の進歩.数万変数の問題でも 1 分以上かかるのはまれ,以
前は一晩かかったテストセットも最近では数分で終わります.かなり贅沢
なベンチマークテストを何度も流してパフォーマンスをチェックできるこ
とが大きなメリット.非線形最適化に対するスケーリング手法や最急降下
方向の計算方法の改良に大きく寄与しています.

以前は反復回数を 1 回でも少なくすることに血道を上げたものですが,連
続系の最適化において実務的な関心は速度から,求解の安定性に移ってい
ることを実感します.

                                                 (田辺 隆人)

*****************************************************************
■ <トピック> NUOPT FAQ 公開!
******************************************************************

「モデル内で整数変数を使うには,どうすれば良い?」
「エラーメッセージが出たんだけど,意味がわからない...」

等 NUOPT でお困りの皆様に朗報です.

お客様から頻繁にいただくご質問とその回答をまとめた「NUOPT FAQ」,
ついに公開しました!
  http://www.msi.co.jp/nuopt/support/faq.html

NUOPT でお困りの方も,そうでない方も是非ご一読ください.目から鱗の
情報が見つかるかもしれません.もちろん,これまで通りメールでのご
質問も受け付けております.

ご質問,または NUOPT FAQ へのご意見,ご要望等ございましたら,
お気軽に NUOPT サポート
  nuopt-support@ml.msi.co.jp
までご連絡ください.

                                                 (村山 昇)

******************************************************************
■ <トピック> 発表・出展案内
******************************************************************

本記事を執筆している 2 月 2 日は前日の雪が残っており,非常に冷え込ん
でいます.本メールマガジンをご覧の皆様も体調を崩されないようご自愛
くださいませ.

<<  オペレーションズリサーチ学会・春季研究発表会  >>

3 月 4 ~ 5 日にオペレーションズリサーチ学会・春季研究発表会が首都
大学東京・南大沢キャンパスにて開催されます.
今回は弊社の人間が直接発表させて頂く機会はないのですが,共同発表と
いう形で,実務・研究について参加させて頂きます.

■ ラグランジュ緩和法を用いた土木構造物の長期修繕計画における予算平
   準化問題の汎用解法
     (株式会社ニュージェック)安野貴人 様,
     (数理システム) 田辺・岩永

■ 施設再配置政策立案支援手法の開発と適用
   - メタヒューリスティクスによる複数適正解導出と分析 -
     (東京大学) 貞広幸雄 様,
     (千葉大学) 貞広斎子 様,
     (数理システム) 佐藤・多田

いつもどおり出展は行いますので,学会に参加される方は是非ともお立ち
寄りください.

上記ラグランジュ緩和法については,御殿場基礎科学研究会でも発表させ
て頂きました.様々なジャンルの方々と意見交換ができ,非常に有意義な
ものになりました.

<<  精密工学会春季大会  >>

3 月 16 ~ 18 日に精密工学会春季大会が埼玉大学にて開催されます.
NUOPT は精密機器の運転計画やパラメータ設計の部分で活用されており,
それらをご紹介させて頂きます.

                                                 (佐藤 誠)

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

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

今回の新語,改修用語は以下の通りです.

  <新語>
    ・生産計画問題
    ・輸送問題
    ・多目的最適化
    ・パレート最適

  <改修用語>
    ・双対定理
    ・妥当不等式
    ・ベンチマーク問題

ご興味がある用語がありましたら,是非ご一読いただければと思います.

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

                                                 (村山 昇)

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

---- [ NUOPT セミナー開催日程 ] ----------------------------------
  ・ 3 月 10 日(水) 13:30 ~ 16:30  スケジューリングセミナー
  ・ 3 月 11 日(木) 13:30 ~ 16:30  最適化入門セミナー
  ・ 4 月 21 日 (水)  13:30 ~ 17:00  スキルアップセミナー・基礎編
  ・ 4 月 22 日 (木)  13:30 ~ 17:00  スキルアップセミナー・実践編
  ・ 5 月 18 日(火) 13:30 ~ 16:30  最適化入門セミナー
  ・ 5 月 19 日 (水)  10:30 ~ 17:00  金融工学セミナー

会場:
  (株)数理システム・セミナールーム
    (東京都新宿区新宿二丁目 3 番 10 号新宿御苑ビル 4 階)
お申し込み先:
  (株)数理システム << NUOPT >> 担当  < nuopt-info@ml.msi.co.jp >
セミナーの詳細:
  下記 URL をご参照ください.
    http://www.msi.co.jp/nuopt/seminar/index.html
------------------------------------------------------------------

2009 年 9 月より各種セミナーを一新致しました.特に,スキルアップセ
ミナー・基礎編の続編にあたる実践編を新しく開設し,高度な技術をユー
ザー様にお伝えする場を提供致しております.

以前のスキルアップセミナー参加者,および普段から NUOPT をご利用に
なられているユーザー様を対象にしており,実務・研究の前線における
数々のトラップを回避する守りのテクニックをはじめ,様々なモデリング
技術に関する攻めのテクニックをお伝えいたします.
具体的にはモデルの検証方法から始まり,連続,離散最適化のテクニック
や,NUOPT を用いた簡単なシステム構築例をご紹介致します.

また,セミナー終了後はスタッフが控えておりますので,高度なご質問に
も対応しております.もちろん,現在抱えている問題がございましたら,
個別にご相談を受けることも可能でございますので,是非この機会をご利
用ください.

詳しくは以下 HP をご覧ください.
  http://www.msi.co.jp/nuopt/seminar/seminar_skillup_pra.html

                                                 (岩永 二郎)

******************************************************************
■ <  tips  >  SIMPLE よくある間違い(第 12 回)
******************************************************************

このコーナーでは,SIMPLE の記述に関してお客様が陥りやすい間違いを紹
介していきます.

今回は,sum 関数の添字に関してよくある間違いをご紹介します.
いつものように集合と添字と変数を用意しましょう.

------------------------------------------------------------------
 Set I;
 Element i(set=I);
 I = "1 .. 3";
 Variable x(index=i);
 Variable y(index=i);
------------------------------------------------------------------

さらに,sum 関数を用いて以下のような制約式を書きましょう.

------------------------------------------------------------------
 x[i] == sum(y[i],i);
------------------------------------------------------------------

では実行してみましょう.実行すると以下のようなエラーがでます.

------------------------------------------------------------------
 <<SIMPLE 70>> 合致しないか,不定の要素がありました.
 unmatched Element: i     ( in index of x )
------------------------------------------------------------------

上のように,制約式で展開する添字と sum の添字で同じ Element を用い
るとエラーとなります.今回は,制約式の左辺で i があり,右辺の sum 
関数においても i を用いているので,エラーとなってしまいました.

これを回避するためには,もう一つ新しい Element を用意し,これを用い
て制約式の自動展開を記述します.

------------------------------------------------------------------
 Element j(set=I);
 x[j] == sum(y[i],i);
------------------------------------------------------------------

いかがだったでしょうか.やや分かりにくいエラーですが,一度理解すれ
ばもうひっかかることはないかと思います.これからも,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
==================================================================