ALG#1

ALG#1



9.1. Programowanie typu „dziel-i-rządź’’ 231

9.1. Programowanie typu „dziel-i-rządź’’ 231

P = (AU+AV)(BU+B22)

* +, +

0 = (A2[+A21)Bn

+. *

R - Au(Bn-Bv)

* _

S = A22(B1X-BJ

* _

T = B22(An+Atl)

*, +

U = (A2rAu)(Bu+BJ

V = (Ar-Ar)(B2]+Bn)

mamy te cząstkowe wyniki, otrzymanie matrycy C może być dokonane rzez następujące podstawienia:

C„ = P + S- T+ V

(j, = R + T

+

C21 = O+S

+

c„ = r + R-o+u

+, +


Algorytm tej postaci wymaga 7 operacji * i dodatkowych 18 operacji + lub

Zauważmy, że algorytm Strassena przenosi w inteligentny sposób ciężar obliczeń z zawsze kosztownej operacji mnożenia'1 na znacznie szybsze dodawanie lub odejmowanie.

Rozkład rekurencyjny w algorytmie V. Strassena jest następujący:

N


T(n) = TI ^—j + aN2 eO(jV2,81)

(o jest pewną stałą).

Bliższe badania praktyczne tego algorytmu wykazały, że realny zysk powyższej metody daje się zauważyć w przypadku mnożenia matryc dla N rzędu kilkadziesiąt, ale w przypadku naprawdę dużych A'(np. powy'żej 100) efektywność algorytmu ponownie zbliża się do swojego iteracyjnego „konkurenta”. Fenomen ten zależy m.in. od sposobu zarządzania pamięcią w danym środowisku sprzętowym. Jeśli mamy do czynienia z komputerem osobistym o dużym „prywatnym" zasobie pamięci, to działanie algorytmu będzie zbliżone do przewidywań teoretycznych. Jednak w przypadku systemów rozproszonych, w których program „widząc” 4 Zwłaszcza jeśli elementami macierzy są liczby „rzeczywiste” (typ double w C++).


Wyszukiwarka

Podobne podstrony:
ALG 5 9.1. Programowanie typu „dziel-i-rządź’ 225 zastosowaniem omawianej metody warto wziąć do ręk
ALG 7 9.1. Programowanie typu „dziel-i-rzgdź 227 Przypadek ogólny: • jeśli tablica ma rozmiar > 2
ALG 9 9.1. Programowanie typu „dziel-i-rzgdź" 229 żoność obliczeniową obli metod. Jeśli w istoc
ALG#3 9.1. Programowanie typu „dziel-i-rządf 233 nięciami bitowymi1. Aby wyliczyć klasę tego algoryt
ALG 9 8.1. Algorytm typu brute-force 209 Jako wynik funkcji zwracana jest pozycja w tekście, od któr
ALG#9 9.3. Programowanie dynamiczne 239 Wbrew pozorom nic jest to paradoks technika programowania dy
ALG$1 9.3. Programowanie dynamiczne 241 9.3. Programowanie dynamiczne 241 Rys. 9- 2. Obliczanie wart
ALG3 1.3. Proces koncepcji programów 23 pisania jednej linii kodu. Pomijając już jednak tego typu s
IMG70 L Napisz program realizujący: l .Wczytanie z klawiatury "w*k" liczb (typu Inte
IMG74 pjO VL Napisz program realizujący: 1 .Wczytanie z klawiatury "w*k" liczb (typu Inte
IMG75 X. Napisz program realizujący: 1 .Wczytanie z klawiatury "w*kM liczb (typu Integer) jako
IMG77 V. Napisz program realizujący: 1 .Wczytanie z klawiatury "w*k" liczb (typu Integer)
IMG78 XI. Napisz program realizujący: 1. Wczytanie z klawiatury "w*k" liczb (typu Re
MaszynaW 33 68 4. Program ćwiczeń Opis rozkazu w postaci pliku typu RTX wygląda następująco: { Rozka
PROGRAM ROZWOJOWY I111 POLITECHNIKI WARSZAWSKIEJ Część aplikacyjna typu BF - część typu B z dodaną

więcej podobnych podstron