バックナンバー ( 2007 Vol.1 ) 2007 年 5 月 14 日 発行
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 数理システム NUOPT メールマガジン http://www.msi.co.jp/nuopt/ 2007 Vol.1 ( 2007 年 5 月 14 日 発行 ) -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 数理システム NUOPT メールマガジンでは,数理計画法パッケージ NUOPT に関する様々な情報やご案内を提供していきます. ++++ [目次] +++++++++++++++++++++++++++++++++++++++++++++++++++++ ■ <トピック> メールマガジン創刊のご挨拶 ■ <トピック> Windows Vista への対応状況 ■ <トピック> OR 学会への出展報告 ■ <トピック> 研究集会等での講演報告 ■ < tips > SIMPLE よくある間違い(第 1 回) ■ < tips > 標準正規分布関数(累積度数分布関数) erf(x) の活用 ■ <セミナー> NUOPT 無料セミナーの御案内 ■ <セミナー> NUOPT 無料スキルアップセミナー開催中 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ***************************************************************** ■ <トピック> メールマガジン創刊のご挨拶 ***************************************************************** 株式会社数理システム NUOPT 開発責任者の田辺です.平素より数理計画 法パッケージ NUOPT へご関心をお寄せ頂き,まことにありがとうござい ます.我々 NUOPT 開発・応用メンバーは数理計画法の技術的進展,応用 範囲の拡大に追従すべく,ユーザの方々と一緒に日々努力を重ねておりま す.その中で得られた知見などを皆さまと共有し,より有効に NUOPT を ご利用頂く一助となればと考え,本メールマガジンを創刊いたしました. 本誌が皆さまの問題解決の「きっかけ」になればと期待する次第でござい ます.制約のある紙面の範囲で,話題の分量の増大を旨としておりますた め,コード例など,十分な記述は難しいものもございます. ただ,より深い関心をお寄せ頂いた方々にはサポートのメール ( nuopt-magazine@msi.co.jp )あるいは Web で詳細にフォローさせてい ただきます.どうかよろしくお願いいたします. (田辺 隆人) ****************************************************************** ■ <トピック> Windows Vista への対応状況 ****************************************************************** NUOPT の Windows Vista (下記では単に Vista とします)対応について説 明をさせていただきます. Vista が発売されて 3 ヶ月が過ぎましたが, NUOPT は 2007 年 5 月 1 日現在, Vista 上での正式サポートには至っておりません.そのため, Vista 上で NUOPT のご利用を希望しておられるユーザ様には大変なご不 便とご迷惑をおかけしておりますこと,お詫びいたします. しかしながら,開発チームでは Vista 対応についての作業を進めており, 近々リリース予定をご報告できると考えております. さて,ここで少し話題を変えて, Vista と NUOPT の間でどの点で相性が 悪いのかについて説明をさせていただきます. 最も相性が悪い点として Vista で新たに導入された UAC (ユーザアクセ スコントロール)と呼ばれるセキュリティ関連の機能があげられます. Windows XP 以前では,管理者権限を持つユーザであれば,その PC 上で はほとんどの機能の権限を持っております. Vista では,この UAC とい われる新機能のため,管理者権限を持つユーザであってもデフォルトでは 一般ユーザと同等の権限しか持つことができません.このため, NUOPT を 動作させる際に,例えば書き込み権限を持っているはずなのに,実際には 書き込みができないという場合があります. Vista プラットフォームへの正式サポート対応作業では,このような Vista の新機能に対して NUOPT の既存機能を損なうことなく,どのプラッ トフォームでも違和感なくご利用いただけるような修正作業を行っており ます. (新田 利博) ****************************************************************** ■ <トピック> OR 学会への出展報告 ****************************************************************** 3 月 28 日〜 29 日に鳥取大学で開催された, 2007 年度春季 OR 学会に 出展いたしました.多数のご来場,ありがとうございました. また研究発表会においては,弊社から以下の二つを発表いたしました. ・主双対内点法の加速に関して (*山下・田辺) 線形計画問題対応の主双対内点法では,加速という考え方が非常に有効で す.このアイデアを非線形計画問題に対して拡張する方法を提案いたしま した. ・非線形半正定値計画問題に対する主双対内点法の実装 (*原田・山下) 現在 NUOPT に組み込み中である,非線形の半正定値計画問題に対するア ルゴリズムの実験結果を報告いたしました.まだ実験段階ではありますが, いくつかの問題群に対しては有用な結果が得られております. (原田 耕平) ****************************************************************** ■ <トピック> 研究集会等での講演報告 ****************************************************************** 3 月 22 日〜 24 日に統計数理研究所で行われた研究集会「最適化:モ デリングとアルゴリズム」の特別セッション「線形計画問題の新解法 21」 で以下の講演を行いました. ・非線形最適化問題に対する主双対反復法とその加速について (山下) 我々のグループで過去に行ってきた主双対内点法と主双対外点法の研究の サーベイと,それらの方法に対する新しい加速法の提案を行いました. また, 4 月 19 日〜 21 日に東京工業大学で行われた「Workshop on Advances in Optimization」で以下の発表を行ないました. ・A primal-dual interior point method for nonlinear semidefinite programming (*Yabe, Yamashita, Harada) 非線形半正定値計画問題に対する主双対内点法の新アルゴリズムの提案と 数値実験結果について,共同研究者の矢部博教授(東京理科大学理学部) が講演しました. なお,講演に関する資料につきましては,弊社 Web ページ ( http://www.msi.co.jp/nuopt/materials/index.html )に掲載しており ますので御覧ください. (山下 浩) ****************************************************************** ■ < tips > SIMPLE よくある間違い(第 1 回) ****************************************************************** 早いもので NUOPT 無料スキルアップセミナーを始めて既に半年が経ちま した.ここでは, NUOPT 無料スキルアップセミナーの講師の経験から, SIMPLE の使い方に関して,お客様が陥りやすい間違いを少しずつですが 紹介していきたいと思います. 突然ですが,以下のモデリング言語 SIMPLE による記述には文法的な誤り があります.皆様お分かりでしょうか. ------------------------------------------------------------------ Variable x,y; x + y = 10; x > 0; y > 0; Objective obj(type=minimize); obj = x + 2*y; ------------------------------------------------------------------ 2 行目は変数 x と y の和が 10 になることを意図した等式制約のつもり ですが,このままではコンパイルエラーが出ます.正しくは, (誤) x + y = 10; -> (正) x + y == 10; として,等しいことを表す「==」を使用しなければなりません.また,3, 4 行目は変数 x,y がそれぞれ非負であることを意図した制約ですが,こ れもこのままではコンパイルエラーが出ます.正しくは, (誤) x > 0; -> (正) x >= 0; (誤) y > 0; -> (正) y >= 0; として,等号つきの不等号を使用しなければなりません. それでは 6 行目の「=」はこのままで良いのでしょうか.実はこれは 2 行目の等式制約とは異なり,目的関数 obj に x + 2*y という具体的な 式を「代入」している操作なので,このままで良いのです.慣れてくれば 当たり前のようですが, SIMPLE を学び始めた頃は意外と陥りやすく,ま た気が付きにくい間違いといえるでしょう. (村山 昇) ****************************************************************** ■ < tips > 標準正規分布関数(累積度数分布関数) erf(x) の活用 ****************************************************************** リリースノートでご案内させていただいたように Ver.9 より標準正規分 布関数 erf(x) をモデル中にお使い頂けるようになりました.このことに よって y を x で説明する線形なプロビットモデル: y* >= α であるときに y = 1, そうでないなら y = 0 y* = β x + ε (ε は 分散σ^2の正規分布に従う) の最尤推定を行う数理計画モデルは以下のように直接書き下すことができ ます. ------------------------------------------------------------------ Set S; Element i(set=S); // 観測点の集合 S と要素 i Parameter x(index=i),y(index=i); // 入力データ Set yIsOne = setOf(i,y[i]==1); // y が 1 である i の集合 Variable alpha=0.5,beta=1,sigma=1; // 0 割りを避けるため sigma には初期値を与える Objective f(type=maximize); f = sum(log(1-erf((alpha - beta*x[i])/sigma)),(i,i |