konto usunięte

Temat: optymalizacja kwadratowa - duże zadanie

Problem jest znalezienie minimum funkcji kwadratowej (diagonalna, nieujemnie określona forma, wymiar do 100000) na zbiorze wypukłym danym warunkami liniowymi (do 500), przy nieujemnych zmiennych. Spodziewam się, że popularne domowo-biurowe komputery tego nie pociągną. Nie szkodzi. Zależałoby mi, aby osoby mające do czynienia z dużymi problemami optymalizacyjnymi podzieliły się swoimi doświadczeniami - jaki sprzęt, jakie oprogramowanie... Może ktoś zna to?
http://www-01.ibm.com/software/integration/optimizatio...Tomasz S. edytował(a) ten post dnia 14.01.10 o godzinie 20:50
Krzysztof Łatuszyński

Krzysztof Łatuszyński probabilista,
statystyk

Temat: optymalizacja kwadratowa - duże zadanie

Co wiadomo o tej funkcji?
Masz jej wzor?

Mozesz policzyc wartosc w zadanym punkcie?
ile to kosztuje?

dla dwoch punktow mozesz powiedziec, w ktorym funkcja ma wieksza wartosc bez liczenia wartosci?
ile to kosztuje?Krzysztof Łatuszyński edytował(a) ten post dnia 15.01.10 o godzinie 01:47

konto usunięte

Temat: optymalizacja kwadratowa - duże zadanie

Cześć Krzysiek.

Mam wzór - to jest suma kwadratów zmiennych ze współczynnikami danymi dłuuuugim wektorem. Wartości liczą się zatem szybko (9*n dodawań każda, 1 mnożenie kosztuje zdaje się 4 dodawania). Oczywiście da się porównać je bez liczenia - rozkład różnicy kwadratów, wtedy koszt różnicy to 11*n dodawań.

Algorytmy z takiego Maple przekształcają wzór do postaci macierzowej - a macierz wielkości 1e5x1e5 nie włazi do pamięci (pomijając już to co potem się dzieje), bo tak są pisane biblioteki NAG, które Maple wykorzystuje. Dlatego na wejściu od razu lepiej podawać funkcję celu w postaci macierzy diagonalnej, bo nie ma konwersji.

Proponujesz jakieś wyżarzania :)? Tylko jak wtedy losować sąsiadów. Myślałem, że ten ILOG pomógłby. Chwalą się, że działa dla wielkich problemów... Ale może na kompie powiedzmy z 48 GB RAMu, nawet 64-bitowy Maple dałby radę...Tomasz S. edytował(a) ten post dnia 15.01.10 o godzinie 11:29

konto usunięte

Temat: optymalizacja kwadratowa - duże zadanie

Tomasz S.:
Zależałoby mi, aby osoby mające do czynienia z dużymi problemami optymalizacyjnymi podzieliły się swoimi doświadczeniami - jaki sprzęt, jakie oprogramowanie... Może ktoś zna to?

Mysałeś o GRID computing ?

konto usunięte

Temat: optymalizacja kwadratowa - duże zadanie

Myślałem o czymś mniejszym niż GRID, tzn. wewnętrznej sieci. Zbudowanie takiego klastra obliczeniowego. Ale są dwa problemy. Oprogramowanie tego :). Potrzebuję oprogramowanie, które potrafi rozbić ten problem na wiele komputerów. No i kwestia kosztu (w sensie ceny) - im taniej tym lepiej...
Najlepiej jakby typowy komputer ugryzł to czasie maksymalnie 1 tygodnia :).Tomasz S. edytował(a) ten post dnia 15.01.10 o godzinie 11:39
Błażej O.

Błażej O. Badania i rozwój
zaawansowanych
systemów
analitycznych

Temat: optymalizacja kwadratowa - duże zadanie

Spróbuj tak:
o zwykły komputer;
o Linux (dowolny);
o biblioteka ATLAS;
o + niestety trzeba napisać program np. w C/C++

Możesz jeszcze skorzystać z biblioteki GSL - to taka bardzo wygodna biblioteka do pisania programów w C (jest dużo przykładów) no i ma obsługę BLAS/LAPACK/ATLAS.

Jeżeli nie dasz rady na jednym kompie to proponuję zrobić mały klaster korzystając z MPI/PVM - teraz robi się to na prawdę prosto i są też biblioteki algebry liniowej pod te środowiska.

Niestety kombajny do obliczeń są niesamowicie pamięciożerne, napisanie własnego programiku korzystając z natywnych bibliotek BLAS/LAPACK/ATLAS dają gwarancję, że nie zapchamy pamięci od razu.

Pozdrawiam
Błażej

konto usunięte

Temat: optymalizacja kwadratowa - duże zadanie

Błażej O.:
Niestety kombajny do obliczeń są niesamowicie pamięciożerne, napisanie własnego programiku korzystając z natywnych
bibliotek BLAS/LAPACK/ATLAS dają gwarancję, że nie zapchamy
pamięci od razu.
Czyli wychodzi na to, że niezależnie czy jeden komputer łyknie, to radzisz wciągnąć do roboty numeryka... Rozumiem o czym piszesz, kiedyś nawet implementowałem jakiś algorytm w C z użyciem LAPACKa, ale sam nie czuję się na siłach.

Jeśli nie używałeś ILOG CPLEX, to może masz jakieś opinie od osób, które w nim pracowały? Wygląda na drogie i profesjonalne narzędzie, trudno spotkać osoby mające z nim do czynienia.Tomasz S. edytował(a) ten post dnia 15.01.10 o godzinie 22:23
Krzysztof Łatuszyński

Krzysztof Łatuszyński probabilista,
statystyk

Temat: optymalizacja kwadratowa - duże zadanie

Tomasz S.:
Cześć Krzysiek.

Czesc :)
Mam wzór - to jest suma kwadratów zmiennych ze współczynnikami danymi dłuuuugim wektorem. Wartości liczą się zatem szybko (9*n dodawań każda, 1 mnożenie kosztuje zdaje się 4 dodawania). Oczywiście da się porównać je bez liczenia - rozkład różnicy kwadratów, wtedy koszt różnicy to 11*n dodawań.

a wspolczynniki sa dodatnie?
tzn to jest

\sum_{i=1}^{100000} a_i (x_i - b_i)^2

gdzie a_i > 0

?

Skad wiesz, ze warunki liniowe sa niepuste?
Ile trwa sprawdzanie warunkow liniowych?

Czy wiesz mniej wiecej, jakiego rzedu jest srednica tego zbioru wypuklego? (10, czy 10^10? :)

Algorytmy z takiego Maple przekształcają wzór do postaci macierzowej - a macierz wielkości 1e5x1e5 nie włazi do pamięci (pomijając już to co potem się dzieje), bo tak są pisane biblioteki NAG, które Maple wykorzystuje. Dlatego na wejściu od razu lepiej podawać funkcję celu w postaci macierzy diagonalnej, bo nie ma konwersji.

Nie za bardzo rozumiem, robi macierz ze zmiennymi w kwadracie i przed zmiennymi mieszanymi?

To w takiej macierzy sa glownie 0 w Twoim zadaniu? (bez sensu)
Proponujesz jakieś wyżarzania :)?

Sasiadow moznaby losowac z czegokolwiek, co potrafisz szybko losowac w tym wymiarze, i w czym latwo zmieniac wspolczynnik skali, np to by byla \sigma w normalnym. W czasie symulacji moznaby ta \sigme zmniejszac lub zwiekszac w zaleznosci od prawd. akceptacji. Jak prawd akceptacji male, to zmniejszac \sigme, jak duze, to zwiekszac.
Krzysztof Łatuszyński

Krzysztof Łatuszyński probabilista,
statystyk

Temat: optymalizacja kwadratowa - duże zadanie

