Class: Cbc::ConflictSolver
- Inherits:
-
Object
- Object
- Cbc::ConflictSolver
- Defined in:
- lib/ruby-cbc/conflict_solver.rb
Instance Method Summary collapse
-
#find_conflict ⇒ Object
Assuming there is a conflict.
-
#initialize(model) ⇒ ConflictSolver
constructor
A new instance of ConflictSolver.
Constructor Details
#initialize(model) ⇒ ConflictSolver
5 6 7 |
# File 'lib/ruby-cbc/conflict_solver.rb', line 5 def initialize(model) @model = model end |
Instance Method Details
#find_conflict ⇒ Object
Assuming there is a conflict
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/ruby-cbc/conflict_solver.rb', line 10 def find_conflict conflict_set = [] all_constraints = @model.constraints.to_a loop do m = Model.new m.vars = @model.vars m.enforce(conflict_set) return conflict_set if infeasible?(m) constraint = first_failing(conflict_set, all_constraints) return conflict_set if !constraint conflict_set << constraint end end |