# Approximating Sparse Covering Integer Programs Online

A *covering integer program* (CIP) is a mathematical program of the form:

where A∈Rm×n≥0,c,u∈\ensuremathRn≥0. In the online setting, the constraints (i.e., the rows of the constraint matrix *A*) arrive over time, and the algorithm can only increase the coordinates of **x** to maintain feasibility. As an intermediate step, we consider solving the*covering linear program* (CLP) online, where the requirement **x** ∈ ℤ *n* is replaced by **x** ∈ ℝ *n* .

Our main results are (a) an *O*(log*k*)-competitive online algorithm for solving the CLP, and (b) an *O*(log*k* ·logℓ)-competitive randomized online algorithm for solving the CIP. Here *k* ≤ *n* and ℓ ≤ *m* respectively denote the maximum number of non-zero entries in any row and column of the constraint matrix *A*. By a result of Feige and Korman, this is the best possible for polynomial-time online algorithms, even in the special case of set cover (where *A* ∈ {0,1} *m* ×*n*and *c*, *u* ∈ {0,1} *n* ).

The novel ingredient of our approach is to allow the dual variables to increase and decrease throughout the course of the algorithm. We show that the previous approaches, which either only raise dual variables, or lower duals only within a guess-and-double framework, cannot give a performance better than *O*(log*n*), even when each constraint only has a single variable (i.e., *k* = 1).