# GalacticOptim with AmplNLWriter optimizer

**URL:** https://discourse.julialang.org/t/galacticoptim-with-amplnlwriter-optimizer/71137
**Category:** Optimization (Mathematical)
**Created:** [November 8, 2021, 9:29am UTC](https://discourse.julialang.org/t/galacticoptim-with-amplnlwriter-optimizer/71137 "2021-11-08T09:29:43Z")
**Posts on this page:** 11
**Page:** 1

<div class="post-metadata">

### Author: ![ver\_kh](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ver_kh/32/27595_2.png) [@ver\_kh](https://discourse.julialang.org/u/ver_kh)
#### Post date: [November 8, 2021, 9:29am UTC](https://discourse.julialang.org/t/galacticoptim-with-amplnlwriter-optimizer/71137/1 "2021-11-08T09:29:43Z")

</div>

Hello!

I’m trying to use GalacticOptim.jl with AmplNLWriter.jl optimizer but it’s not working.

> using GalacticOptim, AmplNLWriter, Ipopt\_jll
> 
> rosenbrock(x,p) = (p[1] - x[1])^2 + p[2] \* (x[2] - x[1]^2)^2
> 
> x0 = zeros(2)
> 
> p = [1.0,100.0]
> 
> prob = OptimizationProblem(rosenbrock,x0,p)
> 
> optimizer = GalacticOptim.MOI.OptimizerWithAttributes(AmplNLWriter.Optimizer(Ipopt\_jll.amplexe))
> 
> sol = solve(prob, optimizer)
> 
> println(sol)

Here I use Ipopt\_jll just for example, but it’s not working even with it. Could you please help me to find an error?

Thank you

---

<div class="post-metadata">

### Author: ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)
#### Post date: [November 8, 2021, 11:21am UTC](https://discourse.julialang.org/t/galacticoptim-with-amplnlwriter-optimizer/71137/2 "2021-11-08T11:21:06Z")

</div>

Can you open this as an issue on the repo?

---

<div class="post-metadata">

### Author: ![ver\_kh](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ver_kh/32/27595_2.png) [@ver\_kh](https://discourse.julialang.org/u/ver_kh)
#### Post date: [November 8, 2021, 11:40am UTC](https://discourse.julialang.org/t/galacticoptim-with-amplnlwriter-optimizer/71137/3 "2021-11-08T11:40:16Z")

</div>

Yes, sure

---

<div class="post-metadata">

### Author: ![odow](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/odow/32/28685_2.png) [@odow](https://discourse.julialang.org/u/odow)
#### Post date: [November 8, 2021, 5:52pm UTC](https://discourse.julialang.org/t/galacticoptim-with-amplnlwriter-optimizer/71137/4 "2021-11-08T17:52:30Z")

</div>

AmplNLWriter requires the expression graph, which galacticoptim probably doesn’t provide.

Why not just use Ipopt directly via ipopt.jl?

---

<div class="post-metadata">

### Author: ![ver\_kh](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ver_kh/32/27595_2.png) [@ver\_kh](https://discourse.julialang.org/u/ver_kh)
#### Post date: [November 8, 2021, 6:18pm UTC](https://discourse.julialang.org/t/galacticoptim-with-amplnlwriter-optimizer/71137/5 "2021-11-08T18:18:06Z")

</div>

I used Ipopt here only as an example, to check whether it will work. But I’d like to use AmplNLWriter later with another local solver on my laptop.

---

<div class="post-metadata">

### Author: ![odow](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/odow/32/28685_2.png) [@odow](https://discourse.julialang.org/u/odow)
#### Post date: [November 8, 2021, 6:19pm UTC](https://discourse.julialang.org/t/galacticoptim-with-amplnlwriter-optimizer/71137/6 "2021-11-08T18:19:39Z")

</div>

Use JuMP instead of galacticoptim

---

<div class="post-metadata">

### Author: ![ver\_kh](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ver_kh/32/27595_2.png) [@ver\_kh](https://discourse.julialang.org/u/ver_kh)
#### Post date: [November 8, 2021, 6:39pm UTC](https://discourse.julialang.org/t/galacticoptim-with-amplnlwriter-optimizer/71137/7 "2021-11-08T18:39:18Z")

</div>

Thank you for this recommendation. JuMP is very good but I thought that GalacticOptim and ModelingToolkit will be easier to use with nonlinearities.

---

<div class="post-metadata">

### Author: ![odow](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/odow/32/28685_2.png) [@odow](https://discourse.julialang.org/u/odow)
#### Post date: [November 8, 2021, 6:44pm UTC](https://discourse.julialang.org/t/galacticoptim-with-amplnlwriter-optimizer/71137/8 "2021-11-08T18:44:13Z")

</div>

JuMP supports nonlinear:  
[https://jump.dev/JuMP.jl/stable/manual/nlp/](https://jump.dev/JuMP.jl/stable/manual/nlp/)

---

<div class="post-metadata">

### Author: ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)
#### Post date: [November 8, 2021, 10:20pm UTC](https://discourse.julialang.org/t/galacticoptim-with-amplnlwriter-optimizer/71137/9 "2021-11-08T22:20:56Z")

</div>

> [@odow](#):
>
> AmplNLWriter requires the expression graph, which galacticoptim probably doesn’t provide.

We can just do it through MTK though

---

<div class="post-metadata">

### Author: ![brett\_knoss](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/brett_knoss/32/13050_2.png) [@brett\_knoss](https://discourse.julialang.org/u/brett_knoss)
#### Post date: [November 9, 2021, 1:21am UTC](https://discourse.julialang.org/t/galacticoptim-with-amplnlwriter-optimizer/71137/10 "2021-11-09T01:21:19Z")

</div>

I remember MTK can find minima and maxima, but how is this combination for non-linear optimisation in general? I’m going to be taking an econ class, with a lot of optimisation of Cartesian planes.

---

<div class="post-metadata">

### Author: ![odow](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/odow/32/28685_2.png) [@odow](https://discourse.julialang.org/u/odow)
#### Post date: [November 9, 2021, 1:33am UTC](https://discourse.julialang.org/t/galacticoptim-with-amplnlwriter-optimizer/71137/11 "2021-11-09T01:33:43Z")

</div>

It might be best to start a new post for this. It’s unrelated to the ExprGraph problem.
