2. Particularities of Constructive Mathematics
The goal of this work is the study of constructive linear programming problems. For the linear programming problems with rational parameters, there are well known algorithms of analyzing a problem and solving it. We show that the algorithmic situation is drastically different if some of the parameters of the problem are constructive real numbers (CRNs).
Constructive Mathematics deals with constructive objects that are essentially words in some alphabet. For example, natural numbers are words in the alphabet whose letters are digits. Rational numbers are words in the alphabet that in addition to digits has the division sign and the negative sign with the natural equivalence relation of equality given by bringing rational numbers to the common denominator.
Algorithms are, for example, Turing machines and they transform words into words. The algorithms can be encoded by natural numbers so that, from this code and the input number, one can obtain the result of applying this algorithm to the given input.
The problem of applicability of an algorithm to a given input (the Halting Problem) is generally unsolvable, i.e., there is no algorithm that, given the code of the algorithm and input data, always indicates 1 or 0 depending on whether this algorithm will eventually terminate when working on the given input or not.
Constructive Mathematics assumes that the studied objects are constructive, meaning that they can be given by words in a special alphabet. The proof of the theorem stating that a constructive object satisfying given criteria does exist assumes the possibility to construct this object. The proof of a statement that looks like a logical disjunction assumes that it is possible to say which of the disjunction terms is true. In particular the statements giving the law of excluded middle, i.e., disjunctions of the form “P or not P” for a constructive mathematician, are not necessarily true statements. To make them true, we need to specify the true part of the disjunction.
For example, given a subset M of natural numbers, the statement or in the classical logic is true for every However, for a constructive mathematician this statement is true only when you can give an algorithm that terminates on each and outputs 1 or 0 depending on whether or not. If such an algorithm exists, then the set M (and its complement) are called decidable. Many subsets of are not decidable and, in general, algorithms for detecting whether or not do not exist.
There are many unsolvable problems related to decidable sets. There is no general algorithm that given a decidable set (defined by its decision algorithm) tells if the set is finite or not. Moreover, there is no algorithm that can always tell if a decidable set is empty or not.
Constructive mathematics uses a special constructive logic. If the existence of a constructive object is proved using this logic then one can deduce the way of constructing the object from the proof.
If we use proof by contradiction to prove the existence of an object then, from the view point of constructive logic, we did not succeed in proving the existence. Instead, we reached a contradiction to the statement that the object does not exist. However, the statement that the object cannot not exist does not imply that the object does exist.
However, there is an important class of cases when the double negation of the object existence implies that the object indeed does exist. This is when we proved that a certain decidable set of natural numbers (or words in an alphabet) is nonempty.
Let M be a decidable subset of the set of positive integers so that there exists a decision algorithm L that, given any , produces 1 if and it produces 0 if
Assuming that an element of the set
M cannot not exist, then an element of
M does exist, i.e., it can be constructed. The algorithm consists of going through all the elements of
sequentially and using
L to verify if the element is in
M or not. The fact that an element of
M cannot not exist means that eventually we will find it using this algorithm. In other words, we can say that every nonempty decidable subset of
is
inhabited. This rule was formulated by A. A. Markov [
1] and is called
Markov principle.
Constructive mathematics was developed in the works of A. A. Markov [
1,
2], N. A. Shanin [
3] and their followers [
4,
5,
6,
7,
8,
9,
10]. A different but largely similar approach was formed by E. Bishop [
11] and his followers [
12,
13]. Note that Bishop’s approach does not allow the use of the Markov principle.
A. Turing in his works [
14,
15] formulated a notion closely related to the modern concept of a Constructive Real Number.
A Constructive Real Number (CRN) is a pair of algorithms . An algorithm F (called the fundamental sequence) transforms natural numbers into rational numbers that are members of a Cauchy sequence. Algorithm R (regulator of convergence) transforms positive rational numbers into natural numbers and guarantees the convergence in itself of the sequence F so that, for every positive rational and every , we have
Algorithm F is step by step creating a sequence of rational approximations to a limit real number while algorithm R provides the sequence of error estimates on these approximations. Note that the limit real value is not a part of this definition and instead we use the pair of algorithms
If a CRN is denoted by x, then denotes
The notion of a CRN is a natural clarification of the notion of a computable number. The CRNs possess the natural properties of real numbers in their computable form.
The set of all CRNs is closed under arithmetic operations and under taking max and min. The proof of this is similar to the proof of continuity of these operations for ordinary real numbers.
The relations of equality, strict and nonstrict inequalities on CRNs are introduced in a natural way. Let be two CRNs
if for every positive rational , we can algorithmically produce a natural number M such that for all , we have
() if we can produce a positive rational and natural M such that for all , we have ;
() if for every positive rational , we can algorithmically produce a natural M such that for all , we have .
These relations have the usual properties. For example, the equality is reflexive, symmetric and transitive. The strict inequality is anti-reflexive, asymmetric and transitive. The nonstrict inequality is reflexive, anti-symmetric and transitive.
However, some properties of these relationships are surprising. In particular, all three of these relationships are not decidable in the set of all CRNs. This means that there is no algorithm that finishes working on every pair of CRNs and prints 1 or 0 depending on whether these numbers are equal or not. Such algorithms do not exist for the other two above relationships either.
However, the relation of strict inequality on the pairs of CRNs is enumerable, meaning that one can produce an algorithm that transforms natural numbers to all such pairs or, alternatively, there is an algorithm L that finishes working on the pair of CRNs exactly if
The equality and nonstrict inequality relations are not enumerable; however, their negations are enumerable.
Every pair of CRNs cannot not satisfy one of the three relations , or ; however, there is no algorithm that can always tell which one of these three relationships holds for the pair.
The relation implies and implies as well. From the relation , it follows that there cannot not be a term of the disjunction or that is true. However, it is impossible to tell which term is true, i.e., there is no algorithm that finishes working on every pair of CRNs satisfying and produces 1 or 0 depending on whether or does hold.
If the statement that
does not hold, then
. If the statement
does not hold, then
or
and one can create an algorithm that, given any pair of nonequal CRNs, decides which one is larger [
1].
Each one of the relations is equivalent to its double negation. In particular, if two CRNs cannot be not equal, then they are equal.
If one of these relations is decidable in a given subset of the set of all CRNs, then the other two relations are decidable as well.
Every CRN is given by a pair of algorithms, so, from the classical viewpoint, the set of all CRNs is countable. However, this statement is constructively false and, given any sequence of CRNs, one can construct a CRNs that is not equal to any members of this sequence.
The set of all CRNs is constructively complete: given any algorithmic sequence of CRNs equipped with an algorithm guaranteeing its convergence in itself, one can construct a CRN that is the limit of this sequence.
The constructive versions of some of the classical mathematical analysis statements are false. For example, the constructive version of the statement that a bounded montotonic sequence always has a limit is false. The usual proof of this real analysis fact involves dividing the interval into two equal halves and choosing the half that contains infinitely many elements of the sequence. It is assumed that such a choice can be made and the corresponding disjunction is true.
However, it is not clear how to algorithmically determine the needed half of the segment. Moreover, the problem is not in the particular proof approach that we considered. There is a constructive analysis counterexample to such a statement in constructive mathematics given by the famous Specker sequence [
16].
In [
6,
7], the Specker sequence is used to clarify the surprising topological properties of the space of all CRNs.
Different approaches to the introduction of constructive real numbers, their properties, and relations arising under different approaches to introducing CRNs can be found in [
1,
3,
8].
A rational number can be presented as a word in the alphabet of rational numbers construction (consisting of digits, negative and ratio signs). Equality, strict and nonstrict comparison relations on the set of rational numbers are decidable.
Every rational number can be presented in a standard way as a constant sequence equipped with the trivial convergence regulator that prints 1 for every positive rational number. Thus, all rational numbers belong to the class of CRNs. We shall call such CRN presentations of rational numbers the standard real presentation of a rational number. A quasi rational number is a standard real presentation of a rational number and a CRN equal to it.
Under this correspondence, equal rational numbers are mapped to equal quasi-rational numbers. The notions of strict and nonstrict inequalities are also preserved by this correspondence.
We will distinguish rational and quasi-rational numbers. In particular, there is no algorithm that determines if a given CRN is quasi-rational.
A
Constructive function is an algorithm that transforms constructive numbers into constructive numbers with the assumption that equal CRNs should be transformed to equal CRNs. Important and sometimes surprising properties of constructive functions can be found in [
1,
2,
3,
4,
5,
6,
8,
9,
10,
11]. In particular, all the linear functions of a constructive real number variable with constructive coefficients are constructive functions. The same is true for polynomial functions of a constructive real variable.
Every constructive function is
effectively continuous, i.e., one can construct the algorithmic continuity regulator at every constructive point in its domain [
1,
5].
At the same time, one can construct a constructive function defined on all the CRNs in that is not constructively uniformly continuous. In a similar spirit, one can define constructive functions on that are not bounded, i.e., not attaining their maximal or minimal value at any constructive point. Examples of this sort are obtained as limits of sequences of locally piece-wise linear functions.
In this paper, we will deal with linear functions of constructive real variable with CRN coefficients.
In particular, all the linear functions of a constructive real number variable with constructive coefficients are constructive functions.
We will concentrate our attention on the Constructive Linear Programming Problems (CLPP). The parameters of linear functions in the conditions of a CLPP are CRNs. To solve a CLPP means to find an optimal plan with CRN components.
The CLPP with rational parameters have the usual properties of the linear programming problems [
17]. However, in the general case, when these parameters are CRNs, these properties do not hold.
In particular, it is impossible to have an algorithm that computes the optimal plan in a nonempty and bounded domain. Moreover, it is impossible to detect the solvability of such a problem, even if we have the complete algorithms for computing the parameters. It is impossible to have an algorithm that, given a plan, verifies if the plan is allowable, and there is no algorithm that, given an allowable plan, determines if this plan is optimal.
In other words, the solvability of CLPP is algorithmically unsolvable.
We also study the algorithmic unsolvability of many other properties of CLPP.
The proof of the Theorems in this paper are based on constructing counterexamples—on constructing families of CLPP for which the desired algorithm does not exist. The reason why this algorithm does not exist could have been related to the complexity of the examples; however, this is not so and the CLPP families in the proofs are rather simple looking.
The proofs show that the reasons why these algorithms do not exist are that the equality and inequality for CRNs are not decidable relations.
3. Main Results
Let us introduce the constructions that are the basis of the proofs of the following theorems.
Let
S be a (partially defined) algorithm that transforms natural numbers into 0 and 1 and that is not extendable to a totally defined algorithm [
18]. Let us note that the Halting problem for this algorithm is undecidable. Also, the set of numbers on which
S gives output 1 (or output 0) is undecidable.
Construction 1. For each natural n, we define the following sequence of rational numbers
For each k, we put if the algorithm S did not yet finish working on input n by step k;
We put if S has finished working on n by step k, has produced 0, and m is the step number when S has finished working;
We put if S has finished working on n by step k, has produced 1, and m is the step number when S has finished working.
For each n, the sequence converges in itself at a geometric progression speed, thus giving a CRN. If S does not ever stop working on n, then and is respectively bigger and smaller than 0 if S applies to n and produces 1 and 0, respectively.
The proofs of the Theorems below are based on different CLPPs. We tried to make the CLPPs very simple so that the reasons for their unsolvability would be crystal clear.
Construction 2. For a given n, let be the CRN defined in Construction 1. We define the CLPP problem to be the following: under the conditions that and
The set of allowable plans of this CLPP is bounded and nonempty since is an allowable plan.
Theorem 1. There is no algorithm such that for an arbitrary CLPP with the nonempty bounded region of allowable plans, it
- 1.
computes the optimal plan;
- 2.
computes the extremal value of the cost function.
Proof. Consider a sequence of CLPP given in Construction 2. The set of allowable plans of is nonempty and bounded for every
If algorithm S finishes working on input n, then . In this case, the only allowable plan is , which, hence, is the optimal plan.
If S does not ever finish working on input n, then and the allowable plans are all the CRN points of the interval . The optimal plan is
In both cases, the optimal value and the optimal plan are equal CRNs.
If there would exist an algorithm that would find an optimal value or an optimal plan for every CLPP, then this algorithm would determine if S will finish working on input n, but this is not possible. □
The following two Theorems show that there does not exist an algorithm that can always tell, given a plan, if this plan is optimal or even allowable. The presence of extra information does not help.
Theorem 2. There is no algorithm that, given a CLPP with a nonempty bounded set of allowable plans, can always decide if a given plan is allowable.
Proof. Fix a natural n and consider a CLPP given by Construction 2. The set of allowable plans is bounded and nonempty for all The plan is allowable exactly when S does not ever finish working on input If an algorithm from Theorem formulation would exist then it would solve the Halting problem for n and this is impossible. □
Theorem 3. There is no algorithm that given a CLPP with a nonempty bounded set of allowable plans always decides if a given allowable plan is optimal or not.
Proof. Fix and consider the CLPP given by Construction 2. The set of allowable plans of is bounded and nonempty for each The allowable plan is optimal exactly if S finishes working on input n. If the algorithm from the statement of the Theorem would exist, then it would solve the Halting problem for the algorithm S, which is impossible. □
Construction 6. Let E be a closed interval in the real line. Let and be the left and the right sub-intervals of E, each with a length equal to the length of We now define an algorithm F that transforms each CRN in E to 0 or To find , we compute x with sufficiently high precision (precision better than of the length of E is fine). If this approximation is in , then we put and we put in all other cases.
Note that the algorithm F is not a well-defined algorithm on CRNs since it can transform equal CRNs to different answers.
It will be important that F is defined for all CRNs in E and if , then , while if , then
Theorem 1 proves that there are no algorithms that can compute the optimal plan or the optimal value. Note, however, that if you know the optimal plan, then you can compute the optimal value. The next Theorem 4 shows that the converse statement is false.
Theorem 4. There exists an enumerable class of CLPPs for which you can compute the extremal value of the cost function, but you cannot compute the optimal plan.
Proof. Take with the cost function under the conditions , ,
If the algorithm S finishes working on input n and produces 0, then and the optimal plan for the CLPP is the point with coordinates
If the algorithm F finishes working on input n and produces 1, then and the optimal plan is
If S never finishes working on input n, then and an optimal point is any point of the interval with end points and
Let us apply the algorithm F from Construction 6 to the points of the interval
Assume that there is an algorithm G that transforms each to an optimal plan of the CLPP Then the composition of F and G would be an extension of S to all , yielding a contradiction.
Thus, the algorithm G does not exist. However, the external value z of the cost function does exist. For each n, it is equal to the maximum of the two CRNs and, hence, is a CRN itself. □
Theorem 5. There is no algorithm that can, given a CLPP with a nonempty set of allowable plans, always decide
- 1.
if the set of allowable plans is bounded;
- 2.
if the cost function is bounded;
- 3.
if there does exist an optimal plan.
Proof. For a given , we define a CLPP as follows: under the condition that
The set of allowable plans of this CLPP is nonempty and is an allowable plan.
The set of allowable plans of is bounded if and only if the cost function is bounded if and only if there is an optimal plan if and only if This, in turn, happens exactly when S finishes working on input Thus, if an algorithm such as the one in the Theorem statement would exist, it would solve the Halting problem for □
Theorem 6. There is no algorithm that, given a CLPP with a bounded set of allowable plans, decides if the set of allowable plans is empty or not.
Proof. For a given , we define CLPP as follows: under the condition that and
The set of allowable plans of such CLPP is nonempty and the optimal plan exists exactly if , i.e., when S never finishes its work on So, if the algorithm from the Theorem statement would exist, then it would solve the Halting problem for S. □
Theorem 7. There is no algorithm that, given any clearly unsolvable CLPP, determines the reason for the unsolvability, i.e., if the set of allowable plans is empty or if the cost function is unbounded.
Proof. For a given , we define CLPP as follows: subject to the conditions and
This is the CLPP from the previous problem with the changed cost function and now we need to find the maximum of y, which does not participate in the restrictions on allowable plans. The set of allowable plans is nonempty exactly when the cost function is not bounded and this happens exactly when , i.e., when S finishes working on n. So, if we can determine the reason for unsolvability of the CLPP , then we can solve the Halting problem for □
The next Theorem shows that for sets given by a system of linear equations and inequalities with CRN coefficients, there is no algorithm that, given such a nonempty set, constructs one point in the set. In other words, the fact that such a set is nonempty does not imply that it can be inhabited.
Theorem 8. There is no algorithm that, given any CLPP with a nonempty allowable plan set, determines an allowable plan.
Proof. We again use the partially defined algorithm S that transforms integers to 0 or 1 and it is not extendible to the whole For each , we define two sequences of rational numbers and For each k, we put
if S did not yet finish working on n by step k;
and if S finished working on input n by step k, produced 0 and m is the step number when this happened;
and if S finished working on input n by step k, produced 1 and m is the step number when this happened.
For every n, the sequences and are converging in themselves at a speed of a geometric progression; thus, they define two CRNs.
Let be the set of allowable plans of a CLPP satisfying and
If S does not terminate on input n, then and contains every between 0 and
If S finishes working on n and produces 0, then , and the only CRN contained in is
If S finishes working on n and produces 1, then , and the only CRN contained in is
Thus, for every n, the set is nonempty and there cannot not exist an element of it. Assume that for every n the set can be inhibited; that is, there is an algorithm G that, given any , constructs a point of
Consider an algorithm F from Construction 6 and apply it to the interval . The composition of G and F would be an everywhere defined algorithm that extends S to the whole of , but such an extension does not exist by our assumptions.
Thus, the algorithm G does not exist. □
Remark 1. Theorem 8 shows the situation when, on one side, there cannot be an algorithm that constructs an element of the set for each . However, at the same time, the counterexample cannot exist since the set is nonempty.