局所最適化

nAG Library for Python Example集

<i>n</i>AG ロゴ

局所最適化

ここでは、最適化ルーチンとモデリングスイートの使用に関連するさまざまなリソース(主にJupyterノートブックJupyterノートブック例の実行方法のセクションを読むことをお勧めします。

nAGの最適化製品にすでに精通しており、問題に適したソルバーを見つけるだけでよい場合は、最適化インデックスまたは 数理最適化ソルバー選択ガイドを確認することをお勧めします。

DFO キャリブレーション例 ??????????? 非線形最小二乗キャリブレーション例(分布アンフォールディング)

図1. 応用最適化の例。(左) KowalikとOsborne関数のDFO非線形最小二乗キャリブレーション、 赤線は最終解を示しています。(右) 非線形最小二乗フィッティングの例、実験データのヒストグラム(青棒)は 集約モデル(緑曲線)でフィットされ、アンフォールディングされたモデルは青と赤の曲線です。最適なパラメータ値は凡例に報告されています。詳細はこちらをご覧ください。

目次

リポジトリ

nAG Library for Pythonのインストール方法

このセクションでは、nAG Library for Pythonのインストール方法、トライアルライセンスの要求方法、およびライブラリが正常に動作していることを確認する方法を説明します。インストールに関する詳細および追加情報はこちらで確認できます。

注意 開始する前に、Python 3(3.4以降)がインストールされているホストにアクセスできることを確認してください。

ステップ1. ダウンロードとインストール

nAG Libraryのインストールはpipパッケージマネージャーを使用して行います。Bashを使用してターミナルを起動し、nAG LibraryをインストールしてテストするためのPython 3仮想環境を作成します。

guest@nag-37:~$ python3 -m venv nag3
guest@nag-37:~$ . nag3/bin/activate
(nag3) guest@nag-37:~$

nAG Library for Python をインストールするために pip を使用してください

(nag3) guest@nag-37:~$ python -m pip install --extra-index-url https://www.nag.com/downloads/py/naginterfaces_nag naginterfaces

または、最適化された線形代数ルーチンのためにIntel MKLに依存するバージョンのパッケージを使用したい場合は、次のようにしてください

(nag3) guest@nag-37:~$ python -m pip install --extra-index-url https://www.nag.com/downloads/py/naginterfaces_mkl naginterfaces

出力は以下のようになるべきです

Collecting naginterfaces
  Downloading https://www.nag.com/downloads/py/naginterfaces_nag/naginterfaces/naginterfaces-27.1.0.0-py2.py3-none-linux_x86_64.whl (55.8MB)
    100% |????????????????????????????????| 55.8MB 21kB/s 
Collecting numpy>=1.15 (from naginterfaces)
  Downloading https://files.pythonhosted.org/packages/45/b2/6c7545bb7a38754d63048c7696804a0d947328125d81bf12beaa692c3ae3/numpy-1.19.5-cp36-cp36m-manylinux1_x86_64.whl (13.4MB)
    100% |????????????????????????????????| 13.4MB 70kB/s 
Installing collected packages: numpy, naginterfaces
Successfully installed naginterfaces-27.1.0.0 numpy-1.19.5

インストールが成功したことを出力が示しています。

ステップ2. 試用ライセンスの取得

次のステップは、ライセンス情報(製品コードKUSARI ID)を取得し、それを使用してライセンスをリクエストすることです。同じ仮想ターミナルから、以下を試してください

(nag3) guest@nag-37:~$ python -m naginterfaces.kusari

出力は以下のようになるべきです

The nAG Library for Python on this platform uses
underlying Library NLL6I271VL.
This Library has been installed as part of the package
and it requires a valid licence key.
No such key could be validated:
the key may not have been installed correctly or
it may have expired.
The Kusari licence-check utility reports the following:
User: guest
Directory: /home/guest
nAG_KUSARI_FILE=""
File /home/guest/nag.key does not exist
-------------------------------------------------------------------------------
Error: Licence not found; this product requires a key for NLL6I271VL
The above information has been generated on machine nag-37
For information on how to obtain a licence, please see
https://www.nag.com/numeric/py/nagdoc_latest/naginterfaces.kusari.html
KUSARI ID = "ADLXt-adEclJLmvnxlrU2sseteZoo,RopA-Ld"

2つの重要な部分は以下の通りです:

  1. 製品コードunderlying Library NLL6I271VL.として表示され、リクエストするライセンスを識別します。

  2. KUSARI IDKUSARI ID = "ADLXt-adEclJLmvnxlrU2sseteZoo,RopA-Ld"として表示され、ライブラリを実行しているホストを識別します。

注意製品コードKUSARI IDは前の例とは異なる場合があります。

これらがあれば、nAGに連絡してトライアルライセンスをリクエストする準備が整います。

トライアルライセンスは、以下のような単純なテキストチャンクです: NLL6I271V TRIAL 2021/01/27 "RverXn0Pc-Ib?ctdgF=Wpis2j7I" /home/guest/nag.keyファイルにテキストを保存またはコピーしてください。

最後のステップは、ライセンスが有効であり、ライブラリが期待通りに動作していることを確認することです。

ステップ3. nAGライブラリのテスト

最後のステップは、ライセンスが正しく保存され、nAGライブラリが正常に動作していることを確認することです。同じ仮想端末から、Kusariライセンスモジュールを再実行してください。

(nag3) guest@nag-37:~$ python -m naginterfaces.kusari

今回の出力は以下のようになるはずです

Licence available; the required NLL6I271VL licence key for this product is valid
TRIAL licence, 27 days remaining (licence from file)

より興味深い例を試してみましょう(最適化の例のリスト

このコマンドは、FOAS(一次アクティブセット法)ソルバーの例を実行し、Rosenbrock 2D関数を最小化します

(nag3) guest@nag-37:~$ python -m naginterfaces.library.examples.opt.handle_solve_bounds_foas_ex

以下のような出力を生成する必要があります

Trying:
    main()
Expecting:
    naginterfaces.library.opt.handle_solve_bounds_foas Python Example Results.
    Minimizing a bound-constrained Rosenbrock problem.
     E04KF, First order method for bound-constrained problems
...
     Status: converged, an optimal solution was found
     Value of the objective             4.00000E-02
    ...
ok

例が正常に実行されたことを示しています。ソースコードはこちらで見つけることができます。

さらに多くの例を実行する

ディスク上の例のソースファイルの完全なリストを表示するが、実行はしない場合は、以下を実行します

python -m naginterfaces.library.examples --locate

すべての例は、以下を実行することで順番に実行できます

python -m naginterfaces.library.examples

追加の使用方法を確認するには、python -m naginterfaces.library.examples --help を実行してください。

Jupyter notebookの例の実行方法

このセクションでは、このリポジトリで提供されているJupyter notebooksを開いて実行するためのホストのセットアップ方法を簡単に説明します。 ノートブックを実行する前に、nAG Libraryがインストールされ動作していることを確認してください。始める前に、Jupyterのインストールページを読むことをお勧めします。

Jupyter notebookのインストール

Jupyterをインストールするには、ターミナルを起動し、nAG Library for Pythonをインストールするために使用した仮想環境をアクティブにします

guest@nag-37:~$ . nag3/bin/activate
(nag3) guest@nag-37:~$ pip install notebook matplotlib
Collecting notebook
  Downloading https://files.pythonhosted.org/packages/74/19/50cd38acf22e33370d01fef764355f1e3517f6e12b4fceb8d434ece4f8fd/notebook-6.2.0-py3-none-any.whl (9.5MB)
    100% |????????????????????????????????| 9.5MB 115kB/s 
Collecting argon2-cffi (from notebook)
...
Successfully installed jupyter-client-6.1.11 jupyterlab-pygments-0.1.2 ... wcwidth-0.2.5

これはJupyterとmatplotlibが正常にインストールされたことを示しています。次のセクションでは、ノートブックインターフェースを起動し、例を開く方法を示します。

ノートブック例の実行

例を実行するには、関心のあるノートブックのコピーを取得し、ノートブックインターフェースを起動します。 例えば、Rosenbrock 2D最適化例ノートブック rosenbrock2d.ipynb を現在のディレクトリにダウンロードします

(nag3) guest@nag-37:~$ curl -O https://raw.githubusercontent.com/numericalalgorithmsgroup/nAGPythonExamples/master/local_optimization/FOAS/rosenbrock2d.ipynb
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 61961  100 61961    0     0   382k      0 --:--:-- --:--:-- --:--:--  382k

そして、jupyter-notebookを使用してそれを開きます

(nag3) guest@nag-37:~$ jupyter-notebook rosenbrock2d.ipynb
[I 12:24:07.336 NotebookApp] Serving notebooks from local directory: /home/guest
[I 12:24:07.336 NotebookApp] Jupyter Notebook 6.2.0 is running at:
[I 12:24:07.336 NotebookApp] http://localhost:8888/?token=f1836a06799a92f25ef9966439bf3491b2f0960dcb51806d
...

このコマンドを実行すると、Webブラウザが起動し、rosenbrock2d.ipynbノートブックが開きます。ウィンドウは以下のようになるはずです。

ノートブックのスクリーンショット

役立つリンク

トップに戻る

関連情報
MENU
© 日本ニューメリカルアルゴリズムズグループ株式会社 2025
Privacy Policy  /  Trademarks