METSlib is an object-oriented metaheuristics framework in C++ designed to make implementing or adapting models easy. The model is modular: all the implemented search algorithms can be applied to the same model. METSlib implements the basics of some metaheuristics algorithms, such as Random Restart Local Search, Variable Neighborhood Search, Iterated Local Search, Simulated Annealing, and Tabu Search. For each algorithm, you must implement an objective function, a neighborhood (move manager), and some moves. Tabu Search is one of the fastest ways to generate near-optimal solutions to a wide range of hard combinatorial optimization problems.
Genetic Algorithm File Fitter, GAFFitter for short, is a tool based on a genetic algorithm (GA) that tries to fit a collection of items into as few as possible volumes of a specific size. For example, the items might be files/directories and the volumes might be CDs or DVDs. The task of arranging items in such manner that the number of required bins is minimized is called Bin Packing, a NP-hard combinatorial problem for which no deterministic polynomial-time algorithm is known. Using heuristics, such as GAs, it is usually possible to approximate -- and often reach -- the best solution for the problem within a reasonable time.
clipsmm is a C++ library that provides an interface to the CLIPS library. CLIPS provides a C environment for the construction of rule- and/or object-based expert systems used by NASA, branches of the military, numerous federal bureaus, government contractors, universities, and many companies. Several areas in which clipsmm extends the CLIPS interface are templated function callbacks using sigc++ slots, and encapsulated CLIPS execution environments.
Ikaros is a framework for writing and running component-based simulators. It is used for simulations of brain areas and learning models, but is general enough to be easily used for any discrete-time simulations. A simulation consists of modules written in C or C++ that are connected in the simulator, with connections specified in an XML file. It runs on the console, and can optionally generate a dynamic browser-based UI with SVG for graphics generation. There are also socket-based hooks for adding a full GUI. The package contains a number of modules and complete documentation for working with the framework.
What's Wrong With My NLP? is visualizer and graphical diff for natural language processing problems. It can display syntactic and semantic dependencies and bilingual alignments as well as all types of chunk information such as NP, NER, or SRL chunks. It also allows you to compare your system output to a gold standard in order to find the mistakes your system makes. There are numerous ways to filter the graph and only display what is needed. It is also possible to search a corpus for sentences with certain properties using Lucene search expressions.
Cypher is an AI program that generates the RDF graph and SPARQL query representations of plain language input, allowing users to speak plain language to update and query databases. With robust definition languages, Cypher's grammar and lexicon can quickly and easily be extended to process highly complex sentences and phrases of any natural language, and can cover any vocabulary. Equipped with Cypher, programmers can begin building next generation semantic Web applications that harness natural language.
MARF is a general cross-platform framework with a collection of algorithms for audio (voice, speech, and sound) and natural language text analysis and recognition, along with sample applications (identification, NLP, etc.) of its use. MARF can run distributed over the network (CORBA, Java RMI, and Java XML-RPC Web Services) and may act as a library in applications or be used as a source for learning and extension.
Algorithm::Evolutionary is a flexible set of classes for doing evolutionary computation in Perl, integrated with XML for evolutionary algorithm description. So far, it contains classes for doing string, tree, and vector array-based evolutionary computation, several variation operators, and simple population-level algorithms. It has been distributed algorithms using SOAP, and integrated with the DBI and HTML::Mason libraries. It contains an XML dialect for definition of evolutionary algorithms, called EvoSpec; experiments defined using Algorithm::Evolutionary can be completely serialized/deserialized using this language.
CellWriter is a grid-entry natural handwriting input panel. As you write characters into the cells, your writing is instantly recognized at the character level. When you press 'Enter' on the panel, the input you entered is sent to the currently focused application as if typed on the keyboard. Writer-dependent, CellWriter learns your handwriting for reliable recognition. Correcting preprocessor algorithms account for digitizer noise, differing stroke order, direction, and number of strokes. Unicode support enables you to write in any language.