Napisz mi prosze dokladnie, jaki wzor ma ta funkcja.

Zastanawiam sie, czy nie mozna stosowac probnika Gibbsa w algorytmie wyzarzania dla gestosci

exp{ - Tf(x)}

gdzie f(x) to Twoja funkcja.

Jesli f jest suma taka, jak napisalem w poprzednim mailu, to to jest gestosc produktowa i probnik Gibbsa na zbiorze wypuklym bedzie zbiegal do rozkladu stacjonarnego w jednej iteracji.

Ponadto w probniku Gibbsa bedziesz w pojedynczym ktoku robil update jednej wspolrzednej i wymiar nie jest problemmem w algorytmie.
Krzysztof Łatuszyński

Krzysztof Łatuszyński probabilista,
statystyk

Temat: optymalizacja kwadratowa - duże zadanie

W jednej nie, ale bardzo szybko...

konto usunięte

Temat: optymalizacja kwadratowa - duże zadanie

Krzysztof Łatuszyński:
a wspolczynniki sa dodatnie?
tzn to jest

\sum_{i=1}^{100000} a_i (x_i - b_i)^2

gdzie a_i > 0
Tak, i jeszcze b_i=0 \forall i :)
Skad wiesz, ze warunki liniowe sa niepuste?
Nie wiem. Mam sporo tych zadań do rozwiązania :). Czasami występują zarówno warunki współliniowe (czasem łatwo wykryć, bo są identyczne), jak i sprzeczne. Mam dwa pomysły na sprzeczności, ale to potem - teraz potrzebuję algorytm działający na niepustym zbiorze.
Ile trwa sprawdzanie warunkow liniowych?
Nie wiem :). Algorytmy zaszyte w pakiety nie są dokładnie opisane (i nie dziwne - w końcu za to się płaci). Nie mam pojęcia jak one działają.
Czy wiesz mniej wiecej, jakiego rzedu jest srednica tego
zbioru wypuklego? (10, czy 10^10? :)
Poniżej 10^6, w niektórych zadaniach sporo mniej.
Zastanawiam sie, czy nie mozna stosowac probnika Gibbsa w algorytmie wyzarzania dla gestosci

exp{ - Tf(x)}

gdzie f(x) to Twoja funkcja.
Fajny pomysł.
Ale jak losować z rozkładów warunkowych? Jeżeli mam ustalony wektor x dopuszczalny, to zmieniając wartość na losowo wybranej współrzędnej wylezę z mojego zbioru dopuszczalnego. Trzeba by ten zbiór najpierw opisać i brać gęstość na nim, a nie na całej przestrzeni. A to nie jest łatwe - przy 100000 zmiennych i 500 warunkach muszę znaleźć bazę przestrzeni wymiaru 99500, a potem jeszcze uwzględniać warunki nieujemności (to akurat proste).Tomasz S. edytował(a) ten post dnia 16.01.10 o godzinie 23:43

konto usunięte

Temat: optymalizacja kwadratowa - duże zadanie

A może da się zrobić rozkład, który będzie co prawda na całej przestrzeni 100000-wym, ale skupiony w większości tam gdzie funkcja f ma minimum i tam gdzie warunki są spełnione? Tylko jak powinna wyglądać gęstość, żeby było dobrze?Tomasz S. edytował(a) ten post dnia 16.01.10 o godzinie 23:52
Krzysztof Łatuszyński

Krzysztof Łatuszyński probabilista,
statystyk

Temat: optymalizacja kwadratowa - duże zadanie

Tomasz S.:
A może da się zrobić rozkład, który będzie co prawda na całej przestrzeni 100000-wym, ale skupiony w większości tam gdzie funkcja f ma minimum i tam gdzie warunki są spełnione? Tylko jak powinna wyglądać gęstość, żeby było dobrze?Tomasz S. edytował(a) ten post dnia 16.01.10 o godzinie 23:52


Hej, ok dwie rzeczy chodza mi po glowie.

