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 promising contents are logical functor compositions and their mathematical counterpart with numerical and symbolic mathematics, as well as functional evaluation and several algorithmic templates including search and planning. Further, there are implementations of different logics and automated theorem proving systems.
These packages include:
- Logic
- A generic framework for logical systems. It includes implementations
for classical logic and fuzzy logic. The classical logic part also
supports an automated theorem prover based on resolution and Davis-Putnam-Loveland
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,
fast propositional Davis-Putnam-Loveland 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, and 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 rely on Groebner bases.
- 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, Choleksy, cg, splines, interpolation,
numeric integration, Groebner bases, CRT, gcd, basic descriptive statistics,
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. (Artificial Intelligence)
- Algorithmic template frameworks including (about 5) implementations of
evolutionary and genetic algorithms.
- Amonst other things supports DFS (depth-first search), BrFS (breadth-first search),
A*, WA*, IDA*, ID, IE,
simulated annealing, hill-climbing, threshold accepting,
B&B, 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.
- I/O-Extensions.
- (lightweight 3D worlds vector graphics engine. Discontinued)
- (Scanner&Parser base classes for simple parsing jobs. Discontinued)
- some document encoding and formatting classes.
- concurrent synchronous and asynchronous connectors that supports a
programming style with coroutines.