Soluzioni di punti medi per programmi lineari


9

Esiste un programma lineare per il quale non voglio semplicemente una soluzione, ma una soluzione il più centrale possibile sulla faccia del politopo che assume il valore minimo.

A priori, prevediamo che la faccia minimizzante dovrebbe essere di alta dimensione per vari motivi, incluso il fatto che la funzione obiettivo da minimizzare è il massimo di molti dei vincoli:

Riduci a icona ϵ soggetto a con linear e per tutti e .f i x i > 0 i i x i = 1fi(x¯)ϵ<0fixi>0iixi=1

Naturalmente non avremmo mai ottenuto alcuna proprietà simile alla centralità dall'algoritmo simplex. Qualcuno dei soliti algoritmi di punti interni mostra tali proprietà? Qualcuno garantisce addirittura che eviteranno vertici o facce di dimensioni inferiori quando possibile?


In effetti, probabilmente mi accontento di un semplice programma quadratico che trova il punto medio dell'intero politipo poiché la centralità conta più della minimalità, solo vagamente curioso se altri algoritmi di programmazione lineare offrano proprietà pertinenti.

Aggiornamento: ho ridotto il problema di base a un semplice problema di minimizzazione vincolata risolvibile con i moltiplicatori di Lagrange, ma la domanda sopra rimane comunque interessante.


2
non esattamente la tua domanda ma: calcolare il centroide è # P-difficile; non sono sicuro di quale sia la migliore approssimazione, ma per alcune applicazioni è sufficiente mettere il politopo in posizione isotropica e prendere la media polinomiale di molti campioni uniformi dal politopato (trasformato). vedi queste note, Lemma 15 per esempio: cc.gatech.edu/~vempala/acg/notes.pdf
Nikolov

è più una domanda teorica o più pratica? forse sarebbe possibile generare tutti i vertici della faccia ottimale e quindi usarne una combinazione convessa adatta.
anonimo

Risposte:


4

Ho alcune osservazioni troppo lunghe per i commenti. Ecco un riassunto

  1. Qualsiasi algoritmo per risolvere esattamente il tuo problema può essere utilizzato per risolvere esattamente i programmi lineari (cioè "forte programmazione lineare", che viene utilizzato nella soluzione di Sariel e attualmente non ha un algoritmo temporale polinomiale).

  2. Il follow-up naturale è se le soluzioni approssimative (ad es. "Programmazione lineare debole") possono fornire una soluzione. Mentre la risposta è sì, sembra che la condizione di arresto per questa procedura richieda quantità che, per quanto ne sappia, non possono essere calcolate in tempo polinomiale. (vale a dire, l'algoritmo trova qualcosa di buono, ma che certifica questo è difficile.) Il mio suggerimento principale è quello di fare una definizione significativa di una " soluzione -optimal" per il vostro problema, in tal caso, questo approccio è trattabile. (Questa strategia effettivamente elimina le piccole facce del poliedro.)ϵ

In generale, mentre pensavo alla tua attuale affermazione del tuo problema, ho continuato a imbattermi in considerazioni sull'efficienza. Ma c'è una ragionevole intuizione in questo: gli oggetti che lanciamo - vertici, facce, ecc. - sono discreti ed esponenzialmente abbondanti.

(1.) Supponiamo di avere un algoritmo che risolva esattamente il tuo problema. Si noti che qualsiasi punto esposto di qualsiasi faccia contenente il punto medio fornito sarà una soluzione esatta al programma lineare originale. Quindi procedere come segue. Aggiungi un nuovo vincolo lineare dicendo che il valore obiettivo originale deve essere uguale a quello ottimale (che ora conosciamo) e imposta un nuovo obiettivo dicendo che massimizza la prima coordinata della soluzione. Ripeti questa procedura una volta per ogni dimensione, ogni volta aggiungendo un vincolo e scegliendo una nuova coordinata per massimizzare. Questo processo ridurrà ogni volta la dimensione della soluzione; necessariamente, al termine del processo, abbiamo un set affine a 0 dimensioni, che significa un singolo punto. Quindi con O(d)iterazioni dell'algoritmo di risoluzione dei punti medi (e aumentando la descrizione del problema solo di una quantità polinomiale in ogni volta), viene risolta una forte programmazione lineare. Ciò dimostra che, sebbene la soluzione di Sariel richieda una forte programmazione lineare, una soluzione esatta alla tua domanda non può evitarlo. ( Modifica : nota che la mia prova suppone un poliedro compatto (un politopo) come input; altrimenti deve lavorare un po 'più difficile per trovare i vertici.)d

