# SCIP

Solving Constraint Integer Programs

## Detailed Description

file reader for decompositions in the constraint based dec-file format.

This reader allows to read a file containing decompositions for constraints of the current original problem. The standard line ending for this format is '.dec'. The content of the file should obey the following format

\\ place for comments and statistics
NBLOCKS
2
BLOCK 0
consA
consB
[...]
BLOCK 1
consC
consD
[...]
MASTERCONSS


A block in a problem decomposition is a set of constraints that are independent from all other blocks after removing the special blocks of linking constraints denoted as MASTERCONSS.

Imagine the following example, which involves seven variables and the five constraints from the file above. The asterisks (*) indicate that the variable affects the feasibility of the constraint. In the special case of a linear optimization problem, the asterisks correspond to the nonzero entries of the constraint matrix.

                x1  x2  x3  x4  x5  x6  x7
consA     *       *                 \ BLOCK 0
consB     *   *                     /
consC                 *   *         \ BLOCK 1
consD                     *   *     /
linkingconss     *   *   *   *   *   *   * > MASTERCONSS


The nonzero pattern has been chosen in a way that after the removal of the last constraint 'linkingcons', the remaining problem consists of two independent parts, namely the blocks '0' and '1'.

The corresponding variable labels are inferred from the constraint labels. A variable is assigned the label

• of its unique block, if it only occurs in exactly 1 named block, and probably in MASTERCONSS.
• the special label of a linking variable if it occurs only in the master constraints or in 2 or even more named blocks.
Note
A trivial decomposition is to assign all constraints of a problem to the MASTERCONSS.
The number of blocks is the number of named blocks: a trivial decomposition should have 0 blocks

#include "scip/def.h"
#include "scip/type_retcode.h"
#include "scip/type_scip.h"