クイックスタート#
Layer 1: Use
インストールは完了していますか? インストール方法はこちらを参照してください。
初めての実行#
まずは最小の記述で最適化問題を解いてみましょう。
from saealib import minimize
from saealib.benchmarks import rastrigin
problem = rastrigin(n_var=10)
result = minimize(func=problem)
print(f"objective: {result.f}")
print(f"solution: {result.x}")
print(f"evaluated: {result.fe}")
print(f"generation: {result.gen}")
ここではsaealibが提供するベンチマークパッケージから、設計変数空間が10次元のRastrigin関数(saealib.benchmarks.rastrigin)の最小化問題を解いています。 minimize() / maximize()は、パラメータを指定するだけで最適化を実行できる高レベルAPIです。
任意の関数を最適化#
前節ではベンチマーク問題を使用しましたが、ここでは任意の関数を最適化する例を見てみましょう。 saealibのベンチマークパッケージを利用する場合は必要なパラメータが自動的にAPIへ渡されますが、任意の関数(callable)を渡す場合はいくつかのパラメータを自分で指定する必要があります。
import numpy as np
from saealib import minimize
def rastrigin(x: np.ndarray) -> float:
return 10 * len(x) + np.sum(x**2 - 10 * np.cos(2 * np.pi * x))
result = minimize(func=rastrigin, dim=10, lb=[-5.12] * 10, ub=[5.12] * 10)
print(f"objective: {result.f}")
print(f"solution: {result.x}")
ここでは10次元のRastrigin関数を定義して最小化問題を解いています。 funcパラメータはnumpy配列を受け取り評価値を返すような任意のcallableオブジェクトを指定できます。 シミュレーション(CAE)や機械学習モデルの学習など、評価コストの高い目的関数をここに指定することで、効率的なパラメータ探索に応用できます。
次のステップ#
ここで紹介した機能はsaealibの一部分です。 詳細なガイドは次のページを参照してください。
Layerの案内:目的に合うLayerと関連ページを選びます
チュートリアル:具体的な状況別の使い方ガイド
コンポーネント:コンポーネントごとの詳しい使い方
API Reference:全パラメータのリファレンス