-
Path: news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.glorb.com!p
ostnews.google.com!t3g2000vbb.googlegroups.com!not-for-mail
From: bartekltg <b...@g...com>
Newsgroups: pl.comp.programming
Subject: Re: rzadkie dane do układu równań liniowych
Date: Thu, 9 Sep 2010 03:11:19 -0700 (PDT)
Organization: http://groups.google.com
Lines: 185
Message-ID: <d...@t...googlegroups.com>
References: <0...@l...googlegroups.com>
<i656fg$i9f$1@polsl.pl>
<6...@1...googlegroups.com>
<i68gmt$qia$3@polsl.pl>
<0...@1...googlegroups.com>
<d...@n...googlegroups.com>
<4...@c...googlegroups.com>
NNTP-Posting-Host: 82.210.189.188
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: quoted-printable
X-Trace: posting.google.com 1284027083 21849 127.0.0.1 (9 Sep 2010 10:11:23 GMT)
X-Complaints-To: g...@g...com
NNTP-Posting-Date: Thu, 9 Sep 2010 10:11:23 +0000 (UTC)
Complaints-To: g...@g...com
Injection-Info: t3g2000vbb.googlegroups.com; posting-host=82.210.189.188;
posting-account=CvUQzQoAAABvVQmR58QmR6N4Cev1qhAS
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.2.6)
Gecko/20100625 Firefox/3.6.6 ( .NET CLR 3.5.30729;
.NET4.0E),gzip(gfe)
Xref: news-archive.icm.edu.pl pl.comp.programming:186818
[ ukryj nagłówki ]On 9 Wrz, 00:58, Mariusz Marszałkowski <m...@g...com> wrote:
> On 8 Wrz, 23:15, bartekltg <b...@g...com> wrote:> On 8 Wrz, 19:35, Mariusz
Marszałkowski <m...@g...com> wrote:
> > > Obawiam się że nie można tego faktu z istotnym zyskiem
> > > wykorzystać, przynajmniej mi nic istotnego nie przychodzi
> > > do głowy. Macierz układu równań już nie będzie miała zer.
>
> > Jak to nie.
>
> To mówimy o jakimś innym układzie :) W takim razie z
> Twoich słów wynika że jest szybsza metoda od tej którą
> to zadanie zawsze liczyłem. Na razie nic o niej nie wiem.
Mówiłem to ostatnio, mialem to raz jeszcze napisać
w odpowiedzi ktorą powolitku pisze dla drugiej odnogi wątku,
ale wspomne o tym teraz: moze jednak zatrudnijcie jakiegos
matematyka/numeryka.
> Na stronie 864 mam " W praktyce równanie normalne
> rozwiązujemy mnożąc y przez A^t, a następnie znajdując
> rozkład LU macierzy A^t x A" - wydaje mi się że zawsze
> tak to robiłem.
Cormen nie jest podręcznikiem do numerkow;)
Ta metoda nazywa się rownaniem normalnym i ma
pewne wady. Są inne metody. [chociaz ostatnio
ta polecalem, bo ladnie pasowala do 'poprzedniego'
problemu].
> Nie rozumiem o czym mówicie.
:(
> Ja to widzę tak, że elementy macierzy A równania Ax=b
> w postaci normalnej będą się składały z odpowiednich
> sum iloczynów, zsumują się do dużych wartości.
Nazywasz dwie macierze ta samną literką? To sie nie dogadamy;)
Nazwijmy B=A^t*A.
B rzeczywiscie jest gęsta, ale A jest rzadka.
Dla przypomnienia, zagadnienie jest n*N n>N (n=1000N)
N=K*M.
A ma n*K niezerowych elementow.
Nie kazda metoda zminimalizowania norm(Ax-b)
opiera sie na operacjach na maczierzy B.
Jest druga 'szkolna' metoda, przez rozklad QR.
A=QR
R=[R_1; 0]
liczymy Q^t *b, powstaly wektor obcianmy
no N wspolrzednych (wektor w) i rozwiazujemy
uklad trojkatny
R_1 x = w.
Jako zalazek do poszukiwan:
http://en.wikipedia.org/wiki/Numerical_methods_for_l
inear_least_squares#Orthogonal_decomposition_methods
QR jest czasem lepsze, bo "operujemy na A" a nie na "A kwadarat".
Uwarunkowanie!
No, ta metoda (ani SVD) do tego zagadnienia tez sie nie specjalnie nie
nadadza.
Zeby nie mnozyc bytów:
On 6 Wrz, 18:26, Mariusz Marszałkowski <m...@g...com> wrote:
> On 6 Wrz, 17:33, bartekltg <b...@g...com> wrote:> Ile jest wektorów?
powiedzmy n >> N.
> A jeśli N jest równe milion? :)
Hmm, to ciezko bedzie:) Skąd wezmiesz 8 pata(10^15) bajtow dysku:)
> po roku mogę ich mieć nawet cały dysk.
>
> Oryginalny wektor ma niecałe 100 wartości ze małego zbioru
> liczb całkowitych, np. <-7,+7>. Wektor ten będzie mapowany
> przy pomocy nieliniowej funkcji w dużo większy wektor
> zero-jedynkowy o takich własnościach jak napisałem - tylko
> jedna jedynka w każdej części.
Dosc interesujace, co moze sie za tym kryć;)
Pewnie znowu nie opowiesz, to moze powtorze to co
ostatnio napisalem: zatrudnijcie jakiegos matematyka/numeryka;-)
U mnie jak potrzebny do powaznej rzeczy elektronik,
to sie bierze elektronika (jak do malo powaznej, to studenta,
co sie nie zawsze dobrze konczy;).
> Sprawdziłem algorytm zachłanny na losowych zerach i jedynkach
> ( z zachowaniem jednej jedynki w każdej części ). Na kilku zbiorach
> dał rozwiązanie gorsze od optymalnego o 0.5%. Zrobiłem mniej/więcej
> tak:
> 1) Wszystkie współczynniki a_i <-- 0
> 2) j <--0
> 2) Rozwiąż układ tylko dla grupy j
> 3) Odejmij do żądanej wartości F(x) -= suma a_i * v_i : j*ilosc_grup
> <= i <= (j+1)*ilosc_grup
> 4) skocz 2 jeśli j < ilosc_grup.
A nie działa to dlagtego, ze jest ladnie losowo i na kazdą
z grup przypada 'tele samo wektora'?
Są algorytmy 'iteracyjne', w tym 'randomizowane'.
mozna pojsc w tym kierunku, zwlaszcza, ze dane
naplywają stopniowo.
Na szybko. Mamy Ax-b=r
Popatrzmy na losową składową wektora wspołczynnikow,
x_i. Sprobujmy ja poprawić. Niech korekta w=(0,0..1..0,0).
A(x+c*w)-b=r-c*Aw
r-c*v; v=Aw; c-liczb rzeczywista.
powstalo 'jednowymiarowe' zagadnienie najmniejszych kwadratow:)
c=<v,r>/<v,v>.
Losujemy kolejny element do poprawki i tak w kolko.
To algorytm z naswiskiem, uzywany nawet, ale nie pamietam
namiarow.
Mozna 'na raz' optymalizować wiecej niz jeden skladnik
wektora wspolczynnikow x, ale na oko nie jest to oplacalne.
Uzywamy wlasciwie tylko mnozenia przez rzadką A
(musisz ja zapisać rozsadnie, aby nie iterowc po zerach).
ilosc potrzebnych interacji to juz inna sprawa, jesli masz
gigabajty, to nie spodziewaj sie szybko wyniku;)
Powinno sie wygoglac bardziej zaawansowane tego typu metody,
poszukaj po least squares, sparse, moze cos o iterowaniu i wariacje.
Zupelnie inna metoda. Reszta r=Ax-b spełnia dla optymalnego x
A^t * r =0.
Uklad rownan mozemy zapisać lacznie jako
[ I A] [x]
[ A^t 0 ] [r]
=
[b]
[0]
I -macierz jednostkowa. Zagadnienie jest znacznie wieksze,
ale macierz jest nadal rzadka (rzedu n*(2*K+1) elementow ).
Jesli K jest małe, jakaś sprytniejsza metoda iteracyjna rozwiazywania
rownan liniowych da wynik szybko (pewnei precondicioner by sie
przydal)
Zaletą jest, ze (w wersji bez prec.) nie trzymamy w pamieci zadnej
macierzy,
tylko iterowany wektor (rozmiar n+N). A mnozenie, jesli odpowqiednio
zapiszesz swoją macierz (wektory z pomiarow), zajmuje tylko tyle
czasu,
ile jest niezerowych elementow.
Bardzo mozliwe, ze w tym przypadku da sie zastosowac albo wymyslic
jakis prosty (aby dal sie w biegu liczyc, byl oparty na A etc, aby nie
trzymac
duzej macierzy w pamieci) precondiconer, przez co mozemy dostać
przyzwoite
rozwiązania przy niewielkiej ilosci iteracji. Ale to juz na dłuzsze
głowkowanie.
Zaletą metod iteracyjnych bedize tez to, ze jesli dojdą nowe wektory
(skladniki A)
to juz mamy obliczony wczesniej przyzwoity punkt startowy.
Przy okazji, Y. Saad na swojej stronie wystawił wielka ksiązke do
matod iteracyjnych:)
pozdrawiam
bartekltg
Następne wpisy z tego wątku
- 09.09.10 13:06 Wit Jakuczun
- 09.09.10 14:08 Mariusz Marszałkowski
- 09.09.10 14:50 Mariusz Marszałkowski
- 09.09.10 15:43 bartekltg
- 09.09.10 16:46 Mariusz Marszałkowski
- 09.09.10 17:07 bartekltg
- 09.09.10 17:49 Mariusz Marszałkowski
- 09.09.10 18:17 bartekltg
- 09.09.10 19:00 Mariusz Marszałkowski
- 09.09.10 19:02 Wit Jakuczun
- 09.09.10 19:04 Wit Jakuczun
- 14.09.10 18:31 Mariusz Marszałkowski
- 15.09.10 01:52 bartekltg
- 15.09.10 19:42 Mariusz Marszałkowski
- 15.09.10 19:57 bartekltg
Najnowsze wątki z tej grupy
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
Najnowsze wątki
- 2024-11-25 Karty przedpłacone (podarunkowe) Google Play - pytanie do korzystających
- 2024-11-26 wina Tóska
- 2024-11-26 Rewolucja/Rewelacja!
- 2024-11-25 grupa ożyła ;)
- 2024-11-24 Być jak Clint
- 2024-11-24 Rura kanalizacja konceptu Franke = problem
- 2024-11-25 Wrocław => Lead Java EE Developer <=
- 2024-11-25 Warszawa => Business Development Manager - Network and Network Securit
- 2024-11-25 Kraków => Programista Full Stack (.Net Core) <=
- 2024-11-25 Lublin => Senior PHP Developer <=
- 2024-11-25 Karlino => Konsultant wewnętrzny SAP (FI/CO) <=
- 2024-11-25 Warszawa => ECM Specialist / Consultant <=
- 2024-11-25 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2024-11-25 Warszawa => Senior Frontend Developer (React + React Native) <=
- 2024-11-25 Lublin => Inżynier Serwisu Sprzętu Medycznego <=