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.

Relation symbols of 0-1 integer programs.

Instances For
    Dependency graph
    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

      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
        Dependency graph
        Dependency graph
        Dependency graph
        Dependency graph
        Dependency graph
        @[reducible, inline]

        The right-hand side symbol.

        Equations
        Instances For
          Dependency graph
          Dependency graph

          The shorthands of the vocabulary #

          Dependency graph
          Dependency graph
          Dependency graph
          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