Mavzu: Murakkablikning Theta Ө notation bo’yicha bahosini aniqlash. Mummolar & yechimlar



Download 10,8 Kb.
Sana20.07.2022
Hajmi10,8 Kb.
#828819
Bog'liq
Mustaqil Talim


Mavzu: Murakkablikning Theta – Ө notation bo’yicha
bahosini aniqlash. Mummolar & yechimlar

Algoritmlar tahlili | 3-to‘plam (Asimptotik belgilar)

Biz asemptotik tahlil, eng yomoni, o'rtacha va eng yaxshi algoritmlarning eng yaxshi holatlarini muhokama qildik. Asimptotik tahlilning asosiy g'oyasi - mashinaga xos konstantalarga bog'liq bo'lmagan va algoritmlarni amalga oshirishni va taqqoslash uchun dasturlar tomonidan vaqtni talab qilmaydigan algoritmlarning samaradorligi o'lchoviga ega bo'lishdir. Asimptotik belgilar asimptotik tahlil uchun algoritmlarning vaqt murakkabligini ifodalovchi matematik vositalardir. Quyidagi 3 ta asimptotik belgilar asosan algoritmlarning vaqt murakkabligini ifodalash uchun ishlatiladi.



1) Θ Belgisi: Teta belgisi funksiyani yuqoridan va pastdan chegaralaydi, shuning uchun u aniq asimptotik harakatni belgilaydi.


Ifodaning Teta belgisini olishning oddiy usuli - past tartibli atamalarni tashlab, yetakchi konstantalarni e'tiborsiz qoldirishdir. Misol uchun, quyidagi ifodani ko'rib chiqing.
3n3 + 6n2 + 6000 = D(n3)
Pastki tartibli shartlarni tashlab qo'yish har doim yaxshi, chunki har doim bir raqam (n) bo'ladi, undan so'ng Θ(n3) ishtirok etgan konstantalardan qat'i nazar, D(n2) dan yuqori qiymatlarga ega bo'ladi.
Berilgan g(n) funksiya uchun biz D(g(n)) funksiyalar to‘plamini belgilaymiz.

D(g(n)) = {f(n): c1, c2 va n0 musbat konstantalar mavjud, shundayki 0 <= c1*g(n) <= f(n) <= c2*g(n) hamma uchun n >= n0}

Yuqoridagi ta'rif shuni anglatadiki, agar f(n) g(n) ning tetasi bo'lsa, f(n) qiymati har doim n ning katta qiymatlari uchun c1*g(n) va c2*g(n) oralig'ida bo'ladi (n >=). n0). Teta ta'rifi, shuningdek, f(n) n0 dan katta n qiymatlari uchun manfiy bo'lmasligini talab qiladi.
Misollar:

{ 100 , log (2000) , 10^4 } D(1) ga tegishli

{ (n/4) , (2n+3) , (n/100 + log(n)) } D(n) ga tegishli

{ (n^2+n) , (2n^2) , (n^2+log(n))} D( n^2) ga tegishli

D aniq chegaralarni beradi.

2) Big O belgisi: Katta O belgisi algoritmning yuqori chegarasini belgilaydi, u funksiyani faqat yuqoridan chegaralaydi. Misol uchun, Insertion Sort holatini ko'rib chiqing. Bu eng yaxshi holatda chiziqli vaqtni, eng yomon holatda esa kvadratik vaqtni oladi. Ishonch bilan aytishimiz mumkinki, Insertion sortning vaqt murakkabligi O(n^2). E'tibor bering, O(n^2) chiziqli vaqtni ham qamrab oladi.


Agar biz Insertion turining vaqt murakkabligini ifodalash uchun t belgisidan foydalansak, eng yaxshi va eng yomon holatlar uchun ikkita bayonotdan foydalanishimiz kerak:
1. Insertion Sortning eng yomon vaqt murakkabligi t(n^2).
2. Insertion Sortning eng yaxshi vaqt murakkabligi t(n).

Big O belgisi faqat algoritmning vaqt murakkabligining yuqori chegarasiga ega bo'lsa foydali bo'ladi. Ko'pincha biz algoritmga qarab yuqori chegarani osongina topamiz.

O(g(n)) = { f(n): c va n0 musbat konstantalar mavjud, shundayki 0 <= f(n) <= c*g(n) barcha n >= n0}



