Algoritm tushunchasi. Axborot texnologiyalarining moddiy bazasi kompyuterlardan iborat. Axborot texnologiyalari doirasidagi ma'lumotlarni qayta ishlashning butun tsiklini quyidagi diagramma bilan tavsiflash mumkin:
ma'lumot → kompyuter → ma'lumot.
Bunday holda, qoida tariqasida, kompyuter ba'zi bir kirish ma'lumotlarini qayta ishlaydi va yangi, chiqarilgan ma'lumotlarni ishlab chiqaradi. Aynan shu ma'lumotni qayta ishlash algoritmdan foydalanishni yoki uni yaratishni o'z ichiga oladi, degan taxmin asosida ushbu algoritm chiqarilgan ma'lumotlarning berilgan savollarga muvofiqligini ta'minlaydi. Biroq, ko'p hollarda, foydalanuvchi algoritmlarning qaysi biri qo'llanilishiga befarq emas. Nazariya nuqtai nazaridan beg'ubor algoritm muammoni adekvat echimini ta'minlamaganida yoki izlanayotgan echimning vaqtinchalik dolzarbligi sharoitida mavjud resurslardan foydalanib topib bo'lmaydigan bo'lsa, ko'plab misollarni keltirish mumkin. Bularning barchasi algoritmlarning vaqtinchalik va fazoviy xususiyatlarini aniqlash uchun bilim va ko'nikmalarga ehtiyojni keltirib chiqaradi, bundan oldin ular mashina algoritmi, ya'ni ma'lum bir dastur shaklida, muammoning echimini beradi.
"Algoritm" atamasi xorazmiy olimi Al Xorazmiy Muhammad ben-Muso (milodiy 825) nomidan kelib chiqqan. Algoritm tushunchasi 20-asr boshlarida D.Gilbert, K.Gödel, S.Kleen, A.Cherch, E.Post, A.Turing, N.Viyener, A.A.Markov kabi olimlarning mehnati tufayli shakllangan.
Kompyuter oʼz hisoblash kuchliligi bilan birga tezkor, ozoda, aniq va shu bilan birga “butunlay befahm bajaruvchi” hisoblanadi. Turli masalalarni yechishda undan foydalanganimizda kompyuter biror nimani oʼzi oʼylab topadi degan fikrimiz xato, kompьyuter ishlashi uchun aniq va toʼliq instruktsiya kerak boʼladi. Bu yerda biz algoritmni aniqlash toʼplamidan biriga kelyapmiz.
АLGORITM – soʼnggi natijani hosil qilish uchun kerakli boʼlgan, biror harakatni amalga oshiruvchi qat’iy oʼrnatilgan tartib. Bu gʼalati tuyulishi mumkin, lekin biz real hayotda algoritmga har doim duch kelamiz. Omadli telefon qoʼngʼirogʼi uchun kerakli boʼlgan amallar tartibini oʼz ichiga oluvchi telefon-avtomatdan foydalanish instruktsiyasi. Maishiy texnikadan foydalanish qoidalari va boshqalar qisqa, tushunarli shaklda bizga u yoki bu holda nima qilishimiz kerakligini xabar qilib, harakatlarimiz algoritmini belgilab beradi.
Tarixchi matematiklarning taʼkidlashicha, (H. Zemanek ishlariga qarang, Lecture Notes in Computer Sciece 122 (1981), 1-81), «algoritm» soʼzi buyuk ajdodimiz Аbu Аbdulloh Muhammad ibn Muso al-Xorazmiy ismidan kelib chiqqan, uning mashhur “Kitob al-jabr va al-muqobola” traktasi esa yana bir mashhur “algebra” atamasining vujudga kelishiga asos boʼldi.
Kompyuter ishi jarayonida boshqariladigan instruktsiyalarni ishlab chiqarishning asosi algoritm hisoblanadi. Biroq, biz algoritmdan oʼz yozuvlarimizni toʼgʼridan-toʼgʼri kompyuterga oʼtkaza olmaymiz, chunki ular kompьyuter tushunmaydigan, faqatgina insonlar tushunadigan tilda yozilgan. Kompyuter algoritmni tushunishi uchun u mashina tiliga oʼgiriladi, aynan shunday mashina tilida yozilgan algoritmlar dastur yoki kompyuter dasturi deb ataladi. Quyida biz bu tushunchani joriy kurs asosida yotuvchi algoritm tushunchasi yordamida aniqlashtirishga harakat qilamiz. Shuni taʼkidlash kerakki, adabiyotda umumeʼtirof etilgan algoritmni aniqlash tushunchasi yoʼq. Kompyuter texnologiyalari tushunchasiga adekvat boʼlgan algoritm ifodasini beramiz:
Аlgoritm – bu masala yechimini hosil qilish uchun boshlangʼich informatsiyada amalga oshirish kerak boʼlgan aniq belgilangan amallar ketma-ketligi.Algoritmning intuitiv, formal va kibernetik ta’riflari Adabiyotlarda algoritmni "sub'ektning maqsadli harakati" sifatida tavsiflovchi bir qator ta'riflar berilgan. Bunday holda, sub'ekt tushunchasi ham individual, ham odamlar guruhini nazarda tutadi. Ushbu ta'rif odatda intuitiv deb nomlanadi. Maqsadga erishishga asoslangan qoidalar yoki retseptlar to'plami algoritm ijrochisining evristik qadamlarini inkor etmaydi. Algoritm tushunchasi algoritmni bajaruvchisi qandaydir qurilma, masalan, kompyuter yoki hozir aytilganidek, kompyuter degan taxmin asosida butunlay boshqacha bo'lib chiqadi.
Algoritm kompyuterni ishlash vaqtida boshqaradigan ko'rsatmalar yoki retseptlarni ishlab chiqish uchun asosdir. Biroq, biz ko'rsatmalarni kompyuterga uzatish uchun algoritmdan to'g'ridan-to'g'ri foydalana olmaymiz, chunki u tabiiy inson tilida yozilgan bo'lib, u mashina uchun tushunarsizdir. Kompyuter algoritmni tushunishi uchun u mashina tushunadigan tilga tarjima qilingan va aynan shunday algoritm mashina tilida yozilgan bo'lib, uni dastur deb atashadi.
Keling, kompyuter texnologiyasi tushunchasiga mos keladigan algoritmning ta'rifini beraylik: Algoritm - bu muammoning echimini topish uchun dastlabki ma'lumotlarda bajarilishi kerak bo'lgan aniq belgilangan harakatlar ketma-ketligi.
Mexanik ijrochiga imkon beradigan va evristik qadamlarni inkor etadigan algoritm ta'rifi kibernetik algoritm ta'rifi deb ataladi.
Algoritm kontseptsiyasini rasmiylashtirish
Ta'rif 1. Algoritm cheklangan yakuniy ketma-ketligini ko'rsatadigan retsept mumkin bo'lgan sinf uchun umumiy bo'lgan muammoni hal qilish uchun elementar operatsiyalar dastlabki ma'lumotlar.
D - masalaning dastlabki ma'lumotlarining domeni (to'plami), R esa mumkin bo'lgan natijalar to'plami bo'lsin, keyin algoritm 𝐃 → 𝐑 xaritasini amalga oshiradi. Ushbu displey to'liq bo'lmasligi mumkin.
Agar natija faqat ba'zi 𝑑 ∈ 𝐷 uchun olingan bo'lsa, algoritm qisman algoritm va agar barcha 𝑑 ∈ 𝐷 uchun to'g'ri natija olsa to'liq algoritm deyiladi.
Ta'rif 2. Algoritm - bu cheklangan vaqt ichida muammoni echish natijasiga erishish uchun ijrochining harakatlar tartibini tavsiflovchi aniq ko'rsatmalar to'plamidir.
Algoritmning aniq yoki bilvosita turli xil ta'riflari bir qator talablarni keltirib chiqaradi:
Algoritmda cheklangan miqdordagi elementar bajariladigan retseptlar bo'lishi kerak, ya'ni. yozuvning aniqligi talabini qondirish;
algoritm muammoni hal qilishda cheklangan sonli bosqichlarni bajarishi kerak, ya'ni. harakatlarning aniqligi talabini qondirish;
Barcha qabul qilinadigan kirish ma'lumotlari uchun algoritm bir xil bo'lishi kerak, ya'ni. universallik talabini qondirish;
• Algoritm qo'yilgan vazifaga nisbatan to'g'ri echimga olib kelishi kerak; to'g'rilik talabini qondirish.
Аlgoritmlar xossalari hamda ularning turlari
Ixtiyoriy algoritm muhim xossalarga ega:
•Аlgoritmning aniqligi – har bir qadam bajarilishining bir qiymatliligi.
•Diskretliligi – masalani yechish jarayonini bajarilish vaqtida kompьyuter yoki insonga qiyinchilik tugʼdirmasligi uchun bir necha sodda bosqichlar (bajarilish qadamlari)ga boʼlish.
•Ommaviylik – belgilangan masalalar sinfini yechish uchun algoritmning foydaliligi.
•Natijaviylik – oxirgi qadamlarda dastlabki maʼlumotlarga ega boʼlgan kerakli natijani olishga imkon beruvchi algoritmning harakatlar yakuni.
Amalda quyidagi algoritm turlari ajratiladi: chiziqli - har qanday shartlarni tekshirmasdan, harakatlar ketma-ket bajariladigan algoritm. Tarmoqlanuvchi - tayinlangan shartlarning o'zgarishiga qarab retsept bo'yicha variantlarni ta'minlovchi algoritm. Takrorlanuvchi - individual operatsiyalar yoki operatsiyalar guruhlari bir necha marta bajariladigan algoritm.
Algoritmni yozib olish usullari: og'zaki, formulali, jadvalli, grafik