Optimality conditions and complete description of polytopes in combinatorial optimization

Alexey Antonov*

*University of Cambridge, UK. E-mail: [email protected] or [email protected]

Abstract A combinatorial optimization problem (COP) has a finite groundset 퐸 (|퐸| = 푁) , a weight vector 푐 = (푐푒: 푒 ∈ 퐸) and a family 푇 ∈ 퐸 of feasible subsets with objective to find 푡 ∈ 푇 푒 with maximal weight: 푚푎푥 {∑푒∈ 푡 푐 : 푡 ∈ 푇} . Polyhedral reformulates combinatorial optimization as linear program: 푇 is mapped into the set 푋 ∈ 푅푁 of 0/1 incidence vectors and 푐 ∈ 푅푁 is maximized over of 푋: 푚푎푥 {푐푥: 푥 ∈ 푐표푛푣(푋) }. In theory, complementary slackness conditions for the induced linear program provide optimality conditions for the COP. However, for a general case, optimality conditions for combinatorial optimization have not been formulated analytically as for many problems complete description of the induced polytopes is available only as a convex hull of extreme points rather than a system of linear inequalities. Here, we formulate optimality conditions for a COP in general case: 푥푘 ∈ 푋 is optimal if and only if 푐 ∈ 푐표푛푒(퐻푘 ) where 퐻푘 = {ℎ ∈ 푉: ℎ푥푘 ≥ ℎ푥 for any 푥 ∈ 푋} and 푉 is a set of all -1/0/1 valued vectors in 푅푁 . This provides basis to get, in theory, a complete description of a combinatorial polytope induced by any COP: all facet inducing inequalities for 푐표푛푣(푋) can be written as ℎ푥 ≤ 푙 where ℎ ∈ 푉 and 푙 is integer. A vector ℎ ∈ 표 푉 induces a nonredundent facet if and only if ℎ ∈ 퐻푘 ∈ 퐻푘 for at least one 푥푘 ∈ 푋 (where 표 퐻푘 = {ℎ ∈ 퐻푘 : ℎ ∉ 푐표푛푒(퐻푘 \{ℎ}) } ) and 푙 = 푥푘 ℎ.

1. Introduction and Notation

We consider a general linear combinatorial optimization problem for which we have a finite groundset 퐸 (|퐸| = 푁), a weight vector 푐 = (푐푒: 푒 ∈ 퐸) associated with each 푒 ∈ 퐸 and a family 푇 of feasible subsets of 퐸. The objective is to find 푡∗ ∈ 푇 that maximise the sum of weights associated with 푡∗ . Thus we end up with the following Combinatorial Optimization Problem (Pulleyblank 1989):

푒 푚푎푥 {∑푒∈ 푡 푐 : 푡 ∈ 푇 } (COP)

The COP is reformulated as problem by mapping each 푡 ∈ 푇 into 푅푁 as (0/1) incidence vector 푥: 푥푒 = 1 if 푒 ∈ 푡 and 푥푒 = 0 if 푒 ∉ 푡. We use 푋 to denote the set of all incidence vector 푥 ∈ 푅푁 induced by 푇 and use 푃푋 = 푐표푛푣(푋) to denote the corresponding combinatorial polytope (convex hull of 푋). Thus we can rewrite COP as Combinatorial Optimization Linear Program (Pulleyblank 1989, Aardal and Hoesel 1996):

푚푎푥 {푐푥: 푥 ∈ 푃푋} (COLP)

In the case of unique optimal solution COLP and COP are equivalent: the solution of COLP 푋 would be an extreme point of 푃 which is incidence vector 푥∗ ∈ 푋 equivalent to the optimal feasible subset 푡∗ ∈ 푇 for COP (Pulleyblank 1989).

Although polyhedral combinatorics reformulates combinatorial optimization as linear programs, optimality conditions for a general COP in analytical form (like complementary slackness conditions) have not been formulated. Analytical formulation of optimality conditions would require complete description of the induced combinatorial polytope as a system of linear inequalities (rather than a convex hull of incidence vectors) and is not known for many combinatorial problems. Here, for the first time (up to our knowledge), we provide analytical formulation (see theorem 2.1, 2.1b and 2.1c) of optimality conditions for a general linear COP. This, apparently, provides the basis for analytical formulation of a complete description (as a system of linear inequalities) of any combinatorial polytope (see theorem 3).

Notation that are used throughout the paper is summarised in table 1. In the table 푦 , 푏, 푧 are points in 푅푁 : 푦 ∈ 푅푁 , 푏 ∈ 푅푁 , 푧 ∈ 푅푁 and 푍 is a set of points in 푅푁 : 푍 ∈ 푅푁 . For example, we would frequently need to compare a product 푦푏 with a product 푧푏 for all points 푧 ∈ 푍 so we would regularly use notation 4 from table 1. We would also frequently check whether a point is inside or outside convex (conical) hull. Please note that further by decomposition (notation 5 and 6) we mean only nonnegative one ( ∑ , ). 푦 = 푧푗∈푍 훾푗푧푗 훾푗 ≥ 0

Table 1. Notation used throughout the paper

ID Notation Meaning 1 yz 푖=푁 ∑ 푦푖 푧푖 푖=1 2 푐표푛푣(푍) convex hull of 푍 3 푐표푛푒(푍) conical hull of 푍 4 푦푏 ≥ 푍푏 푦푏 ≥ 푧푏 for any 푧 ∈ 푍 5 푦 is decomposed by 푍 so that ∑ ∃ 훾푗 ≥ 0 푦 = 푧푗∈푍 훾푗푧푗 6 decomposition of 푦 by 푍 if 푦 is decomposed by 푍 and is not decomposed by 푍\{푧푘} requires 푧푘 ∈ 푍 7 퐻 ∈ 푅푁 a with binary (0/1) vertexes

8 퐻푉 vertexes of a unit hypercube (all 0/1 valued vectors in 푅푁 ) 9 퐻±1 ∈ 푅푁 convex hull (hypercube) of all -1/1 valued vectors in 푅푁 . 10 a hypercube with a unit volume and -1/0/1 valued vertexes : 퐻(퐶) 퐶 ∈ 퐸 is indexing -1/0 valued vertexes of 퐻(퐶) 퐸/퐶 is indexing 0/1 valued vertexes of 퐻(퐶)

2. Optimality conditions in combinatorial optimization

To derive optimality conditions for COP we consider the set of all instances (SAI) of a given problem with a fixed groundset 퐸 and a fixed family 푇 of feasible subsets. When both 퐸 and 푇 are fixed SAI is defined by possible values of weight vector 푐. Due to the property of linear problems we can scale 푐 with any positive scalar (the order of solutions induced by 푐 is not affected by scaling of 푐) so that we can always ensure that |푐푒| < 1 for each 푒 ∈ 퐸. Thus, without loss of generality SAI is reduced to a consideration of vector 푐 values from 푁- dimensional hypercube 퐻±1 ∈ 푅푁 which is the convex hull of all -1/1 valued vectors in 푅푁 .

2.1 Weight vector: nonnegative case

First, for simplicity reasons, we would assume non-negativity of the weight vector: 푐 ≥0. In this case SAI is reduced to a unit hypercube 퐻 ∈ 푅푁: a hypercube with binary (0/1) vertexes.

