Quali programmi lineari interi sono facili?


13

Durante il tentativo di risolvere un problema, ho finito per esprimere parte di esso come il seguente programma lineare intero. Qui sono tutti numeri interi positivi indicati come parte dell'input. Un sottoinsieme specificato delle variabili è impostato su zero e il resto può assumere valori integrali positivi:x i j,m,n1,n2,...,n,c1,c2,...,cm,wXioj

Minimizzare

Σj=1mcjΣio=1Xioj

Soggetto a:

Σj=1mXioj=nioio

Σio=1Xiojwj

Vorrei sapere se questo programma intero è risolvibile in tempo polinomiale; il mio problema originale è risolto se lo è, e devo provare in qualche altro modo se non lo è. Quindi la mia domanda è:

Come faccio a capire se un certo programma lineare intero può essere risolto in tempo polinomiale? Quali programmi lineari interi sono noti per essere facili? In particolare, il programma sopra può essere risolto in tempo polinomiale? Potresti indicarmi alcuni riferimenti su questo?

Risposte:


16

È un caso speciale del problema del trasporto (o del problema del flusso di costo minimo) e quindi può essere risolto in tempi polinomiali. La matrice dei coefficienti è totalmente unimodulare poiché è la matrice di incidenza di un grafico bipartito.

I seguenti articoli di Wikipedia potrebbero essere utili.


1
@Yoshio: Grazie, questo risponde alla mia specifica istanza del problema (dopo averlo verificato da solo). Conosci condizioni diverse dalla totale unimodularità che garantiscono una soluzione a tempo polinomiale?
gphilip,

2
@gphilip: vorrei riassumere queste domande con il termine "integralità dei poliedri" e la letteratura su questo argomento è enorme. Il libro "Combinatorial Optimization: Packing and Covering" di Gerard Cornuejols (pubblicato nel 2001) descrive diversi risultati in questo senso.
Yoshio Okamoto,

@Yoshio: Potresti dirmi perché pensi che la matrice dei coefficienti sia la matrice dell'incidenza di un grafico bipartito? Perdonate la mia ignoranza, ma per parlare di una matrice di coefficienti, non dobbiamo prima convertire tutti i vincoli nella forma standard ( )? Una volta fatto ciò, la matrice avrà -1 voci e quindi non corrisponderà alla definizione di una matrice di incidenza (AFAIK). Oppure è possibile parlare della matrice dei coefficienti senza prima convertire i vincoli nella forma standard? Axb
gphilip,

1
@gphilip: mi scusi. Ho fatto una scorciatoia implicita e stavo parlando della matrice dei coefficienti senza convertirmi nella forma standard. Ho usato le seguenti scorciatoie. (1) Se è totalmente unimodulare (TU, in breve), allora è anche TU, il che significa che non dobbiamo preoccuparci della direzione delle disuguaglianze. (2) Se è TU, allora anche è TU, il che significa che non dobbiamo preoccuparci dei vincoli di uguaglianza. (3) Ogni sotto-matrice di una matrice TU è TU. L'applicazione di queste regole alla matrice di incidenza di un grafico bipartito dovrebbe dimostrare la proprietà del modulo standard. AAA[AA]
Yoshio Okamoto,

1
Vorrei modificare le mie regole di scelta rapida come segue. (1) La duplicazione di una riga mantiene l'unimodularità totale. (2) L'inversione del segno di una riga mantiene l'unimodularità totale. Dovrebbero fare il lavoro.
Yoshio Okamoto,

8

In generale, è difficile da dire. Ma una condizione sufficiente è che la matrice del vincolo sia totalmente unimodulare e il lato destro sia sempre intero (in questo caso il lato destro è intero, ma è comunque necessario verificare l'unimodularità)

Dovresti dare un'occhiata a questo: http://en.wikipedia.org/wiki/Linear_program#Integer_unknowns


Stavo pensando alla tua matrice e sembra totalmente unimodulare.
Vinicius dos Santos,

@Vinicius: Potresti dirmi perché la matrice ti sembra del tutto assimilabile? Non sono riuscito a capirlo, nonostante il commento di Yoshio (vedi la mia risposta lì).
gphilip,

@gphilip: A en.wikipedia.org/wiki/Unimodular_matrix nella sezione "Matrici totalmente totalmente unimodulari", la prima voce elenca 4 condizioni sufficienti per una matrice essere unimodulare. Penso che queste condizioni, insieme alle scorciatoie commentate da Yoshio, siano sufficienti per dimostrare che il problema può essere risolto in tempi polinomiali.
Vinicius dos Santos,

@gphilip: qual è la motivazione di questo programma lineare?
Vinicius dos Santos,

@Vinicius: stiamo cercando di risolvere un problema formulato in termini di modifica di una matrice di input in un certo modo per ottenere un'altra matrice con alcune buone proprietà. Questo LP è emerso da un sotto-problema durante il processo.
gphilip,

2

Un programma intero con solo uguaglianze può essere risolto con un programma lineare.


questo sembrava importante per se stesso.
T ....

2
Non lo definirei un programma intero. È un sistema di equazioni lineari sugli interi, risolvibile in modo efficiente calcolando la forma normale di Hermite.
Sasho Nikolov,

2
@SashoNikolov un caso degenerato ma sicuramente valido.
T ....

perché voto negativo?
T ....
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.