21 – Amaliy mashg’ulot


Download 0.96 Mb.
bet7/10
Sana24.12.2022
Hajmi0.96 Mb.
#1062100
1   2   3   4   5   6   7   8   9   10
Bog'liq
21dan 30 (1)

27 - Amaliy mashg’ulot.


Mavzu: Jarayonlardagi operatsiyalar sonini kamaytirish.
Ishdan maqsad: Jarayonlardagi operatsiyalar sonini kamaytirish.
Nazariy qism
Massivning ko'pgina elementlari yoki hattoki ularning hammasi bitta natijaga tushirilgan operatorlarni tushirish tushunchasi bir vaqtda va parallel dasturlash bilan chambarchas bog'liqdir. Xususan, ularning operatsiyalari assotsiativ va kommunikativ xususiyatlaridan kelib chiqqan holda, ularning ish vaqtini keskin yaxshilash uchun bir vaqtda va bir vaqtda foydalanish mumkin.
Ushbu labda dasturiy ta'minot va ishlab chiquvchilar nuqtai nazaridan paralellik dizayni va pastga operatorni yozish bo'yicha nazariy yondashuvlar muhokama qilinadi. Bundan buyon ushbu bob shu kabi vazifalarni bajarishda ko'prikni yaratadi, ularni shu kabi usulda bir vaqtda qayta ishlash bilan hal qilish mumkin.
Ushbu lab quyidagi mavzularni qamrab oladi:
Informatika bo'yicha pastga tushuvchi operator tushunchasi
Pastga tushirish operatorlarining kommunikativ va assotsiativ xususiyatlaridan va bir vaqtda qayta ishlashning asosiy sabablaridan foydalanish mumkin
Operatorlarni tushirishga teng keladigan vazifalarni qanday aniqlash va bunday hollarda bir vaqtda ishlov berishni qanday ishlatish
Texnik talablar
Ushbu bob uchun zaruriy shartlar ro'yxati:
Python 3 allaqachon kompyuteringizda o'rnatilganligiga ishonch hosil qiling
GitHub-dan kerakli omborni tekshiring
Ushbu bob davomida biz Chapter07 deb nomlangan pastki jild bilan ishlaymiz
Harakatdagi quyidagi videolarni tekshiring
Operator tushunchasi
Tajribali dasturchi sifatida siz, shubhasiz, ba'zi bir massivdagi barcha sonlarning yig'indisi yoki hosilasi qiymatlarini hisoblashingiz yoki ba'zi bir qatordagi mantiqiy elementlarga AND operatorini qo'llash natijasini hisoblashingiz kerak bo'lgan holatlarda duch kelgansiz. bu qator. Elementlar to'plamini yoki massivini olib, faqat bitta qiymatni qaytarish uchun qandaydir hisob-kitoblarni amalga oshirganda, bu pastga operator (katlama) deb nomlanadi.
Pastga tushirish operatorlarining xususiyatlari
Matematika yoki informatika operatorlarining hammasi ham operatorlarni pasaytirayotgani yo'q. Darhaqiqat, ba'zi bir operatorlar ba'zi bir elementlarga bir qator elementlarni qisqartirishga qodir bo'lsa ham, uning pastga tushish operatori bo'lishiga hali ham kafolat yo'q. Agar quyidagi shartlarga javob beradigan bo'lsa, operator pastga tushadigan operator hisoblanadi:
Ushbu operator ma'lum bir massivni bitta skaler qiymatiga kamaytirishga qodir
Olingan yakuniy natijani (ma'lum bir skaler qiymat) qisman muammolarni yaratish va hisoblash yo'li bilan olish kerak
Birinchi shart "pastga operatsiyalar" iborasining ma'nosini belgilaydi, chunki kirish sifatida qabul qilingan massivning barcha elementlari birlashtirilib, bitta alohida qiymatga tushirilishi kerak. Biroq, ikkinchi shart, asosan, bir xillik va bir xillikni belgilaydi. Bu har qanday tushiruvchi operatorning haqiqiy hisobini kichikroq qisman hisoblashlarga bo'lish qobiliyatini talab qiladi.
Birinchidan, eng keng tarqalgan tushirish operatorlarini ko'rib chiqamiz: qo'shimcha. Masalan, ma'lum bir kirish qatorini ko'rib chiqing [1, 4, 8, 3, 2, 5] - ushbu massivning barcha elementlari yig'indisi:
1 + 4 + 8 + 3 + 2 + 5
= ((((1 + 4) + 8) + 3) + 2) + 5
= (((5 + 8) + 3) + 2) + 5
= ((13 + 3) + 2) + 5
= (16 + 2) + 5
= 18 + 5
= 23
Avvalgi hisob-kitobimizda biz qatorimizdagi raqamlarning qiymatlarini ularning ketma-ketligi bo'yicha ularning yig'indisi 23 ga qisqartirdik. Boshqacha qilib aytganda, biz massivning barcha elementlarini istisnosiz boshidan oxirigacha bosib o'tdik va ularni yig'indining joriy qiymatiga qo'shdik. Endi bilamizki, qo'shimcha kommunikativ va assotsiativ operator bo'lib, u quyidagilarni anglatadi: a + b = b + a va (a + b) + c = a + (b + c).
Shunday qilib, avvalgi hisob-kitobimizni yanada samarali tarzda, yig'indimizni kichik yig'indilarga bo'lish orqali amalga oshirishimiz mumkin:
1 + 4 + 8 + 3 + 2 + 5
= ((1 + 4) + (8 + 3)) + (2 + 5)
= (5 + 11) + 7
= 16 + 7
= 23
Ushbu usul pastga tushadigan operatorda bir xillik va o'xshashlikni (xususan, ko'p jarayonli) qo'llashning asosidir. Butun vazifani kichikroq kichik topshiriqlarga bo'lish orqali bir nechta jarayonlar bir vaqtning o'zida bunday kichik hisoblashlarni amalga oshirishi mumkin va umuman butun tizim yakuniy natijaga ancha tezroq erishishi mumkin.
Xuddi shu sababga ko'ra, aloqa va assotsiatsiyaning muhokama qilingan xususiyatlari biz ilgari muhokama qilgan ba'zi konvolyutsiya operatorlariga qo'yiladigan talablarning ekvivalenti sifatida qaraladi. Boshqacha qilib aytganda, bizning operator operatorimiz, agar u komutativ va assotsiatsiyalangan bo'lsa, bu qisqartirish operatori (konvolusiya operatori). Xususan, shunga o'xshash:
Aloqa: a ○ b = b ○ a
Birlashma: (a-b) ○ c = a a (b-c)
Bu erda a, b va c kirish massivining elementlari.
Shunday qilib, agar ma'lum bir operator konvolüsyon operatori bo'lsa, u kommunikativ va assotsiativ bo'lishi kerak va shuning uchun ba'zi bir katta vazifalarni kichikroq, boshqariladigan vazifalarga ajratishi kerak.



Download 0.96 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   10




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling