Skip to content
This repository has been archived by the owner on Apr 11, 2020. It is now read-only.

IJulia notebooks on using JuMP for optimization #4

Merged
merged 2 commits into from
Jan 30, 2015
Merged

IJulia notebooks on using JuMP for optimization #4

merged 2 commits into from
Jan 30, 2015

Conversation

Shuvomoy
Copy link
Contributor

These are the notebooks I prepared for a tutorial on using JuMP, given at UTORG, University of Toronto.

These are the notebooks I prepared for the tutorial on using JuMP at
UTORG, University of Toronto.
@mlubin
Copy link
Member

mlubin commented Jan 30, 2015

We need a little bot to post nbviewer links to PRs :)
http://nbviewer.ipython.org/github/Shuvomoy/juliaopt-notebooks/tree/master/notebooks/

@mlubin
Copy link
Member

mlubin commented Jan 30, 2015

Thanks for contributing these! We've more than doubled the available content.
A few comments:

  • We haven't really settled on naming conventions, but there will certainly be multiple notebooks on column generation, benders decomposition, and "getting started" in the future. I would suggest prefixing the notebook names with UTORG- or Shuvo- or Shuvomoy- for now. I'm hoping to figure out a reasonable way to make the notebooks searchable metadata and searchability #3.
  • In the benders decomposition and column generation notebooks, could you replace the use of @defConstrRef with the three-argument version of @addConstraint? E.g.
@defConstrRef consRef[1:cardinalityM] # References for the constraints
for (i in M)
    consRef[i] = @addConstraint(cutstockMain, sum{A[i,j]*x[j], j in Jprime}==b[i])
end

becomes

@addConstraint(cutstockMain, consRef[i=1:cardinalityM], sum{A[i,j]*x[j], j in Jprime}==b[i])

We prefer this form and only recommend @defConstrRef for cases where the more compact syntax is difficult to apply.

  • In the "getting started" notebook, you may want to add a note that to use the CPLEX, Gurobi, and Mosek packages, you first need to set up the software and appropriate licences.
  • The use of \preceq instead of \leq for element-wise inequality seems a bit unusual to me, although I'm aware that some authors use it. Could you add a note of its meaning?

@Shuvomoy
Copy link
Contributor Author

Hi Miles,

Thanks. I will make the changes that you suggested and upload them soon.

Best Regards,
Shuvo

On Fri, Jan 30, 2015 at 1:43 PM, Miles Lubin notifications@github.com
wrote:

Thanks for contributing these! We've more than doubled the available
content.
A few comments:

  • We haven't really settled on naming conventions, but there will
    certainly be multiple notebooks on column generation, benders
    decomposition, and "getting started" in the future. I would suggest
    prefixing the notebook names with UTORG- or Shuvo- or Shuvomoy- for
    now. I'm hoping to figure out a reasonable way to make the notebooks
    searchable metadata and searchability #3 metadata and searchability #3
    .
  • In the benders decomposition and column generation notebooks, could
    you replace the use of @defConstrRef with the three-argument version
    of @addConstraint? E.g.

@defConstrRef consRef[1:cardinalityM] # References for the constraints
for (i in M)
consRef[i] = @addConstraint(cutstockMain, sum{A[i,j]*x[j], j in Jprime}==b[i])
end

becomes

@addConstraint(cutstockMain, consRef[i=1:cardinalityM], sum{A[i,j]*x[j], j in Jprime}==b[i])

We prefer this form and only recommend @defConstrRef for cases where the
more compact syntax is difficult to apply.

  • In the "getting started" notebook, you may want to add a note that
    to use the CPLEX, Gurobi, and Mosek packages, you first need to set up the
    software and appropriate licences.
  • The use of \preceq instead of \leq for element-wise inequality seems
    a bit unusual to me, although I'm aware that some authors use it. Could you
    add a note of it's meaning?


Reply to this email directly or view it on GitHub
#4 (comment)
.

Made the suggested changes:

i) Replaced @defConstrRef with the three-argument version of
@addConstraint

ii) Note regarding commercial solvers added

ii) Note regarding \preceq and \succeq added
@Shuvomoy
Copy link
Contributor Author

Hi Miles,

Made the changes suggested by you. Here is the nbviewer link:

http://nbviewer.ipython.org/github/Shuvomoy/juliaopt-notebooks/tree/master/notebooks/

Please let me know if I need to make any other changes.

Regards,
Shuvo

@mlubin
Copy link
Member

mlubin commented Jan 30, 2015

LGTM. @IainNZ, @joehuchette, any comments?
I will also double check that the notebooks run locally before merging.

@IainNZ
Copy link
Member

IainNZ commented Jan 30, 2015

They're very impressive work, I like them a lot. LGTM.

mlubin added a commit that referenced this pull request Jan 30, 2015
IJulia notebooks on using JuMP for optimization
@mlubin mlubin merged commit 76740c0 into JuliaOpt:master Jan 30, 2015
@mlubin
Copy link
Member

mlubin commented Jan 30, 2015

No issues with running the notebooks. Thanks for the contribution!

@Shuvomoy
Copy link
Contributor Author

Thanks for merging the pull request!

On Fri, Jan 30, 2015 at 4:41 PM, Miles Lubin notifications@github.com
wrote:

No issues with running the notebooks. Thanks for the contribution!


Reply to this email directly or view it on GitHub
#4 (comment)
.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants