Module: Rulp
- Extended by:
- Log
- Defined in:
- lib/rulp/rulp.rb,
lib/helpers/log.rb,
lib/rulp/rulp_bounds.rb,
lib/rulp/rulp_initializers.rb
Defined Under Namespace
Modules: Bounds, Initializers, Log
Classes: Problem
Constant Summary
collapse
- MIN =
"Minimize"
- MAX =
"Maximize"
- GLPK =
::GLPK
- GUROBI =
::GUROBI
- SCIP =
::SCIP
- CBC =
::CBC
- SOLVERS =
{
GLPK => Glpk,
SCIP => Scip,
CBC => Cbc,
GUROBI => Gurobi,
}
Instance Attribute Summary collapse
Class Method Summary
collapse
Methods included from Log
log, log_level, log_level=, logger, logger=, print_solver_outputs, print_solver_outputs=
Instance Attribute Details
#expressions ⇒ Object
Returns the value of attribute expressions.
21
22
23
|
# File 'lib/rulp/rulp.rb', line 21
def expressions
@expressions
end
|
Class Method Details
.Cbc(lp, opts = {}) ⇒ Object
45
46
47
|
# File 'lib/rulp/rulp.rb', line 45
def self.Cbc(lp, opts={})
lp.solve_with(CBC, opts)
end
|
.exec(command) ⇒ Object
74
75
76
77
78
79
80
81
82
83
|
# File 'lib/rulp/rulp.rb', line 74
def self.exec(command)
result = ""
Open3.popen2e("#{command} #{Rulp.print_solver_outputs ? "" : "> /dev/null 2>&1"}") do | inp, out, thr|
out.each do |line|
Rulp.log(Logger::DEBUG, line)
result << line
end
end
return result
end
|
.Glpk(lp, opts = {}) ⇒ Object
41
42
43
|
# File 'lib/rulp/rulp.rb', line 41
def self.Glpk(lp, opts={})
lp.solve_with(GLPK, opts)
end
|
.Gurobi(lp, opts = {}) ⇒ Object
53
54
55
|
# File 'lib/rulp/rulp.rb', line 53
def self.Gurobi(lp, opts={})
lp.solve_with(GUROBI, opts)
end
|
.Max(objective_expression) ⇒ Object
57
58
59
60
|
# File 'lib/rulp/rulp.rb', line 57
def self.Max(objective_expression)
Rulp.log(Logger::INFO, "Creating maximization problem")
Problem.new(Rulp::MAX, objective_expression)
end
|
.Min(objective_expression) ⇒ Object
62
63
64
65
|
# File 'lib/rulp/rulp.rb', line 62
def self.Min(objective_expression)
Rulp.log(Logger::INFO, "Creating minimization problem")
Problem.new(Rulp::MIN, objective_expression)
end
|
.Scip(lp, opts = {}) ⇒ Object
49
50
51
|
# File 'lib/rulp/rulp.rb', line 49
def self.Scip(lp, opts={})
lp.solve_with(SCIP, opts)
end
|
.solver_exists?(solver_name) ⇒ Boolean
67
68
69
70
71
|
# File 'lib/rulp/rulp.rb', line 67
def self.solver_exists?(solver_name)
solver = solver_name[0].upcase + solver_name[1..-1].downcase
solver_class = ObjectSpace.const_defined?(solver) && ObjectSpace.const_get(solver)
solver_class.exists? if(solver_class)
end
|