Misollar:



{ 100 , log (2000) , 10^4 } O(1) ga tegishli

U { (n/4) , (2n+3) , (n/100 + log(n)) } O (n) ga tegishli

U { (n^2+n) , (2n^2) , (n^2+log(n))} O(n^2) ga tegishli

Bu yerda U birlashishni bildiradi , biz buni shunday yozishimiz mumkin, chunki O aniq yoki yuqori chegaralarni beradi.

3) Ō belgisi: Big O belgisi funksiyaning asimptotik yuqori chegarasini ta'minlaganidek, Ō belgisi ham asimptotik pastki chegarani beradi.
Algoritmning vaqt murakkabligi bo'yicha pastki chegaraga ega bo'lsak, Ō belgisi foydali bo'lishi mumkin. Oldingi postda muhokama qilinganidek, algoritmning eng yaxshi ishlashi odatda foydali emas, Omega yozuvi uchtasi orasida eng kam qo'llaniladigan belgidir.

Berilgan g(n) funksiya uchun funksiyalar to‘plamini Ō(g(n)) bilan belgilaymiz.

GEEKSFORGEEKS

Algoritmlar tahlili | 3-to‘plam (Asimptotik belgilar)

Biz asemptotik tahlil, eng yomoni, o'rtacha va eng yaxshi algoritmlarning eng yaxshi holatlarini muhokama qildik. Asimptotik tahlilning asosiy g'oyasi - mashinaga xos konstantalarga bog'liq bo'lmagan va algoritmlarni amalga oshirishni va taqqoslash uchun dasturlar tomonidan vaqtni talab qilmaydigan algoritmlarning samaradorligi o'lchoviga ega bo'lishdir. Asimptotik belgilar asimptotik tahlil uchun algoritmlarning vaqt murakkabligini ifodalovchi matematik vositalardir. Quyidagi 3 ta asimptotik belgilar asosan algoritmlarning vaqt murakkabligini ifodalash uchun ishlatiladi.



1) Θ Belgisi: Teta belgisi funksiyani yuqoridan va pastdan chegaralaydi, shuning uchun u aniq asimptotik harakatni belgilaydi.


Ifodaning Teta belgisini olishning oddiy usuli - past tartibli atamalarni tashlab, yetakchi konstantalarni e'tiborsiz qoldirishdir. Misol uchun, quyidagi ifodani ko'rib chiqing.
3n3 + 6n2 + 6000 = D(n3)
Pastki tartibli shartlarni tashlab qo'yish har doim yaxshi, chunki har doim bir raqam (n) bo'ladi, undan so'ng Θ(n3) ishtirok etgan konstantalardan qat'i nazar, D(n2) dan yuqori qiymatlarga ega bo'ladi.
Berilgan g(n) funksiya uchun biz D(g(n)) funksiyalar to‘plamini belgilaymiz.

D(g(n)) = {f(n): c1, c2 va n0 musbat konstantalar mavjud, shundayki 0 <= c1*g(n) <= f(n) <= c2*g(n) hamma uchun n >= n0}

Yuqoridagi ta'rif shuni anglatadiki, agar f(n) g(n) ning tetasi bo'lsa, f(n) qiymati har doim n ning katta qiymatlari uchun c1*g(n) va c2*g(n) oralig'ida bo'ladi (n >=). n0). Teta ta'rifi, shuningdek, f(n) n0 dan katta n qiymatlari uchun manfiy bo'lmasligini talab qiladi.



Misollar:



{ 100 , log (2000) , 10^4 } D(1) ga tegishli

{ (n/4) , (2n+3) , (n/100 + log(n)) } D(n) ga tegishli

{ (n^2+n) , (2n^2) , (n^2+log(n))} D( n^2) ga tegishli

D aniq chegaralarni beradi.


2) Big O belgisi: Katta O belgisi algoritmning yuqori chegarasini belgilaydi, u funksiyani faqat yuqoridan chegaralaydi. Misol uchun, Insertion Sort holatini ko'rib chiqing. Bu eng yaxshi holatda chiziqli vaqtni, eng yomon holatda esa kvadratik vaqtni oladi. Ishonch bilan aytishimiz mumkinki, Insertion sortning vaqt murakkabligi O(n^2). E'tibor bering, O(n^2) chiziqli vaqtni ham qamrab oladi.
Agar biz Insertion turining vaqt murakkabligini ifodalash uchun t belgisidan foydalansak, eng yaxshi va eng yomon holatlar uchun ikkita bayonotdan foydalanishimiz kerak:
1. Insertion Sortning eng yomon vaqt murakkabligi t(n^2).
2. Insertion Sortning eng yaxshi vaqt murakkabligi t(n).