We would use 퐻 to denote exactly a unit hypercube. We use 퐻푉 to denote the set of all unit 푁 hypercube vertexes. Please note that 퐻푉 is a set of all 0/1 valued vectors in 푅 . In section 2.3 we would generalise our results by removing nonnegative constraints for the weight vector.

For each 푥푘 ∈ 푋 we define a set 푀푘 = {푐 ∈ 퐻 ∶ 푥푘 푐 ≥ 푋푐} of the weight vector values so that 푥푘 is optimal in COLP. From definition of 푀푘 it is obvious that if and only if 푐 ∈ 푀푘 then 푥푘 is optimal. We will prove that 푀푘 = 푐표푛푣(퐻푘 ) where 퐻푘 is the subset (defined by 푥푘 and 푋) of the unit hypercube vertexes only: 퐻푘 = {ℎ ∈ 퐻푉 ∶ 푥푘 ℎ ≥ 푋ℎ} . Please note that by 푥푘 ℎ ≥ 푋ℎ we mean that 푥푘 ℎ ≥ 푥ℎ for any 푥 ∈ 푋 (see notation 4 from the table 1).

To illustrate our ideas consider a Maximum Spanning Tree problem with 3 nodes joined by 3 edges. In this trivial example (figure 1A) the set 푋 consist of 3 elements (possibilities to select 푋 2 edges): 푋 = {푥푘 = (0,1,1), 푥푗 = (1,0,1), 푥푙 = (1,1,0)}. The polytope 푃 is a convex hull of 푋 (blue triangle). Assuming 푐 ≥ 0 and properly scaled the set of all possible values for weight vector 푐 is a unit hypercube 퐻 (in this case just a unit ). Consider a point 푥푘 = (0,1,1) and a set 푀푘 = {푐 ∈ 퐻 ∶ 푥푘 푐 ≥ 푋푐}. It is easy to check that for 푥푘 = (0,1,1) to be optimal a weight vector 푐 must be in the polytope 푀푘 = 푐표푛푣(퐻푘 ) shown in figure 1B by yellow edges. The same polytopes 푀푗 and 푀푙 for points 푥푗 and 푥푙 are apparently convex hulls of corresponding sets 퐻푗 and 퐻푙 (not shown). The union of 푀푘 , 푀푗 and 푀푙 is a unit cube 퐻. It is also clear that if we consider the case 푐 ≥ 0 (without scaling) then for 푥푘 = (0,1,1) to be optimal we need just change convex with conical hull: 푀푘 = 푐표푛푒(퐻푘 ) . Here we state that the same is related to any general linear COP (in case 푐 ∈ 퐻 the set of weight vector values so that an incidence vector 푥 ∈ 푋 is optimal is defined as convex hull of a unit hypercube vertexes). We summarize this in theorem 2.1.

푋 = 푥푘 ,푥푗 ,푥푙

퐻푘 = {ℎ ∈ 퐻푉 : 푥푘 ℎ ≥ 푋ℎ } 푥푘 =(0,1,1) 푥푗 =(1,0,1) 푥푙 =(1,1,0) (0,1,1) (1,1,1) (0,1,1) (1,1,1) (0,0,1) (1,0,1) (1,1,0)

푃푋 = 푐표푛푣(푋) (0,1,1) (0,1,0) (1,1,0)

(0,0,0) A unit hypercube 퐻 ∈ 푅 (0,0,0)

A) B) Figure 1. Maximum Spanning Tree (MST) problem with 3 nodes. A) If 푐 ≥ 0 then the set of all instances of MST problem is reduced to a cube of possible values of 푐 (assuming 푐 has been scaled properly). MST polytope 푐표푛푣(푋) is shown. B) The set 푀푘 = {푐 ∈ 퐻 ∶ 푥푘 푐 ≥ 푋푐} for 푥푘 = (0,1,1) is shown by yellow edges as convex hull of cube vertexes: 푀푘 = 푐표푛푣(퐻푘 ). In case 푐 ∈ 퐻 it is easy to check that if and only if 푐 is inside yellow pyramid then 푥푘 is optimal. Theorem 2.1 (combinatorial optimization optimality conditions). Let 푋 ∈ 푅푁 to be a set of incidence vectors induced by a COP with 푐 ≥ 0. Let 퐻 ∈ 푅푁 to be a unit hypercube and

퐻푉 to be a set of 퐻 vertexes. Let 퐻푘 ∈ 퐻푉 to be a subset of vertexes defined by 푥푘 ∈ 푋 so that 퐻푘 = {ℎ ∈ 퐻푉 ∶ 푥푘 ℎ ≥ 푋ℎ}. Then 푥푘 ∈ 푋 is optimal if and only if 푐 ∈ 푐표푛푒(퐻푘 ):

∃ 훾푗 ≥ 0 so that 푐 = ∑ 훾푗ℎ푗 (1) ℎ푗∈ 퐻푘

Proof. The proof of theorem 2.1 is directly follows from theorem 1 (see section 2.2). ∎

Please note that in theorem 2.1 we use 푐 ∈ 푐표푛푒(퐻푘 ) rather than 푐 ∈ 푐표푛푣(퐻푘 ) as we require in theorem 푐 ≥ 0 rather than 푐 ∈ 퐻. It is obvious that if 푐 ∈ 푐표푛푣(퐻푘 ) then 훼푐 ∈ 푐표푛푒(퐻푘 ) for any 훼 ≥ 0.

2.2 Proving theorem 2.1

It is clear that the set 푋 of all incidence vectors for any COP is a subset of 퐻푉 : 푋 ∈ 퐻푉 . Therefore, theorem 1 provides the basis for theorem 2.1:

Theorem 1. Let 퐻 to be a unit hypercube and 퐻푉 to be a set of 퐻 vertexes. Let 푋 ∈ 퐻푉 to be a subset of 퐻푉 . For any 푥푘 ∈ 푋 the set of points 푀푘 = {푥 ∈ 퐻 ∶ 푥푘 푥 ≥ 푋푥} is a convex hull of 퐻푘 = {ℎ ∈ 퐻푉 : 푥푘 ℎ ≥ 푋ℎ }: 푀푘 = 푐표푛푣(퐻푘 ).

To prove Theorem 1 we will introduce several sets defined by a unit hypercube vertexes (푥푘 , 푥푘 and 푥푙 ). Initially we introduce the set 퐵푘푗 = {푥 ∈ 퐻 ∶ 푥푘 푥 = 푥푗 푥} which is a boundary between any two vertexes 푥푘 and 푥푗 . Lemma 1 states that such a boundary inside a unit hypercube is a convex hull of hypercube vertexes 퐻푘푗 = {ℎ ∈ 퐻푉 : 푥푘 ℎ = 푥푗 ℎ} (see figure 2A). The set 퐵푘푗푙 = {푥 ∈ 퐻 ∶ 푥푘 푥 = 푥푗 푥 = 푥푙 푥 } extends definition of 퐵푘푗 for 3 vertexes 푥푘 , 푥푗 and 푥푙 . Lemma 2 states that 퐵푘푗푙 = 푐표푛푣(퐻푘푗푙) where 퐻푘푗푙 = {ℎ ∈ 푙 퐻푉 : 푥푘 ℎ = 푥푗 ℎ = 푥푙 ℎ}. It is obvious that 퐵푘푗푙 ∈ 퐵푘푗 as well as 퐻푘푗푙 ∈ 퐻푘푗. The set 퐵푘푗 =

{푥 ∈ 퐻 ∶ 푥푘 푥 = 푥푗 푥 ≥ 푥푙 푥} (lemma 3) is also defined by 3 vertexes 푥푘 , 푥푗 and 푥푙 but represents a different subset of 퐵푘푗 (see figure 2B) and also is a convex hull of hypercube 푙 푌 vertexes 퐻푘푗 = {ℎ ∈ 퐻푉 : 푥푘 ℎ = 푥푗 ℎ ≥ 푥푙 ℎ}. Finally, a set 퐵푘푗 = {푥 ∈ 퐻: 푥푘 푥 = 푥푗 푥 ≥ 푙 푌 푌푥} is an extension of 퐵푘푗 ( a set of vertexes 푌 vs. a single 푥푙 ) . Lemma 4 states that 퐵푘푗 is 푌 a convex hull of hypercube vertexes 퐻푘푗 = {ℎ ∈ 퐻푉 : 푥푘 ℎ = 푥푗 ℎ ≥ 푌ℎ}. So we have the following relations between sets:

푌 푙 퐻푘푗 ∈ 퐻푘푗 ∈ 퐻푘푗 ∈ 퐻푘 for any hypercube vertexes 푥푘 , 푥푗 , 푥푙 ∈ 푌

푌 푙 퐵푘푗 ∈ 퐵푘푗 ∈ 퐵푘푗 ∈ 퐵푘 for any hypercube vertexes 푥푘 , 푥푗 , 푥푙 ∈ 푌

푥푘 =(0,1,1) 푥푗 =(1,0,1) 푥푙 =(1,1,0)

(0,1,1) (0,0,1) (1,0,1)

퐻푘푗= ℎ ∈ 퐻푉 : 푥푘 ℎ = 푥푗 ℎ

(1,1,0)

(0,0,0) A) (0,1,1) (1,1,1) (0,0,1) (1,1,0) 푙 퐻푘푗= ℎ ∈ 퐻푉 : 푥푘 ℎ = 푥푗 ℎ ≥ 푥푙 ℎ

(1,1,0)

(0,0,0)

B)

푙 Figure 2. Sets ( 퐵푘푗 and 퐵푘푗) used to prove theorem 1 for MST problem with 3 nodes. A) A set 퐵푘푗 = {푥 ∈ 퐻 ∶ 푥푘 푥 =

푥푗 푥} for 푥푘 = (0,1,1) and 푥푗 = (1,1,0) is shown by yellow edges: the set of points 퐵푘푗 is defined as convex hull of a unit 푙 hypercube vertexes 퐻푘푗 = {ℎ ∈ 퐻푉 : 푥푘 ℎ = 푥푗 ℎ}. B) A subset 퐵푘푗 = {푥 ∈ 퐻 ∶ 푥푘 푥 = 푥푗 푥 ≥ 푥푙 푥} is shown with 푙 푙 yellow edges. 퐵푘푗 is defined by 퐻푘푗 = {ℎ ∈ 퐻푉 : 푥푘 ℎ = 푥푗 ℎ ≥ 푥푙 ℎ}.

Lemma 1. The subset 퐵푘푗 = {푥 ∈ 퐻 ∶ 푥푘 푥 = 푥푗 푥} for any two vertexes 푥푘 ∈ 퐻푉 and

푥푗 ∈ 퐻푉 is a convex hull of 퐻푘푗 = {ℎ ∈ 퐻푉 : 푥푘 ℎ = 푥푗 ℎ}:

퐵푘푗 = 푐표푛푣(퐻푘푗).

Proof. First it is obvious that if 푥 ∈ 푐표푛푣(퐻푘푗) then 푥푘 푥 = 푥푗 푥 as 푥 is decomposed by 퐻푘푗:

푥 = ∑ 훾푗ℎ푗, 훾푗 ≥ 0 and for each ℎ푗 ∈ 퐻푘푗 we have 푥푘 ℎ푗 = 푥푗 ℎ푗 . Next we prove ℎ푗∈ 퐻푘푗 that any point outside 푐표푛푣(퐻푘푗) is outside 퐵푘푗.

푁 The set 퐵푘푗 is an intersection of a hyperplane 푃푘푗 = {푝 ∈ 푅 : (푥푘 − 푥푗 )푝 = 0} and a unit hypercube 퐻: 퐵푘푗 = 퐻 ∩ 푃푘푗. Any vertex ℎ ∈ 퐻푘푗 ∈ 퐵푘푗 is an extreme point of 퐵푘푗 (as ℎ is an extreme point of 퐻 and 퐵푘푗 ∈ 퐻). The set 퐵푘푗 will have different (not 퐻푘푗) extreme points only if there is a 1-dimentional 푠 of the hypercube 퐻 so that a hyperplane 푃푘푗 intersects with 푠 at a single point 푠표 ∈ 퐵푘푗:

푠 ∩ 푃푘푗 = 푠표 , 푠표 ∉ 퐻푘푗

In fact this is not possible due to the binary nature of the unit hypercube vertexes.

Let us recall that two vertexes ℎ1 and ℎ0 of a unit hypercube are connected by 1-dimentinal edge 푠 if they have only one different element. Let us denote ℎ1 and ℎ0 in a way that

(푥푘 −푥푗 )ℎ1 ≥ (푥푘 −푥푗 )ℎ0 (l1.1)

We can always do this because ℎ1 and ℎ0 is 0/1 valued and have only one different element while (푥푘 − 푥푗 ) is -1/0/1 valued. Thus, for any two vertexes ℎ1 and ℎ0 that are connected by 1-dimentinal edge is true:

0 ≤ (푥푘 −푥푗 )ℎ1 − (푥푘 −푥푗 )ℎ0 ≤ 1 (l1.2)

Now assume that edge 푠 intersects with 푃푘푗 at a single point 푠표 ∉ 퐻푘푗 . This means that ℎ1 and ℎ0 are located at different halve spaces separated by hyperplane 푃푘푗 and therefore (assuming we denote ℎ1 and ℎ0 in a way l1.1):

(푥푘 −푥푗 )ℎ1 > 0 (l1.3)

(푥푘 −푥푗 )ℎ0 < 0 (l1.4)

However, this is not possible. If (l1.3) is true then (푥푘 −푥푗 )ℎ1 ≥ 1 as (푥푘 −푥푗 )ℎ1 > 0 and integer. In similar way we get that (푥푘 −푥푗 )ℎ0 ≤ −1. This means that (푥푘 −푥푗 )ℎ1 −

(푥푘 −푥푗 )ℎ0 ≥ 2 what contradicts to (l1.2) and, therefore, (l1.3, l1.4) is false if (l1.2) is true.

This means that hyperplane 푃푘푗 can not intersects with 1-dimentional edges at a single point different from 퐻 vertex and, thus, the set of extreme points of 퐵푘푗 = 퐻 ∩ 푃푘푗 consist of only

퐻 vertexes which, in turn, proves that 퐵푘푗 = 푐표푛푣(퐻푘푗). ∎

Lemma 2. The subset 퐵푘푗푙 = {푥 ∈ 퐻 ∶ 푥푘 푥 = 푥푗 푥 = 푥푙 푥 } for any 푥푘 ∈ 퐻푉 , 푥푗 ∈ 퐻푉 and 푥푙 ∈ 퐻푉 is a convex hull of 퐻푘푗푙 = {ℎ ∈ 퐻푉 : 푥푘 ℎ = 푥푗 ℎ = 푥푙 ℎ}:

