Overview
The 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.
Feature Highlights
- 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.
Important Feature Groups
- Logic
- 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.
- Mathematics
- 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.
- Algorithms
- 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.
- Utilities
- 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:
- I/O-Extensions.
- 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)
Release History
The Orbital library experiences continuous development since 1996. The major milestones include (without minor releases like 1.1.3)
- 2007-08-20: First release of Orbital library version 1.2
- 2003-02-21: First release of Orbital library version 1.1
- 2000-06-22: First release of Orbital library version 1.0
- 1998-11-08: First public stable release 0.9 of the Orbital library. Placed as a β-release for public review and feedback.
See download page for current release information.
|