Big O belgisi faqat algoritmning vaqt murakkabligining yuqori chegarasiga ega bo'lsa foydali bo'ladi. Ko'pincha biz algoritmga qarab yuqori chegarani osongina topamiz.

O(g(n)) = { f(n): c va n0 musbat konstantalar mavjud, shundayki 0 <= f(n) <= c*g(n) barcha n >= n0}



Misollar:



{ 100 , log (2000) , 10^4 } O(1) ga tegishli

U { (n/4) , (2n+3) , (n/100 + log(n)) } O (n) ga tegishli

U { (n^2+n) , (2n^2) , (n^2+log(n))} O(n^2) ga tegishli

Bu yerda U birlashishni bildiradi , biz buni shunday yozishimiz mumkin, chunki O aniq yoki yuqori chegaralarni beradi.

3) Ō belgisi: Big O belgisi funksiyaning asimptotik yuqori chegarasini ta'minlaganidek, Ō belgisi ham asimptotik pastki chegarani beradi.
Algoritmning vaqt murakkabligi bo'yicha pastki chegaraga ega bo'lsak, Ō belgisi foydali bo'lishi mumkin. Oldingi postda muhokama qilinganidek, algoritmning eng yaxshi ishlashi odatda foydali emas, Omega yozuvi uchtasi orasida eng kam qo'llaniladigan belgidir.

Berilgan g(n) funksiya uchun funksiyalar to‘plamini Ō(g(n)) bilan belgilaymiz.

ũ (g(n)) = {f(n): c va n0 musbat konstantalar mavjud, shundayki 0 <= c*g(n) <= f(n) barcha n >= n0} bo'ladi.

Keling, bu erda bir xil Insertion tartiblash misolini ko'rib chiqaylik. Insertion Sort ning vaqt murakkabligi Ō(n) sifatida yozilishi mumkin, lekin qo'shish tartibi haqida unchalik foydali ma'lumot emas, chunki bizni odatda eng yomon va ba'zan o'rtacha holatda qiziqtiramiz.


Misollar:

{ (n^2+n) , (2n^2) , (n^2+log(n))} Ō(n^2) ga tegishli

U { (n/4) , (2n+3) , (n/100 + log(n)) } O (n) ga tegishli

U { 100 , log (2000) , 10^4 } Ō(1) ga tegishli

Bu yerda U birlashmani bildiradi, buni shunday yozishimiz mumkin, chunki Oh aniq yoki pastki chegaralarni beradi
Asimptotik belgilarning xususiyatlari:
Ushbu uchta belgining ta'rifini ko'rib chiqqanimizdan so'ng, keling, ushbu belgilarning ba'zi muhim xususiyatlarini muhokama qilaylik.

1. Umumiy xususiyatlar:

Agar f(n) O(g(n)) bo'lsa, a*f(n) ham O(g(n)) bo'ladi; bu yerda a doimiy.

Misol: f(n) = 2n²+5 O(n²)


u holda 7*f(n) = 7(2n²+5) = 14n²+35 ham O(n²) boʻladi.

Xuddi shunday, bu xususiyat ham T, ham Ō belgilarini qondiradi.


Aytishimiz mumkin


Agar f(n) t(g(n)) bo'lsa, a*f(n) ham D(g(n)) bo'ladi; bu yerda a doimiy.
Agar f(n) Ō (g(n)) bo'lsa, a*f(n) ham Ō (g(n)) bo'ladi; bu yerda a doimiy.

2. Transitiv xususiyatlar:

Agar f(n) O(g(n)) va g(n) O(h(n)) bolsa f(n) = O(h(n)) .

Misol: agar f(n) = n, g(n) = n² va h(n)=n³


n O(n²) va n² O(n³)
u holda n - O(n³)

Xuddi shunday, bu xususiyat ham T, ham Ō belgilarini qondiradi.

