Libreria di ottimizzazione vincolata per vincoli di uguaglianza e disuguaglianza


14

Qualche consiglio per la scelta di una libreria di ottimizzazione vincolata adatta alla mia funzione di ottimizzazione? Sto minimizzando ai) la funzione non lineare con vincoli di uguaglianza e disuguaglianza lineari, e ii) ho a disposizione il gradiente e la tela di iuta della funzione.

Se aiuta, la funzione che sto minimizzando è la divergenza di Kullback-Liebler .

constrOptim si occupa solo di vincoli di disuguaglianza. Quadprog gestisce la quadratica. La fiducia non supporta i vincoli. Quindi la divergenza KL non si adatta a queste soluzioni.

Ci sono alcune soluzioni nella pagina Attività R Cran per l'ottimizzazione . Sono in grado di eseguire l'ottimizzazione in MATLAB usando la funzione fmincon () che sembra usare un punto interno o un riflesso della regione di fiducia. Idealmente, esiste una libreria adatta al problema definito.


I vincoli sono lineari?
cardinale il

@cardinale - sì - i vincoli sono lineari
Ram Ahluwalia,

2
Quindi, se i vincoli di uguaglianza sono , almeno di un work-around per sarebbe quello di includere sia una x B e A x b . No? UNX=BconstrOptimUNXBUNXB
cardinale il

È molto intelligente. Esplorerò questo e vedrò come si comporta. Dovresti considerare di pubblicare questo come una risposta. Terrò aperta la domanda per un paio di giorni per vedere quali altri strumenti sono disponibili
Ram Ahluwalia,

1
Il trucco di @cardinal non aiuta per il metodo dei punti interni, come quello di constrOptim, poiché il metodo ha bisogno di un punto di partenza all'interno della regione possibile -non al confine
stackovergio

Risposte:


14

Entrambi i pacchetti, alabama e Rsolnp, contengono "[i] implementazioni del metodo del moltiplicatore di lagrange aumentate per l'ottimizzazione non lineare generale" --- come dice la vista dell'attività di ottimizzazione --- e sono abbastanza affidabili e robuste. Può gestire nuovamente i vincoli di uguaglianza e disuguaglianza definiti come funzioni (non lineari).

Ho lavorato con entrambi i pacchetti. A volte, i vincoli sono un po 'più facili da formulare con Rsolnp, mentre alabama sembra essere un po' più veloce a volte.

Esiste anche il pacchetto Rdonlp2 che si basa su una ben nota libreria software esterna e nella comunità di ottimizzazione. Sfortunatamente, il suo stato di licenza è un po 'incerto al momento.


1
Voglio solo aggiungere una proprietà dei vincoli di disuguaglianza in Alabama che ho trovato oggi. Se i tuoi vincoli di disuguaglianza creano una regione non fattibile, il codice viene eseguito senza alcun messaggio di avviso / errore e assume il valore medio dei limiti come valore fisso del parametro. Ad esempio, se si dispone di x> 6 e x <4, la soluzione fornirà una soluzione con x = 5 senza alcun avviso.
Gaurav Singhal,

Sembra che questa risposta sia ancora visitata e letta. Pertanto, vorrei aggiungere che esiste un nuovo pacchetto NlcOptim (dal 2015). Risolve problemi di ottimizzazione con obiettivi non lineari e funzioni di vincolo, dove sono consentiti vincoli di uguaglianza e disuguaglianza non lineari. Lo uso regolarmente.
Hans W.
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.