Documentation

DescriptiveComplexity.Problems.ZeroOneIP.Defs

0-1 integer programming: definition #

0-1 INTEGER PROGRAMMING (Karp 1972): given a matrix C and a vector d, is there a 0-1 vector x with C x = d? It is the multi-row form of Knapsack, and like it is written in binary (DescriptiveComplexity.Numbers.BinRel), since under the unary encoding the problem is solvable in polynomial time by dynamic programming and is therefore not NP-hard at all.

The vocabulary #

FirstOrder.Language.zeroOneIP carries

Entries are natural numbers: Karp states the problem over the integers, and the restriction formalized here is the one his reduction produces – a special case, so its NP-hardness gives his problem's a fortiori, while membership in NP for signed entries would need the two sides of each equation weighed separately and is not claimed.

@[reducible, inline]

rhs r p: the right-hand side of row r has bit 1 at p.

Equations
Instances For
    Dependency graph

    The relation symbols of the language.

    Instances For
      Dependency graph
      @[reducible, inline]

      row r: r is a row, that is, an equation.

      Equations
      Instances For
        Dependency graph
        def FirstOrder.Language.instDecidableEqZeroOneIPRel.decEq {a✝ : } (x✝ x✝¹ : zeroOneIPRel a✝) :
        Decidable (x✝ = x✝¹)
        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          Dependency graph
          @[reducible, inline]

          col j: j is a column, that is, a 0-1 variable.

          Equations
          Instances For
            Dependency graph
            Dependency graph
            Dependency graph

            The relational language of 0-1 integer programs: columns, rows and bit positions, the bits of each entry and of each right-hand side, and a linear order.

            Equations
            Instances For
              Dependency graph
              @[reducible, inline]

              le a b: the linear order carrying the place values.

              Equations
              Instances For
                Dependency graph
                @[reducible, inline]

                coef r j p: the entry of row r in column j has bit 1 at p.

                Equations
                Instances For
                  Dependency graph
                  Dependency graph

                  The shorthands of the vocabulary #

                  coef r j p: the entry of row r in column j has bit 1 at p.

                  Equations
                  Instances For
                    Dependency graph

                    rhs r p: the right-hand side of row r has bit 1 at p.

                    Equations
                    Instances For
                      Dependency graph
                      Dependency graph

                      le a b: the linear order carrying the place values.

                      Equations
                      Instances For
                        Dependency graph
                        Dependency graph
                        Dependency graph
                        Dependency graph
                        Dependency graph

                        The problem #

                        A 0-1 integer program is a yes-instance when its order is a linear order and some set of columns – the variables set to 1 – makes every equation hold.

                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          Dependency graph
                          Dependency graph

                          0-1 INTEGER PROGRAMMING, as a problem on 0-1 integer programs: is there a set of columns whose entries sum, row by row, exactly to the right-hand sides? The entries are written in binary, which is what makes the problem NP-hard rather than polynomial-time.

                          Equations
                          Instances For
                            Dependency graph