トップ > 製品概要 > 派生製品 > MP.doc

MP.doc

Numerical Optimizerアドオンの MP.doc について紹介いたします。

MP.doc の実行画面

(MP.doc の実行画面)


1.はじめに

MP.doc(エムピードック)は汎用数理計画パッケージ Numerical Optimizer のアドオンソフトウェアとして開発されました。 MP.docを利用すれば、直感的な数式入力で数理計画問題を記述し、実際に解いてみることが可能です。 これにより、ユーザーはプログラミング言語やモデリング言語を知らなくても、数式さえ入力することができれば、簡単に数理計画問題を解くことができるようになります。

MP.docの使い方は簡単です。Microsoft Wordのアドオンとしてよく知られている、 MathType[1]が数式の入力ツールになっていますので、この MathType を使って数式を記述します。その数式記述をMicrosoft Wordドキュメント上に貼り付け、Wordドキュメント上で最適化実行ボタンをクリックすると、最適化計算が実行できるようになっています。

2.動作条件

MP.docは次の環境を満たすPCにインストールすることができます。

がインストールされたIBM-PC互換機
*1 Microsoft Word に付属している"Microsoft 数式 3.0"では動作しません。

3.使い方

MP.docの基本的な使い方について解説します。(MP.docに付属の操作マニュアルから一部抜粋したものです。)

3.1. 起動

Windows のスタートボタンからMP.docを起動します。セキュリティー警告画面でマクロを有効にしますかと聞いてくるので、「マクロを有効にする(E)」を選択します。すると

MP.doc の起動時

このようなMicrosoft Word 文書[2] が開きます。ドキュメント上に数式が張り付いているのが分かります。この数式を“数式オブジェクト” と言います。これは簡単な線形計画問題をMP.docの記法に従って書き表したものです。

また、Wordのメニューバーに「NUOPT」[3] という項目が追加されているのが分かります。

Word のメニューバー

MP.docでは数理計画問題に対する操作をWordのメニューバーにある「NUOPT」から行えるよう設計・実装されています。

3.2. 実行

それでは、実際に実行してみます。先ほど開いたWordファイルは一時的に作成されたものなので、適当な場所に保存します。

Word のメニューバーにあるファイルから「名前をつけて保存」もしくは「上書き保存」を選択します。

Word のメニューバー(保存時)

このとき同時に、MP.docに関する設定も保存されます。このようにMP.docでは通常のドキュメントとして保存するだけで、MP.docに対応した文書を簡単に作成することができるようになっています。

Word 文書上には数式オブジェクトが二つ張り付いていますが、特に、左のオブジェクトを “問題記述オブジェクト”、右のオブジェクトを“出力指定オブジェクト”と呼びます。

MP.doc ではWordドキュメント上に複数の数理計画問題を貼り付けることができる仕様になっているので、必ず、解きたい問題をマウスで選択して、いまどの問題に着目しているのかという情報を MP.doc に伝えてから、数理計画問題に対する操作を行います。

“Problem”とラベルの付いたオブジェクト(問題記述オブジェクト)をマウスで選択すると、



オブジェクトの選択時 角丸四角形吹き出し: 問題記述
オブジェクト
円形吹き出し: 選択された
状態
角丸四角形吹き出し: 出力指定
オブジェクト



このように黒枠で囲まれるのが分かります。続いて選択した状態で Word メニューの

[NUOPT]→[実行]

をクリックします。

Word のメニューバー(実行時) 角丸四角形吹き出し: 左クリック

しばらくすると、結果が数式オブジェクトとして同じ Word ドキュメント上に埋め込まれます。

結果の出力 角丸四角形吹き出し: 最適解
オブジェクト

この最適解が書き込まれた数式オブジェクトを特に、“最適解オブジェクト”と言います。

最適解オブジェクトはWord上に埋め込まれた数式オブジェクトですので、コピーや貼り付け、編集をすることが可能です。

4.機能と特徴

4.1. 数学記号と関数

以下は、MP.docでサポートされる数学記号の一覧です。一般的な最適化問題を記述する上で 充分な数学記号および関数をカバーしています。

MP.doc でサポートされる数学記号の一覧 MP.doc でサポートされる数学記号の一覧

 


4.2. 掛算記号の省略

MP.doc の機能の一つに掛算記号を自動で補うというものがあります。

先立って数理計画問題のオブジェクト変数を宣言すると、目的関数や制約式中に現れる数式の掛算記号を省略することができます。

掛算演算子を省略できる例を示します。

演算子を省略することができる例

これは典型的な二次計画問題の記述例です。オブジェクトとして 宣言されているオブジェクト が宣言されているので、目的関数に現れる数式 目的関数(掛算記号を省略) では演算子を省略しています。もちろん、モデルを明確にするため掛算記号を補い、 目的関数(掛算記号を使用) と書くことも出来ます。

サンプル問題の「二次計画問題」や 「ポートフォリオ最適化」などにこの機能が利用されています。

4.3. 添字の省略

掛算記号を補うのと同様、添字の区切り文字としてのカンマを補う機能があります。数式による記述では添字の切れ目が明確なときにはあえてカンマを付加しません。このようなことが MP.doc なら可能です。

この機能は、サンプル問題の「二次計画問題」や 「ポートフォリオ最適化」などで使われています。

4.4. ギリシャ文字の使用

数式による記述にはよくギリシャ文字が使われます。このギリシャ文字をMP.docではそのまま、利用することができるよう工夫されています。

この機能は、サンプル問題の「ポートフォリオ最適化」や 「非線形フィッティング問題」で使われています。

5.サンプル問題

以下はすべてMP.docの記法に従って記述した最適化問題です。
実際に、様々な最適化問題を記述し、解かせることができます。

5.1. 非線形計画問題(H-S No.7)

簡単な非線形問題の記述例で、ベンチマーク問題集 Hock & Schittkowski のNo7 の問題です。

非線形問題の記述例

5.2. 二次計画問題

目的関数が二次、制約式が一次の最適化問題です。

二次計画問題の記述例

5.3. ポートフォリオ最適化

複数銘柄の中から期待収益率を確保しつつ、なるべくリスクが小さく(収益率の分散を最小化する意味で)なるような銘柄の組み入れ比率を求める最適化問題であり、マルコビッツの平均分散モデル(Mean-Variance モデル)と呼ばれています。マルコビッツモデルは、次のように二次計画問題に帰着されます。

マルコビッツモデルの記述例

5.4. 最小コストネットワークフロー問題

流れ保存則と非負制約を満たすフローの中で、各枝にかかるコストの総和を最小化する問題です。

最小コストネットワークフロー問題の記述例

5.5. 非線形フィッティング問題

非線形フィッティング問題とは、パラメータに対して非線形に依存している

モデル式:f(x, a1, …, an)      (a1, …, an:パラメータ、x:変数)

と、m 個の観測点 xi(i ∈{観測点})に対する観測値yi が与えられているとき、 パラメータa1, …, anを推定する問題です。

非線形フィッティング問題の記述例

5.6. 集合被覆問題

MP.doc では次のような整数計画問題も解くことが可能です。

海難救助艇最適配備問題の記述例

このモデルは

大山,「最適化モデル分析」,日科技連,1993

のp.123 の海難救助艇最適配備問題から取ったものです。

5.7. 大域的最適化問題

さらに、Numerical Optimizer Global をインストールすると、このような問題 も解かせることができます。

6.お問い合わせ

MP.docに関するお問い合わせ、ご質問などございましたら

nuopt-support@msi.co.jp

まで、お気軽にお問い合わせください。