Welche ganzzahligen linearen Programme sind einfach?

13

Bei dem Versuch, ein Problem zu lösen, habe ich einen Teil davon als das folgende ganzzahlige lineare Programm ausgedrückt. Hier sind alle positive ganze Zahlen, die als gegeben sind Teil der Eingabe. Eine angegebene Teilmenge der Variablen wird auf Null gesetzt, und der Rest kann positive Integralwerte annehmen:x i j,m,n1,n2,,n,c1,c2,,cm,wxij

Minimieren

j=1mcji=1xij

Vorbehaltlich:

j=1mxij=nii

i=1xijwj

Ich würde gerne wissen, ob dieses ganzzahlige Programm in Polynomialzeit lösbar ist. Wenn ja, ist mein ursprüngliches Problem gelöst, und wenn nicht, muss ich es auf andere Weise versuchen. Meine Frage lautet also:

Wie finde ich heraus, ob ein bestimmtes ganzzahliges lineares Programm in Polynomzeit gelöst werden kann? Welche ganzzahligen linearen Programme sind bekanntermaßen einfach? Kann das obige Programm insbesondere in Polynomzeit gelöst werden? Könnten Sie mich auf einige Referenzen hinweisen?

gphilip
quelle

Antworten:

16

Dies ist ein Sonderfall des Transportproblems (oder des Minimalkostenflussproblems) und kann daher in Polynomzeit gelöst werden. Die Koeffizientenmatrix ist völlig unimodular, da es sich um die Inzidenzmatrix eines zweigliedrigen Graphen handelt.

Die folgenden Wikipedia-Artikel könnten nützlich sein.

Yoshio Okamoto
quelle
1
@Yoshio: Danke, das beantwortet meine spezielle Probleminstanz (sobald ich es für mich selbst überprüft habe). Kennen Sie andere Bedingungen als die totale Unimodularität, die eine Lösung in Polynomzeit garantieren?
Gphilip
2
@gphilip: Ich würde diese Fragen mit dem Begriff "Integralität von Polyedern" zusammenfassen und die Literatur zu diesem Thema ist riesig. Das 2001 erschienene Buch "Combinatorial Optimization: Packing and Covering" von Gerard Cornuejols beschreibt mehrere Ergebnisse in diesem Sinne.
Yoshio Okamoto
@Yoshio: Kannst du mir sagen, warum du denkst, dass die Koeffizientenmatrix die Inzidenzmatrix eines zweigliedrigen Graphen ist? Entschuldigen Sie meine Unwissenheit, aber um von einer Koeffizientenmatrix zu sprechen, müssen wir nicht zuerst alle Bedingungen in die Standardform ( ) konvertieren ? Sobald wir das tun, wird die Matrix -1 Einträge haben, und dann entspricht es nicht der Definition einer Inzidenzmatrix (AFAIK). Oder kann man von der Koeffizientenmatrix sprechen, ohne vorher die Bedingungen in die Standardform umzuwandeln? EINxb
gphilip
1
@gphilip: Entschuldigung. Ich machte eine implizite Abkürzung und sprach von der Koeffizientenmatrix, ohne in die Standardform zu konvertieren. Ich habe die folgenden Abkürzungen verwendet. (1) Wenn völlig unimodular ist (kurz TU), dann ist - A auch TU, was bedeutet, dass wir uns nicht um die Richtung von Ungleichungen kümmern müssen. (2) Wenn A TU ist, dann ist [ A - A ] auch TU, was bedeutet, dass wir uns nicht um Gleichheitsbeschränkungen kümmern müssen. (3) Jede Untermatrix einer TU-Matrix ist TU. Das Anwenden dieser Regeln auf die Inzidenzmatrix eines zweigliedrigen Diagramms sollte die Eigenschaft für das Standardformular beweisen. EIN-EINEIN[EIN-EIN]
Yoshio Okamoto
1
Lassen Sie mich meine Shortcut-Regeln wie folgt ändern. (1) Das Duplizieren einer Zeile erhält die totale Unimodularität aufrecht. (2) Die Umkehrung des Vorzeichens einer Reihe erhält die totale Unimodularität aufrecht. Sie sollten den Job machen.
Yoshio Okamoto
8

Im Allgemeinen ist es schwer zu sagen. Aber eine ausreichende Bedingung ist, dass Ihre Beschränkungsmatrix völlig unimodular ist und die rechte Seite immer eine Ganzzahl ist (in diesem Fall ist die rechte Seite eine Ganzzahl, aber Sie müssen immer noch die Unimodularität prüfen).

Sie sollten sich dies ansehen: http://en.wikipedia.org/wiki/Linear_program#Integer_unknowns

Vinicius dos Santos
quelle
Ich habe über Ihre Matrix nachgedacht und sie sieht völlig unimodular aus.
Vinicius dos Santos
@Vinicius: Kannst du mir sagen, warum die Matrix für dich völlig unimodular aussieht? Ich konnte das trotz Yoshios Kommentar nicht herausfinden (siehe meine Antwort dort).
gphilip
@gphilip: Unter en.wikipedia.org/wiki/Unimodular_matrix im Abschnitt "Allgemeine völlig unimodulare Matrizen" werden in der ersten Liste 4 ausreichende Bedingungen aufgeführt, damit eine Matrix unimodular ist. Ich denke, dass diese Bedingungen zusammen mit den von Yoshio kommentierten Abkürzungen ausreichen, um zu zeigen, dass das Problem in polynomialer Zeit gelöst werden kann.
Vinicius dos Santos
@gphilip: Was ist die Motivation für dieses lineare Programm?
Vinicius dos Santos
@Vinicius: Wir versuchen, ein Problem zu lösen, das darin besteht, eine Eingabematrix auf eine bestimmte Weise zu modifizieren, um eine andere Matrix mit einigen guten Eigenschaften zu erhalten. Diese LP ist aus einem Unterproblem während des Prozesses hervorgegangen.
Gphilip
2

Ein ganzzahliges Programm mit nur Gleichheiten kann durch ein lineares Programm gelöst werden.

T ....
quelle
das schien um seiner selbst willen wichtig zu sein.
T ....
2
Ich würde das kein Integer-Programm nennen. Es ist ein System linearer Gleichungen über die ganzen Zahlen, das durch Berechnung der Hermite-Normalform effizient lösbar ist.
Sasho Nikolov
2
@SashoNikolov ein entarteter Fall, aber definitiv ein gültiger.
T ....
warum negative Stimme?
T ....