Reja: Samaradorlik ko’rsatkichlari


Download 0.52 Mb.
bet1/2
Sana02.06.2020
Hajmi0.52 Mb.
#113219
  1   2
Bog'liq
AL-2 (2)


2-m: Algoritmlarni tahlil qilish asoslari.

REJA:


1.Samaradorlik ko’rsatkichlari.

2.Hisoblash qobiliyati

3.Algoritmlarni asimptotik tartiblari .

4. Polinomial vaqt samaradorlik ko'rsatkichi sifatida.

Algoritmlarni tahlil qilishning asosiy vazifasi kirish ma'lumotlari hajmining oshib borishi bilan resurslarga bo'lgan talabni (vaqt va xotira xarajatlari) o'lchash usullarini aniqlashdir. Shundan so'ng, o'sish sur'ati qonuniyatlarini tavsiflash uchun zarur bo'lgan matematik mexanizm ishlab chiqiladi. Kirish ma'lumotlari hajmini oshirish bilan turli xil funktsiyalar; "bitta funktsiya boshqasiga qaraganda tezroq o'sadi" iborasi nimani anglatishini aniqlab olishga yordam beradi. Ba'zi hollarda, yaxshi bajarilish vaqtiga erishish yanada murakkab ma'lumotlar tuzilmalaridan foydalanishga bog'liq va bo'lim oxirida biz bunday ma'lumotlar strukturasining juda foydali misolini ko'rib chiqamiz: ustuvor navbatlar va ularni uyum(kucha, heap) asosida amalga oshirish.

Asosiy mavzu - hisoblash muammolarining samarali algoritmlarini izlash. Ushbu umumiylik darajasida kompyuterni hisoblashning butun sohasi ushbu mavzu bilan bog'liq bo'lib tuyuladi; bizning yondashuvimiz boshqalardan qanday farq qiladi? Algoritmlarni ishlab chiqishda umumiy mavzular va loyihalash tamoyillarini aniqlashga harakat qilamiz. Bizni samarali algoritmlarni loyihalashning asosiy usullarini minimal ma'lumot bilan namoyish etuvchi paradigmatik masalalar va usullar qiziqtiradi.

Hisoblash qobiliyati. Ko'plab muammolarda uchraydigan yana bir xususiyat - bu ularning asosan diskretligi. Ko'plab muammolarda uchraydigan yana bir xususiyat-bu ularning asosiy ajralib turishi. Boshqacha qilib aytganda, bu shunday masalalarki, ularda yechim kombinatorial variantlarning keng to'plamidan qidirib topiladi; maqsad aniq belgilangan shartlarni qanoatlantiradigan echimni samarali topishdir.

Hisoblash samaradorligi tushunchasini aniqlash uchun, biz birinchi navbatda ish vaqtining samaradorligiga e'tibor qaratamiz: algoritmlar tez ishlashi kerak. Ammo algoritmlar boshqa resursrlardan foydalanish nuqtai nazaridan ham samarali bo'lishi mumkinligini tushunish muhimdir. Xususan, algoritm tomonidan ishlatilinadigan xotira miqdori ham samaradorlikning muhim jixati bo'lishi mumkin.

Algoritm samaradorligi. (1)T: algoritm samarali deb ataladi agar real kirish ma'lumotlari uchun u tezkor amalga oshirilsa.

(2)T: algoritm samarali deb ataladi agar u sifatli bajarilishni “to’liq qidirish”(полнiy перебор)ga nisbatan tezroq ta'minlasa.

"To'liq qidirish" usuliga qaraganda ancha yaxshi ishlashni ta'minlaydigan algoritmlar, deyarli har doim qimmatli evristik g'oyani o'z ichiga oladi, buning natijasida ushbu yaxshilanishga erishiladi; Bundan tashqari, ular ko'rib chiqilayotgan masalaning ichki tuzilishi va hisoblash qobiliyati haqida foydali ma'lumotlarni taqdim etadilar.

Polinomial vaqt samaradorlik ko'rsatkichi sifatida. Tabiiy kombinatorial masalalarda qidirish vaqti, kirish ma'lumotlari N hajmiga nisbatan eksponensional o'sishga moyildir; agar o'lcham bittaga ko'paysa, unda imkoniyatlar xajmi bir necha marta ko'payadi. Bunday masalalarni yechish uchun yaxshi algoritm yanada samarali miqyoslash modeliga ega bo'lishi kerak; kirish ma'lumotlarining kattalashib borishi bilan o’zgarmas ko’paytuvchiga(aytaylik, ikki baravar) oshishi bilan algoritmning bajarilish vaqti ham qandaydir o’zgarmas S ko’paytuvchiga ko'payishi kerak.

Matematik nuqtai nazardan ushbu masshtablash modelini quyidagicha shakllantirish mumkin. Aytaylik, algoritm quyidagi xususiyatga ega: c> 0 va d> 0 absolyut konstantalar mavjudki, har qanday N xajmli kirish ma'lumotlari to'plami uchun, bajarilish vaqti cN^d sondagi eng sodda operatsiyalar soni bilan chegaralanadi. Boshqacha qilib aytganda, bajarilish vaqti N^d ga proportsionallikdan ko’p emas. Qanday bo'lmasin, ba'zi bir c va d lar uchun bajarilish vaqti ushbu chegaradan oshmaganda, algoritm polinomial bajarilish vaqtini ta'minlaydi deymiz yoki u polinomial vaqtga ega bo'lgan algoritmlar toifasiga kiradi. polinomial vaqtga ega har qanday chegara yuqoridagi masshtablashga ega bo’ladi.



