GALAHAD es una biblioteca de paquetes Fortran modernos para optimización no lineal con interfaces C, Python, Julia y MATLAB. Contiene paquetes para optimización general restringida y no restringida, programación lineal y cuadrática, ajuste de mínimos cuadrados no lineal y optimización global, así como aquellos para resolver una gran variedad de subproblemas básicos de optimización.
Puede encontrar más información sobre los paquetes en GALAHAD en https://www.galahad.rl.ac.uk.
Todos los paquetes principales de GALAHAD están documentados en Fortran, C, Python y Julia:
Se proporcionan archivos de ayuda para las funciones de MATLAB.
Proporcionamos una biblioteca GALAHAD precompilada en la pestaña de versiones para Linux, macOS (Intel y Silicon) y Windows.
GALAHAD se puede instalar desde el código fuente utilizando el sistema de compilación Meson (todos los comandos siguientes deben ejecutarse desde la parte superior del árbol de código fuente):
meson setup builddir -Dtests=true
meson compile -C builddir
meson install -C builddir
meson test -C builddir
Para obtener opciones de Meson más completas ( -Doption=value
), incluido cómo especificar rutas a varias bibliotecas y paquetes, consulte meson_options.txt y README.meson. A continuación damos algunos ejemplos de las opciones de Meson más importantes.
GALAHAD admite una gran cantidad de paquetes de software opcionales para una funcionalidad mejorada, los más importantes son:
De forma predeterminada, GALAHAD compilará con OpenBLAS si puede ubicarlo (de lo contrario, es posible que deba pasar las rutas de OpenBLAS a través de las opciones libblas_path
y liblapack_path
para meson setup
). También es posible que desee utilizar una implementación BLAS/LAPACK específica del proveedor, como una de las siguientes:
Consulte README.meson para obtener instrucciones sobre cómo indicarle a Meson dónde encontrar estas dependencias opcionales.
De forma predeterminada, GALAHAD construirá el solucionador lineal SSIDS; otros solucionadores lineales alternativos son:
Consulte README.meson para obtener instrucciones sobre cómo indicarle a Meson dónde encontrar estas dependencias opcionales.
GALAHAD puede utilizar problemas de prueba de optimización de la colección de pruebas CUTEst. Por ejemplo, para vincular GALAHAD con CUTEst de doble precisión compilado con gfortran en una máquina Linux de 64 bits:
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
De manera similar, se puede vincular GALAHAD con CUTEst de precisión simple; consulte meson_options.txt.
Para instalar la interfaz C usando el sistema de compilación Meson:
meson setup builddir -Dciface=true
meson compile -C builddir
meson install -C builddir
meson test -C builddir --suite=C
Para instalar la interfaz Python usando el sistema de compilación Meson:
meson setup builddir -Dpythoniface=true -Dpython.install_env=auto
meson compile -C builddir
meson install -C builddir
meson test -C builddir --suite=Python
Consulte GALAHAD.jl y la documentación asociada.
Consulte README.matlab y las instrucciones proporcionadas allí.
GALAHAD también se puede instalar mediante el comando "make" como parte del ecosistema de optimización Optrove que también incluye CUTEst, SIFDecode y ARCHDefs. Esto tiene la ventaja de proporcionar scripts para ejecutar ejemplos CUTEst directamente desde GALAHAD y permitir llamadas desde Matlab, pero adolece de tiempos de compilación considerablemente más largos.
Para utilizar esta variante, siga las instrucciones en la wiki de GALAHAD.