Perl algorithm to iterate through subsets of a list.
"Subsets" in this context refers to lists with elements taken
from the original list, and in the same order as the elements in the
original list. After creating the object, subsequent calls to next()
will return the next such list in lexicographic order (where the alphabet
is the original list).
Flood control method is used to restrict the number of events to happen or
to be processed in specific perion of time. Few examples are: web server can
limit requsets number to a page or you may want to receive no more than 10 SMS
messages on your GSM Phone per hour. Applications of this method are unlimited.
Algorithm::IncludeExclude lets you define a tree of include / exclude
rules and then allows you to determine the best rule for a given path.
Taking an interval as input, this module will construct the smallest
set of prefixes, such that all numbers in the interval will match
exactly one of the prefixes, and no prefix will match a number not
in the interval.
This module calculates the Modulus 10 Double Add Double checksum, also known
as the LUHN Formula. This algorithm is used to verify credit card numbers and
Standard & Poor's security identifiers such as CUSIP and CSIN.
You can find plenty of information about the algorithm by searching the web
for "modulus 10 double add double".
Algorithm::Diff is a perl module that provides an interface to compute
the difference between two files, two strings, or any other two lists
of things. It uses an intelligent algorithm similar/identical to the
one used by classical Unix diff(1). It is guaranteed to find the
*smallest possible* set of differences.
This module complements Algorithm::Diff by providing three-way merge
and diff functions.
Algorithm::MinMax finds the minimum and maximum of a given
array with at most 3n/2 - 2 comparisons, where n is the
number of elements of the array.
This module implements the classic "Naive Bayes" machine learning algorithm.
It is a well-studied probabilistic algorithm often used in automatic text
categorization. Compared to other algorithms (kNN, SVM, Decision Trees),
it's pretty fast and reasonably competitive in the quality of its results.
A paper by Fabrizio Sebastiani provides a really good introduction to
text categorization:
http://faure.iei.pi.cnr.it/~fabrizio/Publications/ACMCS02.pdf
This module will create sorting networks, a sequence of comparisons
that do not depend upon the results of prior comparisons.
There are several algorithms to generate sorting networks. This
module has three of them: Bose and Nelson's, Hibbard's, and
Batcher's Merge Exchange. It also has networks that were found
to be superior in comparison count to those generated automatically
by these algorithms.
There is a flexible formatting function that will allow you to
print out your network in many ways (see documentation). There
is also a graphical output function that will return the network
in an encapsulated postscript, SVG, or text form.