-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
数理システム 最適化メールマガジン
https://www.msi.co.jp/solution/nuopt/top.html
2025 Vol.3 ( 2025 年 5 月 30 日 発行 )
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
数理システム 最適化メールマガジンでは,数理最適化パッケージ
Nuorium Optimizer をはじめとして,最適化に関する様々な情報や
ご案内を提供していきます.
++++ [目次] ++++++++++++++++++++++++++++++++++++++++++++++++++++++
■ <トピック> Nuorium Optimization Day 2025 開催予告
■ <トピック> Excel アドインに対応した PySIMPLE の記述方法について
■ < tips > 使ってみよう PySIMPLE(第 36 回)
■ <トピック> セミナー開催報告「計画業務はこうやって最適化する!」
■ <セミナー> 無料オンラインセミナーのご案内
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
******************************************************************
■ <トピック> Nuorium Optimization Day 2025 開催予告
******************************************************************
NTT データ数理システムでは,数理最適化パッケージの製品名に含まれる
「Nuorium」を冠したイベント Nuorium Optimization Day を毎年開催
しています.
本イベントでは,数理最適化技術を中心に,適用事例や最新技術,
将来動向などを弊社主導で発信しています.
近年,生成 AI の進化は目覚ましいものがありますが,すべての AI 技術が
代替されるわけではありません.適材適所での使い分けや,複合的な活用が
ますます重要になっています.
特に,AI に対する信頼性や要素技術への関心が高まる中,これから
数理最適化に取り組みたい企業や,数理最適化が得意とする業務領域で DX を
推進したいと考える企業が増えてきました.
そうした皆さまに向けて,特別イベント Nuorium Optimization Day 2025 を
開催いたします.詳細は後日公開予定のイベントページにてご案内いたし
ますが,本メルマガをご覧の皆さまには,ぜひ以下の日程を確保いただけ
ますと幸いです.
日時:2025 年 7 月 28 日(月)
場所:コモレ四谷 タワーコンファレンス
※日時および会場は予告なく変更となる場合がございます.あらかじめ
ご了承ください.
参考:過去のイベント Nuorium Optimization Day 2024
https://www.msiism.jp/event/nuorium-optimization-day2024.html
(石橋 保身)
******************************************************************
■ <トピック> Excel アドインに対応した PySIMPLE の記述方法について
******************************************************************
前回のメールマガジンで,Nuorium Optimizer V27 において
Excel アドインの対応言語に PySIMPLE が加わったことをご紹介しました.
Excel アドインを用いると,ユーザは直感的に Excel のデータを最適化
モデルの入力にすることができ,また最適化結果も Excel 上に表示する
ことができます.
Excel アドイン向けに PySIMPLE モデルを記述するには,少しコツが
必要です.本記事では,そのポイントを一つずつご紹介します.
- [1] pysimplex.ext モジュールのインポート
- [2] 添字および定数の受け取り
- [3] 変数の登録
# [1] pysimplex.ext モジュールのインポート
Excel アドインで使う際は,まず以下の記述が必要となります.
------------------------------------------------------------------
from pysimple.ext import excel
------------------------------------------------------------------
# [2] 添字および定数の受け取り
添字(Element)および定数(Parameter)は先ほどの excel モジュールを
通して,Excel からデータを受け取ります.
例えば次のように記述すると,Excel アドイン側で設定された「仕事」と
いうデータを PySIMPLE モデル側で受け取ることができます.
------------------------------------------------------------------
j = Element(dim=1, value=excel['仕事'])
------------------------------------------------------------------
なお,Parameter でも同様の書き方になります.
# [3] 変数の登録
変数(Variable)も登録が可能です.この登録をすると,Excel アドイン
側に最適化計算結果の反映が可能です.
以下は Variable の登録例で,「割り当て」という名前で excel 側に
変数(BinaryVariable)の値を渡しています.
------------------------------------------------------------------
excel['割り当て'] = x = BinaryVariable(index=(j,p))
------------------------------------------------------------------
なお,上のように「変数の宣言」と「excel への登録」は一行で書く必要が
あります.以下のような記述は誤りですので,気をつけてください.
------------------------------------------------------------------
x= BinaryVariable(index=(j,p))
excel['割り当て'] = x
------------------------------------------------------------------
いかがでしたでしょうか?本来の PySIMPLE より少しだけ違う部分はあり
ますが,慣れればそれほど難しくはないと思います.
ぜひ便利な Excel アドインを利用してください!
本記事の内容については,Excel アドインマニュアルや,今回の
「使ってみよう PySIMPLE」の記事もご参考ください.
参考:Excel アドインマニュアル 3.1.1. PySIMPLE
https://www.msi.co.jp/solution/nuopt/docs/excel/articles/model-write.html#pysimple
(藤井 浩一・村山 昇)
******************************************************************
■ < tips > 使ってみよう PySIMPLE(第 36 回)
******************************************************************
このコーナーでは,Nuorium Optimizer の Python インターフェース
PySIMPLE のエッセンスを紹介していきます.
3 月にリリースされた V27 では幾つもの機能追加がされました.
Nuorium Optimizer には Excel 上で最適化モデルの入出力を行うことが
できる Excel アドインが付属しておりますが,V27 では PySIMPLE と
連携できるようになりました.今回はこの使い方について紹介します.
次の例は通常の PySIMPLE の最適化モデルです.
------------------------------------------------------------------
from pysimple import Element, Parameter, Variable
# 添字
i = Element(value=data.c.keys()) # 市販の合金
j = Element(value=data.b.keys()) # 構成金属
# パラメータ
r = Parameter(index=(i,j), value=data.r, name='構成比率')
c = Parameter(index=i, value=data.c, name='コスト')
b = Parameter(index=j, value=data.b, name='目標比率')
------------------------------------------------------------------
ここで data には必要な入力データが辞書形式で格納されています.
------------------------------------------------------------------
class data:
r = {(1, 'Lead'): 0.2, (1, 'Zinc'): 0.3, (1, 'Tin'): 0.5, ...}
c = {1: 7.3, 2: 6.9, ...}
b = {'Lead': 0.3, 'Zinc': 0.3, 'Tin': 0.4}
------------------------------------------------------------------
このモデルを Excel アドインと連携するには Excel 側の設定に加え,
以下のように書き換えます.
------------------------------------------------------------------
from pysimple import Element, Parameter, Variable
from pysimple.ext import excel
# 添字
i = Element(dim=1, value=excel['コスト'].keys()) # 市販の合金
j = Element(dim=1, value=excel['目標比率'].keys()) # 構成金属
# パラメータ
r = Parameter(index=(i,j), value=excel['構成比率'])
c = Parameter(index=i, value=excel['コスト'])
b = Parameter(index=j, value=excel['目標比率'])
------------------------------------------------------------------
excel オブジェクトは Excel からの入力データを保持しており,Excel で
設定した名前を指定することで,そのデータを取得できます.
また,Element や Parameter の name 属性は Excel での名前と独立なので
Excel で設定した名前と異なる文字列を指定することも可能です.
次に,求解後に変数の値を Excel 側に渡すには Excel 側の設定に加え,
以下のように書き換えます.
------------------------------------------------------------------
# 変数
x = Variable(index=i, lb=0, name='混合比率')
------------------------------------------------------------------
↓
------------------------------------------------------------------
# 変数
excel['混合比率'] = x = Variable(index=i, lb=0)
------------------------------------------------------------------
これで Excel 上でデータの入出力を行うことができるようになりました.
求解は Excel 上から実行することができます.
いかがでしたでしょうか.
Excel 上での設定は C++SIMPLE 版と同じなので,C++SIMPLE 版の Excel
アドインを使ったことがある方はスムーズに利用できます.
V27 では他にも新機能が加わったり,動作環境の追加も行われていますので
確認してみてください.
Nuorium Optimizer Excelアドインマニュアル 3.1.1. PySIMPLE:
https://www.msi.co.jp/solution/nuopt/docs/excel/articles/model-write.html#pysimple
今回扱った例題集の配合問題はこちら:
https://www.msi.co.jp/solution/nuopt/docs/pysimple/_modules/sample/reidaishu.html#p2010_mixture
PySIMPLE の更新履歴はこちら:
https://www.msi.co.jp/solution/nuopt/docs/pysimple/changelog.html
(池田 悠)
******************************************************************
■ <トピック> セミナー開催報告「計画業務はこうやって最適化する!」
******************************************************************
4 月 21 日に計画業務をテーマにしたセミナーをオンラインと対面で実施
しました.当日は多くのお客様にご参加いただき,ご好評をいただきました.
今回はセミナーの内容を一部ご紹介いたします.
計画業務とは,リソースを最大限に活用し,業務の効率化やコスト削減,
顧客満足度向上を目指すプロセスのことです.業務のアウトプットとして
何かしらの「計画」が得られ,その計画をもとに多くの人や物が動きます.
SCM を専門にする部署であれば馴染みの深い業務ですが,SCM 以外でも
このような計画の策定・立案を行う業務は様々にあります.
計画業務の中でよくある悩みとして次のようなものがあります.
・属人化:業務が特定の人の勘や経験に依存している
・手作業の限界:計画業務に多くの時間を費やしている
・全体最適の難しさ:部門間での調整が必要となり,複雑で手間もかかる
こうした課題を瞬時に解決する魔法のようなツールはまだ現代には
ありませんが, 数理最適化がその一翼を担うことは可能です.
というのも,数理最適化は日本では 「数理計画法」と呼ばれていました.
オペレーションズリサーチの一部であり, 計画業務で必要となる
「限られたリソースで目的を達成する計画を立てる」 ことを得意と
しています.
本セミナーでは計画業務の課題とそれを解決する数理最適化に焦点を
当て, 実際の事例を交えて解決方法を提示しました.
特にセミナーに参加された方からは課題解決に向けた進め方やその期間に
関する話についてご好評をいただきました.
次回の開催日は未定ですが,開催日が決まりましたらセミナーページや
メルマガでご案内いたします.本セミナー以外にも個性的なセミナーが
あります.この機会にぜひご参加ください.
参考:セミナーページ
https://www.msiism.jp/event/
(石橋 保身)
******************************************************************
■ <セミナー> 無料オンラインセミナーのご案内
******************************************************************
6 月までに開催する無料のオンラインセミナーをご紹介します.
エネルギーや物流に関して,課題に特化したセミナーを実施いたします.
ご興味のあるセミナーございましたら詳細をご確認いただき,
是非セミナーにご参加いただけますと幸いです.
物流セミナーは開催まで時間がないため,参加ご検討の方はお早めに
お申し込みください.
[ 物流クライシスを解決 輸送業務の最適化セミナー ]
2025 年 6 月 5 日(木)13:30~15:30
詳細とお申込み :
https://www.msiism.jp/event/nuopt-logistics.html
[ エネルギーマネジメント最適化セミナー ]
2025 年 6 月 20 日(金)13:30~15:30
詳細とお申込み
https://www.msiism.jp/event/nuopt-energy-management.html
(石橋 保身)
==================================================================