Massimizzare una funzione convessa (minimizzare una funzione concava) con un vincolo lineare


10

Il problema è

maxf(x) subject to Ax=b

dove f(x)=i=1N1+xi4(i=1Nxi2)2 ,
x=[x1,x2,...,xN]TRN×1 e
ARM×N

Possiamo vedere che f(.) È nella forma di 1+y2 ed è una funzione convessa.
Si può anche dimostrare che f (.) È limitato in [2,2] .

Questo è un problema di minimizzazione convessa con un vincolo lineare.

Quali sono gli algoritmi standard utilizzati per risolvere questo tipo di problemi?

Utilizzando la natura specifica del problema, è possibile risolverlo utilizzando un software / pacchetto di ottimizzazione standard?


Hai provato a usare i moltiplicatori di Lagrange per vedere se questo lo trasforma in qualcosa di più trattabile?
Nathaniel

Risposte:


7

Puoi trarre vantaggio dalla struttura del problema, anche se non conosco nessun risolutore preconfezionato che lo farà per te.

In sostanza, quello che stai cercando è minimizzare una funzione concava su un politopo convesso (o poliedro convesso). Una rapida ricerca ha portato alcune fonti pertinenti (ricordo vagamente una di queste citate quando ho seguito un corso sulla programmazione non lineare più di quattro anni fa):

Falk, JE e Hoffman, KL Riduzione al minimo concava attraverso il poligono collassante , Operations Research, 1986, Vol. 34, n. 6, pag. 919-929.

Hoffman, KL Metodo per minimizzare globalmente le funzioni convesse su insiemi convessi , Programmazione matematica, 1981, Vol. 20, p. 22-31.

Benson, HP Un algoritmo finito per la minimizzazione concava su un poliedro , Naval Research Logistics, 1985, Vol. 32, n. 1, pag. 165-177.

Un sacco di riferimenti sul sito web di Christophe Meyer .

Ci sono più fonti se Google "minimizza la funzione concava su polytope" (o sostituisce "polytope" con "poliedro").


2

Ho partecipato alcuni anni fa a una lezione sull'ottimizzazione. Allora abbiamo usato Matlab in combinazione con YALMIP.

Il wiki di YALMIP


1

Questo problema può essere visto come una differenza del problema di programmazione delle funzioni convesse (CC). C'è una vasta letteratura sulla programmazione DC, è possibile cercare studi correlati lì. Uno dei metodi più noti è il metodo DCA, vedere ad esempio: http://lma.univ-pau.fr/meet/mamern09/en/Lethi-MAMERN09.pdf

Un altro documento recente che analizza la letteratura DC in una certa misura e potrebbe essere utile è: https://arxiv.org/pdf/1511.01796.pdf

È inoltre possibile utilizzare alcuni metodi più generali per problemi non regolari, ad esempio il metodo basato su prox fornito in: http://num.math.uni-goettingen.de/~ssabach/BST2013.pdf


0

Vorrei offrire l' algoritmo Frank Wolfe e i relativi metodi per la tua considerazione. Fondamentalmente, si linearizza la funzione obiettivo e si risolve il LP risultante ad ogni iterazione. Penso, tuttavia, che sarebbe necessario aggiungere limiti a per rendere efficace questo approccio.x

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.