Module: Rulp

Defined in:
lib/helpers/log.rb,
lib/rulp/rulp.rb,
lib/rulp/rulp_bounds.rb,
lib/rulp/rulp_initializers.rb

Overview

Basic logger module. Allows logging in the format

“This is a string”.log(:debug) “Oh no!”.log(:error)

Log level is set as follows. Rulp::Logger::level = :debug

Defined Under Namespace

Modules: Bounds, Initializers, Logger Classes: Problem

Constant Summary collapse

MIN =
"Minimize"
MAX =
"Maximize"
GLPK =
::GLPK
SCIP =
::SCIP
CBC =
::CBC
SOLVERS =
{
  GLPK => Glpk,
  SCIP => Scip,
  CBC  => Cbc
}

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Attribute Details

#expressionsObject

Returns the value of attribute expressions.



18
19
20
# File 'lib/rulp/rulp.rb', line 18

def expressions
  @expressions
end

Class Method Details

.Cbc(lp) ⇒ Object



36
37
38
# File 'lib/rulp/rulp.rb', line 36

def self.Cbc(lp)
  lp.solve_with(CBC) rescue nil
end

.Glpk(lp) ⇒ Object



32
33
34
# File 'lib/rulp/rulp.rb', line 32

def self.Glpk(lp)
  lp.solve_with(GLPK) rescue nil
end

.Max(objective_expression) ⇒ Object



44
45
46
47
# File 'lib/rulp/rulp.rb', line 44

def self.Max(objective_expression)
  "Creating maximization problem".log :info
  Problem.new(Rulp::MAX, objective_expression)
end

.Min(objective_expression) ⇒ Object



49
50
51
52
# File 'lib/rulp/rulp.rb', line 49

def self.Min(objective_expression)
  "Creating minimization problem".log :info
  Problem.new(Rulp::MIN, objective_expression)
end

.Scip(lp) ⇒ Object



40
41
42
# File 'lib/rulp/rulp.rb', line 40

def self.Scip(lp)
  lp.solve_with(SCIP) rescue nil
end

.solver_exists?(solver_name) ⇒ Boolean



54
55
56
57
58
# File 'lib/rulp/rulp.rb', line 54

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