Циклды редукция алгоритмі.

Дәріс №13. Прима тізбектелген алгоритм

Мақсаты:параллельді каскадты қосу алгоритмі қарастыру

Сандық сараптамаларда рекурсияларды қолдану мысалдары өте көп: САТЖ Гаусстың шығару әдісімен және кез-келген итерациялық әдістермен шешу; кәдімгі дифференциалдық теңдеулерді интегралдаудың көптеген әдістері; дербес туындылардағы дифференциалдық теңдеулерді шешудің көптеген әдістері.

Өз мағынасында, рекурсия есептеу тізбегін береді және сондықтанда параллельдеу үшін белгілі бір мәселе болып табылады.

Бірінші ретті сызықтық рекурсияларды қарастырумен шектелейік:

Циклды редукция алгоритмі. - student2.ru

мұндағы Циклды редукция алгоритмі. - student2.ru – берілген тұрақтылар. X0=a1=0 деп есептейік (егер Циклды редукция алгоритмі. - student2.ru ).қабылдасақ, бұған жеңіл қол жеткізуге болады). Бұл болжамдағы рекурсияның ақпараттық байланыстары (1), 1 суретте көрсетілген түрге ие болады.

Циклды редукция алгоритмі. - student2.ru

1-сурет. Рескурсияның ақпараттық байланысының құрылымы (1): n=4.

Параллельді каскадты қосу алгоритмі.

Циклды редукция алгоритмі. - student2.ru деп есептейік. Бұл жағдайда (1) формула Циклды редукция алгоритмі. - student2.ru сандарды қосу алгоритмінің рекурентті жазбасы болып табылады.

n=8 жағдайы үшін параллельді каскадты қосу алгоритмінің ақпараттық байланыстар құрылымы 2 суретте көрсетілген.

Каскадты қосу алгорритмі xnшамасымен қатар барлық Циклды редукция алгоритмі. - student2.ru аралық шамаларды алуға мүмкіндік береді. Егер тек қана xn шамасының мәні керек болса, онда 2 суретте көрсетілген қосындыларды ғана орындаған жеткілікті. Бұл жағдайда алгоритм екі еселеу алгоритміне айналады (2 параграфты қараңыз).

ЯПФ каскадты қосу алгоритмінің биіктігі Циклды редукция алгоритмі. - student2.ru –ке тең, ал ЯПФ әрбір қабаттарының ені Циклды редукция алгоритмі. - student2.ru –ке тең екендігін байқау оңай. Алгоритм операциялардың жалпы санын Циклды редукция алгоритмі. - student2.ru тен x-ке дейін көбейтетіндігін атап өтейік (тағы да).

Циклды редукция алгоритмі.

Циклды редукция алгоритмі. - student2.ru 1, Циклды редукция алгоритмі. - student2.ru 1,..., Циклды редукция алгоритмі. - student2.ru 1.деп есептейік.

Циклдық редукция алгоритмінің негізгі идеясы Циклды редукция алгоритмі. - student2.ru , Циклды редукция алгоритмі. - student2.ru рекурсия мүшелерінің арасында қатынас алынатындай етіп, рекурсияның сыбайлас мүшелерін біріктіру болып табылады. Мұның нәтижесінде, бастапқы рекурсияның әрбір екінші Циклды редукция алгоритмі. - student2.ru ,айнымалысын байланыстыратын, мүшелерінің саны Циклды редукция алгоритмі. - student2.ru жаңа сызықтық рекурсия пайда болады. Бұл жаңа рекурсияда тағы да сыбайлас мүшелерді біріктірейік – бастапқы рекурсияның әрбір төртінші x айнымалысын байланыстыратын, мүшелерінің саны Циклды редукция алгоритмі. - student2.ru рекурсияны аламыз, осылайша ары қарай. Циклды редукция алгоритмі. - student2.ru редукциясынан кейін Циклды редукция алгоритмі. - student2.ru -ті есептейтін формуланы аламыз.

Сипатталған сұлбаны нақтырақ қарастырамыз.

1 редукция. (1) көрініп тұрғандай Циклды редукция алгоритмі. - student2.ru .. Бұл амалды (1) қойып, бастапқы тізбектің салалас мүшелерінің арасындағы бірінші ретті сызықтық рекурсияны аламыз.

Циклды редукция алгоритмі. - student2.ru

мұндағы Циклды редукция алгоритмі. - student2.ru = Циклды редукция алгоритмі. - student2.ru , Циклды редукция алгоритмі. - student2.ru = Циклды редукция алгоритмі. - student2.ru + Циклды редукция алгоритмі. - student2.ru .

2 редукция. Сондай сұлба бойынша алдыңғы рекурсиядан бастапқы рекурсияның әрбір төртінші мүшесінің арасындағы бірінші ретті келесі сызықтық рекурсияны аламыз.

мұндағы Циклды редукция алгоритмі. - student2.ru

Циклды редукция алгоритмі. - student2.ru Циклды редукция алгоритмі. - student2.ru .

k редукциясы. Сондай сұлба бойынша алдыңғы рекурсиядан бірінші ретті келесі сызықтық рекурсияны аламыз.

Циклды редукция алгоритмі. - student2.ru (2)

Циклды редукция алгоритмі. - student2.ru Циклды редукция алгоритмі. - student2.ru Циклды редукция алгоритмі. - student2.ru

Егер (2) формуладағы индекстер[1,n] диапазонынан шығып кететін болса, онда (2) рекурсияның сәйкес компонентін нөлге тең ету қажет.

n редукциясы. Қарастырылған сұлба бойынша (n-1) рекурсиясынан аламыз.

Циклды редукция алгоритмі. - student2.ru

Осылайша, циклдық редукция алгоритміне сәйкес, рекурсияны есептеу Циклды редукция алгоритмі. - student2.ru Циклды редукция алгоритмі. - student2.ru Циклды редукция алгоритмі. - student2.ru Циклды редукция алгоритмі. - student2.ru коэффициенттерін есептеуге келіп тіреледі. Бұл коэффициенттерді есептеу параллельдік каскадтық қосудың көмегімен жүргізіледі. (3,4 суреттерді қараңыз).

Наши рекомендации