Ale niezaleznie od wszystkigo, to zrobilbym zmiane bazy
x_i = (a_i)^{1/2} x_i

Warunki liniowe zmienia sie odpowiednio.

W nowej bazie funkcja f(x) = ||x||_2^2

1) Pierwszy pomysl to jest taki, ze to sie prawdopodobnie da rozwiazac deterministycznie, bo
- Twoj zbior D ograniczony warunkami liniowymi jest wypukly. Jesli dobrze pamitem, pisales, ze D lezy w stozku x_i \geq 0 for all i.
- zbiory K_r := {x: f(x) \leq r} to sa kulki
- wobec tego rozwiazanie istnieje, jest jedno, i jest na brzegu zbioru D.
- I to rozwiazanie to jest inf_r {r : (K_r przeciecie D) jest niepuste}.
- wobec tego "wystarczy" umiec sprawdzac, czy przeciecie K_r z D jest niepuste, bo wtedy szukamy takiego r, ze
K_r przeciecie D puste
K_2r przeciecie D niepuste
i dalej przeszukiwanie dzielac na 2.
- na razie nie jest dla mnie jasne, jak sprawdzac, ze (K_r przeciecie D) jest niepuste...


2) Teraz ten probnik Gibbsa dla exp{-T f(x)}
(juz po zamianie bazy)

(pytanie w nawiasie: Czy umiesz znalezc jakikolwiek punkt, ktory nalezy do D? bo z czegos trzeba wystartowac)

Niech X = (X_1, ..., X_n) to aktualny stan lancucha, n to wymiar.

Robmy probnik Gibbsa (deterministic scan).
Dla zaktualizowania X_i trzebaby
- wyliczyc zakres X_i pod warunkiem pozostalych wspolrzednych..., niech to bedzie [a,b]
- Zauwaz, ze rozklad warunkowy na wspolrzednej i to jest rozklad normalny ze srednia 0 i wariancja 0.5(T^{-1}) obciety do [a,b]. Losowanie z czegos takiego powinno byc w pakietach...

A jak nie, to bedziemy myslec ;)

konto usunięte

Temat: optymalizacja kwadratowa - duże zadanie

Krzysztof Łatuszyński:
Robmy probnik Gibbsa (deterministic scan).
Dla zaktualizowania X_i trzebaby
- wyliczyc zakres X_i pod warunkiem pozostalych wspolrzednych..., niech to bedzie [a,b]
To jest drobny zgrzyt, bo przy ograniczeniach równościowych [a,b] jest pusty (np x1+x2=1 - żadnej ze zmiennych nie możemy ruszyć z osobna). Ale da się to załatwić - trzeba tylko sparametryzować jądro macierzy warunków. Wtedy rozwiązania dopuszczalne możemy generować zmieniając te parametry. Uwzględniając warunki nieujemności dostaniemy [a,b].

A sama parametryzacja (dlaczego podkreśla na czerwono????) jest spoko. Przetestowałem, przy 17000 zmiennych i 37 warunkach nie ma żadnych problemów z zajętością pamięci i czasem. Więcej też pójdzie. Po prostu jeśli chodzi o algebrę liniową, to typowe komputerki łykają nawet wielkie zadania
A jak nie, to bedziemy myslec ;)
Ok, dam znać jak poszło :P. Trochę to potrwa, bo mam pięćdziesiąt innych rzeczy do zrobienia. Dzięki za pomoc!Tomasz S. edytował(a) ten post dnia 17.01.10 o godzinie 22:31
Krzysztof Łatuszyński

Krzysztof Łatuszyński probabilista,
statystyk

Temat: optymalizacja kwadratowa - duże zadanie

Tomasz S.:
Ok, dam znać jak poszło :P. Trochę to potrwa, bo mam pięćdziesiąt innych rzeczy do zrobienia. Dzięki za pomoc!

Super, to trzymaj sie tymczasem.

Następna dyskusja:

Pytanie o zadanie na prawdo...




Wyślij zaproszenie do