Universal algorithms, mathematics of semirings and parallel computations

Reading time: 5 minute
...

📝 Original Info

  • Title: Universal algorithms, mathematics of semirings and parallel computations
  • ArXiv ID: 1005.1252
  • Date: 2010-05-10
  • Authors: Researchers from original ArXiv paper

📝 Abstract

This is a survey paper on applications of mathematics of semirings to numerical analysis and computing. Concepts of universal algorithm and generic program are discussed. Relations between these concepts and mathematics of semirings are examined. A very brief introduction to mathematics of semirings (including idempotent and tropical mathematics) is presented. Concrete applications to optimization problems, idempotent linear algebra and interval analysis are indicated. It is known that some nonlinear problems (and especially optimization problems) become linear over appropriate semirings with idempotent addition (the so-called idempotent superposition principle). This linearity over semirings is convenient for parallel computations.

💡 Deep Analysis

Deep Dive into Universal algorithms, mathematics of semirings and parallel computations.

This is a survey paper on applications of mathematics of semirings to numerical analysis and computing. Concepts of universal algorithm and generic program are discussed. Relations between these concepts and mathematics of semirings are examined. A very brief introduction to mathematics of semirings (including idempotent and tropical mathematics) is presented. Concrete applications to optimization problems, idempotent linear algebra and interval analysis are indicated. It is known that some nonlinear problems (and especially optimization problems) become linear over appropriate semirings with idempotent addition (the so-called idempotent superposition principle). This linearity over semirings is convenient for parallel computations.

📄 Full Content

To appear in Springer Lecture Notes in Computational Science and Engineering.

It is well known that programmers are the laziest persons in the world. They constantly try to write less and get more. The so-called art of programming is just the way to achieve this goal. They started from programming in computer codes, found this practice boring and invented assembler, then macro assembler, then programming languages to reduce the amount of work (but not the salary). The next step was to separate algorithms and data. The new principle “Algorithm + data structure = program” was a great step in the same direction. Now some people could work on algorithms and express those in a more or less data structure independent manner; others programmers implement algorithms for different target data structures using different languages.

This scheme worked, and worked great, but had an important drawback: for the same algorithm one has to write a new program every time a new data type is required. Not only is this a boring process, it’s also consuming time and money and worse, it is error-prone. So the next step was to find how to write programs in a way independent of data structures. Object oriented languages, such as C++, Java and many others (see, e.g., [47,62]) opened precisely such a way. For C++, templates and STL give even more opportunities. This means that for a given algorithm one can vary a data structure while keeping the program unchanged. The principle was changed to “Algorithm + data structure family = program.” But how does this approach work? What constitutes a “data structure family”? The answer is this: operations. Any algorithm manipulates data by means of a set of basic operations. For example for sorting the comparison operation is required; for scalar products and matrix multiplications, the operations of addition and multiplication are required. So to use a new data structure with the same “generic” program one has to implement the required operations for this data.

The hope was that some standard libraries of generic programs would cover almost all programmers’ needs and programming would be very much like Lego constructing. Well, to some extent it worked, but not as much as it was expected. Why? For different reasons. Some of them are economical. Why invest time and money in solving generic needs when a fast patch exists? Indeed, who would buy the next release if the current one is perfect? Another reason: there is not a great variety of possible data structures for most popular algorithms. In linear algebra one can use floating numbers, double precision numbers, infinite precision floating numbers, rational numbers, rational numbers with fix precision, Hensel codes, complex numbers, integers. Not much.

Mathematics of semirings gives a new approach to the generic programming. It parameterized algorithms. The new principle is “Parameterized algorithm + data structure family = program.” What are these parameters? They are operations (e.g., addition and multiplication). Sounds great, but does it really work? Yes. And we will show how and why. For example, we will show how the same old algorithm of linear algebra transformed by a simple redefinition of operations, can be applied to different problems in different areas. For example, the same program for solving systems of linear equations can be applied to the shortest path problem and other optimization problems (and interval versions of the problems) by means of simple redefinitions of the addition and multiplication operations. The algorithm was changed (by changing parameters, i.e. operations), the data structure was changed, the nature of the problem was changed, but the program was not changed! There are deep mathematical reasons (related to mathematics of semirings, idempotent and tropical mathematics) why this approach works. We will briefly discuss them in this paper.

The concept of a generic program was introduced by many authors; for example, in [36] such programs were called ‘program schemes.’ In this paper, we discuss universal algorithms implemented in the form of generic programs and their specific features. This paper is closely related to papers [38-40, 42, 43], in which the concept of a universal algorithm was defined and software and hardware implementation of such algorithms was discussed in connection with problems of idempotent mathematics [31, 32, 37-46, 48-53, 55, 71, 72]. In the present paper the emphasis is placed on software and hardware implementations of universal algorithms, computation with arbitrary accuracy, universal algorithms of linear algebra over semirings, and their implementations.

We also present a very brief introduction to mathematics of semirings and especially to the mathematics of idempotent semirings (i.e. semirings with idempotent addition). Mathematics over idempotent semirings is called idempotent mathematics. The so-called idempotent correspondence principle and idempotent superposition principl

…(Full text truncated)…

📸 Image Gallery

cover.png

Reference

This content is AI-processed based on ArXiv data.

Start searching

Enter keywords to search articles

↑↓
ESC
⌘K Shortcut