Skip to content

Commit

Permalink
Merge pull request #414 from JuliaOpt/removenlp
Browse files Browse the repository at this point in the history
[DNMY] remove NLP algorithm (now in Pavito.jl)
  • Loading branch information
chriscoey authored Jul 20, 2018
2 parents 8281af3 + d90e1fe commit a427d04
Show file tree
Hide file tree
Showing 13 changed files with 258 additions and 1,253 deletions.
91 changes: 41 additions & 50 deletions README.md

Large diffs are not rendered by default.

1 change: 0 additions & 1 deletion REQUIRE
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
julia 0.6
MathProgBase 0.5 0.8
JuMP 0.15
ConicNonlinearBridge
ConicBenchmarkUtilities
23 changes: 2 additions & 21 deletions examples/cardls.jl
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,6 @@ mip_solver = CplexSolver(
)


# Specify mixed-integer conic solver (Pajarito conic algorithm)

# using SCS
# conic_solver = SCSSolver(eps=1e-6, max_iters=1000000, verbose=0)

Expand All @@ -87,20 +85,6 @@ micp_solver = PajaritoSolver(
)


# Specify mixed-integer NLP solver (Pajarito nonlinear algorithm)

using Ipopt
nlp_solver = IpoptSolver(print_level=0)

minlp_solver = PajaritoSolver(
mip_solver_drives=mip_solver_drives,
log_level=1,
rel_gap=rel_gap,
mip_solver=mip_solver,
cont_solver=nlp_solver,
)


#=========================================================
Specify/generate data
=========================================================#
Expand All @@ -125,11 +109,8 @@ xB = 4 # Bound on absolute values of estimate variables (|x_j| <= xB)
Solve JuMP models
=========================================================#

println("\n\n****MIQP model with MINLP solver****\n")
miqp_cardls(m, d, A, b, k, rho, xB, minlp_solver)

println("\n\n****MIQP model with conic solver****\n")
println("\n\n****MIQP model****\n")
miqp_cardls(m, d, A, b, k, rho, xB, micp_solver)

println("\n\n****MISDP model with conic solver****\n")
println("\n\n****MISDP model****\n")
misdp_cardls(m, d, A, b, k, rho, micp_solver)
2 changes: 1 addition & 1 deletion examples/runcbf.jl
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ solver = PajaritoSolver(
mip_solver=mip_solver,
cont_solver=cont_solver,
log_level=3,
)
)

dat = readcbfdata(ARGS[1])
(c, A, b, con_cones, var_cones, vartypes, sense, objoffset) = cbftompb(dat)
Expand Down
2 changes: 0 additions & 2 deletions src/Pajarito.jl
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,8 @@ __precompile__()

module Pajarito
import MathProgBase
using ConicNonlinearBridge

