Home > baskets

baskets

Baskets is a project mainly written in C and RUBY, it's free.

Loan basket calculator

This contains an implementation to calculate the optimum set of loans given a comma-delimited input file of loans and loan sets in the following format:

loan id, loan amount, set id, set minimum, set maximum ...

USAGE:

The program should be invoked as:

build_loan_sets.rb -i

For example:

build_loan_sets.rb -i loan-basket-01.csv

and will generate a file loan-based-01.out.csv containing the allocations.

INPUT FILE FORMAT NOTES:

If there are more loans than sets (the usual case), then the columns for loan sets should be empty; e.g.,

1004,183000,,,

If there are more sets than loans, then the CSV columns should just be blank, e.g.:

,,14,2000000,4000000

MANIFEST:

README - this file build_loan_sets.rb - the program sample.rb - a sample script using the NP API test.rb - a set of tests extconf.rb - an internal program to build the NP API mulknap.c - the underlying knapsack algorithm solution code np.c - the bridge code between Ruby and mulknap.c loan-basket-01.csv - a sample input dataset loan-basket-01-out.csv - a sample output dataset

INSTALLATION:

  • on a Unix system that has Ruby installed, installation is simply: ruby extconf.rb make

  • on a Windows system, installation is essentially the same, but the devkit package must be installed. Somewhat detailed steps are: 1- install Ruby 1.8.7 to C:Ruby (http://rubyforge.org/frs/download.php/72085/rubyinstaller-1.8.7-p302.exe) 2- install DevKit (http://rubyinstaller.org/add-ons/devkit/); note that this will also need the 7-zip software: http://www.7-zip.org/ 3- start a command shell 4- cd to the directory containing this file 5- run "ruby extconf.rb" 6- run "make" 7- you can then run "build_loan_sets.rb -i loan-basket-01.csv" to regenerate the sample output file. If Windows complains that it cannot open the file build_loan_sets.rb, you can specify to use ruby in the invocation, i.e., ruby build_loan_sets.rb -i loan-basket-01.csv