퐵푘푗푙 = 푐표푛푣(퐻푘푗푙)

Proof. It is trivial to prove that 푐표푛푣(퐻푘푗푙) ∈ 퐵푘푗푙. Next we prove that any point outside

푐표푛푣(퐻푘푗푙) is outside 퐵푘푗푙.

Assume there is point 푧 ∈ 퐵푘푗푙: 푥푘 푧 = 푥푗 푧 = 푥푙 푧 and 푧 ∉ 푐표푛푣(퐻푘푗푙). From lemma 1 it follows that 푧 ∈ 푐표푛푣(퐻푘푗). Thus we can decompose 푧 by 퐻푘푗:

푧 = ∑ 훾푖ℎ푖 , 훾푖 ≥ 0 ℎ푖∈퐻푘푗

By definition 퐻푘푗푙 ∈ 퐻푘푗 so we can rewrite decomposition of 푧:

푧 = ∑ 훾푖ℎ푖 + ∑ 훽푖ℎ푖 , 훾푖 ≥ 0 and 훽푖 ≥ 0 ℎ푖∈퐻푘푗푙 ℎ푖∈(퐻푘푗\퐻푘푗푙)

For any ℎ푖 ∈ 퐻푘푗푙 we have 푥푘 ℎ푖 = 푥푗 ℎ푖 = 푥푙 ℎ푖 while for any ℎ푖 ∈ (퐻푘푗\퐻푘푗푙) we have

푥푘 ℎ푖 = 푥푗 ℎ푖 > 푥푙 ℎ푖. This means that either each 훽푖 = 0 or 푥푘 푧 = 푥푗 푧 > 푥푙 푧. In the first case (훽푖 = 0) we have 푧 = ∑ 훾푖ℎ푖 , 훾푖 ≥ 0 which contradicts to 푧 ∉ 푐표푛푣(퐻푘푗푙) while ℎ푖∈퐻푘푗푙 the second case (푥푘 푧 = 푥푗 푧 > 푥푙 푧) contradicts to 푧 ∈ 퐵푘푗푚. ∎

푙 Lemma 3. The subset 퐵푘푗 = {푥 ∈ 퐻 ∶ 푥푘 푥 = 푥푗 푥 ≥ 푥푙 푥} for any 푥푘 ∈ 퐻푉 , 푥푗 ∈ 퐻푉 푙 and 푥푙 ∈ 퐻푉 is a convex hull of 퐻푘푗 = {ℎ ∈ 퐻푉 : 푥푘 ℎ = 푥푗 ℎ ≥ 푥푙 ℎ} : 푙 푙 퐵푘푗 = 푐표푛푣(퐻푘푗 )

푙 푙 푙 Proof. It is trivial to prove that (퐻푘푗) ∈ 퐵푘푗. Next we prove that any point outside 푐표푛푣( 퐻푘푗) 푙 is outside 퐵푘푗. For this we would need to use the relations between introduced subsets:

푙 푙 퐻푘푗푙 ∈ 퐻푘푗 ∈ 퐻푘푗 and 퐵푘푗푙 ∈ 퐵푘푗 ∈ 퐵푘푗 (l.3.0)

These relations follows from the subsets definitions.

푙 Assume that there is a point 푧 ∈ 퐵푘푗:

푥푘 푧 = 푥푗 푧 ≥ 푥푙 푧 (l.3.1)

and

푙 푧 ∉ 푐표푛푣(퐻푘푗) (l.3.2)

If 푥푘 푧 = 푥푗 푧 = 푥푙 푧 then 푧 ∈ 퐵푘푗푙and from lemma 2 푧 ∈ 푐표푛푣(퐻푘푗푙). From (l.3.0) we have 푙 푙 퐻푘푗푙 ∈ 퐻푘푗 and, hence, 푧 ∈ 푐표푛푣(퐻푘푗) which is contradiction to l.3.2. Therefore, we need to consider only the case 푥푘 푧 = 푥푗 푧 > 푥푙 푧.

From 푥푘 푧 = 푥푗 푧 it follows that 푧 ∈ 퐵푘푗 and from lemma 1 it follows that 푧 ∈ 푐표푛푣(퐻푘푗).

Thus we can decompose 푧 using vertexes from 퐻푘푗:

푧 = ∑ 훾푖ℎ푖 , 훾푖 ≥ 0 ℎ푖∈퐻푘푗

푙 As 퐻푘푗 ∈ 퐻푘푗 we can rewrite decomposition as

푧 = ∑ 푙 훾푖ℎ푖 + ∑ 푙 훽푖ℎ푖 where 훾푖 ≥ 0 푎푛푑 훽푖 ≥ 0 (l.3.3) ℎ푖∈퐻푘푗 ℎ푖∈(퐻푘푗\퐻푘푗)

푙 Let us select ℎ∗ ∈ (퐻푘푗\퐻푘푗) so that 훽∗ > 0 (if there is no such 훽∗ then 푧 = 푙 푙 ∑ 푙 훾푖ℎ푖 , 훾푖 ≥ 0 and, therefore, 푧 ∈ 푐표푛푣(퐻푘푗)). For ℎ∗ (due to ℎ∗ ∈ (퐻푘푗\퐻푘푗)) we ℎ푖∈퐻푘푗 푙 have 푥푘 ℎ∗ = 푥푗 ℎ∗ < 푥푙 ℎ∗ and for 푧 (due to 푧 ∈ 퐵푘푗) we have 푥푘 푧 = 푥푗 푧 > 푥푙 푧 which 표 means that there is 휇: 0 < 휇 < 1 so that for point 푧 = 휇ℎ∗ + (1 − 휇)푧 is true:

표 표 표 푥푘 푧 = 푥푗 푧 = 푥푙 푧 (l.3.4)

표 We can express ℎ∗ as linear combination of 푧 and 푧:

표 ℎ∗ = (1/휇)푧 − ((1 − 휇)/휇)푧 (l.3.5)

표 표 From (l.3.4) it follows that 푧 ∈ 퐵푘푗푙 and, therefore, by lemma 2 we have 푧 ∈ 푐표푛푣(퐻푘푗푙) 표 푙 푙 표 and thus 푧 ∈ 푐표푛푣(퐻푘푗) as 퐻푘푗푙 ∈ 퐻푘푗 which means that we can decompose 푧 =∑ 푙 푎푖ℎ푖 ℎ푖∈퐻푘푗 with 푎푖 ≥ 0 and rewrite (l.3.5) : 1 1−휇 ℎ∗ = ( ) ∑ 푙 푎푖ℎ푖 − ( ) 푧 , 푎푖 ≥ 0 (l.3.6) 휇 ℎ푖∈퐻푘푗 휇

Substituting (l.3.6) into (l.3.3) we will eliminate 훽∗ℎ∗(i.e. 훽∗ = 0):

푛푒푤 푛푒푤 푛푒푤 푛푒푤 푛푒푤 푧 = ∑ 훾푖 ℎ푖 + ∑ 훽푖 ℎ푖 , 훾푖 ≥ 0 , 훽푖 ≥ 0 푎푛푑 훽∗ = 0 푙 푙 ℎ푖∈퐻푘푗 ℎ푖∈(퐻푘푗\퐻푘푗) where the new coefficients are:

