IZLASH ALGORITMLARI. KNUT VA MORE ALGORITMLARI
“IZLASH ALGORITMLARI. KNUT VA MORE ALGORITMLARI” Reja: Kirish Asosiy qism: 1. Algoritm tushuchasi 2. Izlash algoritmlari 3. Knut va More algoritmlari Xulosa Foydalanilgan adabiyotlar Foydalanilgan internet saytlar
KIRISH Avvalo algoritm tushunchasi IX asrlarda yashab ijod etgan buyuk bobokalonimiz Muhammad al-Xorazmiy nomi bilan uzviy bog’liqligini tushuntirish lozim. Algoritm so’zi al-Xorazmiyning arifmetikaga bag’ishlangan asarining dastlabki betidagi “Dixit Algoritmi” (“dediki al-Xorazmiy” ning lotincha ifodasi) degan jumlalardan kelib chiqqan. Shundan so’ng al-Xorazmiyning sanoq sistemasini takomillashtirishga qo’shgan hissasi, uning asarlari algoritm tushunchasining kiritilishiga sabab bo’lganligi ta’kidlab o’tiladi. Algoritm nima degan savolga, u asosiy tushuncha sifatida qabul qilinganligidan, uning faqat tavsifi beriladi, ya’ni biror maqsadga erishishga yoki qandaydir masalani yechishga qaratilgan ko’rsatmalarning (buyruqlarning) aniq, tushunarli, chekli hamda to’liq tizimi tushuniladi. Algoritm tushunchasi aniq shaklda XX-asr boshlarida D. Gilbert, K. Gyodel, S. Klin, A. Chyorch, E. Post, A. Tyuring, N. Viner, A. A. Markov singari olimlarning asarlari tufayli shakllandi. Eng qadimiy raqamli algoritmlardan biri Yevklid algoritmi (miloddan avvalgi III asr) deb hisoblanadi - ikki sonning eng katta umumiy bo'luvchisini topish. Algoritmlarning zamonaviy nazariyasi nemis matematikasi Kurt Gyodel (1931) asarlari bilan boshlandi, ular o'zlarining rasmiy, izchil aksiomalar tizimi doirasida yechib bo'lmaydigan muammolar mavjudligini ko'rsatdi. 2
Algoritm tushunchasi Algoritm – berilgan natijaga erishish uchun qilinishi kerak bo lgan aniqʻ ko rsatmalar ketma-ketligi. ʻ Algoritm keng ma noda faqat kompyuterga oid atama ʼ bo lmay, balki unda berilgan ko rsatmalarni bajara oluvchi har qanday narsaga ʻ ʻ oiddir. Algoritm — ma lum bir turga oid masalalarni yechishda ishlatiladigan ʼ amallarning muayyan tartibda bajarilishi haqidagi aniq qoida (dastur). Kibernetika va matematikaning asosiy tushunchalaridan biri. Algoritm so’zi Al – Xorazmiy nomining lotincha talaffuzidan kelib chiqqan bo’lib. Muxammad Muso Al-Xorazmiyning X asrda yaratilgan qo’llanmasida keltirilgan o’nlik sanoq sistemasida arifmetik amallarni bajarish qoidalari soddaligi tufayli yevropada ham o’nlik sanoq sistemasi qo’llanishiga turtki bo’ldi. Bu qoidalar tarjimasida xar bir qoida “ Al-Xorazmiy aytadiki ” deb boshlangan va bora-bora talaffuz tufayli algoritm tarzida ifodalanib kelgan. Hozirgi paytda algoritm sifatida biror masalani ishlash yoki biror ishni bajarish uchun qilinishi kerak bo’lgan tartiblangan chekli sondagi aniq bir qiymatli ko’rsatmalar ketma-ketligi tushiniladi. Algoritm tushunchasi keng ma’noda tahlil qilish mumkin. Masalan, biror manzildan boshqa manzilga borish uchun shahar transportidan foydalanib qanday borish mumkin, degan savolga biz ma’lum algoritm tavsiya qilishimiz mumkin. Pazandalik kitobida, masalan, palovni pishirish qoidasi keltiriladi. Bu ham o’ziga xos algoritm hisoblashlar ishlanadigan masala algoritmini biz hisoblash algoritmi deymiz. Biz asosan hisoblash algoritmlari haqida so’z yuritamiz. Algoritmlarga xos bo’lgan belgi va talablarni sanab o’tamiz. Har qanday algoritm quyidagi asosiy xususiyatlarga ega bo’lishi kerak: 3
Determinantlik sifati Berilgan boshlangich qiymatlarda bir qiymatli javob olinishi; Ommaviylik sifati Ma’lum turdagi masalalar uchun turli boshlangich qiymatlarda yechim olish mumkin bo’lishi; Diskretlilik sifati Algoritmni EHM(Elektron Hisoblash Mashinalari) yoki inson tomonidan bajarilishi mumkinligi shubxasiz bo’lgan ayrim-ayrim sodda bosqichlarga bo’lish mumkinligi. Natijaviylik sifati Har qanday boshlangich qiymatlarda ham javobning mavjudligi, bunda «bu holda yechim yo’q» singari axborot ham algoritmning ishlash natijasi deb qabul qilinadi; Keltirilgan sifatlardan kelib chiqqan xolda algoritmni ifodalash va bajarish qoidalari xaqida so’z yuritish mumkin. Amaliyotda algoritmni ifodalashning uchta asosiy usullari fodalaniladi. Bular matnli ko’rinishi, sxematik(grafik) ko’rinishi, biror algoritmik tildagi (dasturiy) ifodasi. Algoritm so’zlar, matematik formulalar, algoritmik tillar, geometrik tarhlar (sxemalar), dasturlash tillari va boshqalar yordamida tavsiflanadi. Algoritmning so’zlar yordamida berilishiga, tavsiflanishiga misol tariqasida liftda kerakli qavatga ko’tarilish algoritmini keltirish mumkin. Bu quyidagicha ketma- ketlikda bajariladi: 1. Liftga kiring. 2. Kerakli-qavat tartib soniga mos tugmachani bosing. 3. Liftni harakatga keltiring. 4. Lift to’xtashini kuting. 5. Lift eshigi ochilgandan keyin undan chiqing. Algoritm matematik formulalar yordamida tavsiflanganda har bir qadam aniq formulalar yordamida yoziladi. Misol tariqasida 4
kvadrat tenglama yechimlari bo’lmish x1 x2 ni aniqlash algoritmini ko’rib chiqaylik. 1. a, b, с koeffitsiyentlar qiymatlari berilsin. 2. D = b2—4ac diskriminant hisoblansin. 3. D < 0 bo’lsa, tenglamaning haqiqiy yechimlari yo’q. Faqat haqiqiy ildizlar izlanayotgan bo’lsa, masala hal bo’ldi. 4. D = 0 bo’lsa, tenglama ikkita bir-biriga teng, ya’ni karrali yechimga ega bo’ladi va ular formulalar bilan hi-soblanadi. Masala hal bo’ldi. 5. D > 0 bo’lsa, tenglama ikkita haqiqiy yechimga ega, ular formulalar bilan hisoblanadi. Ya’ni masala hal bo’ldi. Shunday qilib, kvadrat tenglamaning haqiqiy yechim-larini aniqlashda: 1. «Tenglamaning haqiqiy yechimlari yo’q» matm 2. «Tenglama karrali yechimga ega, x=x2 matni va x1, x2 ning qiymatlari; 3. «Tenglama ikkita yechimga ega» matni, xx va x2 ning qiymatlari natijalar bo’ladi. Algoritmik tillar — algoritmni bir ma’noli tavsiflash imkonini beradigan belgilar va qoidalar majmuidir. Har qanday tillardagidek ular ham o’z alifbosi, sintaksisi va semantikasi bilan aniqlanadi. Bizga o’rta maktabdan ma’lum bo’lgan ( akademik A. P. Yershov rahbarligida yaratilgan ) EHMsiz algoritmlashga mo’ljallangan algoritmik tizim algoritmik tilning namunasidir. Algoritmik tilga misol sifatida yana algoritmlarni belgili operatorlar tizimi shaklida tavsiflashni ham ko’rsatish mumkin. Bu tillar odatdagi tilga o’xshash bo’lib, EHMda bevosita bajarishga mo’ljallanmagan. Ulardan maqsad algoritmni bir xil shaklda va tushunarli qilib, tahlil qilishga oson qilib yozishdir. Algoritmlarni geometrik tarhlar yordamida tavsiflash ko’rgazmali va, shu sababli tushunarliroq bo’lgani uchun ko’p qo’llaniladi. Bunda har bir o’ziga xos operatsiya alohida geometrik shakl (blok) bilan tavsiflanadi va ularning bajarilish tartibi, ular orasidagi ma’lumotlar uzatilishi va yo’nalishi bloklarni bir-biri bilan ko’rsatkichli to’g’ri chiziqlar yordamida tutashtirib ko’rsatiladi. Algoritmning geometrik tarhiga uning bloktarhi (blok-sxemasi) deyiladi. Bloklarga mos geometrik shakllar, ularning o’lchamlari va ular yordamida bloktarhlarni chizish qoidalari davlat standartlarida berilgan. 1-jadvalda eng ko’p ishlatiladigan bloklar shakli va ularning ma’nosi keltirilgan. Bu davlat standartlariga ko’ra bloklarni tutashtiruvchi to’g’ri chiziq yozuv tekisligiga vertikal yoki gorizontal holatda bo’lishi kerak, ya’ni ularni og’ma chiziqlar bilan tutashtirish taqiqlanadi. Bloklarni bajarish tabiiy yozish tartibida bo’lsa, ya’ni yuqoridan pastga yoki chapdan o’ngga bo’lsa, tutashtiruvchi chiziq ko’rsatkichsiz bo’lishi mumkin. 5