Biblioteka ograniczonej optymalizacji dla ograniczeń równości i nierówności

14

Jakieś zalecenia dotyczące wyboru ograniczonej biblioteki optymalizacji odpowiedniej dla mojej funkcji optymalizacji? Minimalizuję ai) funkcję nieliniową z liniowymi ograniczeniami równości i nierówności, oraz ii) mam dostępny gradient i hessian funkcji.

Jeśli to pomaga, funkcja, którą minimalizuję, to dywergencja Kullbacka-Lieblera .

constrOptim zajmuje się tylko ograniczeniami nierówności. Quadprog radzi sobie z kwadratami . Zaufanie nie obsługuje ograniczeń. Zatem rozbieżność KL nie pasuje do tych rozwiązań.

Istnieje wiele rozwiązań na stronie R Cran Task for Optimization . Jestem w stanie przeprowadzić optymalizację w MATLAB za pomocą funkcji fmincon (), która wydaje się używać punktu wewnętrznego lub odzwierciedlającego region zaufania. Idealnie jest biblioteka dobrze dostosowana do zdefiniowanego problemu.

Ram Ahluwalia
źródło
Czy ograniczenia są liniowe?
kardynał
@ cardinal - tak - ograniczenia są liniowe
Ram Ahluwalia,
2
ZAx=bconstrOptimZAxbZAxb
To bardzo sprytne. Zbadam to i zobaczę, jak to działa. Powinieneś rozważyć opublikowanie tego jako odpowiedzi. Pozostawię pytanie otwarte przez kilka dni, aby zobaczyć, jakie inne narzędzia są dostępne
Ram Ahluwalia,
2
@ kardynalna sztuczka nie pomaga w metodzie punktu wewnętrznego, takiej jak ta z constrOptim, ponieważ metoda potrzebuje punktu początkowego do wnętrza wykonalnego regionu - nie na granicy
stackovergio

Odpowiedzi:

14

Oba pakiety, alabama i Rsolnp, zawierają „[i] uzupełnienia rozszerzonej metody mnożnika lagrange'a dla ogólnej optymalizacji nieliniowej” --- jak mówi widok zadania optymalizacji --- i są dość niezawodne i solidne. Może ponownie obsłużyć ograniczenia równości i nierówności zdefiniowane jako funkcje (nieliniowe).

Pracowałem z obydwoma pakietami. Czasami ograniczenia są nieco łatwiejsze do sformułowania za pomocą Rsolnp, podczas gdy alabama wydaje się czasem nieco szybsza.

Istnieje również pakiet Rdonlp2, który opiera się na dobrze znanej bibliotece oprogramowania zewnętrznego i społeczności optymalizacyjnej. Niestety jego status licencji jest obecnie nieco niepewny.

Hans W.
źródło
1
Chcę tylko dodać jedną właściwość ograniczeń nierówności w Alabamie, które znalazłem dzisiaj. Jeśli twoje ograniczenia nierówności tworzą nieprzekraczalny region, wówczas kod działa bez żadnych komunikatów ostrzegawczych / błędów i przyjmuje średnią wartość granic jako stałą wartość parametru. Na przykład, jeśli masz x> 6 i x <4, wówczas rozwiązanie zapewni rozwiązanie z x = 5 bez żadnego ostrzeżenia.
Gaurav Singhal
1
Wygląda na to, że ta odpowiedź jest nadal odwiedzana i czytana. Dlatego chciałbym dodać, że istnieje nowy pakiet NlcOptim (od 2015 r.). Rozwiązuje problemy optymalizacyjne z nieliniowymi funkcjami celu i ograniczeń, w których dozwolone są nieliniowe ograniczenia równości i nierówności. Używam go regularnie.
Hans W.