class DpllSolver::Heuristics::MostFrequentLiteral

Public Class Methods

choose_literal(clauseset) click to toggle source
# File lib/dpll_solver/heuristics/most_frequent_literal.rb, line 4
def self.choose_literal(clauseset)
  raise ArgumentError, "clauseset must be a set of Clauses and not be empty!" if clauseset.empty?
  counter = Hash.new(0)
  most_frequent = nil
  clauseset.each do |clause|
    clause.literals.each do |literal|
      counter[literal] += 1
      if most_frequent
        most_frequent = literal if counter[literal] > counter[most_frequent]
      else
        most_frequent = literal
      end
    end
  end
  most_frequent
end