include("conic_dual_solver.jl")
include("solver.jl")
include("conic_algorithm.jl")
include("nonlinear_algorithm.jl")
end
66 changes: 32 additions & 34 deletions src/conic_algorithm.jl
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,6 @@ This mixed-integer conic programming algorithm is described in:
(available online at http://arxiv.org/abs/1511.06710)
Model MICP with JuMP.jl conic format or Convex.jl DCP format
http://mathprogbasejl.readthedocs.org/en/latest/conic.html
TODO features
- implement warm-starting: use set_best_soln!
=========================================================#

using JuMP
Expand Down Expand Up @@ -46,38 +44,38 @@ type PajaritoConicModel <: MathProgBase.AbstractConicModel
mip_solver_drives::Bool # Let MIP solver manage convergence ("branch and cut")
mip_solver::MathProgBase.AbstractMathProgSolver # MIP solver (MILP or MISOCP)
mip_subopt_solver::MathProgBase.AbstractMathProgSolver # MIP solver for suboptimal solves (with appropriate options already passed)
mip_subopt_count::Int # (Conic only) Number of times to use `mip_subopt_solver` between `mip_solver` solves
round_mip_sols::Bool # (Conic only) Round integer variable values before solving subproblems
use_mip_starts::Bool # (Conic only) Use conic subproblem feasible solutions as MIP warm-starts or heuristic solutions

cont_solver::MathProgBase.AbstractMathProgSolver # Continuous solver (conic or nonlinear)
solve_relax::Bool # (Conic only) Solve the continuous conic relaxation to add initial subproblem cuts
solve_subp::Bool # (Conic only) Solve the continuous conic subproblems to add subproblem cuts
dualize_relax::Bool # (Conic only) Solve the conic dual of the continuous conic relaxation
dualize_subp::Bool # (Conic only) Solve the conic duals of the continuous conic subproblems

all_disagg::Bool # (Conic only) Disaggregate cuts on the nonpolyhedral cones
soc_disagg::Bool # (Conic only) Disaggregate SOC using extended formulation
soc_abslift::Bool # (Conic only) Use SOC absolute value lifting
soc_in_mip::Bool # (Conic only) Use SOC cones in the MIP model (if `mip_solver` supports MISOCP)
sdp_eig::Bool # (Conic only) Use PSD cone eigenvector cuts
sdp_soc::Bool # (Conic only) Use PSD cone eigenvector SOC cuts (if `mip_solver` supports MISOCP)
init_soc_one::Bool # (Conic only) Use SOC initial L_1 cuts
init_soc_inf::Bool # (Conic only) Use SOC initial L_inf cuts
init_exp::Bool # (Conic only) Use Exp initial cuts
init_sdp_lin::Bool # (Conic only) Use PSD cone initial linear cuts
init_sdp_soc::Bool # (Conic only) Use PSD cone initial SOC cuts (if `mip_solver` supports MISOCP)

scale_subp_cuts::Bool # (Conic only) Use scaling for subproblem cuts
scale_subp_factor::Float64 # (Conic only) Fixed multiplicative factor for scaled subproblem cuts
scale_subp_up::Bool # (Conic only) Scale up any scaled subproblem cuts that are smaller than the equivalent separation cut
viol_cuts_only::Bool # (Conic only) Only add cuts violated by current MIP solution
sep_cuts_only::Bool # (Conic only) Add primal cuts, do not add subproblem cuts
sep_cuts_always::Bool # (Conic only) Add primal cuts and subproblem cuts
sep_cuts_assist::Bool # (Conic only) Add subproblem cuts, and add primal cuts only subproblem cuts cannot be added

cut_zero_tol::Float64 # (Conic only) Zero tolerance for cut coefficients
mip_feas_tol::Float64 # (Conic only) Absolute feasibility tolerance used for primal cuts (set equal to feasibility tolerance of `mip_solver`)
mip_subopt_count::Int # Number of times to use `mip_subopt_solver` between `mip_solver` solves
round_mip_sols::Bool # Round integer variable values before solving subproblems
use_mip_starts::Bool # Use conic subproblem feasible solutions as MIP warm-starts or heuristic solutions

cont_solver::MathProgBase.AbstractMathProgSolver # Continuous conic solver
solve_relax::Bool # Solve the continuous conic relaxation to add initial subproblem cuts
solve_subp::Bool # Solve the continuous conic subproblems to add subproblem cuts
dualize_relax::Bool # Solve the conic dual of the continuous conic relaxation
dualize_subp::Bool # Solve the conic duals of the continuous conic subproblems

all_disagg::Bool # Disaggregate cuts on the nonpolyhedral cones
soc_disagg::Bool # Disaggregate SOC using extended formulation
soc_abslift::Bool # Use SOC absolute value lifting
soc_in_mip::Bool # Use SOC cones in the MIP model (if `mip_solver` supports MISOCP)
sdp_eig::Bool # Use PSD cone eigenvector cuts
sdp_soc::Bool # Use PSD cone eigenvector SOC cuts (if `mip_solver` supports MISOCP)
init_soc_one::Bool # Use SOC initial L_1 cuts
init_soc_inf::Bool # Use SOC initial L_inf cuts
init_exp::Bool # Use Exp initial cuts
init_sdp_lin::Bool # Use PSD cone initial linear cuts
init_sdp_soc::Bool # Use PSD cone initial SOC cuts (if `mip_solver` supports MISOCP)

scale_subp_cuts::Bool # Use scaling for subproblem cuts
scale_subp_factor::Float64 # Fixed multiplicative factor for scaled subproblem cuts
scale_subp_up::Bool # Scale up any scaled subproblem cuts that are smaller than the equivalent separation cut
viol_cuts_only::Bool # Only add cuts violated by current MIP solution
sep_cuts_only::Bool # Add primal cuts, do not add subproblem cuts
sep_cuts_always::Bool # Add primal cuts and subproblem cuts
sep_cuts_assist::Bool # Add subproblem cuts, and add primal cuts only subproblem cuts cannot be added

cut_zero_tol::Float64 # Zero tolerance for cut coefficients
mip_feas_tol::Float64 # Absolute feasibility tolerance used for primal cuts (set equal to feasibility tolerance of `mip_solver`)

dump_subproblems::Bool # Save each conic subproblem in conic benchmark format (CBF) at a specified location
dump_basename::String # Basename of conic subproblem CBF files: "/path/to/foo" creates files "/path/to/foo_NN.cbf" where "NN" is a counter
Expand Down
Loading

0 comments on commit a427d04

Please sign in to comment.