Aytishimiz mumkin
Agar f(n) t(g(n)) va g(n) t(h(n)) bo‘lsa, f(n) = D(h(n)) .
Agar f(n) Ō (g(n)) va g(n) Ō (h(n)) bo'lsa, f(n) = Ō (h(n)) bo'ladi.
3. Refleksiv xususiyatlar:

Refleksiv xususiyatlar tranzitivdan keyin tushunish har doim oson.

Agar f(n) berilgan boʻlsa, f(n) O(f(n)) boʻladi. Chunki f(n) ning MAKSIMAL QIYMATI f(n) O'ZI bo'ladi!

Demak, x = f(n) va y = O(f(n) har doim refleksiv munosabatda bo'ladi.

Misol: f(n) = n² ; O(n²) yaʼni O(f(n))

Xuddi shunday, bu xususiyat ham T, ham Ō belgilarini qondiradi.

Buni aytishimiz mumkin:

Agar f(n) berilgan bo‘lsa, f(n) t(f(n)) bo‘ladi.

Agar f(n) berilgan bo'lsa, f(n) Ō (f(n)) bo'ladi.

4. Simmetrik xossalar:


Agar f(n) t(g(n)) bo'lsa, g(n) t(f(n)) bo'ladi.


Misol: f(n) = n² va g(n) = n²


u holda f(n) = D(n²) va g(n) = D(n²)

Bu xususiyat faqat t belgisi uchun javob beradi.

5. Simmetrik xossalarni ko‘chirish:

Agar f(n) O(g(n)) bo'lsa, g(n) Ō (f(n)) bo'ladi.


Misol: f(n) = n , g(n) = n²


u holda n O(n²) va n² Ō (n) ga teng.

Bu xususiyat faqat O va Ō belgilarini qanoatlantiradi.


6. Yana bir qancha xususiyatlar:

1.) Agar f(n) = O(g(n)) va f(n) = ũ(g(n)) bo'lsa, f(n) = D(g(n))

2.) Agar f(n) = O(g(n)) va d(n)=O(e(n)) boʻlsa.
u holda f(n) + d(n) = O( max( g(n), e(n) ))
Misol: f(n) = n ya'ni O(n)
d(n) = n², ya'ni O(n²)
u holda f(n) + d(n) = n + n², ya'ni O(n²)

3.) Agar f(n)=O(g(n)) va d(n)=O(e(n)) boʻlsa.


keyin f(n) * d(n) = O( g(n) * e(n) )
Misol: f(n) = n ya'ni O(n)
d(n) = n², ya'ni O(n²)
u holda f(n) * d(n) = n * n² = n³ ya'ni O(n³)

___________________

Eslatma: Agar f(n) = O(g(n)) bo'lsa, g(n) = Ō(f(n))

Mashq:


Quyidagi bayonotlardan qaysi biri to'g'ri/to'g'ri?

1. Tezkor saralashning vaqt murakkabligi t(n^2)

2. Tezkor saralashning vaqt murakkabligi O(n^2)

3. Istalgan ikkita f(n) va g(n) funksiyalar uchun f(n) = D(g(n)) bo‘ladi, agar f(n) = O(g(n)) va f(n) bo‘lsa. ) = Ō(g(n)).

4. Barcha kompyuter algoritmlarining vaqt murakkabligi Ō(1) shaklida yozilishi mumkin.

Muhim havolalar:

Kichik o va kichik omega deb nomlangan yana ikkita belgi mavjud. Kichik o qat'iy yuqori chegarani ta'minlaydi (tenglik sharti Katta O'dan olib tashlanadi) va kichik omega qat'iy pastki chegarani ta'minlaydi (katta omegadan tenglik sharti olib tashlanadi)

Algoritmlar tahlili | 4-to'plam (Looplar tahlili)

Algoritm tahlili bo'yicha so'nggi maqolalar.

Adabiyotlar:


Lec 1 | MIT (Algoritmlarga kirish)

Ushbu maqola Abhay Rathi tomonidan taqdim etilgan. Agar biror narsa noto'g'ri bo'lsa yoki yuqorida muhokama qilingan mavzu haqida ko'proq ma'lumot almashishni istasangiz, sharhlaringizni yozing.
Download 10,8 Kb.

Do'stlaringiz bilan baham:




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish