jump-dev / Pajarito.jl

A solver for mixed-integer convex optimization
Mozilla Public License 2.0
129 stars 22 forks source link

Split off the convex MINLP solver into a separate package #412

Closed mlubin closed 5 years ago

mlubin commented 6 years ago

We'd like to split off the convex MINLP solver into a separate package so that if someone says "I used Pajarito to solve X", this means clearly that they used the conic/extended formulation methods proposed in the papers we've written about Pajarito. The convex MINLP solver is useful as a Julia version of some of the methods implemented in Bonmin, but it's quite separate from the academic work we've done on Pajarito.

Opening this to discuss the split and new potential names.

@chriscoey @ccoffrin @juan-pablo-vielma @emreyamangil

emreyamangil commented 6 years ago

Sounds great @mlubin ! We can call it something that reflects it was a legacy - experimental version maybe?

emreyamangil commented 6 years ago

@mlubin I have 0 spanish as you know but maybe:

pajarito viejo (confusing but would continue the tradition :))

juan-pablo-vielma commented 6 years ago

Googled “pajarito viejo” and the first image was a turkey, so how about “Pavito”?

Juan Pablo

On Jun 11, 2018, at 4:08 PM, Emre Yamangil notifications@github.com<mailto:notifications@github.com> wrote:

@mlubinhttps://github.com/mlubin I have 0 spanish as you know but maybe:

pajarito viejo (confusing but would continue the tradition :))

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/JuliaOpt/Pajarito.jl/issues/412#issuecomment-396369886, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AGEu_tLqraxJMML_lwGSYWg5E-iBRn-Aks5t7s4cgaJpZM4UjRRo.

ccoffrin commented 6 years ago

I think I like the idea of one algorithm per solver; but does it clash with MOI convention of having less repos? Also, is there sufficient shared code in current Pajarito algorithms that it is easier to put them in one repo, rather than have a third repo for shared functions?

emreyamangil commented 6 years ago

@juan-pablo-vielma oh that sounds great too :) My goal was "old bird", sadly my gaps in Spanish prevented me :)

mlubin commented 6 years ago

@ccoffrin, I did a quick check and didn't find anything at all that's shared between the two algorithms. solver.jl does the work of dispatching between the conic and the nonlinear solver. As far as I can tell, the implementations are otherwise independent. This change does clash with the new preference for having fewer repos, but we're motivated by a specific instance of miscitation of Pajarito and want to prevent future occurrences.

chriscoey commented 6 years ago

I think it should not have Pajarito in the name. There should be no (further) confusion. The only similarity between the NLP and conic algorithms is that they are OA.

Juan Pablo suggested "tweety.jl" the other day. My first instinct was "meh.jl" has a nice ring to it. But then I was thinking about birds and thought of "OArly.jl", pronounced "o rly?" like as in the owl meme.

ccoffrin commented 6 years ago

My only condition on this change is that the solver name be resonable. I will need to refrence it all over the place and may ask a student work improve it from time to time... Hence, not a big fan of any of the names Chris proposed. Without putting much thought into it, how about MINLPOA or JEMEZ (the mountain range of Pajarito)?

BTW, I totally know the miscitation you are referring to; I had the same thought. :-)

juan-pablo-vielma commented 6 years ago

some suggestions

On Jun 12, 2018, at 5:33 AM, Carleton Coffrin notifications@github.com<mailto:notifications@github.com> wrote:

My only condition on this change is that the solver name be resonable. I will need to refrence it all over the place and may ask a student work improve it from time to time... Hence, not a big fan of any of the names Chris proposed. Without putting much thought into it, how about MINLPOA or JEMEZ (the mountain range of Pajarito)?

BTW, I totally know the miscitation you are referring to; I had the same thought. :-)

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/JuliaOpt/Pajarito.jl/issues/412#issuecomment-396528068, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AGEu_sA108hoGkkDkczeLOeAI1pVYy1-ks5t74rggaJpZM4UjRRo.

chriscoey commented 6 years ago

Any of those except pajarito-azul work for me

ccoffrin commented 6 years ago

I'm a fan of sticking to the mountain theme, e.g. pavo, gallina, caballo, and ita/ito variants. I have a slight inclination to Pavito, due to the phonetic similarity to Pajarito.

ccoffrin commented 6 years ago

CC @rb004f

emreyamangil commented 6 years ago

Pavito +1 !!

Polyhedral Approximation Via Iterative Traditional Optimization :)

mlubin commented 6 years ago

Pavito :+1:

chriscoey commented 6 years ago

🦃🍗

ccoffrin commented 6 years ago

I thInk Turky also matches Chris’s original sentiment, North American informal “stupid or inept person.” :-)

On Tue, Jun 12, 2018 at 11:19 PM Chris C. notifications@github.com wrote:

🦃🍗

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/JuliaOpt/Pajarito.jl/issues/412#issuecomment-396752836, or mute the thread https://github.com/notifications/unsubscribe-auth/ABDeqh7ps0OuTv1FmD6GEdcyuD_cG26sks5t8D5YgaJpZM4UjRRo .

chriscoey commented 6 years ago

Pavito is at https://github.com/chriscoey/Pavito.jl It is a rewrite of the NLP algorithm in Pajarito. performance (particularly on MIP-solver-driven method) should be better, unless bugs were introduced. the code is cleaner and more maintainable.

next step is to remove the NLP algorithm from Pajarito and tidy up the readme.

bernalde commented 5 years ago

Hey guys, just a follow up small detail after this issue. I think you replaced all the "Pajarito" with "Pavito" in the readme.md file. This is a really small thing and I didn't think it was worth of opening an issue for this, but the readme file for Pajarito talks describes Pavito instead.

mlubin commented 5 years ago

Blatant errors in the README are definitely worth an opening an issue for. Thanks for pointing it out.

chriscoey commented 5 years ago

thanks! fixed