For three decades, Wolfram Research has been a world leader
in algorithm development—pursuing the long-term mission of
creating a complete
web of connected algorithms spanning all
types of computation.
If there's a known algorithm, we want an optimal implementation; if there isn't, we want to invent one.
Tens of thousands of algorithms is only the beginning. The most visible face of the Wolfram Algorithmbase is not algorithms, but meta-algorithms, which automatically select optimal specific algorithms to use in each unique situation—and effectively allow users to simply define their goals in the Wolfram Language, then let the system take over and automatically work out how best to achieve them.
Most of the specific algorithms in the Wolfram Algorithmbase are accessed through superfunctions and meta-algorithms, which automatically determine the optimal algorithm to achieve a particular task.
A Wolfram Language superfunction like Solve is set up to solve a very wide range of equations—using meta-algorithms to pick the best solution techniques for a particular equation.
It's not uncommon for a Wolfram Language superfunction to select from hundreds of underlying algorithms, and to make automated choices for large numbers of algorithm parameters.
By dramatically lowering the cost of trying out algorithmic ideas, the Wolfram Algorithmbase has enabled countless discoveries and inventions.
When you use a Wolfram Language superfunction like FindShortestTour, you're writing code that captures concepts rather than burning in a particular generation of specific algorithms.
The Wolfram meta-algorithm approach has routinely opened up new algorithmic areas by allowing non-expert users to access sophisticated algorithms through simple and highly automated functions.
Sometimes the meta-algorithm for algorithm selection is more sophisticated and even time-consuming than the algorithms it ultimately selects.
The Wolfram Language always allows users to override automatic behavior and request specific named algorithms in the Wolfram Algorithmbase.
Today's best algorithms routinely make use of building blocks from vastly different areas—validating the critical importance of broad integration in the Wolfram Algorithmbase.
Even if an algorithm in the Wolfram Algorithmbase gets a numerical answer, there's a good chance it's using symbolic computation inside, and maybe graph theory or computational geometry too.
Traditional textbook algorithms are often described in low-level pseudocode. But today's best algorithms instead almost always use sophisticated building blocks.
To get the best results for a numerical computation, it's almost inevitable that one's going to need serious capabilities and methods from outside numerical computation.
The best modern algorithms use highly sophisticated up-front automatic analysis to minimize the amount of computational work they need to do.
The symbolic nature of the Wolfram Language makes it easy to use highly complex data structures—and to interoperate between different data structures.
Even the algorithms in the Wolfram Algorithmbase are algorithmic: it's routine for an algorithm to adapt its structure algorithmically as a particular computation is being run.
Many algorithms in the Wolfram Algorithmbase are optimized through heuristics that effectively encapsulate extensive human knowledge and experience about distributions of problems and runtimes.
In the Wolfram Algorithmbase, it's common to have sophisticated algorithms that optimize the visual appearance of outputs, based on algorithmic representations of human aesthetic preferences.
Algorithms in the Wolfram Algorithmbase routinely solve problems that are formally intractable—typically by using a hierarchy of subalgorithms that take a range of different approaches to the problem.
The goal for the Wolfram Algorithmbase is not just to have a large number of algorithms, but to ensure that in all areas they are accurate, reliable, robust and fully scalable.
Wolfram has been a leader in software quality assurance for three decades—developing extensive methodologies and algorithmic techniques for software testing.
Wolfram algorithms have been widely used by some of the world's most demanding users—in research, development and academia—for three decades.
Over the course of three decades, Wolfram's algorithms have become gold standards for coverage, accuracy and performance in domain after domain.
Wolfram algorithms are implemented to be able to run to the limits of your computer system—without any built-in limitations.
Wolfram algorithms are implemented to be as general as possible—and to allow arbitrary dimensionality, degrees, precision and more.
The Wolfram Algorithmbase is unique in its systematic ability to compute to arbitrary numerical precision, and to automatically do the numerical analysis to ensure that a particular precision can be achieved.
The Wolfram Algorithmbase routinely uses symbolic analysis and other sophisticated techniques to ensure that the algorithms it uses will perform correctly in a specific problem.
On countless occasions, testing procedures for Wolfram algorithms have found errors in well-established tables and reference books.
A great many of the algorithms in the Wolfram Algorithmbase come from original Wolfram R&D, and from unique Wolfram algorithm development methods.
By using the Wolfram Language, Wolfram has been in a unique position to create new classes of algorithms that mix methods from many different areas.
Wolfram routinely uses the Wolfram Language to explore problem spaces and to test algorithm hypotheses in order to derive the broadest possible new algorithms.
An increasing number of Wolfram algorithms are created by searching large spaces of possible programs in the computational universe, using methods pioneered in Stephen Wolfram's A New Kind of Science.
The vast majority of meta-algorithms in the Wolfram Algorithmbase are completely original to Wolfram—not least because the problems they solve have never been studied in the academic literature.
In building technology for highly general problems, Wolfram has routinely created systematic "production lines" for algorithmic development that generate large numbers of new specific algorithms.