Rozwiązywanie najmniejszych odchyleń bezwzględnych za pomocą algorytmu Barrodale-Roberts: Przedwczesne zakończenie?

9

Przepraszam za długie pytanie, potrzebuje tylko wyjaśnienia, aby przejść do rzeczywistego problemu. Osoby zaznajomione z wymienionymi algorytmami prawdopodobnie mogłyby przejść bezpośrednio do pierwszego tablau simpleksowego.


Aby rozwiązać problemy z najmniejszymi odchyleniami bezwzględnymi (alias L.1-optymalizacja), algorytm Barrodale-Roberts jest specjalną metodą simpleksową, która wymaga znacznie mniej pamięci i wysiłków obliczeniowych, aby znaleźć odpowiednie minimum.

Moja implementacja algorytmu kończy się na prostym przykładzie, zanim zostanie osiągnięte odpowiednie minimum. Najprawdopodobniej jednak najpierw przedstawię problem w bardziej rozbudowany sposób:

Podane dane (xja,yja), L.1-optimization próbuje znaleźć dom to minimalizuje

ja=1n|yja-fa(xja)|zfa(x): =ZAxϕ
gdzie ZAx jest n×m macierz, która w jakiś sposób zależy x. Problem ten można określić jako program liniowy i dlatego między innymi można go rozwiązać metodami typu simpleks.

Barrodale i Roberts zasugerowali (najwyraźniej szeroko stosowaną) modyfikację metody simplex, która radykalnie upraszcza metodę simpleks przy użyciu specjalnej struktury L.1-problemy. Przede wszystkim dlatego, że optymalne rozwiązanie interpoluje przynajmniejrzank(ZA)podanych punktów danych. Osoby z dostępem do Jstor mogą znaleźć odpowiedni artykuł tutaj .

Lei i Anderson w 2002 roku zaproponowali niewielką modyfikację, która ma zwiększyć stabilność numeryczną, a tym samym przezwyciężyć znane problemy z algorytmem simpleks.

Zasadniczo ten algorytm zakłada, że ​​zaczynasz od określonego zestawu punktów, które muszą być interpolowane, użyj podanych procedur do zbudowania tablicy simpleksowej, a następnie użyj reguł Barrodale i Robertsa, aby zdecydować, które zmienne podstawowe należy zmienić, a zatem zmodyfikować zbiór punktów danych, który jest przybliżony.

Barrodale i Roberts dają mały przykład, który próbowałem odtworzyć. Próbuje przybliżyć punkty{(1,1),(2),1),(3),2)),(4,3)),(5,2))} przez funkcję za1+za2)x. Zakończ swój algorytm następującym skróconym obrazem simpleksowym:

PodstawaRu1u3)b11/2)3)/2)-1/2)v2)1/2)1/2)1/2)b2)1/2)-1/2)1/2)u41/2)1/2)-3)/2)v51-12)Koszt marginalny2)-10

Co najważniejsze, pierwszy i trzeci punkt są interpolowane, a ogólny błąd jest równy 2). Wnioskują to

Ponieważ wszystkie wektory niebazowe mają niepozytywny koszt krańcowy [...]

iteracja jest zakończona i osiąga się optymalne.

Jeśli użyję algorytmu Lei i Andersona, mogę odtworzyć ten simpleksowy zbiór dla zestawu interpolacji {1,3}, zgodnie z oczekiwaniami. Jednak jeśli zacznę algorytm od zestawu{2),5} (co wyraźnie nie jest optymalne), otrzymuję następujący tableau simpleks:

PodstawaRu2)u5u11/3)-4/3)1/3)b11/3)5/3)-2)/3)u3)2)/3)-2)/3)-1/3)u44/3)-1/3)-2)/3)b2)1/3)-1/3)1/3)Koszt marginalny7/3)-10/3)-5/3)