푛푒푤 훾푖 = (휇/(휇 + 훽∗(1 − 휇) ))훾푖 + (훽∗/(휇 + 훽∗(1 − 휇) )) 푎푖

푛푒푤 훽푖 = (휇/(휇 + 훽∗(1 − 휇) ))훽푖

and 푎푖 ≥ 0, 훾푖 ≥ 0 , 훽∗ > 0 , 1 > 휇 > 0 .

푛푒푤 푛푒푤 It is easy to see that 훾푖 ≥ 0. It is important that 훽푖 > 0 only if 훽푖 > 0. Thus l.3.3 can be 푛푒푤 푙 rewritten without ℎ∗ (훽∗ = 0 and without adding novel ℎ푖 ∈ (퐻푘푗\퐻푘푗) with 훽푖 > 0). Repeating similar procedure for every 훽푖 > 0 we will finally rewrite l.3.3 so that for any 푙 푙 ℎ푖 ∈ (퐻푘푗\퐻푘푗) the corresponding 훽푖 = 0 which means that 푧 is decomposed by 퐻푘푗. Thus, if l.3.1 is true then ∃ 훾푖 ≥ 0 so that 푧 = ∑ 푙 훾푖ℎ푖 and l.3.2 is false. ∎ ℎ푖∈퐻푘푗

Trivial consequence from lemma 3 is that if decomposition of 푧 using vertexes 퐻푘푗 requires 푙 푙 푙 a nonzero input from any vertex ℎ표 ∉ 퐻푘푗 then 푧 ∉ 퐵푘푗 as in this case 푧 ∉ 푐표푛푣(퐻푘푗).

푌 Lemma 4. The subset 퐵푘푗 = {푥 ∈ 퐻 : 푥푘 푥 = 푥푗 푥 ≥ 푌푥 } for any 푥푘 ∈ 퐻푉 and 푥푗 ∈ 푌 퐻푉 and a set 푌 ∈ 퐻푉 is a convex hull of 퐻푘푗 = {ℎ ∈ 퐻푉 : 푥푘 ℎ = 푥푗 ℎ ≥ 푌ℎ}: 푌 푌 퐵푘푗 = 푐표푛푣(퐻푘푗 )

푌 푌 Proof. It is trivial to prove that 푐표푛푣(퐻푘푗 ) ∈ 퐵푘푗. Next we prove that any point outside 푌 푙 푡 푐표푛푣(퐻푘푗 ) is outside 퐵푘푗 ∩ 퐵푘푗.

푌 푌 Both sets 퐵푘푗 and 퐻푘푗 can be presented as intersections (it follows from the sets definitions):

푌 푙 푌 푙 퐵푘푗 = ⋂ 퐵푘푗 and 퐻푘푗 = ⋂ 퐻푘푗 푥푙 ∈푌 푥푙 ∈푌

Assume that there is a point 푧 so that:

푌 푙 푧 ∈ 퐵푘푗 = ⋂ 퐵푘푗 (l.4.1) 푥푙 ∈푌

and

푌 푙 푧 ∉ 푐표푛푣(퐻푘푗) = 푐표푛푣(⋂ 퐻푘푗) (l.4.2) 푥푙 ∈푌

푙 For each 푥푙 ∈ 푌 we have 푧 ∈ 퐵푘푗 and by lemma 3 we can decompose 푧 = ∑ 푙 훾푖ℎ푖 with ℎ푖∈퐻푘푗

훾푖 ≥ 0 . From (l.4.2) it follows that there is at least one pair 푥푙 ∈ 푌 and 푥푡 ∈ 푌 so that there 푙 푡 is a vertex ℎ표 ∈ 퐻푘푗 and ℎ표 ∉ 퐻푘푗 and ℎ표 is required for decomposition of 푧 with vertexes 퐻푘푗. 푡 Therefore, based on the consequence of lemma 3 we have 푧 ∉ 퐵푘푗 and therefore 푧 ∉ 푙 푌 푙 푡 ⋂ 퐵푘푗 = 퐵푘푗 as ⋂ 퐵푘푗 ∈ 퐵푘푗. ∎ 푥푙 ∈푌 푥푙 ∈푌

Proof of Theorem 1. It is trivial to prove that 푐표푛푣(퐻푘 ) ∈ 푀푘 . Next we prove that any point outside 푐표푛푣(퐻푘 ) is outside 푀푘 .

Assume that there is point 푧 ∈ 푀푘 so that:

푥푘 푧 > 푋푧 (T1.1a)

and

푧 ∉ 푐표푛푣(퐻푘 ) (T1.1b)

Please note that we consider the case 푥푘 푧 > 푋푧 rather than 푥푘 푧 ≥ 푋푧 because if there is 푥푗 푋 푋 ∈ 푋 so that 푥푘 푧 = 푥푗 푧 ≥ 푋푧 then 푧 ∈ 퐵푘푗 and, therefore, by lemma 4, 푧 ∈ 푐표푛푣(퐻푘푗). And 푋 due to 퐻푘푗 ∈ 퐻푘 it automatically implies that 푧 ∈ 푐표푛푣(퐻푘 ). Therefore, further we need to consider only the case 푥푘 푧 > 푋푧.

As 푧 ∈ 푀푘 ∈ 퐻 we can decompose 푧 by 퐻푉 :

푧 = ∑ 훾푖ℎ푖 + ∑ 훽푖ℎ푖 where 훾푖 ≥ 0 푎푛푑 훽푖 ≥ 0 (T1.2) ℎ푖∈퐻푘 ℎ푖∈(퐻푉 \퐻푘 )

Let us consider vertex ℎ∗ ∈ (퐻푉 \퐻푘 ) so that 훽∗ > 0 (if there is no such vertex ℎ∗ then 푧 = ∑ 훾푖ℎ푖 with 훾푖 ≥ 0 and therefore 푧 ∈ 푐표푛푣(퐻푘 ) which makes T1.1b false). For vertex ℎ푖∈퐻푘 ℎ∗ there is at least one 푥푗 ∈ 푋 so that 푥푘 ℎ∗ < 푥푗 ℎ∗ (otherwise ℎ∗ ∈ 퐻푘 ). Let 푋푙 to be all such vertexes:

푋푙 = {푥푙 ∈ 푋: 푥푘 ℎ∗ < 푥푙 ℎ∗}

On the other side we have 푥푘 푧 > 푥푙 푧 for each 푥푙 ∈ 푋푙

푙 which means that for each 푥푙 ∈ 푋푙 there is a point 푧 :

푙 푧 = 휇푙 ℎ∗ + (1 − 휇푙 )푧 , 1 > 휇푙 > 0

so that

푙 푙 푥푘 푧 = 푥푙 푧 .

Let us select 푥표 ∈ 푋푙 with the smallest 휇표 : 휇표 ≤ 휇푙 for each 푥푙 ∈ 푋푙 . We denote

표 푧 = 휇표 ℎ∗ + (1 − 휇표 )푧 (T1.3) 표 For 푧 and 푥표 we have 0 0 푥푘 푧 = 푥표 푧 (T1.4)

0 0 It is important to notice that 푥푘 푧 ≥ 푥푙 푧 for each 푥푙 ∈ 푋푙 (due to 휇표 ≤ 휇푙 ). For all 0 0 points 푥푗 ∈ 푋\푋푙 we have 푥푘 푧 > 푥푗 푧 as 푥푘 푧 > 푥푗 푧 and 푥푘 ℎ∗ ≥ 푥푗 ℎ∗. Hence for 0 0 0 푧 we have 푥푘 푧 ≥ 푥푧 for any 푥 ∈ 푋:

