|Table of Contents|
OverviewThe Orbital library is a class library providing object-oriented representations and algorithms for logic, mathematics and artificial intelligence. It comprises theorem proving, computer algebra, search and planning, as well as machine learning algorithms.
Especially useful tools are functor composition tools, including their integration into numerical and symbolic mathematics, as well as general functional evaluation schemes, and several algorithmic templates including search and planning. There are implementations of different logics and automated theorem proving systems, and computer algebra system routines.
- The automatic theorem prover j'Imp and its reusable components for set of support and ordered resolution with clause indexing, subsumption, tautology elimination as well as Davis-Putnam-Loveland inference.
- The computer algebra system (CAS) components j'Abr with Groebner-bases, gcd, symbolic differentiation, and data representation of vectors, matrices, multivariate polynomials, real numbers, rationals, integers, complex numbers, quotients, etc.
- Several solution algorithms for search and planning problems.
- Machine learning algorithms, including evolutionary algorithms.
Logic and Theorem Proving Features
- A generic framework for logical systems. It includes implementations for classical logic, modal logic and fuzzy logic. The classical logic part supports an automated theorem prover based on resolution as well as Davis-Putnam-Loveland-Logemann (DPLL) algorithm. Note that this is a framework in the sense of logic, but not in the sense of software architecture. Therefore it provides you with all logical operations without restricting the architecture of your application.
- Term rewrite sytem facility achieved with fixed point operations of term unification and substitution.
- A parser for logical and mathematical expressions including λ-operator notation of λ-calculus.
- Amonst other things supports classical logic resolution, propositional Davis-Putnam-Loveland-Logemann (DPLL) inference, modal logic, fuzzy logic, Robinson unification etc.
Mathematical Features, Mathematical Algorithms and Data Structures
- Functional evaluation and recursive composition schemes with functor interfaces and function notation classes.
- Mathematical, symbolic, numerical & statistical algorithms and conceptual representation interfaces for mathematics.
- Computer algebra based on Arithmetic objects with uniform mathematical operations like +, -, *, /, ^. This enables us to use a uniform calculation with various arithmetic implementation objects. Those implementations include tensors, matrices, vectors and scalar types like integers, rationals, real and complex numbers, (multivariate) polynomials, quotients and fractions. Even full symbolic calculations, also combined with modulo calculations are possible. For example, quotients of multivariate polynomials use Groebner bases and our algorithms for obtaining symbolic and numerical solutions of differential equation systems.
- Mathematical functions are generalized to fit the requirements of functional operations and allow symbolic derivation and sometimes integration. They extend the basic logical functors to maximize compatibility. Additionally, mathematical functions can be handled like arithmetic objects whenever this more general view is of advantage. For example, you can simple subtract functions from one another.
- Amonst other things supports LU (Gaussian LU decomposition), Choleksy, cg (conjugate gradients), splines, interpolation, numeric integration, Groebner bases, CRT (chinese remainder theorem), gcd, basic descriptive statistics, function regression, trigonometrics, sinh, arsinh, etc.
General Algorithm and Data Structure Features for Computer Science
- Several algorithmic templates are provided that are extremely helpful for rapid prototyping. Those algorithmic templates also include several (about 15) important (blind and heuristic) state space search algorithms. Even some implementations of planning and machine learning algorithms have been provided as well as Markov Decision Process solving algorithms. (Artificial Intelligence)
- Algorithmic template frameworks including (about 5) implementations of evolutionary and genetic algorithms.
- Amonst other things supports search and planning algorithms like DFS (depth-first search), BrFS (breadth-first search), A*, WA* (weighted A-star), IDA* (iterative deepening A-star), ID (iterative deepening), IE (iterative expansion), simulated annealing, hill-climbing, threshold accepting, B&B (branch-and-bound), parallel B&B, GSDP (Gauß-Seidel dynamic programming), RTDP (Real-Time Dynamic Programming), incremental and steady-state genetic algorithms, concurrent genetic algorithms, etc.
General Utility Features
- A generic board game abstraction framework, including α-β-pruning adversary search.
- Graphical user interface (GUI) utilities and Java Beans, including a generic
bean customizer for fully-automatic customization dialogues on-the-fly.
For instance, you can automagically create customizers like the following:
- Some document encoding and formatting classes.
- Concurrent synchronous and asynchronous connectors that supports a programming style with coroutines.
- (lightweight 3D worlds vector graphics engine. Discontinued from 1.1)
- (Scanner&Parser base classes for simple parsing jobs. Discontinued from 1.1 and exported to the scanner & parser generator Synx)
The Orbital library experiences continuous development since 1996. The major milestones include (without minor releases like 1.1.3)
- 2009-03-05: First release of Orbital library version 1.3.0
- 2007-08-20: First release of Orbital library version 1.2.0
- 2003-02-21: First release of Orbital library version 1.1.0
- 2000-06-22: First release of Orbital library version 1.0.0
- 1998-11-08: First public stable release 0.9 of the Orbital library.