Ten wynik mnie jednak zastanawia. Jeśli dobrze rozumiem powyższy cytat, brak dodatniego kosztu krańcowego oznacza, że ​​osiągnięto optymalne. Jednak wartość funkcji około 2,33 z pewnością nie jest optymalna. Wymianau2) z u1 dałoby wynik równy rozwiązaniu Barrodale'a i Robertsa, a zatem optymalny.

Informacje dodatkowe: Jeśli zacznę od początkowego układu tabel podanego przez Barrodale i Robertsa, będę w stanie odtworzyć powyższy układ za pomocą zwykłych kroków simpleksowych, więc jestem całkiem pewien, że rzeczywiste wartości liczbowe są prawidłowe i moja interpretacja reguły wyboru przestawnej jest wadliwy.

Masz jakieś przemyślenia na ten temat?

Zdaję sobie sprawę, że samo pytanie jest dość skomplikowane i prawdopodobnie wymaga wystarczającej znajomości przynajmniej algorytmu Barrodale i Robertsa. Algorytm jako całość musi powtórzyć go tutaj szczegółowo. Jeśli jednak masz dodatkowe pytania dotyczące podjętych przeze mnie kroków lub brakujących informacji, możesz je zadać i chętnie pomogę.

Thilo
źródło
Byłbym wdzięczny, gdyby ktoś o wystarczającej reputacji mógł stworzyć tag w stylu „najmniejszych absolutnych odchyleń” lub „przybliżenia L1”.
Thilo
Warunkiem optymalności jest to, że podstawowe rozwiązanie musi być wykonalne (w odniesieniu do jego ograniczeń nieujemności) i że zmniejszone koszty muszą być mniejsze lub równe 0. Jeśli twoje podstawowe rozwiązanie jest niewykonalne, wszystkie zakłady są wyłączone.
Brian Borchers,
Podstawowe rozwiązanie jest wykonalne konstrukcyjnie. Dlatego nie powinno być problemu. Mam jednak pierwszy pomysł, gdzie może być problem. Dodam odpowiednią odpowiedź, jeśli mam rację.
Thilo,

Odpowiedzi:

4

Rozwiązałem to. W rzeczywistości Barrodale i Roberts rozwiązali ten problem, a ja po prostu nie przeczytałem uważnie.

W moim pytaniu pozostawiłem czytelnikowi zrozumienie, że zmienne Barrodale i Roberts są oznaczone uja oznaczają dodatnie reszty ja-ty punkt danych w stosunku do bieżącego dopasowania. Jeśli reszta jest ujemna,uja=0 i vjaprzyjmuje odpowiednią wartość. Ponieważ tylko jeden z nich może znajdować się w obrębie podstawy, a współczynniki w tablicy simpleks są tylko ujemnymi wartościami siebie, nie jest konieczne jawne podawanie ich w tablicy simpleks. Barrodale i Roberts wspominają w swoim artykule:

[...] oraz suma kosztów krańcowych (lub obniżonych) w wysokości bjot i dojot wynosi zero i wynosi uja i vja wynosi -2.

Zatem mój powyższy obrazek simpleks powinien wyglądać następująco:

PodstawaRu2)u5v2)v5u11/3)-4/3)1/3)4/3)-1/3)b11/3)5/3)-2)/3)-5/3)2)/3)u3)2)/3)-2)/3)-1/3)2)/3)1/3)u44/3)-1/3)-2)/3)1/3)2)/3)b2)1/3)-1/3)1/3)-1/3)-1/3)Koszt marginalny7/3)-10/3)-5/3)4/3)-1/3)

gdzie to wyraźnie widzimy v2)może zostać wykorzystany do zarchiwizowania lepszego wyniku. W ten sposób algorytm kończy się podczas interpolacji pierwszego i piątego punktu danych z ogólnym błędem 2 - co jest najlepszym rozwiązaniem.

Dziękuję za przeczytanie i danie mi miejsca do napisania mojego problemu, co zwykle pomaga znacznie zawęzić rozwiązanie. Mamy nadzieję, że ta odpowiedź może być czasem pomocna dla każdego, kto próbuje wdrożyć Barrodale & Roberts.

Thilo
źródło