(3)T: Agar algoritm polinomial bajarilish vaqtiga ega bo'lsa, u samarali deb ataladi.

Lekin, polinomial vaqt d ning katta qiymatlarida yaxshi natija bermasligi mumkin, masalan d>=100 holatda bu son juda katta bo’ladi, natijada polinomial bajarilish vaqti kattalashib ketadi. Algoritm ishlayveradi. Bu xolda N^d faqat chegara vazifasini o’taydi.

Polinomial vaqtga ega bo'lgan algoritmlar mavjud bo'lgan masalalar uchun bu algoritmlar deyarli har doim n, n*log n, n^2 yoki n^3 kabi o'rtacha o'sish sur'ati bilan ko'paytuvchilarga mutanosib ravishda ishlaydi. Va aksincha, Polinomial vaqtga ega bo'lmagan algoritmli masalalar uchun bajarilish vaqti juda ham kattalashib ketadi, uni baholash noma'lum bo’ladi, odatda bunday masalalarni yechish juda murakkab bo'lib chiqadi. Umuman olganda, bunday baholashlar ba’zi masalalarda darajaning yoki koeffitsientlarning kattaligi sababli yaxshi natija bermaydi, algoritm yaxshi bo’lsa ham. Ajablanarlisi shuki, aksariyat hollarda polinomial vaqtni matematik aniqlash
algoritmlarning samaradorligi va real hayotdagi masalalarni hal qilish bo'yicha kuzatishlarimiz bilan mos keladi. Bunday masalalarni polinomial yechish mumkin bo’lgan masalalar deyiladi. Demak, 3-ta’rifni ma’lum ma’noda talabga javob beruvchi ta’rif desak boladi. U xolda Polinomial vaqtga ega bo'lmagan algoritmlarni qayta ko’rib chiqish kerak.

Polinomial vaqtga ega bo'lgan algoritmlarni ishlab chiqish nima ucgun zarurligini quyidagi jadval ma’lumotlarini tahlil qilib bilish mumkin.


Algoritmlarning ishlash vaqtlari

n=

n

n*logn

n^2

n^3

1,5^n

2^n

n!

10

<1 s

<1 s

<1 s

<1 s

<1 s

<1 s

<4 s

30

<1 s

<1 s

<1 s

<1 s

<1 s

18min

10^25y

50

<1s

<1s

<1s

<1s

11min

36y

Juda kop

100

<1s

<1s

<1s

<1s

12892y

10^17y

----

1000

<1s

<1s

<1s

18min

---

----

----

10000

<1s

<1s

2min

12kun

--

---

---

100000

<1s

<2s

3soat

32y

---

---

---

1 mln.

<1s

20s

12kun

31710y

---

---

---

Algoritmning samaradorligi bu algoritmni qo’llash uchun qancha kuch talab qilinishini yoki uning qiymati qanchaligini bildiradi. Bunday qiymat har xil mezonlar bilan o’lchanishi mumkin. Bu erda ulardan ikkitasini: vaqt va fazo miqdorinini samaradorlik mezonlari sifatida olinadi. Bunda vaqt mezoni fazodan muhimroq hisoblanadi, shuning uchun samaradorlik asosan ma’lumotlarnu qayta ishlashga ketgan vaqtga nisbatan olinadi. Samaradorlikni baholash uchun mantiqiy birliklar, ya’ni fayl yoki massivning o’lchami n va qayta ishlash uchun ketgan vaqt miqdori t olinadi.

Agar n o’lchov va t vaqt orasida t1=c*n chiziqli bog’liqlik bo’lsa, u holda xajmni bir necha marta, hususan 5 marta, oshirish natijasida, ularni qayta ishlashga ketgan vaqt ham 5 marta oshadi ya’ni n2=5*n bo’lsa, t2=5*t o’rinli bo’ladi. Yoki, agar bog’liqlik t1=logn bo’lsa, u holda n 2 marta oshirilsa vaqt sarfi bor yo’g’i bir birlikka ortadi, ya’ni t2=log2*n=t1+1 bo’ladi. n va t ni bog’liqligini ifodalovchi funksiya odatda murakkab bo’ladi va bunday funksiyani hisoblash katta hajmdagi ma’lumotlarni qayta ishlashda juda muhim hisoblanadi. Hosil qilingan f-ya berilgan funksiyaning tarkibiy samaradorligini bildiradi.Shunga qaramay bu yaqinlashish funksiyaga yaqin hisoblanadi, va katta hajmdagi ma’lumotlar uchun originalga juda yaqin bo’ladi. Samaradorlikning bu o’lchovi assimtotik yaqinlashuvchi o’lchov deyiladi va u samaradorlikni aniqlovchi funksiya ma’lum xadlarini hisobga olganda yoki samaradorlikni aniq hisoblas qiyin, yoki mumkin bo’lmaganda qo’llaniladi.



  • Quyidagi misolni ko’ramiz:

  • (1)

  • n ning kichik qiymatlarida ohirgi had 1000 ning funksiya qiymatini hosil bolishidagi ulushu qolganlariga nisbatan katta hisoblanadi. n=10 bo’lganda 2-xad 100n va ohirgi 1000 xadlar teng bo’ladi va boshqalarga nisbatan funksiya qiymatiga bir xil ta’sir ko’rsatadi. Bu xadlarni funksiya xar bir xadining uning qiymatiga qanday ta’sir qilishining miqyosi n ning har hil qiymatlari uchun quyidagi jadvalda keltirilgan.

Hadlarning funksiya qiymatiga ta’sir qilish miqyosi.



Download 0.52 Mb.

Do'stlaringiz bilan baham:
  1   2




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