Julia para Otimização - Exemplo 1
« voltar para “Julia para Otimização”
Objetivo: escrever um modelo simples de otimização irrestrita.
Vamos escrever o problema de duas variáveis
\[\begin{equation*} \min_x x_1^2 + x_2^2 \end{equation*}\]Carregando pacotes necessários:
julia> using JuMP, NLPModels, NLPModelsJuMP
Iniciando o modelo de nome P
:
julia> P = Model()
Criando as variáveis $x_1$ e $x_2$ no modelo P
:
julia> @variable(P, x[1:2])
Definindo a função objetivo em P
e o sentido de otimização “minimizar”:
julia> @NLobjective(P, Min, x[1]^2 + x[2]^2)
Obs: caso a FO for linear, use o comando @objective
Exibindo o modelo P
construído:
julia> println(P)
Transformando o modelo P
para o formato NLPModels:
julia> nlp = MathOptNLPModel(P)
O modelo nlp
está pronto para ser resolvido pelos métodos! A estrutura nlp
fornece as derivadas de 1a e 2a ordens aos métodos sem a necessidade de calculá-las.
A estrutura nlp.meta
contém propriedades do problema. Por exemplo, nlp.meta.nvar
e nlp.meta.ifree
contém o número de variáveis e o vetor de índices das variáveis livres, respectivamente. Consulte a página do pacote NLPModels para uma descrição de todas as opções.