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

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

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

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

++++ [目次] ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 ■ <トピック> お知らせ
 ■ <トピック> OR 学会 2020 年春季研究発表会中止にあたって
 ■ <セミナー> 5/29 製造現場の業務改善に向けた数理最適化
                    ソリューション紹介セミナー
                    ~生産スケジューリングを中心に~
 ■ <セミナー> 4~5 月開催 数理最適化ソリューション紹介セミナー
          ~ Numerical Optimizer を通じて学ぶ業務の改善と自動化 ~
 ■ <セミナー> 4~6 月開催 Numerical Optimizer 体験セミナー
 ■ <セミナー> 6/23【大阪開催】 Numerical Optimizer 体験セミナー
 ■ <  tips  > 使ってみよう PySIMPLE(第 7 回)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

******************************************************************
■ <トピック> お知らせ
******************************************************************

皆さま,いかがお過しでしょうか.

新バージョン V22 も無事リリースの運びとなり,これからというところで
じつに残念なのですが,感染症拡大を防ぐため,3 月開催予定でした弊社
主催の集合形式のセミナーをすべてとりやめることとさせていただきました.

Numerical Optimizer などパッケージ製品の紹介や個別相談については,
普段通り.
                nuopt-info@ml.msi.co.jp 
までお寄せください.
対面/Web 形式のいずれにても承ります.ぜひご相談お待ちしております.

                                                 (田辺 隆人)

******************************************************************
■ <トピック> OR 学会 2020 年春季研究発表会中止にあたって
******************************************************************

3 月 12 日~13日に予定されていた「OR 学会 2020 年春季研究発表会」の
開催が中止となりました.
あいにく発表することはできませんでしたが,弊社で予定していた講演に
ついてその内容をご紹介します.

(1) 「集合分割問題に対する重みつき局所探索法の改良」
*中村健吾(NTT コミュニケーション科学基礎研究所)
 藤井浩一(NTT データ数理システム)
 石橋保身(NTT データ数理システム)
 神谷俊介(NTT データ数理システム)

大阪大学梅谷博士による,係数が 0-1 となる整数計画問題に対する
局所探索法を改良し,集合分割問題に対してより高速な局所探索法を
実装しました.
主な改良点は,先行研究における 2-FLIP / 4-FLIP に加えて 3-FLIP を
考慮した点と,制約式に対するウェイト調整の更新式を改良した点です.
改良された実装では MIPLIB2017 の幾つかの open な問題に対して
実行可能解を改善することに成功しました.

なお本発表の内容は発表者が NTT データ数理システムにてインターン中に
行ったものです.

参考:
Umetani, Shunji. "Exploiting variable associations to configure
efficient local search algorithms in large-scale binary integer
programs." European Journal of Operational Research 263.1 (2017):
72-81.

Gleixner, Ambros, et al. MIPLIB 2017: Data-Driven Compilation of the
6th Mixed-Integer Programming Library. Technical report, Optimization
Online, 2019.

(2) 「Numerical Optimizer V22 における分枝限定法の改良」
*藤井浩一(NTT データ数理システム)
 逸見宣博(NTT データ数理システム)
 石橋保身(NTT データ数理システム)

Numerical Optimizer V22 で行った分枝限定法の改良点についての発表です.
改良点の一つである切除平面では,Mixed Integer Rounding カットにおいて
旧来知られている生成ルールを改良することにより,起動停止問題等の
問題構造を持つ問題に対して高速化することに成功しました.
もう一つの改良点である並列化では,従来の分枝木の部分木を並列化させる
Subtree に加え,動的なパラメータチューニングを行う Racing という
手法を実装しました.また分枝限定法の「早期に良質な実行可能解を発見
する」性能を測定する指標として相対ギャップ積分を再定義し,指標のもと
では Racing が Subtree と比較すると積分値が小さい,すなわち
並列化計算において早い段階で良い実行可能解を発見しやすい性質が
あることを示しました.

                                                 (藤井 浩一)

