3-misol. «Svetofor» dan foydalanish algoritmi.
svetofor chirog’iga qaralsin;
qizil chiroq yongan bo’lsa, to’xtalsin;
sariq chiroq yongan bo’lsa, yurishga yoki to’xtashga tayyorlansin;
yashil chiroq yongan bo’lsa, yurilsin.
Bu misollardan bitta umumiy tomonini kuzatish mumkin. Bu algoritmdan qanday maqsad ko’zlanganligini bilmasdan turib ham, uni muvaffaqiyat bilan bajarish mumkin. Demak, hayotda uchraydigan murakkab jarayonlarni boshqarishni yoki amalga oshirishni robotlar, kompyuterlar va boshqa mashinalar zimmasiga yuklashimiz mumkin ekan. Bu esa algoritmning juda muhim afzalligidir. Shunga ko’ra, har bir inson o’z oldiga qo’yilgan masalaning yechish algoritmini to’g’ri tuzib bera olsa, u o’z aqliy va jismoniy mehnatini yengillashtiribgina qolmay, bu ishlarni avtomatik tarzda bajarishni mashinalarga topshirishi ham mumkin.
Algoritmni ishlab chiqishda masalaning yechish jarayonini shunday formallashtirish kerakki, bu jarayon yyetarli darajadagi oddiy qoidalarning chekli ketma-ketligi ko’rinishiga keltirilsin. Masalan, biz ko’pincha ko’p xonali sonlar ustida asosiy arifmetik amallarni bajarishda vatandoshimiz Al-Xorazmiyning IX asrda yaratgan qoidalarini ishlatamiz. "Algoritm" atamasi ham ana shu buyuk matematik nomidan kelib chiqadi.
Shuning uchun algoritm deb, masala yechimini tasvirlashning ixtiyoriy tasviri olinmasdan, balki faqatgina ma’lum xossalarni bajara oladiganlari qabul qilinadi. Ko’rsatmalarning mazmuni, kelish tartibi, qo’llanish doirasi va olinadigan natijadan kelib chiqib, algoritmning eng asosiy xossalari bilan tanishamiz.
Algoritmning asosiy xossalari. Diskretlilik. Bu xossaning mazmuni-algoritmlarni doimo chekli qadamlardan iborat qilib bo’laklash imkoniyati mavjudligidadir. Boshqacha aytganda, uni chekli sondagi oddiy ko’rsatmalar ketma-ketligi shaklida ifodalash mumkin. Algoritmning bu xossasi yuqorida keltirilgan hamma misollarda yaqqol ko’rinib turibdi. Agar kuzatilayotgan jarayonni chekli qadamlardan iborat qilib bo’laklay olmasak, u holda uni algoritm deb bo’lmaydi.
Tushunarlilik. Algoritmning ijrochisi hamma vaqt inson bo’lavermaydi. Choy damlashni yoki boshqa ishlarni bajarishni faqat odamga emas, balki robotga ham buyurish mumkin. Ijrochiga tavsiya etilayotgan ko’rsatmalar uning uchun tushunarli bo’lishi kerak, aks holda ijrochi oddiygina amalni ham bajara olmaydi. Bundan tashqari, ijrochi har qanday amalni bajara olmasligi ham mumkin.
Har bir ijrochining bajara olishi mumkin bo’lgan ko’rsatmalar yoki buyruqlar birikmasi mavjud bo’lib, u ijrochining ko’rsatmalar tizimi deyiladi. Shuning uchun ijrochi uchun berilayotgan har bir ko’rsatma ijrochining ko’rsatmalar tizimiga tegishli bo’lishi kerak.
Ko’rsatmalarni ijrochining ko’rsatmalar tizimiga tegishli bo’ladigan qilib ifodalay olishimiz muhim ahamiyatga ega. Masalan, pastki sinfning a’lochi o’quvchisi «son kvadratga oshirilsin» degan ko’rsatmani tushunmasligi natijasida bajara olmaydi. Lekin «son o’zini o’ziga ko’paytirilsin» shaklidagi ko’rsatmani bemalol bajaradi. Sababi, u ko’rsatma mazmunidan ko’paytirish amalini bajarish kerakligini anglaydi.
3. Aniqlik. Ijrochiga berilayotgan ko’rsatmalar aniq mazmunda bo’lishi kerak. Chunki, ko’rsatmadagi noaniqliklar mo’ljaldagi maqsadga erishishga olib kelmaydi.
Odam uchun tushunarli bo’lgan «3-4 marta silkitilsin», «5-10 daqiqa qizdirilsin», «1-2 qoshiq solinsin», «tenglamalardan biri yechilsin» kabi noaniq ko’rsatmalar robot yoki kompyuterni qiyin ahvolga solib qo’yadi. Bundan tashqari, ko’rsatmalarning qaysi ketma-ketlikda bajarilishi ham muhim ahamiyatga ega. Demak, ko’rsatmalar aniq berilishi va faqat algoritmda ko’rsatilgan tartibda bajarilishi shart ekan.
4. Ommaviylik. Har bir algoritm mazmuniga ko’ra bir turdagi masalalarning barchasi uchun ham o’rinli bo’lishi kerak. Ya’ni, masaladagi boshlang’ich ma’lumotlar qanday bo’lishidan qat’iy nazar, algoritm shu xildagi har qanday masalani yechishga yaroqlidir. Masalan, ikki oddiy kasrning umumiy maxrajini topish algoritmi, kasrlarni turlicha o’zgartirib berilganda ham, ularning umumiy maxrajlarini aniqlab beraveradi.
5. Natijaviylik. Har bir algoritm chekli sondagi qadamlardan keyin, albatta natija berishi shart. Bajariladigan amallar ko’p bo’lsa ham baribir natijaga olib kelishi kerak. Chekli qadamdan keyin qo’yilgan masala yechimga ega emasligini aniqlash ham natija hisoblanadi. Agar ko’rilayotgan jarayon cheksiz davom etib natija bermasa, uni algoritm deb ayta olmaymiz.
Algoritmning tavsiflash usullari Algoritmning berilish usullari xilma-xildir. Hozir ularning eng ko’p uchraydiganlari bilan tanishamiz. Algoritmlarni quyidagi ko’rinishlarda tasvirlash mumkin: