# Using ANTIGONE from Julia

**URL:** <https://discourse.julialang.org/t/using-antigone-from-julia/10917>\
**Category:** Optimization (Mathematical)\
**Tags:** jump, optimization\
**Created:** [May 15, 2018, 8:12pm UTC](https://discourse.julialang.org/t/using-antigone-from-julia/10917 "2018-05-15T20:12:25Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![rdeits](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rdeits/32/286_2.png) [@rdeits](https://discourse.julialang.org/u/rdeits)\
**Post date:** [May 15, 2018, 8:12pm UTC](https://discourse.julialang.org/t/using-antigone-from-julia/10917/1 "2018-05-15T20:12:26Z")

</div>

I’ve been investigating the various options for (globally optimal) MINLP in Julia, and [ANTIGONE](http://helios.princeton.edu/ANTIGONE/) looks like a nice option. I’m curious if anyone has any experience using it from Julia.

At first glance, it looks like this will be difficult, as ANTIGONE appears to only support GAMS models, and I can’t find any JuMP-GAMS interface. It also looks like converting from `.nl` to GAMS is nontrivial. [NEOS](https://neos-server.org/neos/solvers/index.html) does support ANTIGONE, but only through GAMS file uploads, which seems like it doesn’t resolve the issue.

Am I missing anything? Any suggestions on the best path forward?

Or, perhaps, what is your favorite MINLP solver? So far on my list I have:

- COUENNE: easy to use, compatible with JuMP, but appears to perform poorly
- SCIP: also compatible with JuMP, but haven’t evaluated its performance
- BARON: compatible with JuMP, but expensive. Currently waiting for a license
- ANTIGONE: GAMS-only
- LINDOGlobal: GAMS-only

Edits:

- POD.jl: native Julia, with JuMP support

---

<div class="post-metadata">

**Author:** ![ccoffrin](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ccoffrin/32/400_2.png) [@ccoffrin](https://discourse.julialang.org/u/ccoffrin)\
**Post date:** [May 15, 2018, 9:24pm UTC](https://discourse.julialang.org/t/using-antigone-from-julia/10917/2 "2018-05-15T21:24:36Z")

</div>

This package provides a way to access any solver that supports AMPL NL files,

> **[GitHub - jump-dev/AmplNLWriter.jl: Julia interface to AMPL-enabled solvers](https://github.com/jump-dev/AmplNLWriter.jl)**
>
> Julia interface to AMPL-enabled solvers. Contribute to jump-dev/AmplNLWriter.jl development by creating an account on GitHub.

You might also consider this native Julia global solver,

> **[GitHub - lanl-ansi/Alpine.jl: A Julia/JuMP-based Global Optimization Solver...](https://github.com/lanl-ansi/Alpine.jl)**
>
> A Julia/JuMP-based Global Optimization Solver for Non-convex Programs - GitHub - lanl-ansi/Alpine.jl: A Julia/JuMP-based Global Optimization Solver for Non-convex Programs

---

<div class="post-metadata">

**Author:** ![rdeits](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rdeits/32/286_2.png) [@rdeits](https://discourse.julialang.org/u/rdeits)\
**Post date:** [May 15, 2018, 9:32pm UTC](https://discourse.julialang.org/t/using-antigone-from-julia/10917/3 "2018-05-15T21:32:29Z")

</div>

Thanks! Unfortunately, I don’t think ANTIGONE itself supports AMPL NL files, and I can’t find any clear way to transform a NL model into a GAMS one.

I’ve played around with POD.jl a bit in the past, but forgot to add it to the list. I’ll fix that now.

---

<div class="post-metadata">

**Author:** ![renke.kuhlmann](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/renke.kuhlmann/32/15384_2.png) [@renke.kuhlmann](https://discourse.julialang.org/u/renke.kuhlmann)\
**Post date:** [June 3, 2020, 11:53am UTC](https://discourse.julialang.org/t/using-antigone-from-julia/10917/4 "2020-06-03T11:53:14Z")

</div>

I know this is a bit old, but in case there are others who have a similar issue.

You can give GAMS.jl a try: [GitHub - GAMS-dev/gams.jl: A MathOptInterface Optimizer to solve JuMP models using GAMS](https://github.com/GAMS-dev/gams.jl)  
For using Antigone, simply do:

```julia
using GAMS, JuMP
model = Model(GAMS.Optimizer)
set_optimizer_attribute(model, GAMS.Solver(), "antigone")

```

---

<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:** [June 3, 2020, 2:55pm UTC](https://discourse.julialang.org/t/using-antigone-from-julia/10917/5 "2020-06-03T14:55:30Z")

</div>

Cool! Is this an officially supported GAMS product? Please let me know if we can offer any help from our side.

---

<div class="post-metadata">

**Author:** ![renke.kuhlmann](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/renke.kuhlmann/32/15384_2.png) [@renke.kuhlmann](https://discourse.julialang.org/u/renke.kuhlmann)\
**Post date:** [June 4, 2020, 1:56pm UTC](https://discourse.julialang.org/t/using-antigone-from-julia/10917/6 "2020-06-04T13:56:19Z")

</div>

Yes, this is officially supported. However, it’s still at an early stage and we are very busy with testing. Thanks very much for the offer, I will very probably come back to that. If you have any suggestions for improvements or feature requests, simply create an issue. We are more than happy to hear your feedback!

---

<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:** [June 4, 2020, 2:10pm UTC](https://discourse.julialang.org/t/using-antigone-from-julia/10917/7 "2020-06-04T14:10:29Z")

</div>

Very nice.

This repo also has a lot of tests for nonlinear solvers: [GitHub - jump-dev/MINLPTests.jl: Unit and Integration Tests for JuMP NLP and MINLP solvers](https://github.com/JuliaOpt/MINLPTests.jl)

JuMP/MOI’s current support for NLP is second-class. We hope to make significant improvements over the next 12-24 months.

You can join: [JuliaOpt/JuMP-dev - Gitter](https://gitter.im/JuliaOpt/JuMP-dev). We also hold monthly development calls. The next is June 26. If you’re interested, ask `@mlubin` on the Gitter channel for an invite. I’m sure we’d all be interested to hear the challenges interfacing JuMP with GAMS.