******************************************************************
■ <セミナー> 5/29 製造現場の業務改善に向けた数理最適化
                   ソリューション紹介セミナー
                   ~生産スケジューリングを中心に~
******************************************************************

製造現場では,

・受注生産/見込み生産
・ディスクリート生産/連続生産
・多品種少量生産/少品種多量生産

などさまざまな形態での生産スケジューリングが実施されています.

本セミナーでは,生産スケジューリングの業務効率化・自動化に向けた
数理最適化ソリューションのご紹介を行います.

・設備の稼働率を上げて生産性を高めたい
・在庫の適正化を図りたい
・工場内の熟練者が立案している生産スケジューリングのノウハウを
  自動化したい
・生産スケジューリングを自動化したいが条件が複雑すぎて自動化に
  至っていない

といった課題をお持ちの方に,特にお勧めのセミナーとなります.

    ☆   日時:2020 年 5 月 29 日 (金) 15:00~17:00

    ☆ 参加費:無料

    ☆   会場:
          (株) NTT データ数理システム セミナールーム
            (東京都新宿区信濃町 35 信濃町煉瓦館 4F)
              https://www.msi.co.jp/msi/location.html

    ☆ 上記セミナーのお申込み・詳細は下記をご覧ください.
              https://msi.hmup.jp/nuopt/seminar/manufacture

※ 新型コロナウイルスの感染拡大状況によっては中止となる場合が
   あります.

                                                 (松岡 勇気)

******************************************************************
■ <セミナー> 4~5 月開催 数理最適化ソリューション紹介セミナー 
          ~ Numerical Optimizer を通じて学ぶ業務の改善と自動化 ~
******************************************************************

本セミナーは

・数理最適化を用いた業務の改善や自動化について知りたい方
・数理最適化とは何かを知りたい方
・Numerical Optimizer について知りたい方

を対象としたセミナーです.

数理最適化を用いた業務の改善や自動化について,

・数理最適化とは何か?
・どうやって業務に活かすのか?
・導入の際のポイントは?

といった点を中心に,具体的な事例や演習を交えながらご説明いたします.

また,弊社の数理最適化パッケージである Numerical Optimizer を実際に
触っていただくことで,数理最適化を用いたシステムのイメージおよび
導入フローについて,より具体的に知っていただける構成となっております.

数理最適化という言葉に初めて触れる方はもちろん,数理最適化を実務へ
適用する際のノウハウについて知りたい方にもおすすめのセミナーです.

※ Numerical Optimizer の操作方法について詳しく知りたい方は,
   「Numerical Optimizer 体験セミナー」にご参加ください.
   
    ☆   日時:2020 年 4 月 20 日 (月) 10:30~12:00
               2020 年 5 月 28 日 (木) 13:30~17:00
         ※ 4/20 開催分については,Numerical Optimizer 体験セミナー
            との共催の関係で通常のセミナーの短縮版となります.

    ☆ 参加費:無料

    ☆   会場:
          (株) NTT データ数理システム セミナールーム
            (東京都新宿区信濃町 35 信濃町煉瓦館 4F)
              https://www.msi.co.jp/msi/location.html

    ☆ 上記セミナーのお申込み・詳細は下記をご覧ください.
              https://msi.hmup.jp/nuopt/seminar/solution

※ 新型コロナウイルスの感染拡大状況によっては中止となる場合が
   あります.

                                                 (松岡 勇気)

******************************************************************
■ <セミナー> 4~6 月開催 Numerical Optimizer 体験セミナー
******************************************************************

Numerical Optimizer は汎用的な数理最適化パッケージです.
Numerical Optimizer 一つで以下に挙げるような様々なビジネス課題を
分析し,問題解決のための計画を立案することができます.

・スタッフの労働条件を考慮したスケジューリング
・機器の特性を考慮した発電機の起動停止運転計画
・段取り替え回数を最小化した生産スケジューリング
・人のスキルを考慮した人員配置やマッチング
・経営している店舗の効率的分析(包絡分析法,DEA)
・ロング・ショートを考慮したファクターモデルに基づくポートフォリオ分析

しかし,こうした問題を Numerical Optimizer で分析・計画するためには,
問題の定式化とモデリング言語による問題の記述が必要になります.
本セミナーでは豊富な演習を通して問題の定式化とモデリング言語による
問題の記述を体験していただき,Numerical Optimizer の使い方を学んで
いきます.

次のような方を対象にしています.

・Numerical Optimizer の購入を検討していて,使い方を知りたい方
・Numerical Optimizer 購入後に使い方を学びたい方
・簡単なモデルの作成から実行までできるようになりたい方
・業務の引継ぎ等で Numerical Optimizer を使う機会がある方

※ 事例や数理最適化ソリューション導入までの流れについて知りたい方は 
   「数理最適化ソリューション紹介セミナー 
     ~ Numerical Optimizer を通じて学ぶ業務の改善と自動化 ~」
   にご参加ください.

※ 演習(タイピング)を多く含むセミナーになります.タイピングに
   不慣れな方は聴講のみも可能です.

※ 中級者向けの内容(実行不可能な問題への対処,疎なモデルや折れ線
   関数などの特殊な定式化,C++ や Python との連携)を含みません.
   中級者向けのセミナーをご希望の方は nuopt-info@ml.msi.co.jp まで
   ご相談ください.
   
    ☆   日時:2020 年 4 月 20 日 (月) 13:30~17:00
               2020 年 6 月  9 日 (火) 13:30~17:00

    ☆ 参加費:無料

    ☆   会場:
          (株) NTT データ数理システム セミナールーム
            (東京都新宿区信濃町 35 信濃町煉瓦館 4F)
              https://www.msi.co.jp/msi/location.html

    ☆ 上記セミナーのお申込み・詳細は下記をご覧ください.
              https://msi.hmup.jp/nuopt/seminar/seminarRegular

※ 新型コロナウイルスの感染拡大状況によっては中止となる場合が
   あります.

                                                 (松岡 勇気)

******************************************************************
■ <セミナー> 6/23【大阪開催】 Numerical Optimizer 体験セミナー
******************************************************************

本セミナーでは豊富な演習を通して問題の定式化とモデリング言語による
問題の記述を体験していただき,Numerical Optimizer の使い方を学んで
いきます.

次のような方を対象にしています.

・Numerical Optimizer の購入を検討していて,使い方を知りたい方
・Numerical Optimizer 購入後に使い方を学びたい方
・簡単なモデルの作成から実行までできるようになりたい方
・業務の引継ぎ等で Numerical Optimizer を使う機会がある方

※ 東京開催の Numerical Optimizer 体験セミナーの内容の抜粋と
   なります.
   
    ☆   日時:2020 年 6 月 23 日 (火) 10:00~12:00
            
    ☆ 参加費:無料

    ☆   会場:
            AP 大阪駅前 梅田1丁目
              https://www.tc-forum.co.jp/ap-osakaekimae/access/

    ☆ 上記セミナーのお申込み・詳細は下記をご覧ください.
              https://msi.hmup.jp/nuopt/seminar/seminarRegular

※ 新型コロナウイルスの感染拡大状況によっては中止となる場合が
   あります.

                                                 (松岡 勇気)

******************************************************************
■ <  tips  > 使ってみよう PySIMPLE(第 7 回)
******************************************************************

このコーナーでは,Numerical Optimizer V21 の新機能であるモデリング
言語 PySIMPLE のエッセンスを紹介していきます.
V21 でリリースされた PySIMPLE ですが,早くも V22 がリリースされる
季節になりました.V22 では式展開が劇的に高速化され,V21 と比較して
10 倍以上の高速化を達成,SIMPLE と比較しても遜色のない速度になりました.
今回はユーザ側でも PySIMPLE の性能を引き出すことのできる高速化方法を
4 つ紹介します.

1 つ目は「Set/Element の value には range を与える」です.

PySIMPLE:
------------------------------------------------------------------
I = Set(value=list(range(1000000)))  # 遅い
I = Set(value=range(1000000))        # 速い
------------------------------------------------------------------

Set の value キーワードには iterable オブジェクト全般を渡すことが
できますが,range の場合は専用の高速化処理が行われ,上記の例だと,
10 倍程度の速度差が発生します.Element にも value キーワードがあり
ますが同様です.添字が等差数列の場合はなるべく range オブジェクトを
渡すようにしましょう.

2 つ目は「set が同じ添字は使いまわす」です.

------------------------------------------------------------------
# 遅い
i1 = Element(value=range(1000000))
i2 = Element(value=range(1000000))
# 速い
I = Set(value=range(1000000))
i1 = Element(set=I)
i2 = Element(set=I)
------------------------------------------------------------------

Set や Element に value が与えられた場合は内部でデータチェックが
行われます.前者ではデータチェックが 2 回,後者では 1 回であるため,
後者の方が速くなります.後者は次のように記述することもできます.

------------------------------------------------------------------
i1 = Element(value=range(1000000))
i2 = Element(set=i1.set)
------------------------------------------------------------------

3 つ目は「制約より lb/ub を使う」です.

------------------------------------------------------------------
i = Element(value=range(1000000))
p = Problem()
# 遅い
x = Variable(index=i)
p += x[i] >= 1
# 速い
x = Variable(index=i, lb=1)
------------------------------------------------------------------

PySIMPLE では変数の宣言時に lower/upper bound を与えることができます.
bound に定数を渡した場合は,与えない場合と同じ速度で初期化が行われ
るため,後者では制約式の分,高速になります.

4 つ目は「データは宣言時に与える」です.

------------------------------------------------------------------
# 遅い
a = Parameter(index=i)
for idx in ...:
    a[idx] = ...

# 速い
data = {}
for idx in ...:
    data[idx] = ...
a = Parameter(index=i, value=data)
------------------------------------------------------------------

PySIMPLE では Parameter の値や Variable の初期値を宣言時に与える
ことも,宣言後に変更することもできます.しかし,Parameter/Variable
への代入は添字つき処理を行うことを目的として実装されているため,
通常の代入に比べると遅くなってしまいます.そのため,個別に値を指定
したい場合は辞書を作成しておき,宣言時に与える方が効率的です.一方,
次のような添字付き代入の場合は問題ありません.

------------------------------------------------------------------
a = Parameter(index=i)
a[i] = i
------------------------------------------------------------------

いかがでしたでしょうか.V22 の PySIMPLE では高速化の他にも動作環境や
機能の拡張も行われています.是非チェックしてみてください.

V22 PySIMPLE の更新履歴はこちら:
    http://www.msi.co.jp/nuopt/docs/v22/pysimple/changelog.html

                                                 (池田 悠)

==================================================================
※ このメールは,弊社ツールのユーザー様,過去に展示会などでお名刺
   等を頂いたことのある方や当社に直接お問合せを頂いたことのある方
   にお送りしています.
※ バックナンバーはこちらから御覧頂けます.
     https://www.msi.co.jp/nuopt/mailmagazine/index.html
※ 本メールマガジンは等幅フォントでお読みになることを推奨します.
※ 今後,本メールマガジンやご案内に関するメールが不要な方は,誠に
   お手数ですが,下記 URL より「案内停止手続き」をしてくださいます
   ようお願いいたします.

   ■ 案内停止はこちらから ■
      [都合により本ページでは URL を掲載しておりません]

   ご登録される情報は,暗号化された通信(SSL)で保護され,
   プライバシーマークや ISO27001/JIS Q 27001, ISO20000-1, ISO9001
   の認証を取得している株式会社パイプドビッツによる情報管理
   システム「スパイラル」で安全に管理されます.

   上記にアクセスができない場合には「メール不要」と明記の上,
     nuopt-ms@ml.msi.co.jp
   (このメールに返信で結構です)にメール送付してください.

発行:株式会社 NTT データ数理システム 
          << 数理システム Numerical Optimizer >> 担当
        東京都新宿区信濃町 35 番地 信濃町煉瓦館 1 階
                                   tel : 03-3358-6681
                                e-mail : nuopt-info@ml.msi.co.jp
==================================================================