Integer Programming and Totally
unimodular matrices
Carlo Mannino
(from Geir Dahl and Carlo Mannino notes)
University of Oslo, INF-MAT5360 - Autumn 2011 (Mathematical optimization)
Integer Programming
P Rn polyhedron
Integer Programming
P
max {cTx: xP Zn }
PI = conv(P Zn ) convex hull of integer points in P is a polyhedron
max {cTx: xP Zn } = max {cTx: x PI} max {cTx: x P} = UB
linear relaxation
P is called integral if P = PI
PI
P
Characterizing integer polyhedra
Proposition 2.2:
Let P Rn be a non-empty polyhedron. The following
statements are equivalent:
(i) P is integral.
(ii) Each minimal face of P contains an integral vector.
(iii) max {cTx: xP} is attained for an integral vector for each
cRn for which the maximum is finite.
Furthermore, if P is pointed, then P is integral if and only if
each vertex is integral.
Exposed faces
The following is an important fact (Proposition 4.4.6 from Geir
Dahl’s notes An introduction to convexity)
Proposition :
Let P = {xRn : Ax ≤ b} be a polyhedron, with ARm,n . A
non-empty set F is an exposed face (=face) of P if and only if
F = {xP: A’x = b’ }
for
some subsystem A’x ≤ b’ of Ax ≤ b.
asda
If F is a vertex, then A’ Rn,n
Totally unimodular matrices
ARm,n is totally unimodular (TU) if the determinant of each square
submatrix is either -1, 0 or 1.
Obs: every element of A must be -1, 0 or 1
Proposition 2.5
Let ARm,n be TU and let bRm be an integral vector.
Then the polyhedron P = {x Rn : Ax b} is integral.
Proof.
Cramer’s Rule to compute the inverse matrix :
C non-singular square matrix
Cij obtained from C by deleting row i and column j
C-1 inverse of C (j,i) element of C-1 = (-1)i+j det(Cij)/det(C)
Proof of Theorem 2.5
C TU and non-singular C-1 is integral (by Cramer’s rule)
Let F={x Rn : A’x = b’} be a minimal face of P (where {A’x b’ }
is a subsystem of {Ax b })
We can assume the rows in {A’x = b’} be linearly independent.
Then A’ contains a m’m’ nonsingular submatrix B such that A’= [B N]
x F, then x = [xB , xN] xB = B-1b’, xN = 0.
B-1 and b’ integers xB integer F contains an integer point
P integer polyhedron
Preserving total unimodularity
Matrix operations preserving total unimodularity
transpose
augmenting with the identity matrix
multiplying a column or a row by -1
interchanging two rows or two columns
duplication of rows and columns
…
Totally unimodular matrices and duality
Corollary 2.6
Let ARm,n be TU and bRm, cRn integral vectors. Then
each of the dual LP problems in the dual optimal relation:
max{cTx: Ax b} = min{bTy: ATy=c, y0}
has an integral optimal solution
Characterizing totally unimodular matrices
Theorem 2.9: Ghouila-Houri characterization
A{0,1,-1}m,n is TU iff for each I{1,…,I} there is a partition
I1, I2 of I such that
aij aij 1 for j 1,, n.
iI1
iI 2
Since the transpose of a TU matrix is also TU, the GhouilaHouri property holds for columns as well.
Node-edge incidence matrices
G = (V,E) undirected graph.
AGRV,E node-edge incidence matrix of G
5
1
2 e
4
4
e3
e2
1
e1
3
2
3
4
5
e5
e1
1
0
1
0
0
e2
1
0
0
1
0
e3
1
0
0
0
1
e4
0
1
0
1
0
e5
0
1
0
0
1
column edge
row incident star
G = (V,E) is bipartite if there is a partition I1 ,I2 of V such that
every edge has one endpoint in I1 and the other endpoint in I2
Proposition 2.10:
AG is TU if and only if G is bipartite.
Proof of proposition 2.12
Proof. If
e5
2 e
4
4
e3
e2
1
e1
3
Let I V be a subset of rows of AG.
Let I’1 = I I1 and I’2 = I I2
We show that:
a a
ij
iI1'
ij
1 for i 1,,| E | .
iI2'
I’1
+
Let ae be the sum associated to e = (u,v)
Then ae = 0 if u I’1 and v I’2
ae = 1 if u I’1 and v I
ae = -1 if u I and v I’2
I’2
=
5
1
2
3
4
5
e1
1
0
1
0
0
e2
1
0
0
1
0
e3
1
0
0
0
1
e4
0
1
0
1
0
e5
0
1
0
0
1
1 0 0 -1 -1
Proof of proposition 2.12
Proof. Only If
If G non bipartite G contains an odd cycle C (show it!)
AC submatrix of AG associated to nodes and edges of C
3
1 1 1 0 0 0
2
4
1
5
2
3
4
5
0
0
0
1
1 1 0 0
0 1 1 0
0 0 1 1
0 0 0 1
AC circulant matrix
(after reordering)
One can easily show that : |det AC| = 2
Some interesting dual pairs
Corollary
Let G be a bipartite graph AG its incidence matrix. Then
each of the dual problems in the dual optimal relation:
max{1Tx: AGx 1} = min{yT1: yTAG 1, y0}
have integer optimal solution
The above linear programs have a nice combinatorial interpretation
The primal corresponds with finding a maximum cardinality matching
The dual corresponds with finding a minimum cardinality node cover
The cardinalities of such sets coincide! König-Egervary theorem
Matching
G = (V,E) undirected graph.
Matching M E: subset of edges meeting each node at most once
x{0,1}E incidence vector of matching in G x((v)) 1 for all v V
e5
5
2 e
4
4
e3
e2
1
e1
3
x1 + x2 + x3 1
(1)
x4 + x5 1
(2)
x1 1
(3)
x2 + x4 1
(4)
x3 + x5 1
(5)
AGx 1
G bipartite AG is TU
=
Maximum Cardinality Matching = max{1Tx: AGx 1, x {0,1}E}
max{1Tx: AGx 1, x 0}
LP!
Node Cover
G = (V,E) undirected graph.
Node cover C: subset of nodes meeting each edge at least once
y{0,1}V incidence vector of node cover in G yu + yv 1 for all uv E
e5
5
2 e
4
4
e3
e2
1
e1
3
y1 + y3 1
e1
y1 + y4 1
e2
y1 + y5 1
e3
y2 + y4 1
e4
y2 + y5 1
e5
yTAG 1
G bipartite AG is TU
=
Minimum Cardinality Node Cover = min{yT1: yTAG 1, y {0,1}V }
min{yT1: yTAG 1, y0}
LP!
Some interesting dual pairs
Corollary
Let G be a bipartite graph AG its incidence matrix. Then
each dual problems in the dual optimal relation:
max{1T y : AGT y 1, y 0} min{ xT 1: xT AGT 1T , x 0}
have integer optimal solution
The primal is the maximum cardinality node packing (stable set)
The dual is the minimum cardinality edge cover.
The cardinalities of such sets coincide in bipartite graphs (Konig’s
covering theorem).
Edge Cover
G = (V,E) undirected graph.
Edge Cover C E: subset of edges meeting each node at least once
x{0,1}E incidence vector of edge cover in G x((v)) 1 for all v V
e5
5
2 e
4
4
e3
e2
1
e1
3
x1 + x2 + x3 1
(1)
x4 + x5 1
(2)
x1 1
(3)
x2 + x4 1
(4)
x3 + x5 1
(5)
xT AGT 1T
G bipartite AG is TU
=
Minimum Cardinality Edge Cover = min{ xT 1: xT AGT 1T , x {0,1}E }
min{ xT 1: xT AGT 1T , x 0}
LP!
Node Packing
G = (V,E) undirected graph.
Node packing S: subset of nodes meeting each edge at most once
y{0,1}V incidence vector node packing in G yu + yv 1 for all uv E
e5
5
2 e
4
4
e3
e2
1
e1
3
y1 + y3 1
e1
y1 + y4 1
e2
y1 + y5 1
e3
y2 + y4 1
e4
y2 + y5 1
e5
AGT y 1
G bipartite AG is TU
=
Maximum Cardinality Node Packing = max{1T y : AGT y 1, y {0,1}V }
max{1T y : AGT y 1, y 0} LP!
Node-arc incidence matrices
D = (V,E) directed graph.
AGRV,E node-edge incidence matrix of G
e1
s
1
e2
e5
e3
e6
3
e7
2
e1 e2 e3 e4 e5 e6
e4
t
e7
s 1 1 1 0 0 0 0
2 1 0 0
1 1 0 0
1 1 0
3 0 1 0 0
4 0 0 1 0 0
1 1
t 0 0 0 1 0 0 1
Proposition 2.12:
AD is TU for any directed graph D.
column arc
row node star
© Copyright 2026 Paperzz