0 0 푥푘 푧 ≥ 푋푧 (T1.5)

표 표 표 표 푋 From T1.4 and T1.5 it follows that 푥푘 푧 = 푥표 푧 ≥ 푋푧 which means that 푧 ∈ 퐵푘표 and 표 푋 푋 from lemma 4 it follows that 푧 ∈ 푐표푛푣(퐻푘표). From 퐻푘표 ∈ 퐻푘표 ∈ 퐻푘 it follows that

표 푧 ∈ 푐표푛푣(퐻푘 ) (T1.5)

We can express ℎ∗ from (T1.3):

표 ℎ∗ = (1/휇표 )푧 − ((1 − 휇표 )/휇표 )푧 (T1.6)

표 Due to T1.5 we can decompose 푧 = ∑ 푎푖ℎ푖 , 푎푖 ≥ 0 using only 퐻푘 vertexes and ℎ푖∈퐻푘 therefore

ℎ∗ = (1/휇표 ) ∑ 푎푖ℎ푖 − ((1 − 휇표 )/휇표 )푧, 푎푖 ≥ 0 (T1.7) ℎ푖∈퐻푘

Substituting (T1.7) into (T1.2) we will eliminate 훽∗ℎ∗ in decomposition of 푧:

푛푒푤 푛푒푤 푛푒푤 푛푒푤 푛푒푤 푧 = ∑ 훾푖 ℎ푖 + ∑ 훽푖 ℎ푖 , 훾푖 ≥ 0 , 훽푖 ≥ 0 푎푛푑 훽∗ = 0 (T1.8) ℎ푖∈퐻푘 ℎ푖∈(퐻푉 \퐻푘 ) where new coefficients are:

푛푒푤 훾푖 = (휇표 /(휇표 + 훽∗(1 − 휇표 ) ))훾푖 + (훽∗/(휇표 + 훽∗(1 − 휇표 ) )) 푎푖

푛푒푤 훽푖 = (휇표 /(휇표 + 훽∗(1 − 휇표 ) ))훽푖

and 푎푖 ≥ 0, 훾푖 ≥ 0 , 훽∗ > 0 , 1 > 휇 > 0 .

푛푒푤 푛푒푤 푛푒푤 For all coefficients 훾푖 we have 훾푖 ≥ 0. It is important to note that 훽푖 > 0 only if 훽푖 > 푛푒푤 0. Therefore, a new decomposition (T1.8) of 푧 does have a zero input (훽∗ = 0) from ℎ∗ while no new positive inputs from ℎ푖 ∈ (퐻푉 \퐻푘 ) are added. We can repeat the same procedure for each remaining 훽푖 > 0 for vertexes ℎ푖 ∈ (퐻푉 \퐻푘 ) in T1.8 and, thus, making 푛푒푤 all 훽푖 for vertexes ℎ푖 ∈ (퐻푉 \퐻푘 ) to be zero. So this proves that if T1.1a is true then we can always decompose 푧 by 퐻푘 vertexes only: ∃ 훾푖 ≥ 0 so that 푧 = ∑ 훾푖ℎ푖. Therefore, if ℎ푖∈퐻푘 푧 ∈ 푀푘 then 푧 ∈ 푐표푛푣(퐻푘 ) and 푀푘 = 푐표푛푣(퐻푘 ) ∎

2.3 Weight vector: general case

