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 中的说明进行操作。