Version 3.4 リリースノート
- 製品名:
fxLooper
- バージョン:
3.4.0
- リリース年月:
2026年3月
API
ベイズ最適化の改良
ベイズ最適化(fxlp.bo.BO モジュール)において、デフォルトのカーネルが変更されました。これにより、最適化の安定性や性能が向上することが期待できます。
ベイズ最適化のソルバー(fxlp.bo.BO クラスなど)における従来のデフォルトのカーネルは、単一のMatern 5/2 カーネルで、
kernel = fxlp.bo.Matern52()
でしたが、新しいデフォルトのカーネルは、
kernel = fxlp.bo.ConstantKernel() * fxlp.bo.Matern52() + fxlp.bo.WhiteKernel()
と、3個の基本カーネルの組合せとなりました。ここで、ConstantKernel (定数カーネル)と WhiteKernel (白色雑音カーネル)は新規で追加されたカーネルです。また、カーネル同士の加算と乗算も可能になりました。
これらの3個の基本カーネルはそれぞれ1個のハイパーパラメーターを持つため、全体ではハイパーパラメーターが3個となります。これにより、ベイズ最適化の内部の回帰モデルの表現力が増加し、最適化の安定性や性能も向上することが期待されます。
CADモジュールAPIの共通化
FreeCADモジュール(fxlp.freecad)やオプションの各種CADモジュールにおいて、APIが公式的に共通化されました。
具体的には、各CADモジュールの基盤となる、基底CADアプリケーションモジュール(fxlp.cad)が導入されました。各CADモジュールの各クラスは、基底モジュールの対応するクラスの派生クラス(サブクラス)となりました。
次のようなプログラムにおいて、2行目のモジュール名と26行目のファイル名(拡張子)を変えるだけで、連携するCADアプリケーションを簡単に切り替えることが可能になります。
1import fxlp
2from fxlp import freecad as cad
3
4
5def main():
6 system = fxlp.System()
7
8 # 独立変数
9 system.add_x('x1', 20, 60)
10 system.add_x('x2', 20, 60)
11 system.add_x('x3', 20, 60)
12
13 # 目的関数
14 system.add_f('f')
15
16 # タスク
17 system.add_task(cad_task, cad.App())
18
19 # 最適化ソルバー
20 ...
21
22 return system
23
24
25def cad_task(case, app):
26 doc = app.open('model.FCStd') # CADファイルを開く
27 doc.set_value('length', case['x1']) # 変数「length」の値を変更
28 doc.set_value('width', case['x2']) # 変数「width」の値を変更
29 doc.set_value('height', case['x3']) # 変数「height」の値を変更
30 doc.save() # CADファイルを上書き保存
31 doc.export_stl('shape.stl') # STLファイルとしても出力
32 case['f'] = doc.get_volume() # 体積を取得
33 doc.close() # CADファイルを閉じる
またその他、CADモジュール関係のAPIの拡充を行いました。
全般
連携可能CADの新規追加
新たに以下のCADアプリケーションとの連携が可能になり、オプションモジュールとして新規追加されました。
ThinkDesign(
fxlp.thinkdesign)Autodesk Inventor(
fxlp.inventor)
その他
各種オプションモジュールの機能追加・仕様変更を行いました。