GALAHAD 是一個現代 Fortran 軟體包庫,用於使用 C、Python、Julia 和 MATLAB 介面進行非線性最佳化。它包含用於一般約束和無約束最佳化、線性和二次規劃、非線性最小二乘擬合和全局最佳化的包,以及用於解決各種基本最佳化子問題的套件。
有關 GALAHAD 中軟體包的更多信息,請訪問 https://www.galahad.rl.ac.uk。
所有主要的 GALAHAD 套件均以 Fortran、C、Python 和 Julia 進行記錄:
為 MATLAB 函數提供了幫助文件。
我們在 Linux、macOS(Intel 和 Silicon)和 Windows 的發布標籤中提供了預先編譯的 GALAHAD 函式庫。
GALAHAD 可以使用 Meson 建置系統從原始碼安裝(下面的所有命令都將從原始碼樹的頂部運行):
meson setup builddir -Dtests=true
meson compile -C builddir
meson install -C builddir
meson test -C builddir
有關更全面的 Meson 選項 ( -Doption=value
),包括如何指定各種程式庫和套件的路徑,請參閱 meson_options.txt 和 README.meson。我們在下面給出了一些最重要的介子選項的範例。
GALAHAD 支援大量可選軟體包以增強功能,其中最重要的是:
預設情況下,如果 GALAHAD 可以找到 OpenBLAS,它將使用 OpenBLAS 進行建置(否則您可能需要透過libblas_path
和liblapack_path
選項將 OpenBLAS 路徑傳遞給meson setup
)。您可能還想使用特定於供應商的 BLAS/LAPACK 實現,例如以下之一:
請參閱 README.meson,以了解如何告訴 Meson 在哪裡找到這些可選依賴項的說明。
預設情況下,GALAHAD 將建構 SSIDS 線性求解器,其他替代線性解算器有:
請參閱 README.meson,以了解如何告訴 Meson 在哪裡找到這些可選依賴項的說明。
GALAHAD 可以使用 CUTEst 測試集合中的最佳化測試問題。例如,要將 GALAHAD 與在 64 位元 Linux 機器上用 gfortran 編譯的雙精度 CUTEst 連結:
meson setup builddir -Dlibcutest_double_path=/path/to/CUTEst/objects/pc64.lnx.gfo/double/ -Dlibcutest_double_modules=/path/to/CUTEst/modules/pc64.lnx.gfo/double/ -Dsingle=false
meson compile -C builddir
meson install -C builddir
類似地,可以將 GALAHAD 與單精確度 CUTEst 連結起來,請參閱 meson_options.txt。
若要使用 Meson 建置系統安裝 C 介面:
meson setup builddir -Dciface=true
meson compile -C builddir
meson install -C builddir
meson test -C builddir --suite=C
若要使用 Meson 建置系統安裝 Python 介面:
meson setup builddir -Dpythoniface=true -Dpython.install_env=auto
meson compile -C builddir
meson install -C builddir
meson test -C builddir --suite=Python
請參閱 GALAHAD.jl 和相關文件。
請參閱 README.matlab 以及其中提供的說明。
GALAHAD 也可以透過「make」命令安裝,作為 Optrove 優化生態系統的一部分,該生態系統還包括 CUTEst、SIFDecode 和 ARCHDefs。這樣做的優點是可以提供腳本直接從 GALAHAD 運行 CUTEst 範例並允許從 Matlab 調用,但其建置時間要長得多。
要使用此變體,請按照 GALAHAD wiki 中的說明進行操作。