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

バックナンバー ( 2012 Vol.2 ) 2012 年 3 月 15 日 発行

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

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

++++ [目次] ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 ■ <トピック> NTT データグループ入りに関しまして
 ■ <トピック> 数理計画用語集 用語追加
 ■ <トピック> 出展のご案内
 ■ <トピック> 数理計画問題の豆知識(第 10 回)
 ■ <セミナー> NUOPT セミナーのご案内
 ■ <  tips  > SIMPLE 記述のテクニック(第 6 回)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

******************************************************************
■ <トピック>  NTT データグループ入りに関しまして
******************************************************************

NUOPT 開発責任者の田辺です.

弊社 WEB ページやプレスリリース,ユーザーの方へのお知らせの中にござ
いましたように,弊社は 2012 年 2 月 15 日より NTT データグループ入
りの運びとなりました.

「グループ入りにより,パッケージ開発や受託の体制はどの様になるのか」
という疑問にまずはお答えいたします.

NUOPT をはじめとするパッケージやその開発の方向性,受託する仕事の選
択については現状のままを維持,旧経営陣も指令搭として技術的なイニシ
アチブを取ります.
NUOPT の開発・サポート体制もこれまでと一切変化ございませんので,ど
うかご安心くださいませ.

NTT データとのシナジーが期待されるビジネスアナリティクス分野は,
ビッグデータがブームとなっている昨今,数理計画の将来性ある応用分野
の一つとして,これまで通り業務の開拓や拡大に注力します.
一方で,我々には金融工学やエネルギー,ロジスティクス,スケジューリン
グ,ネットワークなど,他にも同様に魅力ある応用分野が開かれているこ
とも,同時に認識しております.

従いまして,これまで通り特定分野に偏らず,多彩な機能を持つパッケー
ジ,そして,数理計画法の普及という社会的使命を意識しつつ,大企業向
けシステム開発から,研究のプロトタイプ作成まで,小回りの効くチーム
でありつづけること,ここに宣言させていただきます.

今後とも NUOPT をどうかよろしくお願い申しあげます.

                                                 (田辺 隆人)

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

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

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

  <新語>
     ・ビジネスアナリティクス
     ・ビッグデータ
     ・確率的勾配降下法
     ・VAP

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

                                                 (村山 昇)

******************************************************************
■ <トピック>  出展のご案内
******************************************************************

2012 年 3 月 27 日(火)~ 28 日(水)に防衛大学校にて開催される,
日本オペレーションズ・リサーチ学会 2012 年春季研究発表会に出展致し
ます.

今回から「NUOPT のパネルの刷新」および「最適化読本の無料配布」を予
定しております.学会に参加される方は是非とも出展ブースにお立ち寄り
くださいませ.

                                                 (佐藤 誠)

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

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

第 10 回目となる今回は,制御分野において重要な「システムの安定性」
という問題について,数理計画の視点からお話をさせていただきます.

「システムの安定性」という表現に耳慣れない方もいるかと思いますが,
これは大雑把に言うと,

  1. 以前の状態から現在の状態が一意的に定まる仕組みが存在する
  2. 1. の仕組みをそのまま放置しておくと,一定の値に収束する

という性質の事を指します.この仕組みの事をシステムと呼びます.

より数学的な言葉で言えば,以下の微分方程式:
  dx(t)/dt = A x(t)
が,一定の極限値 x(∞) を有する事を意味します.

行列 A が定数行列の場合,「システムの安定性」は A の固有値実部が
全て負である事と等価であり,直接調べる事が可能です.

しかし,現実的には A を定数行列とする仮定にはしばしば無理があり,
A にある程度自由度が存在するという条件下で「システムの安定性」を調
べる必要があります.

特に A が定数行列 A1 ... An の凸結合で表現される範囲で自由度を持つ
場合,即ち 
  A = a1*A1 + ... + an*An, a1 ... an >= 0, a1 + ... + an = 1
の範囲で自由度を持つ場合,「システムの安定性」は半正定値計画問題と
して定式化する事が可能です[1].

具体的には, (s, X) を変数とする,以下の半正定値計画問題が負の最適
解を持てば(より厳密には,負の実行可能解を持てば),このシステムは
安定であると言えます.なお,ここで X >= 0 という表現は「 X が半正定
値である」という制約を意味します.

  min s
  s.t X - I >= 0 
      sI - Ai^T X - X Ai >= 0, i = {1 ... n}

