Izlash algoritimlari. Chiziqli izlash
Mavzu: Izlash algoritimlari. Chiziqli izlash. Reja: 1. Kirish. 2. Asosiy qisim. 1. Algoritm haqida tushuncha va algoritm turlari. 2. Izlash algoritmlari. 3. Chiziqli izlash algoritimi 3. Xulosa. 4. Foydalanilgan adabiyotlar ro’yxati.
Kirish Hozirgi kunda biror bir sohada ishni boshlash va uni boshqarishni kompyutersiz tasavvur qilish qiyin. XXI asr savodxon kishisi bo’lishi uchun kompyuter savodxon bo’lish, axborot texnologiyalarini puxta egallamoq lozim. Har bir mutaxassis, u qaysi sohada ishlashdan qat’iy nazar, o’z vazifasini zamon talabi darajasida bajarishi uchun axborotni ishlab chiqaruvchi vositalar va ularni ishlatish uslubiyotini bilish va ishlash ko’nikmalarga ega bo’lishi zarur. Inson hayoti davomida katta-kichik vazifalar yoki masa- laiarni hal etishni o‘z oldiga maqsad qilib qo‘yadi. Odatda, u o‘z maqsadiga erishishi uchun bajarishi lozim bo'lgan amal yoki ishlarini hayotiy tajribasi yoki o'zlashtirgan bilimiga asos- lanib ma'lum bir tartibga keltiradi. Bunga hayotimizdan xilma- xil misollar keltirish mumkin. Misol. Ko‘chadan o'tish maqsad qilib qo‘yilgan bo'lsin. IJ holda ko‘chadan o'tayotgan kishi hammamizga odatiy hol bo‘lib qolgan quyidagi harakatlarni bajarishi lozim bo'ladi: 1) chap tarafga qaralsin, agar transport vositasi yo‘q bo‘lsa, 2- bandga o'tilsin, aks holda 1-bandga o'tilsin; 2) o‘ng tarafga qaralsin, agar transport vositasi yo‘q bo‘lsa, 3- bandga o'tilsin, aks holda 1-bandga o'tilsin; 3) ko'chadan o'tilsin.
1. Algoritm haqida tushuncha va algoritm turlari. Algoritm deganda, biror maqsadga erishishga qaratilgan ijrochi bajarishi uchun mo'ljallangan ko‘rsatma (buyruq)laming aniq,tushunarli va chekli ketma-ketligi tushuniladi. Bu algoritm tushunchasining matematik ta'rifi bo’lmasa ham intuitiv ma'noda algoritmning mazmunini ochib beruvchi tavsifidir. Algoritmni intuitiv ma’noda bir necha misollarda izohlaymiz. Biror-bir narsani taqiqlovchi qoidalar algoritm bo’laolmaydi, masalan: «Chekish mumkin emas», «Begonalarning kirishi taqiqlanadi», «Kirish», «Chekish uchun joy» kabi birorbir narsaga ruxsat etuvchi qoidalar ham algoritmga xos emas. Lekin «Svetoforni yashil rangida o‘ting» juda sodda bo'lsa ham algoritmdir. Demak, yuqorida keltirilgan misollardagi ko‘r- satmalar ketma-ketligi algoritm va bu algoritmlarni bajarayotgan inson — ijrochi bo’lar ekan. Algoritm ijrochisi faqat insonmi, degan savol berishingiz tabiiy. Bu savolga javob quyidagicha: Algoritm ijrochisi — algoritmda ko'rsatilgan buyruq yoki ko‘rsatmalarni bajara oladigan abstrakt yoki real (texnik yoki biologik) sistema. Ijrochi bajara olishi uchun algoritm unga tushunarli bo’lishi lozim. Algoritm ijrochi tushunadigan tilgagina emas, balki uning bilim va malakasiga ham mos bo’lishi kerak. Aks holda ijrochi birorta ham ko'rsatmani bajara olmasligi mumkin. Ijrochi bajara olishi mumkin bo’lgan ko‘rsatma yoki buyruq- lar to‘plami ijrochining ko‘rsatmalar sistemasi deyiladi. Masalan, «16 sonidan kvadrat ildiz chiqarilsin» ko'rsatmasi 2-sinf o'quvchisining ko'rsatmalar sistemasiga tegishli bo’lmaydi, lekin 8-sinf o'quvchisining ko‘rsatmalar sistemasiga tegishli bo’ladi. Algoritm ijrochiga tushunarli bo’lishi uchun ijrochining imkoniyatlarini bilish lozim. Agar ijrochi inson bo’lsa, u holda algoritm insonning imkoniyatlaridan kelib chiqib tuzilishi kerak. Bunda ko‘zlangan maqsad va algoritmdan kelib chiqib inson tushunadigan til, insonning bilimi, hayotiy tajribasi, kasbiy malakasi, yoshi, qolaversa, jismoniy imkoniyatlari hisobga olinishi
zarur. Agar ijrochi texnik vosita (masalan, kompyuter, elektron soat, dastgohlar) bo’lsa, u holda algoritm shu texnik vositaning imkoniyatlaridan kelib chiqib tuzilishi kerak. Agar ijrochi koinpyuter hisoblanib, uning dasturiy ta‘mi- notida berilgan («Karra jadvalini hosil qilish») algoritmni bajara oladigan dastur (masalan, elektron jadvallardan birortasi ham) bo'lmasa, u holda hech qanday natijaga erishib bo'lmaydi. Demak, berilayotgan har qanday ko‘rsatma ijrochining ko‘r- satmalar sistemasidan olinishi, ya'ni ijrochi uni qanday bajarishni bilishi kerak ekan. Bu algoritmning tushunarlilik xossasini ifodalaydi. Shuni ta‘kidlash joizki, informatikada algoritmning asosiy ijrochisi sifatida kompyuter xizmat qiladi. Algoritmning tavsifida «biror maqsadga erishishga qaratilgan»jumlasi qo‘llanilgan. Bu maqsadni yuqorida keltirilgan misollarda ko'rishimiz mumkin: ko'chadan o‘tish, g'ishtlar sonini hisoblash, yig‘indini hisoblash. Bular algoritmning natijaviylik (cheklilik) xossasi bilan bog‘liq. Bu xossaning mazmuni shundan iboratki, har qanday algoritm ijrochi chekli qadamdan so‘ng oxir-oqibat ma’lum bir yechimga olib kelishi kerak. Shuni ta'kidlash joizki, algoritm awaldan ko‘zlangan maqsadga erishishga olib kelmasligi ham mumkin. Bunga ba'zan algoritmning noto‘g‘ri tuzilgani yoki boshqa xatolik sabab bo'lishi mumkin. Ikkinchi tomondan, qo'yilgan masala ijobiy yechimga ega bo‘lmasligi ham mumkin. Lekin salbiy natija ham natija deb qabul qilinadi. Demak, algoritm doimo chekli qadamdan iborat bo'lishi va biror natija berishi kerak ekan. Bu algoritmni diskretlilik (uzluklilik, alohidalik) xossasiga olib keladi. Algoritmda masalani yechish jarayoni alohida olingan sodda ko‘rsatmalar ketma- ketligini qadam-baqadam bajarishdan iborat boMishi kerak. Bu xossa misollardan yaqqol ko‘rinib turibdi. «Angliyada avto- mobilni yo’lning chap qismida haydang» qoidasi talabnoma bo’lgani bilan uzluksizlik xarakteriga ega va shuning uchun ham algoritm hisobiga qo'shilmaydi. E'tiboringizni yana bir narsaga qaratamiz. Keltirilgan misollarda quyidagi jumlalar bor:
«Ko‘chadan o‘tish» (ariqdan yoki dengizdan emas), “Eni 6 metr va bo‘yi 10 metr bo‘lgan joyni” (kilometr emas), «eni 12 santimetr va bo‘yi 25 santimetrli g‘ishtlar» (eni 5 santimetrva bo‘yi 100 santimetrli g'ishtlar emas). Bu jumlalar va qavs ichida yozilganlarni taqqoslasangiz, olinadigan natija shu jumlalardagi «qiymat»larga chambarchas bog'liq ekanligini tushunasiz. Agar bu «qiymatlar» o'zgarsa, masalan, qavs ichidagilarga, olinadigan natija umuman boshqacha bo'lishini ko'rish qiyin emas. Qiymat so‘zini qo‘shtirnoq ichiga olganimizga sabab, siz doimo qiymat so'zini faqat sonlar bilan bog'Iab o'rganib kelgansiz. Lekin, bilingki, biror masala uchun qiymat har xil turdagi obyektlar bo'lishi mumkin ekan. Demak, har bir algoritmning natijasi awaldan berilgan, ya’ni boshlang'ich qiymatiarga bog'liq bo'lar ekan. Boshlang'ich qiymatlar turli natijalarga olib kelishiga yana bir hayotiy misolga o'zingiz javob bera olasiz: sizga va mehmonga kelgan do‘stlarin- gizga pishiralayotgan palovga 20 gramm tuz solish o'rniga 200 gramm tuz solishsa natija bir xil bo’ladimi? Har bir algoritm — bu amallami belgilovchi qoida bo'lib, ulaming zanjiri natijasida biz boshlang‘ich qiymatlardan izlangan natijaga kelamiz. Bunday amallar zanjiri algoritmik jarayon, har bir amal — algoritmning qadami deb ataladi. Yana boshlang‘ich qiymat va natija bo'lishi mumkin bo'lgan narsalarning tahliliga qaytamiz. Ko'rdikki, har bir algoritm uchun boshlang’ich qiymatlaming turli hollarini tanlash mumkin. Masalan, g'ishtlar masalasi algoritmi uchun boshlangMch qiymatlarni tavsiflashda «santimeir» so‘zlarini «uzunlik o‘lchovlari» kabi tushunish mumkin. Bu holda hosil bo’ladigan natijaning miqdori o‘zgaradi, xolos. Ko‘p algoritmlar boshlang’ich qiymatlarning turli hollari uchun o‘z kuchini saqlab qoladi. Qo‘shish algoritmini ixtiyoriy natural sonlar jufti uchun qo’llash mumkin. Awal aytib o’tilgan algoritmlarning aniqlangan bu xossasi (ulami boshlang’ich qiymatlarning juda ko‘p sondagi hollariga qo’llash mumkinligi) ommaviylik deb ataladi. Algoritmlarning juda ko‘p xususiy hollarda ishlashi shunday o‘ta muhim va ahamiyatli xossa, shu sababli ancha vaqtgacha uni algoritmning ilmiy ta'rifiga kiritilishi shart deb hisoblandi. Bu ko'pgina qoidalarni fan sohasidan chiqarib tashlar (ularni «oz miqdordagi»