Now we remove nonnegativity constraint from the weight vector and consider several possible cases. As already been mentioned, in general case, 푐 ∈ 푅푁 and we can consider 푐 ∈ 퐻±1(as for linear problems we can always rescale weight vector to ensure this). It is easy to notice that hypercube 퐻±1 ∈ 푅푁 consist of 2N with a unit volume including the unit hypercube 퐻 (0/1 valued vertexes). We denote such hypercubes 퐻(퐶) (figure 3) where 퐶 ∈ 퐸. For each vertex of 퐻(퐶) hypercube components indexed by 퐶 are -1/0 valued while components indexed by 퐸\퐶 are 0/1 valued. Each vertex ℎ(퐶) ∈ 퐻(퐶) is induced from vertex ℎ ∈ 퐻 by the following transformation: ℎ푖 − 1, 푖 ∈ 퐶 ℎ(퐶) = { (2.3.1) ℎ푖 , 푖 ∈ 퐸\퐶

(0,1,1) (1,1,1)

(1,0,1) (0,0,1) A unit hypercube 퐻

A hypercube 퐻(퐶 ) = 퐻(퐸) −−− (0,1,0) (1,1,0) (-1,0,0) (0,0,0) (1,0,0)

(-1,-1,0) (0,-1,0) A hypercube 퐻(퐶 −)

(1,1,-1)

(0,0,-1) (1,0,-1) (-1,-1,-1) (0,-1,-1)

Figure3. A hypercube 퐻±1 ∈ 푅푁 consist of 2N hypercubes 퐻(퐶) with a unit volume. Any 퐻(퐶) can be induced from a unit hypercube 퐻 = 퐻(퐶 = 푒푚푝푡푦) using 2.3.1 transformation for each vertex from 퐻.

It is easy to see the link between 퐻(퐶) and the weight vector: if 푐 ∈ 퐻(퐶) then 퐶 is a set of indexes where the weight vector components are negative: 퐶 = {푒 ∈ 퐸: 푐푒 < 0 } . First we consider case 푐 ∈ 퐻(퐶) and state that nothing will change in theorem 2.1 except that the set

퐻푉 would be substituted with a set 퐻푉 (퐶) where 퐻푉 (퐶) is a set of 퐻(퐶) vertexes. Finally, ±1 we consider a general case 푐 ∈ 퐻 . We state that in this case one need to substitute 퐻푉 in 푁 theorem 2.1 with a set ⋃퐶∈퐸 퐻푉 (퐶) which is a set 푉 of all -1/0/1 valued vectors in 푅 .

We have proved Theorem 1 for a unit hypercube 퐻 with 0/1 valued vertexes. To prove it we use only two properties of 퐻. First, throughout the proof we used the property that 퐻 is convex and thus any 푥 ∈ 퐻 can be decomposed as nonnegative linear combination of 퐻 vertexes. Second, in lemma 1 we used the property of a unit hypercube 퐻 that each 1-dimensional edge of 퐻 is formed by 2 vertexes that have only one different component and that the difference between integer values (in this case 0 and 1) is 1. But any other hypercube with a unit length of 1-dimensional edge and integer valued vertexes has the same properties. Thus we can extend theorem 1 by substituting a unit hypercube with any hypercube that have a unit volume and integer valued vertexes:

Theorem 1b. Let 퐻1 to be a hypercube with a unit volume and integer valued vertexes. Let 1 1 1 1 1 퐻푉 to be the set of all 퐻 vertexes and 푋 ∈ 퐻푉. For any vertex 푥푘 ∈ 푋 ∈ 퐻푉 the set of 퐻 1 1 points 푀푘 = {푥 ∈ 퐻 ∶ 푥푘 푥 ≥ 푋푥} is a convex hull of 퐻푘 = {ℎ ∈ 퐻푉: 푥푘 ℎ ≥ 푋ℎ }: 푀푘 = 푐표푛푣(퐻푘 )

Let us remark that theorem 1b is valid for any hypercube 퐻(퐶) as each 퐻(퐶) has a unit volume and integer (-1/0/1) valued vertexes. Now let us denote 퐻푉 (퐶) the set of 퐻(퐶) vertexes. For a subset 푋 ∈ 퐻푉 we denote 푋(퐶) a subset of 퐻푉 (퐶) induced by 푋 using transformation (2.3.1):

푖 푥푘 − 1, 푖 ∈ 퐶 푥푘 (퐶) = { 푖 , where 푥푘 ∈ 푋 ∈ 퐻푉 and 푥푘 (퐶) ∈ 푋(퐶) ∈ 퐻푉 (퐶) 푥푘, 푖 ∈ 퐸\퐶

Lemma 2.3.1 For any 푥푘 ∈ 퐻푉 and 푥푗 ∈ 퐻푉 and for any point 푥 ∈ 퐻(퐶) we have:

푥푘 푥 − 푥푘 (퐶)푥 = 푥푗 푥 − 푥푗 (퐶)푥 (l2.3.1)

푉 Proof. For any vertex ℎ ∈ 퐻 of a unit hypercube 퐻 and vertex ℎ(퐶) ∈ 퐻푉 (퐶) of a unit hypercube 퐻(퐶) and any 푥 ∈ 퐻(퐶) we have:

푖 푖 푖 푖 푖 푖 푖 푖 푖 ℎ푥 − ℎ(퐶)푥 = ∑푖∈(퐸\퐶)(ℎ푘푥 − ℎ푘푥 ) +∑푖∈퐶(ℎ푘푥 − (ℎ푘 − 1)푥 ) = ∑푖∈퐶 푥

푖 Therefore, and the difference ℎ푥 − ℎ(퐶)푥 = ∑푖∈퐶 푥 does not depend on ℎ. For each 푥푘 ∈ 푖 퐻푉 and 푥푗 ∈ 퐻푉 we have 푥푘 푥 − 푥푘 (퐶)푥 = ∑푖∈퐶 푥 = 푥푗 푥 − 푥푗 (퐶)푥 which proves (l2.3.1). ∎

As a consequence of lemma 2.3.1 we have 푥푘 푥 − 푥푗 푥 = 푥푘 (퐶)푥 − 푥푗 (퐶)푥 . This means that any equality/ valid for 푥푘 ∈ 퐻푉 , 푥푗 ∈ 퐻푉 and 푥 ∈ 퐻(퐶) is valid for 푥푘 (퐶) ∈

퐻푉 (퐶) , 푥푗 (퐶) ∈ 퐻푉 (퐶) and 푥 ∈ 퐻(퐶): if 푥푘 푥 ≥ 푥푗 푥 then the same is true for 푥푘 (퐶)푥 ≥

푥푗 (퐶)푥 (and vice versa).

Consider a set 푀푘 (퐶) = {푥 ∈ 퐻(퐶) ∶ 푥푘 푥 ≥ 푋푥} defined for each 푥푘 ∈ 푋 ∈ 퐻푉 . Consider ′ analogous set 푀푘(퐶) = {푥 ∈ 퐻(퐶) ∶ 푥푘 (퐶)푥 ≥ 푋(퐶)푥} defined for each 푥푘 (퐶) ∈ 푋(퐶) ∈ ′ 퐻푉 (퐶) . Similar we define 퐻푘 (퐶) = {ℎ ∈ 퐻푉 (퐶) ∶ 푥푘 ℎ ≥ 푋ℎ} and 퐻푘(퐶) = {ℎ ∈ 퐻푉 (퐶) ∶ 푥푘 (퐶)ℎ ≥ 푋(퐶)ℎ}.

′ ′ Lemma 2.3.2 푀푘 (퐶) = 푀푘(퐶) and 퐻푘 (퐶) = 퐻푘(퐶). Proof. The proof of lemma 2.3.2 follows directly from lemma 2.3.1. ∎

From Theorem 1b and lemma 2.3.2 it follows that theorem 1 is valid if we substitute a unit hypercube 퐻 with a hypercube 퐻(퐶) and modify definition of 푀푘 and 퐻푘 sets to be subsets of 퐻(퐶) while the set 푋 ∈ 퐻푉 remains the same:

Theorem 1c. Let 푋 ∈ 퐻푉 to be a subset of a unit hypercube 퐻 vertexes. For any 푥푘 ∈ 푋 the set of hypercube 퐻(퐶) points 푀푘 (퐶) = {푥 ∈ 퐻(퐶) ∶ 푥푘 푥 ≥ 푋푥} is a convex hull of 퐻푘 (퐶) = {ℎ ∈ 퐻푉 (퐶): 푥푘 ℎ ≥ 푋ℎ }:

푀푘 (퐶) = 푐표푛푣(퐻푘 (퐶))

Proof. Let 푋(퐶) to be a set of 퐻(퐶) vertexes induced by 푋 ∈ 퐻푉 . A hypercube 퐻(퐶) has a unit volume and integer valued vertexes. Thus, theorem 1b is valid for the set 푋(퐶) and a ′ ′ hypecube 퐻(퐶) and, therefore, 푀푘(퐶) = 푐표푛푣(퐻푘(퐶) ). From lemma 2.3.1 it follows that ′ ′ ′ ′ 푀푘 (퐶) = 푀푘(퐶) and 퐻푘 (퐶)=퐻푘(퐶). Therefore, 푀푘 (퐶) = 푀푘(퐶) = 푐표푛푣(퐻푘(퐶)) = 푐표푛푣(퐻푘 (퐶) ). ∎

Theorem 1c provides basis for optimality conditions for a COP in case 푐 ∈ 퐻(퐶):

Theorem 2.1b (extended). Let 푋 ∈ 퐻 ∈ 푅푁 to be a set of incidence vectors induced by a

COP and negative components of a weight vector 푐 are indexed by 퐶 ∈ 퐸. Let 퐻푘 (퐶) ∈ 퐻푉 (퐶) to be a subset of 퐻(퐶) vertexes defined by 푥푘 ∈ 푋 so that 퐻푘 (퐶) = {ℎ ∈ 퐻푉 (퐶) ∶ 푥푘 ℎ ≥ 푋ℎ}. Then 푥푘 ∈ 푋 is optimal if and only if 푐 ∈ 푐표푛푒(퐻푘 (퐶)): ∃ 훾푗 ≥ 0 so that 푐 = ∑ 훾푗ℎ푗 (2) ℎ푗∈ 퐻푘 (퐶)

Proof. See theorem 1c. ∎

Theorem 2.1b states that the set 푀푘 (퐶) = {푐 ∈ 퐻(퐶) ∶ 푥푘 푐 ≥ 푋푐} is defined by a convex hull of the hypercube 퐻(퐶) vertexes: 퐻푘 (퐶) = {ℎ ∈ 퐻푉 (퐶) ∶ 푥푘 ℎ ≥ 푋ℎ}. Let us extend theorem 2.1b for a general case 푐 ∈ 퐻±1 (or 푐 ∈ 푅N if we do not scale it):

Theorem 2.1c (general). Let 푋 ∈ 퐻 ∈ 푅푁 to be a set of incidence vectors induced by a COP 푁 푁 and 푐 ∈ 푅 . Let 푉 to be a set of all -1/0/1 valued vectors in 푅 . Let 퐻푘 (푉) ∈ 푉 to be a subset of 푉 defined by 푥푘 ∈ 푋 so that 퐻푘 (푉) = {ℎ ∈ 푉 ∶ 푥푘 ℎ ≥ 푋ℎ}. Then 푥푘 ∈ 푋 is optimal if and only if 푐 ∈ 푐표푛푒(퐻푘 (푉)): ∃ 훾푗 ≥ 0 so that 푐 = ∑ 훾푗ℎ푗 (3) ℎ푗∈퐻푘 (푉)

±1 ±1 ±1 Proof. Let us define the set 푀푘 (퐻 ) = {푐 ∈ 퐻 ∶ 푥푘 푐 ≥ 푋푐} of weigth vector 푐 ∈ 퐻 ±1 ±1 values so that 푥푘 ∈ 푋 is optimal. As 퐻 = ⋃퐶∈퐸 퐻(퐶) it is obvious that 푀푘 (퐻 ) = ⋃퐶∈퐸 푀푘 (C) and, by theorem 2.1b, we have ⋃퐶∈퐸 푀푘 (C) = ⋃퐶∈퐸 푐표푛푣(퐻푘 (퐶)) = 푐표푛푣(⋃퐶∈퐸 퐻푘 (C) ) where 퐻푘 (퐶) = {ℎ ∈ 퐻푉 (퐶) ∶ 푥푘 ℎ ≥ 푋ℎ}. The set ⋃퐶∈퐸 퐻푉 (퐶) is N just a set of all -1/0/1 valued vectors in 푅 and, thus, ⋃퐶∈퐸 퐻푘 (퐶) = 퐻푘 (푉) = ±1 {ℎ ∈ 푉 ∶ 푥푘 ℎ ≥ 푋ℎ}. Which, in turn, proves that 푀푘 (퐻 ) = ⋃퐶∈퐸 푀푘 (C) = 푁 ⋃퐶∈퐸 푐표푛푣(퐻푘 (C)) = 푐표푛푣(⋃퐶∈퐸 퐻푘 (퐶) ) = 푐표푛푣(퐻푘 (푉)). So in case 푐 ∈ 푅 the incident vector 푥푘 ∈ 푋 is optimal if and only if 푐 ∈ 푐표푛푒(퐻푘 (푉)).∎

3. Complete description of polytopes in combinatorial optimization

A general powerful method of proving the validity of an inequality was proposed by (Chvatal 1973) and is essentially the same as the cut generation method of Gomory (Gomory 1963). It is based upon the fact that there is often an formulation of combinatorial optimization problem. All valid inequalities for the convex hull of incidence vectors can be derived from this (Pulleyblank 1989). Sometimes, it is easier to derive a linear description of some high dimensional polytope by introducing extra variables to formulation of original COP (i.e. variables that do not correspond to groundset 퐸). Such formulation is commonly referred to as extended. In some cases extended formulation can be used to find description of the polytope for original COP (Schrijver 2004).

Theorem 2.1c provides a basis for a different procedure to get a complete set of valid and non- redundant facet inducing inequalities for any COP even without analytical integer programing formulation or extended formulation. Any COP is transformed into linear program over the polytope 푃푋, however, in many cases without a complete description of 푃푋 as a system of linear inequalities. From complementary slackness theorem it follows that optimality conditions for any linear program at an extreme point 푥푘 is defined by a complete set of facets that intersects at 푥푘 . We proved that optimality conditions (3) is necessary and sufficient, ̃ therefore, the set of independent cone generators 퐻푘 (푉) = {ℎ ∈ 퐻푘 (푉) ∶ ℎ ∉ 푐표푛푒(퐻푘 (푉)\ 푋 {ℎ})} for 푐표푛푒(퐻푘 (푉)) represent a complete nonredundant set of 푃 facets that intersects at 푥푘 . This provide a basis for complete description of the polytopes induced by combinatorial optimization problems:

Theorem 3 (complete description of polytopes in combinatorial optimization). Let 푋 ∈ 푅푁 to be a set of incidence vectors induced by a COP. Let 푃푋 = 푐표푛푣(푋) to be the 푁 induced polytope. Let 푉 ∈ 푅 to be a set of all -1/0/1 valued vectors. Let 퐻푘 (푉) to be a subset ̃ of 푉 defined for each 푥푘 ∈ 푋 so that 퐻푘 (푉) = {ℎ ∈ 푉 ∶ 푥푘 ℎ ≥ 푋ℎ} and 퐻푘 (푉) = {ℎ ∈ 퐻푘 (푉) ∶ ℎ ∉ 푐표푛푒(퐻푘 (푉)\{ℎ})} to be a set of independent cone generators for 푋 ̃ 푐표푛푒(퐻푘 (푉)). Then 푃푉 = ⋃ 퐻푘 (푉) defines the complete set of nonredundant facet 푥푘 ∈푋 inducing inequalities for 푃푋 :

푋 inequality ℎ푥 ≤ 푙 induces a nonredundant facet for each ℎ ∈ 푃푉 ̃ and 푙 = ℎ푥푘 for 푥푘 ∈ 푋 so that ℎ ∈ 퐻푘 (푉)

Proof. The proof of theorem 3 directly follows from complementary slackness theorem and theorem 2.1c. ∎

Let us remark that for symmetric problems such as traveling salesman problem (TSP) it is enough to deduce facets only for one extreme point as all facets for the other extreme points can be deduced by proper permutation of corresponding indexes. For combinatorial problems that have the same sizes of all feasible subsets ( |푡| = 푛 for all 푡 ∈ 푇) it is sufficient to consider only case when 푐 ∈ 퐻 as we can scale 푐 and add/subtract unit vector to/from 푐 without affecting hierarchical order of solutions induced by 푐 (TSP is also from this class). And even if some components of 푐 are negative by proper transformation (scaling + adding unit vector) we can 푋 ensure that 푐 ∈ 퐻. Therefore, for this class of problems the set 푃푉 from theorem 3 can be 푋 redefined as 푃퐻 using only a unit hypercube vertexes 퐻푉 instead of 푉 (except non-negativity constraints):

푋 푃퐻 = {ℎ ∈ 퐻푉 : ℎ ∈ 퐻푘 푎푛푑 ℎ ∉ 푐표푛푒(퐻푘 \{ℎ}) for at least one 푥푘 ∈ 푋}

4. Final remarks

In this paper we have provided analytical formulation of optimality conditions for a general linear combinatorial optimization problem for the first time up to our knowledge. This provides basis for a complete description of any polytope induced by combinatorial optimization (as a system of linear inequalities) even without integer programming formulation (or extended formulation).

References

Aardal, K. and S. v. Hoesel (1996). "Polyhedral techniques in combinatorial optimization." Statistica Neerlandica 50: 3-26.

Chvatal, V. (1973). "Edmonds polytopes and a hierarchy of combinatorial problems " Discrete 4: 305-337.

Gomory, R. E. (1963). "An algorithm to integer solutions to linear programs." Resent advances in Mathematical Programing: 269-302.

Pulleyblank, W. R. (1989). Polyhedral combinatorics, Optimization (G.L. Nemhauser, A.H.G. Rinnooy Kan, and M.J. Todd, eds.). Handbooks in OR & MS. 1: 371-446.

Schrijver, A. (2004). Combinatorial optimization (Polyhedra ans Efficiency) Springer. A-C.