この場合,単に各 Ai の固有値が全て負である事を確認するだけでは,シ
ステムの安定性を主張するには不十分である事にご注意ください.

NUOPT は半正定値計画問題に対応しており,この「システムの安定性」の
問題を解く事が可能です.

参考文献:
[1] Ben-Tal and Nemirovski, "Lectures On Modern Convex Optimization",
    SIAM, 2001 

                                                  (原田 耕平)

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

---- [ NUOPT セミナー開催日程 ] ----------------------------------
 ・4 月 18 日(水)13:30 ~ 16:30 最適化入門セミナー
 ・4 月 26 日(木)13:30 ~ 17:30 NUOPT 金融工学セミナー
 ・5 月 17 日(木)13:30 ~ 17:00 NUOPT スキルアップセミナー・基礎編
 ・5 月 23 日(水)13:30 ~ 17:00 NUOPT スキルアップセミナー・実践編

会場:
  (株)数理システム・セミナールーム
    (東京都新宿区新宿二丁目 3 番 10 号新宿御苑ビル 4 階)

お申し込み先:
  (株)数理システム << NUOPT >> 担当  < nuopt-info@ml.msi.co.jp >

セミナーの詳細:
  下記 URL をご参照ください.
    http://www.msi.co.jp/nuopt/seminar/index.html
------------------------------------------------------------------

2011 年度の定期セミナーは総計 250 名以上の方にご参加頂きました.
最適化・数理計画に沢山の方にご興味をお持ち頂き大変うれしく思ってお
ります.今後も皆様にお楽しみいただけるよう鋭意セミナーを企画してま
いりますのでどうぞご期待ください.
2012 年度序盤のセミナーの日程は上記のとおりとなります.参加費無料
ですので奮ってご参加ください.

                                                 (佐藤 誠)

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

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

今回は,モデルファイル中で,自作の関数を定義し,使用する方法をご紹
介します.

たとえば,モデルファイル中で,何度もファイルを開く場面を想像して下
さい.何らかの原因により,ファイルが正しく開けなかった場合,予め自
分で定義しておいた特定のエラー番号(今回は 1 とします)を返り値とし
て,モデル実行を中止したい場合,以下のように書くことができます.

------------------------------------------------------------------
......
FILE* fp;
fp = fopen("test.txt", "w"); // 書き込みモードで test.txtを開く
if(!fp){
    // ファイルが開けなかった
    printf("file %s cannot open.\n", "test.txt");
    exit(1);
}
.....
------------------------------------------------------------------

ファイルが一つであれば上記のような書き方で問題ないのですが,モデル
が大規模で,たくさんのファイルを開かねばならない場合,開いたファイ
ル毎に「ファイルが開けなかったら云々」という処理を書くのは煩わしい
かもしれません.

そのような場合,自作のファイルオープン関数を作ってしまうのをお勧め
します.具体的には,以下のようにします.

------------------------------------------------------------------
......
// モデルの末尾
%%%%% #include <stdio.h> %%%%%
%%%%% #include <stdlib.h> %%%%%

FILE* wrap_fopen(const char* filename, const char* open_mode)
{
    FILE* fp;
    fp = fopen(filname, open_mode);
    if(!fp){
        printf("file %s cannot open.\n", filename);
	exit(1);
    }
    return fp;
}
------------------------------------------------------------------

上記のように記述してから,いざファイルを開く場面では,次のようにこ
の関数を使用します.定義自体はモデルの末尾でしたが,モデルの途中で
使用する事ができます.

------------------------------------------------------------------
FILE* fp = wrap_fopen("test.txt", "w");
......

%%%%% include <stdio.h> %%%%%
......
------------------------------------------------------------------

SIMPLE においては,モデルの末尾で

%%%%% #include <foo.h> %%%%%

などと書くことにより,任意のヘッダファイルをインクルードすることが
できます.また,ヘッダインクルードの行に後続して,自作の関数を定義
することもできます.

いかがでしょうか.自作の関数の定義を定義する方法を覚えておけば,モ
デル記述の表現の幅が広がります.

それでは,次回以降もよろしくお願いいたします.

                                                  (白川 達也)

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

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