GALAHAD é uma biblioteca de pacotes Fortran modernos para otimização não linear com interfaces C, Python, Julia e MATLAB. Ele contém pacotes para otimização geral restrita e irrestrita, programação linear e quadrática, ajuste não linear de mínimos quadrados e otimização global, bem como aqueles para resolver uma grande variedade de subproblemas básicos de otimização.
Mais informações sobre os pacotes do GALAHAD podem ser encontradas em https://www.galahad.rl.ac.uk.
Todos os principais pacotes GALAHAD estão documentados em Fortran, C, Python e Julia:
Arquivos de ajuda são fornecidos para funções do MATLAB.
Fornecemos uma biblioteca GALAHAD pré-compilada na guia de lançamentos para Linux, macOS (Intel e Silicon) e Windows.
GALAHAD pode ser instalado a partir do código-fonte usando o sistema de compilação Meson (todos os comandos abaixo devem ser executados no topo da árvore de código-fonte):
meson setup builddir -Dtests=true
meson compile -C builddir
meson install -C builddir
meson test -C builddir
Para opções mais abrangentes do Meson ( -Doption=value
), incluindo como especificar caminhos para várias bibliotecas e pacotes, consulte meson_options.txt e README.meson. Damos alguns exemplos abaixo para as opções mais importantes do Meson.
GALAHAD suporta um grande número de pacotes de software opcionais para funcionalidade aprimorada, os mais importantes deles são:
Por padrão, o GALAHAD irá construir com OpenBLAS se puder localizá-lo (caso contrário, você pode precisar passar os caminhos OpenBLAS através das opções libblas_path
e liblapack_path
para meson setup
). Você também pode usar uma implementação BLAS/LAPACK específica do fornecedor, como uma das seguintes:
Consulte README.meson para obter instruções sobre como informar ao Meson onde encontrar essas dependências opcionais.
Por padrão, o GALAHAD construirá o solucionador linear SSIDS, outros solucionadores lineares alternativos são:
Consulte README.meson para obter instruções sobre como informar ao Meson onde encontrar essas dependências opcionais.
GALAHAD pode usar problemas de teste de otimização da coleção de testes CUTest. Por exemplo, para vincular GALAHAD com CUTEst de precisão dupla compilado com gfortran em uma 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
Da mesma forma, é possível vincular GALAHAD com CUTest de precisão simples, consulte meson_options.txt.
Para instalar a interface C usando o sistema de compilação Meson:
meson setup builddir -Dciface=true
meson compile -C builddir
meson install -C builddir
meson test -C builddir --suite=C
Para instalar a interface Python usando o sistema de compilação 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 e a documentação associada.
Consulte README.matlab e as instruções fornecidas nele.
GALAHAD também pode ser instalado através do comando “make” como parte do ecossistema de otimização Optrove que também inclui CUTEst, SIFDecode e ARCHDefs. Isto tem a vantagem de fornecer scripts para executar exemplos CUTEst diretamente do GALAHAD e permitir chamadas do Matlab, mas sofre com tempos de construção consideravelmente mais longos.
Para usar esta variante, siga as instruções no wiki GALAHAD.