Class: Opt::Solvers::ClpSolver
- Inherits:
-
AbstractSolver
- Object
- AbstractSolver
- Opt::Solvers::ClpSolver
- Defined in:
- lib/opt/solvers/clp_solver.rb
Class Method Summary collapse
Instance Method Summary collapse
Methods inherited from AbstractSolver
supports_semi_continuous_variables?, supports_semi_integer_variables?, supports_type?
Class Method Details
.available? ⇒ Boolean
37 38 39 |
# File 'lib/opt/solvers/clp_solver.rb', line 37 def self.available? defined?(Clp) end |
.supported_types ⇒ Object
41 42 43 |
# File 'lib/opt/solvers/clp_solver.rb', line 41 def self.supported_types [:lp] end |
Instance Method Details
#solve(sense:, start:, index:, value:, col_lower:, col_upper:, obj:, row_lower:, row_upper:, offset:, verbose:, time_limit:) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/opt/solvers/clp_solver.rb', line 4 def solve(sense:, start:, index:, value:, col_lower:, col_upper:, obj:, row_lower:, row_upper:, offset:, verbose:, time_limit:, **) model = Clp.load_problem( sense: sense, start: start, index: index, value: value, col_lower: col_lower, col_upper: col_upper, obj: obj, row_lower: row_lower, row_upper: row_upper, offset: -offset ) res = model.solve(log_level: verbose ? 4 : nil, time_limit: time_limit) status = case res[:status] when :primal_infeasible :infeasible when :dual_infeasible :unbounded else res[:status] end { status: status, objective: res[:objective], x: res[:primal_col] } end |