А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.
Do'stlaringiz bilan baham: |