(2.) Ecco uno schema iterativo, che utilizza un risolutore convesso in piena regola in ogni iterazione, le cui soluzioni convergeranno in una nozione lieve di soluzione del punto medio. Scegli una sequenza positiva ma decrescente di parametri di penalità ; è ragionevole farli scendere geometricamente, cioè λ i = 2 - i . Ora, per ogni i , minimizzare approssimativamente la funzione convessa{λi}i=10λi=2ii

c,xλij=1mln(aj,xb),

c,xjmλiτλidiminuisce, l'obiettivo lineare originale finirà per dominare alcune barriere schizzinose che ti stavano trattenendo dalla faccia appropriata, ma non influenzeranno le barriere che ti impediscono di altri confini, in particolare quelli della faccia bersaglio.

λλ

Tutte le condizioni di arresto che ho potuto trovare hanno avuto questo tipo di difficoltà computazionali. (Inoltre, molti potrebbero essere nuovamente utilizzati per trasformare questo in un potente risolutore di programmazione lineare.)

ϵλτϵ

(Alcuni commenti finali.) Sembra che la nozione di "punto medio" sia cruciale; Il commento di Sasho sottolinea che il centroide (centro di massa?) È un problema estremamente difficile, mentre trovare, diciamo, la più grande palla inscritta è facile. Le barriere logaritmiche che ho suggerito sopra in generale non saranno coerenti con nessuna di queste nozioni di punto medio. D'altra parte, per le barriere e la palla, puoi derivare un limite inferiore sulla distanza dal tuo centroide al limite relativo della faccia; forse questo ti è più utile?

Infine, dalla tua descrizione, credo che intendevi che la "faccia di destinazione" avesse una dimensione il più alta possibile? Questo è ben definito, tuttavia ci sono anche facce di soluzione per tutte le possibili dimensioni più piccole. Ad ogni modo, sia l'approccio di Sariel che quello di barriera sopra funzioneranno con la faccia della più grande dimensione.


ifi(x)2+jxj2jxj=1xϵϵminimizzato per aiutare i vincoli ad evolversi più velocemente. Grazie comunque! :)
Jeff Burdges,

x

Non capisco il punto sulla "forte programmazione lineare" e non ho mai sentito questa espressione prima. non si sa come risolvere un LP in un forte tempo polinomiale. ma la risoluzione di un LP in un polinomio temporale nella descrizione dell'input (ovvero un tempo polinomiale debole) è ovviamente ben nota. se l'OP vuole un algoritmo in esecuzione in un tempo polinomiale debole, allora la soluzione di Sariel + un algoritmo di punto interno polifunzionale farà il lavoro, no?
Sasho Nikolov,

ττ

@SashoNikolov, ora che ci penso, la stessa nozione di ottimalità (con gli stessi problemi) può essere elaborata nella soluzione di Sariel, ad esempio trattando i vincoli che sono entro una piccola tolleranza per essere effettivamente stretti, e ottimizzando questo valore in modo appropriato. Stasera aggiornerò la mia soluzione.
matus,

6

Per prima cosa trova la soluzione ottimale, quindi aggiungi il vincolo lineare secondo cui la soluzione deve avere un valore pari all'ottimale che desideri e riafferma il tuo LP come quello che cerca la palla più grande all'interno della regione possibile. Risolvi questo LP modificato e hai quello che vuoi.

Perché il secondo problema può essere risolto usando LP è un bel problema standard in Geometria computazionale ...

==============

hcx=αmincxPPh

vvvα

Quindi, per l'estate: (A) risolvere LP per scoprire il valore ottimale. (B) Calcola il sottospazio dimensionale più piccolo contenente la soluzione fattibile con il valore ottimale. (C) Riscrivi l'LP originale in questa sottospazio affine (ovvero, eliminando tutte le dimensioni irrilevanti), aggiungi una variabile e trasformalo in un LP per trovare la sfera più grande all'interno di questo politopo.


Cosa si intende per "palla più grande" in un poliedro non a dimensione intera?
Kristoffer Arnsfelt Hansen,

@KristofferArnsfeltHansen il poliedro è sicuramente un insieme convesso che giace in un sottospazio affine di qualche dimensione.
Sasho Nikolov,

affinché ciò funzioni, dovresti specificare un vincolo che ti limiti alle facce che hai trovato nel primo passaggio. Dovresti anche sapere che la soluzione era costante su questa faccia (presumibilmente la lentezza complementare lo rivelerebbe)
Suresh Venkat

Esiste un modo per eseguire i passaggi dopo l'ottimizzazione iniziale in tempo polinomiale? Come scritto, sembra richiedere la considerazione di tutti i vertici nella faccia di destinazione, di cui possono esserci molti esponenzialmente.
matus,

1
dv
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.