class KnapsackSolver::CLI

This class implements a command-line interface for the 0/1 knapsack problem solver.

Constants

RESULTS_FILNEMAE_SUFFIX

Suffix of a text file which will containg results of dataset solving (price, knapsack things presence, cpu time, wall clock time, relative_error).

STATS_FILNEMAE_SUFFIX

Suffix of a text file which will containg statistic data (average price, execution times, relative error)

Public Class Methods

print_results(results, stats, options, args) click to toggle source

Prints output of datasets solving. Results and statistics are printed to stdout or to a text files. Graphs of statistic values can be created.

@param results [Hash] results of dataset solvings @param stats [Hash] statistics from the results of dataset solvings @param options [Hash] Command-line line options supplied to the CLI @param args [Array] array of the positional command-line arguments

run(args) click to toggle source

Processes command-line arguments. If no option is given, converts arabic number to roman number and prints it to stdout.

@param args [Array] the command-line arguments

# File lib/knapsack_solver/cli.rb, line 24
def self.run(args)
  options = CliOptionParser.parse(args)
  return if options.nil?
  datasets = args.each_with_object([]) do |file, sets|
    sets << Dataset.parse(File.new(file))
  end
  s = Solver.new(options, datasets)
  results = s.run
  print_results(results, s.stats(results), options, args)
end