0-1 Programmazione lineare: calcolo della formulazione ottimale


14

Considera lo spazio dimensionale { 0 , 1 } n e lascia che c sia un vincolo lineare della forma a 1 x 1 + a 2 x 2 + a 3 x 3 + . . . + a n - 1 x n - 1 + a n x nk , dove a iR , x in{0,1}nca1x1+a2x2+a3x3+ ... +an1xn1+anxnkaiR e k R .xi{0,1}kR

Chiaramente, ha l'effetto di dividere { 0 , 1 } n in due sottoinsiemi S c e S ¬ c . S c contiene tutti e solo quei punti che soddisfano c , mentre S ¬ c contiene tutti e solo quei punti che falsificano c .c{0,1}nScS¬cSccS¬cc

Supponiamo che . Ora, sia O un sottoinsieme di S c tale che tutte e tre le seguenti affermazioni valgano:|Sc|nOSc

  1. contiene esattamente n punti.On
  2. Tali punti sono linearmente indipendenti.n
  3. Tali punti sono quelli a distanza minima dall'iperpiano rappresentato da c . Più precisamente, sia d ( x , c ) la distanza di un punto x { 0 , 1 } n dall'iperpiano c . Quindi, B S c tale che B soddisfa 1 e 2 è il caso che x B d ( x , c ) x O dncd(x,c)x{0,1}ncBScB . In altre parole O è, tra tutti i sottoinsiemi di S c che soddisfano entrambe le condizioni 1 e 2, quello che minimizza la somma delle distanze dei suoi punti dall'iperpiano c .xBd(x,c)xOd(x,c)OScc

Domande

  1. Dato , è possibile calcolare O in modo efficiente? cO
  2. Qual è l'algoritmo più noto per calcolarlo?

 

Esempio con n=3

Esempio con n = 3

,S¬c={(1,0,1)} .O={(0,0,1),(1,1,1),(1,0,0)}

 

Aggiornamento 05/12/2012

Motivazione

La motivazione è che l'utilizzo dovrebbe essere possibile determinare il vincolo ottimale c * , come dovrebbe essere l'iperpiano definita dai n punti in O . OcnO

Il vincolo ottimale è quello che porta al politipo ottimale P .cP

Il polytope ottimale è quello i cui vertici sono tutti e solo i vertici interi del polytope iniziale P (un vertice intero è un vertice le cui coordinate sono tutte intere).PP

Formulazione ottimale

Il processo può essere ripetuto per ogni vincolo di un'istanza I di 0-1 L P , sostituendo ogni volta c con il corrispondente vincolo ottimale c . Alla fine, ciò porterà al politipo P ottimalecLPIcc di I . Quindi, poiché i vertici di P sono tutti e solo i vertici interi del politopo iniziale P di I , qualsiasi algoritmo per L P può essere utilizzato per calcolare la soluzione intera ottimale. So che essere in grado di calcolare P ∗ in modo efficiente implicherebbe PPIPPILPP , tuttavia la seguente domanda aggiuntiva è ancora valida:P=NP

Domanda aggiuntiva

C'è qualche lavoro precedente in questo senso? Qualcuno ha già studiato il compito dell'informatica, dato un polytope , il suo corrispondente polytope ottimale P ? Qual è l'algoritmo più noto per farlo?PP


Questo sembra essere NP-difficile da fare esattamente, mediante riduzione dalla somma del sottoinsieme. Dati interi binari , per verificare se esiste un sottoinsieme che somma a s , possiamo verificare se esiste un punto sull'iperpiano v 1 x 1 + + v 1 x n = s . Sei interessato alle approssimazioni? v1,,vnsv1x1++v1xn=s
Colin McQuillan,

@ColinMcQuillan: la domanda era per una soluzione esatta, tuttavia sono sicuramente interessato anche alle approssimazioni. Perché non trasformi il tuo commento in una risposta?
Giorgio Camerani,

@ColinMcQuillan: Inoltre, il tuo iperpiano è definito usando un'uguaglianza, mentre il mio è definito usando una disuguaglianza. Sei sicuro che questo non faccia alcuna differenza in termini di durezza? Non l'ho ancora verificato, quindi sto solo chiedendo.
Giorgio Camerani,

Sono un po 'confuso riguardo a tutte le restrizioni su O . Se stai cercando informazioni sullo scafo convesso di ci sono molti risultati nella letteratura di ricerca operativa sul politopo dello zaino 0-1. In termini di formulazioni approssimative, vedi questo . Sc
Austin Buchanan,

Risposte:


6

Questo sembra essere NP-difficile da fare esattamente, mediante riduzione dalla somma dei sottoinsiemi. Supponiamo di avere una procedura efficiente per calcolare . Dati interi positivi v 1O codificati in binario, desideriamo verificare se esiste un sottoinsieme che somma a s . Preprocessa eliminando qualsiasi numero intero maggiore di s .v1,,vnss

Chiamare la procedura per ottenere un piccolo set di punti soddisfacenti v 1 x 1 + + v 1 x ns , soddisfacendo le condizioni di minimalità (la preelaborazione assicura | S c |n ). Questo set conterrà sicuramente un punto sull'iperpiano v 1 x 1 + + v 1 x n = s se ce n'è uno.Ov1x1++v1xns|Sc|nv1x1++v1xn=s


Forse sto trascurando qualcosa di macroscopico qui, ma ho 2 domande: 1) Quando dici "Dati interi binari " cosa intendi con binario ? appartengono a R . Forse intendi codificato in binario? O forse volevi dire positivo? 2) Perché buttare via tutti gli interi più grandi di s ? Possono contribuire alla soluzione. Ad esempio: v 1 = - 3 , v 2 = 7 , v 3 = - 5 ,v1,...,vnRs se butti via v 2v1=3,v2=7,v3=5,s=2v2 perdi l'unica soluzione . {v2,v3}
Giorgio Camerani,

2
Penso che quello che Colin significa che , se i coefficienti di vincolo sono numeri razionali, nella loro consueta rappresentazione binaria, allora i tuoi appare problema per NP-hard. (Mescolare numeri reali e durezza NP è sempre difficile.)ai
Jeffε

1
@GiorgioCamerani: avevo bisogno di dire positivo - ho aggiornato la mia risposta.
Colin McQuillan,

1

Mi sembra che tu stia cercando di arrivare allo scafo convesso dell'IP - in sostanza questo è ciò che gli algoritmi di taglio cercano di ottenere. Sebbene questi metodi attraenti siano insoddisfacenti nella pratica.

C'è tutta la teoria sulla generazione di disuguaglianze valide. Un buon punto di partenza sarebbe la teoria del libro di Shrijver sulla programmazione dei numeri interi.

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.