Мавзу Алгоритмлар тахлили




Download 0,73 Mb.
Pdf ko'rish
bet4/6
Sana22.11.2023
Hajmi0,73 Mb.
#103483
1   2   3   4   5   6
Bog'liq
Ma\'ruza 2. Algoritmlar tahlili

 
Asimptotik baholar 
Eng yaxshi, o'rtacha va eng yomon holatlar uchun ifodalarga ega bo'lgan holda, 
barcha uchta holat uchun biz murakkablikning yuqori va pastki baholarini 
aniqlashimiz lozim. Ushbu yuqori va pastki chegaralarni tasvirlash uchun bizga ba'zi 
belgilashlar kerak bo’ladi. 
Faraz qilaylik, ushbu algoritmning murakkabligi f(n) funksiya bilan 
ifodalangan bo’lsin. 
O-yuqori bahosi (yuqori chegara funktsiyasi) 
Bu baholar berilgan funksiya uchun aniq yuqori chegarani beradi. Ular odatda 
f(n) = O(g(n)) shaklida yoziladi. Bu n ning yetarlicha katta qiymatlari uchun f(n) ning 
yuqori chegarasi g(n) ga teng ekanligini anglatadi. 
O yuqori baho f(
𝑛) funksiyaning qandaydir 𝑛 > 𝑛
0
dan boshlab, o’zgarmas 
ko’paytuvchigacha boʻlgan aniqlikda g(𝑛) dan oshmasligini talab qiladi. 
Masalan, f(n)= n
4
+ 100n
2
+ 10n + 50 – algoritmning berilgan murakkabligi 
bo'lsa, n
4
– g(n) ga teng bo’ladi. Bu shuni anglatadiki, g(n) n ning yetarlicha katta 
qiymatlari uchun f(n) ning maksimal o'sish tezligini beradi. 
Keling, O yuqori bahoning matematik ta'rifini beraylik. 
O(g(n)) = {f(n): 
∃ c va n
0
musbat konstantalar mavjudki, barcha n > n

uchun 0 
≤ f(n) ≤ cg(n) bo’ladi}. g(n) – f(n) uchun asimptotik aniq yuqori baho bo’ladi. 
O(g(
𝒏)) yozuvi o’zgarmas ko’paytuvchigacha aniqlikda 𝑔(𝑛) funksiyasidan tez 
oʻsmaydigan funksiyalar sinfini bildiradi, shuning uchun baʼzan 𝑔(𝑛) funksiyani 𝑓(𝑛) 
(мажорирует) kattalashtiradi, deyishadi. 
Maqsadimiz berilgan f(n) algoritmining o‘sish tezligidan kam bo‘lmagan eng 
kichik o‘sish tezligi g(n) ni olishdir. 



Biz odatda n ning kichik qiymatlarini rad etamiz. Bu shuni anglatadiki, n ning 
kichik qiymatlarida o'sish tezligi unchalik muhim emas. 
Ifodadagi n
0
nuqta altoritmning ushbu nuqtadan boshlab o'sish tezligini 
qarashimiz kerak bo'lgan nuqta. O’sish tezligi n
0
dan kichik bo'lganda boshqacha 
bo'lishi mumkin. n
0
– ushbu funksiyaning chegarasi deyiladi. 
O(g(n)) - oʻsish tartibi g(n) dan kichik yoki bir xil boʻlgan funksiyalar toʻplami. 
Masalan: 
O(n
2
) tarkibiga O(1), O(n), O(nlogn) va boshqalar kiradi. 
Algoritmlarni faqat n ning katta qiymatlari uchun tahlil qilish kerak. Bu shuni 
anglatadiki, n
0
dan kichik bo’lgan xollarni hisobga olmasligimiz mumkin. 
Big-O uchun misollar: 
1-misol. f(n) = 3n + 8 uchun yuqori chegarani toping 
Yechish: hamma n ≥ 8 uchun 3n + 8 ≤ 4n 
∴ 3n + 8 = O(n) bo’lib, c = 4 va n
0
= 8 ga teng bo’ladi; 
2-misol. f(n) = n
2
+ 1 uchun yuqori chegarani toping 
Yechish: hamma n ≥ 1 uchun n
2
+ 1 ≤ 2n
2
∴ n
2
+ 1 = O (n
2
) bo’lib, c = 2 va n
0
= 1 ga teng bo’ladi; 
3-misol. f(n) = n
4
+ 100n
2
+ 50 uchun yuqori chegarani toping. 
Yechish: hamma n ≥ 11 uchun n
4
+ 100n
2
+ 50 ≤ 2n
4
∴ n
4
+ 100n
2
+ 50 = O(n
4
) bo’lib, c = 2 va n
0
= 11 teng bo’ladi. 
O'ziga xoslik yo'qmi? 
Asimptotik baholarni isbotlashda n
0
va c uchun yagona qiymatlar to'plami 
mavjud emas. 
Masalan, 100n + 5 = O(n) ifodani ko’rib chiqaylik. 
Bu funksiya uchun n
0
va c ning bir nechta qiymatlari mavjud. 
1-yechim: 100n + 5 ≤ 100n + n = 101n ≤ 101n, bu xolda barcha n ≥ 5 uchun n
0
= 5 va c = 101 bo’lgan qiymatlar yechim hisoblanadi. 
2-yechim: 100n + 5 ≤ 100n + 5n = 105n ≤ 105n, bu xolda barcha n > 1 uchun n
0
= 1 va c = 105 bo’lgan qiymatlar yechim hisoblanadi. 

Download 0,73 Mb.
1   2   3   4   5   6




Download 0,73 Mb.
Pdf ko'rish

Bosh sahifa
Aloqalar

    Bosh sahifa



Мавзу Алгоритмлар тахлили

Download 0,73 Mb.
Pdf ko'rish