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

バックナンバー ( 2019 Vol.6 ) 2019 年 11 月 14 日 発行

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

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

++++ [目次] ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 ■ <トピック> 数理システムユーザーコンファレンス 2019 のご案内
 ■ <セミナー> PySIMPLE セミナー 12/3
 ■ <セミナー> エネルギーマネジメント最適化セミナー 12/12 開催
 ■ <セミナー> 12~3月 体験セミナー・One Day セミナーのご案内
 ■ <  tips  > 使ってみよう PySIMPLE(第 5 回)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

******************************************************************
■ <トピック> 数理システムユーザーコンファレンス 2019 のご案内
******************************************************************

11 月 22 日(金)に毎年ご好評頂いております,数理システムユーザー
コンファレンスを開催いたします.今年も昨年に引き続き東京コンファ
レンスセンター・品川が会場です.数理最適化関連では基調講演も含めて
6 つの講演がございます.どれも非常に興味深い講演となっていますので,
既にお申込みいただいた方は是非ご参加ください.

   ■ 数理計画法とシミュレーションで考える首都圏電車の混雑
                      -2020 東京オリンピック開催時,どうなる-
      田口 東     様(中央大学)

   ■ ビックカメラ様への「勤務計画システム」適用事例のご紹介
      寺岡 洋一   様(鉄道情報システム株式会社)
      吉沼 由紀夫 様(株式会社ビックカメラ)
      多田 明功     (NTT データ数理システム)

   ■ ローリー車による液化天然ガス(LNG)販売事業の
                      ロジスティクス最適化の実現に向けて
      西井 匠     様(東京ガス株式会社)
      今井 義弥     (NTT データ数理システム)

   ■ Numerical Optimizer が変える線路のメンテナンス
      三和 雅史   様(公益財団法人 鉄道総合技術研究所)

   ■ ITがつなぐ想い  青年海外協力隊の最適マッチング
      澤田 純子   様(独立行政法人 国際協力機構)

   ■ Numerical Optimizer V22  新しい並列計算機能のご紹介
      石橋 保身     (NTT データ数理システム)

   << ユーザーコンファレンス プログラム >>
     http://msi.co.jp/userconf/2019/index.html

ユーザーコンファレンスでは Numerical Optimizer V22 で新しくなった
並列計算機能についてもご紹介いたします.主な特徴は次の 2 つです.

   1. Linux 環境やランタイムライセンスでも並列計算が可能に!
   2. 最新の並列計算手法を取り入れ,より高速に!

まず,並列計算機能を刷新したことで,従来は Windows 環境で開発版
ライセンスをお持ちのユーザー様しかご利用いただけませんでしたが,
Linux 環境やランタイムライセンスのみをお持ちのユーザー様でも並列
計算機能をご利用いただけるようになりました.具体的には実行時に
分枝限定法の場合はスレッド数を,近似解法 wcsp の場合は試行回数と
スレッド数を指定するだけになり,従来と比べて手軽にマルチコア環境を
有効活用できます.
また,分枝限定法において並列化手法も刷新し,Racing [1,2] と呼ばれ
る最新の手法を取り入れました.この手法は設定を変更したソルバを複数
用意し,同じ問題を並行して解かせる手法です.冗長な計算を多く含みま
すが実行可能解を発見しやすいため,短時間で優良な解を得ることが重視
される実務において有効です.詳細はユーザーコンファレンスの講演にて
ご紹介しますので是非お立ち寄りください.

[1] Shinano, Yuji, et al. "Solving hard MIPLIB2003 problems with
     ParaSCIP on supercomputers: An update." 2014 IEEE International
     Parallel & Distributed Processing Symposium Workshops. IEEE,
     2014.

[2] Shinano, Yuji, et al. "Solving open MIP instances with ParaSCIP
     on supercomputers using up to 80,000 cores." 2016 IEEE
     International Parallel and Distributed Processing Symposium
     (IPDPS). IEEE, 2016.

                                                 (石橋 保身)

******************************************************************
■ <セミナー> PySIMPLE セミナー 12/3
******************************************************************

前回大盛況に終わりました PySIMPLE セミナー について,皆様からの声に
お応えして再度開催が決定いたしました!

本セミナーでは Numerical Optimizer V21 の新機能として実装いたしました
Python インタフェース【 PySIMPLE 】をご紹介いたします.

PySIMPLE を用いたモデリングの例や SIMPLE との表記方法の違いなど,
実際の製品画面をご覧頂きながらご説明いたします.
大変多くのご要望を頂いておりました機能でございます.

PySIMPLE のデモは One Day セミナーでもご覧になれますが,本セミナーは
より深く PySIMPLE について知っていただけるセミナーとなっています.

・ SIMPLE と PySIMPLE の違いについて知りたい方
・ 日頃業務で Python に触れている方

におすすめのセミナーです.

   ☆   日時:2019 年 12 月  3 日 (火) 15:00~17:00

   ☆ 参加費:無料

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

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

                                                 (松岡 勇気)

******************************************************************
■ <セミナー> エネルギーマネジメント最適化セミナー 12/12 開催
******************************************************************

昨今注目度が高いエネルギー事業における,
NTTデータ数理システムのソリューション展開についてご紹介するセミナーです.
本セミナーでは,発電事業における分散電源・マイクログリッドの
最適運転計画・設備計画について,数理計画法を適用し問題を解決する
ソリューションをご紹介します.

・エネルギー事業所でプラントの設備や運転計画を制御したい
・工場の自家発電設備の最適化をしたい

といった課題をお持ちの方におすすめのセミナーです。

   ☆   日時:2019 年 12 月 12 日 (木) 15:00~17:00

   ☆ 参加費:無料

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

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


                                                 (松岡 勇気)

******************************************************************
■ <セミナー> 12~3月 体験セミナー・One Day セミナーのご案内
******************************************************************

  ◆ Numerical Optimizer 定例セミナー

---[ Numerical Optimizer 定例セミナー開催日程 ]-------------------

[東京開催]
・ 12 月 24 日 (火) 13:30~17:00 Numerical Optimizer 体験セミナー
                  https://msi.hmup.jp/nuopt/seminar/seminarRegular

・  1 月 23 日 (木) 13:30~17:00 Numerical Optimizer 体験セミナー
                  https://msi.hmup.jp/nuopt/seminar/seminarRegular

・  2 月 26 日 (水) 13:30~17:00 Numerical Optimizer 体験セミナー
                  https://msi.hmup.jp/nuopt/seminar/seminarRegular

・  3 月 24 日 (火) 13:30~17:00 Numerical Optimizer 体験セミナー
                  https://msi.hmup.jp/nuopt/seminar/seminarRegular

[名古屋開催]
・ 12 月  6 日 (金) 10:00~12:00 Numerical Optimizer 体験セミナー
                  https://msi.hmup.jp/nuopt/seminar/seminarRegular
------------------------------------------------------------------

本セミナーは,

・ 最適化を業務に活用されたいと考えている方
・ Numerical Optimizer に触れてみたい方
・ 数理システムの最適化ソリューションについて知りたい方

にお薦めのセミナーです.

最適化の業務への適用方法について,Numerical Optimizer の操作演習
を通じてご説明いたします.
機能を強化した Excel アドインもご紹介いたします.モデルとデータの
連携を気軽に行いたい方や,解を集計しグラフを書いて分析を行いたい
方にお薦めの機能です.
また,近年の動向や弊社に頂くご相談内容を踏まえ,数理最適化が
どのようにビジネスの現場で利用されているのかを,開発責任者より
お伝えします.

皆様のご参加をお待ちしております.

  ◆ Numerical Optimizer One Day セミナー

本セミナーでは,数理最適化に関する知識やノウハウを一日掛けて
たっぷりとお伝えします.
午前は数理最適化の基本的な内容と Numerical Optimizer を使った
簡単な演習を行います.
午後は発展的な内容を学び,数理最適化ツールに慣れてきたところで
応用事例をご紹介します.
また,当日は数理最適化がどのようにビジネスの現場で利用されて
いるのかを,Numerical Optimizer 開発責任者よりお伝えします.

・ 数理最適化を学びたいが敷居が高いと感じている方
・ 1 日でさくっと数理最適化について学びたい方
・ 数理最適化ツールに触れたい方
・ 数理最適化を業務に導入しようと考えている方

におすすめのセミナーです.

また Numerical Optimizer V21 の新機能として実装いたしました
Python インタフェース【 PySIMPLE 】を用いたデモもご用意して
おりますので,日頃業務で Python に触れられる方にもおすすめです.

   ☆   日時:2020 年  1 月 24 日 (金) 10:30~16:30
              2020 年  3 月 19 日 (木) 10:30~16:30

   ☆ 参加費:無料

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

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

                                                 (松岡 勇気)

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

このコーナーでは,Numerical Optimizer V21 の新機能であるモデリング
言語 PySIMPLE のエッセンスを紹介していきます.
前回は Printf 関数を使った出力方法を紹介しました.今回は Printf
関数のさらに便利な使い方を紹介していきます.

まず,Python をインタプリタモードで起動させて次の出力を確認して
みましょう.

PySIMPLE:
------------------------------------------------------------------
>>> from pysimple import *
…
>>> ij = Element(value=[(1,3), (1,4), (2,3)], name='ij')
>>> x = Variable(index=ij, name='x')
>>> xj = Sum(x[ij], ij(0))
>>> xj
Sum(x[ij], ij(0)):
x[1,3]+x[2,3]
x[1,4]
------------------------------------------------------------------

式 xj は x を一次元目で和をとっているので,二次元目を添字に持つことに
なります.したがって,xj[3] が x[1,3]+x[2,3],xj[4] が x[1,4] という
ことになります.デフォルトの出力形式ではこの対応がちょっと分かり辛い
かもしれません.今度は Printf 関数を使って整形してみましょう.

------------------------------------------------------------------
>>> Printf('{}[{}]={}', xj.name, ij(1), xj)
Sum(x[ij], ij(0))[3]=x[1,3]+x[2,3]
Sum(x[ij], ij(0))[4]=x[1,4]
------------------------------------------------------------------

xj の name 属性には自動で Sum(x[ij], ij(0)) が設定されているため,
このような出力となります.name 属性を上書きすれば次のようになります.

------------------------------------------------------------------
>>> xj.name = 'xj'
>>> Printf('{}[{}]={}', xj.name, ij(1), xj)
xj[3]=x[1,3]+x[2,3]
xj[4]=x[1,4]
------------------------------------------------------------------

xj は一次元の添字を持つ式ですが,一般次元の出力を行うこともできます.
汎用的な関数 printexp を作ってみましょう.

------------------------------------------------------------------
>>> def printexp(exp):
...     index = ','.join(['{}']*exp.index.dim)
...     Printf('{}[%s]={}' % index, exp.name, *exp.index, exp)
...
>>> printexp(xj)
xj[3]=x[1,3]+x[2,3]
xj[4]=x[1,4]
>>> printexp(x[ij] + 1)
(x[ij]+1)[1,3]=x[1,3]+1
(x[ij]+1)[1,4]=x[1,4]+1
(x[ij]+1)[2,3]=x[2,3]+1
------------------------------------------------------------------

xj は一次元,x[ij]+1 は二次元の添字を持つ式ですが,きちんと出力されて
います.今度は出力形式を少し変えてみましょう.

------------------------------------------------------------------
>>> def printexp2(exp):
...     index = ','.join(['{}']*exp.index.dim)
...     print(f'{exp.name}:')
...     Printf('[%s]: {}={}' % index, *exp.index, exp, exp.val)
...
>>> printexp2(xj)
xj:
[3]: x[1,3]+x[2,3]=0
[4]: x[1,4]=0
>>> printexp2(x[ij] + 1)
(x[ij]+1):
[1,3]: x[1,3]+1=1
[1,4]: x[1,4]+1=1
[2,3]: x[2,3]+1=1
------------------------------------------------------------------

いかがでしたでしょうか.PySIMPLE の便利さに加えて Python の汎用性を
組み合わせることで簡単に自由度の高い操作を行うことができます.
それでは,次回もどうぞお楽しみに.

                                                 (池田 悠)

==================================================================
※ このメールは,弊社ツールのユーザー様,過去に展示会などでお名刺
   等を頂いたことのある方や当社に直接お問合せを頂いたことのある方
   にお送りしています.
※ バックナンバーはこちらから御覧頂けます.
     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
==================================================================