2013-03-02 10 views
9

Czy ktoś wie, który pakiet R ma implementację algorytmu Uogalifikowanego Zmniejszonego Gradientu (GRG2)? dziękiAlgorytm Uogólnionego Zmniejszonego Gradientu (GRG2) w R

+2

'biblioteka (" sos "); findFn ("{uogólniony zmniejszony gradient}"); findFn ("GRG2") "sugeruje, że możesz mieć pecha. (Googling GRG2 sugeruje, że główną implementacją tego algorytmu jest Solver programu Excel). Zamiast pytać "czy ten algorytm jest dostępny?", Możesz zapytać "Jak mogę rozwiązać następujący problem?" –

+0

To było dobre pytanie, ale 2 lata i żadna stanowcza odpowiedź. Czy ktoś utworzył GRG lub GRG2 w funkcji R? Pytam, ponieważ mam również sytuację, w której solver programu Excel (polegający na jakimś GRG) jest szybki i dokładny w przypadku problemu, który nie działa dobrze z kilkoma metodami optim(). – Anthony

+0

To wciąż aktualne. Nie znalazłem żadnej implementacji języka Java, której oczekiwałem. – alnasfire

Odpowiedz

3

Ponieważ @BenBolker wykonał wstępną pracę, aby znaleźć funkcje, które chciałbyś powielić, zamieszczam informacje, które mogą być przydatne. Niedawna wymiana na rhelp zakończył się cytatem, który został nominowany do pakietu R fortunes, choć nie jest to dla mnie jasne, czy została ona przyjęta:

"The idea that the Excel solver "has a good reputation for being fast 
and accurate" does not withstand an examination of the Excel solver's 
ability to solve the StRD nls test problems. ... 
Excel solver does have the virtue that it will always produce an 
answer, albeit one with zero accurate digits." 

"I am unaware of R being applied to the StRD, but I did apply S+ to the 
StRD and, with analytic derivatives, it performed flawlessly." 

From: Bruce McCullough <[email protected]> 
Date: February 20, 2013 7:58:24 AM PST 

Tu jest link do pracy na własny cytowane dokumentowania awarie z Excel Solver (co wiemy teraz jest zasilany za pośrednictwem wersji algorytmu GRG2) przez McCullough: www.pages.drexel.edu/~bdm25/chap8.pdf a link do strony NIST dla problemów badawczych tutaj: http://www.itl.nist.gov/div898/strd/nls/nls_info.shtml i http://www.itl.nist.gov/div898/strd/nls/nls_main.shtml

negatywny komentarz (przyniósł na co zwróciłem uwagę) z @jwg zachęciła mnie do ponownej rewizji sugerowanej przez Bolkera. Wciąż brak trafień dla findFn("GRG2"). Mogę zgłosić kilka trafień dla "GRG" żadnego z nich najwyraźniej do solver, i był rozbawiony, że jeden z nich ma chwytliwą ekspansję do "Generalnego losowego odgadywania modelu". Wydawało mi się to szczególnie zabawne, gdy moim nieporozumieniem było to, że wybór rozwiązania graficznego Excela pozostawił faktyczną niepewność co do dokładności rozwiązania. Nie żartuję z zamieszczania "odpowiedzi", która nie dostarcza dokładnie tego, o co prosiła, ale ostrzega użytkowników, którzy nie są religijnie zaangażowani w sposób Microsoftu na tej statystycznej/matematycznej arenie. Brak jakiegokolwiek wysiłku ze strony rozproszonych programistów R, aby zapewnić zastępczy dodatek do programu Excel solver jest poważnym problemem.

+0

Łącze do problemów z testowaniem jest martwe. Czy istnieje sposób, abyś mógł go znaleźć ponownie? –

+0

Powinieneś popracować nad swoimi umiejętnościami googlowania. Pierwsze trafienia w celu wyszukania: "Problem z testem NIST STRD nls" –

+0

Witryny gov są często straszne z ich danymi, założyłem, że zostałby przeniesiony. Pomyślałem również, że lepiej, aby twoja odpowiedź zawierała prawdziwy link i nie chcesz edytować w potencjalnie przeniesionej zawartości. Dziękuję za aktualizację. –

1

Niektóre obowiązujących, odnośnych spostrzeżenia pochodzą z this post to R-help przez renomowany naukowiec statystycznej:

Kod w programie Excel jest faktycznie nazywa GRG2 (The 2 ma znaczenia). W przeciwieństwie do dowolnej metody optymalizacji(), radzi sobie z więzami nieliniowej nierówności i nie potrzebuje wykonalnego początkowego rozwiązania.

Jest krótką informację o tym w przewodniku optymalizacji NEOS: http://www-fp.mcs.anl.gov/otc/Guide/SoftwareGuide/Blurbs/grg2.html

Sądząc po tej notki, to będzie podobny do L-BFGS-B za problemy bez żadnych ograniczeń i ograniczeń skrzynkowych. -thomas

Thomas Lumley Assoc. Profesor Biostatystyki tlumley na u.washington.edu University of Washington, Seattle

więc w pewnych warunkach może to być odpowiednie do stosowania optim takiego w miejscu solver Excel:

optim(pars, 
     OptPars, 
     ... , 
     method = "L-BFGS-B") 

Note że poradnik optymalizacji NEOS jest już tutaj: http://neos-guide.org/content/optimization-guide i GRG2 jest wymienione na tej stronie: http://neos-guide.org/content/reduced-gradient-methods Wymienia BFGS, CONOPT i kilka innych jako powiązane algorytmy. Artykuł opisuje je jako "projektowany rozszerzony algorytm Lagrange'a". Zgodnie z Optimization CTV, algorytmy te można znaleźć w nloptr, alabama i Rsolnp.

Posiadałem dobre dopasowania (do sześciu sigów figowych) między solverem Excel a R przy użyciu pakietu optimx, ale YMMV.