1.1. Algoritmning ta’rifi.
Algoritmlarning turli ta’riflari mavjud. Rasmiy ta’riflardan biri bo’yicha algoritm bu qo’yilgan masalani bir xil yechilishiga olib keluvchi aniq harakatlarning ketma-ketligi. Bu tushunchadan algoritmning quyidagi xossalari kelib chiqadi:
Diskretlilik – ya’ni aniqlanayotgan jarayonni qadamba-qadam ko’rinishi.
Ommaviylik – algoritm o’xshash masalalar turkumini yechishi kerak.
Tushunarlilik – algoritmda beriladigan ko’rsatmalar foydalanuvchiga tushunarli bo’lib, uning talablariga javob berishi kerak.
Aniqlilik – algoritmda ma’lum tartibda amallarni bajarish nazarda tutilishi kerak va bajaruvchiga joriy qadam tugatilishi bilan qaysi qadam keyingi
bo’lib bajarilishi aniq ko’rsatilishi kerak.
Algoritmlar rasmiy ravishda bajariladi, bu degani bajaruvchi bajarilayotgan amallarni mazmunini anglash shart emas.Algoritm tuzish jarayoniga algoritmlashtirish deyiladi.
Algoritm tuzish jarayonida nazariy va amaliy nuqtai nazardan algoritmlash, dasturlash va EHM larni qo’llash bilan bog’liq bo’lgan bilimlar kerak. Asosiy maqsad bu masalani qo’yish, masalaning yechish algoritmini tuzish, algoritmi mashina dasturi ko’rinishida amalga oshirish va algoritmni samaradorligini ko’rsatish muammolarini o’rganish. Bu jarayonlar algoritmni to’liq yaratish tushunchasiga olib keladi va quyidagi bosqichlarni belgilaydi:
Masalaning qo’yilishi.
Modelni yaratish.
Algoritmni ishlab chiqish.
Algoritm to’g’riligini tekshirish.
Algoritmni amalga oshirish.
Algoritmni va ularning murakkabligini tahlil qilish.
Dasturni tekshirish.
Hujjatlashtirish.
Masala qo’yilishi
Masalani yechishdan oldin, uni berilishini aniq shakllantirib olish zarur. Bu jarayon to’g’ri savollarni aniqlash bo’lib, savollar quyidagicha bo’lishi mumkin:
1.1. Dastlabki berilgan masala shartlarida hamma iboralar tushunarlimi?
1.2. Nima berilgan?
1.3. Nimani topish kerak?
1.4. Yechimni qanday ta’riflash kerak?
1.5. Qaysi berilganlar yetarli emas va hammasi kerakmi?
1.6. Qanaqa mumkinliklar qabul qilingan?
Albatta, bulardan tashqari boshqa savollarni ham ishlatish mumkin, yoki ayrim savollarni bir necha bor takror ishlatishga to’g’ri keladi.
Modelni yaratish
Akademik A. N. Tixonov fikri bo’yicha matematik modellashtirish dunyoni bilish va o’rganishda kuchli qurollardan (vositalardan) biridir.
Uning ta’rifi bo’yicha matematik model tashqi dunyoning xodisalar turkumini matematik belgilar yordamida taxminiy tavsifi.
Xodisani tavsiflash uchun uning muhim xususiyatlarini, qonuniyliklarini, ichki aloqalarini, ayrim xossalarning ahamiyatini aniqlash zarur.Eng muhim faktorlari aniqlanganda, ahamiyatlari kamroq bo’lganlarini hisobdan chiqarish mumkin.Umuman, modelni tanlash fandan ko’ra, ko’proq san’at ishi deb hisoblanadi, yahshi tuzilgan modellarni o’rganish esa – modellashtirishda tajriba orttirishning eng yahshi usuli. Modelni yaratishda quyidagi savollarni aniqlash maqsadga muvofiq:
2.1. Masalani yechish uchun qaysi matematik struktura ko’proq mos keladi?
2.2. O’xshash masalaning yechimi bormi?
2.3. Masalaning barcha muhim ma’lumotlari matematik ob’yektlar orqali tavsiflanadimi?
2.4. Izlanayotgan natija biron bir matematik o’lchamga mos keladimi?
2.5. Modelning ob’yektlari orasidagi bog’lanishlar aniqlanganmi?
2.6. Tuzilgan model bilan ishlash qulaymi?
Algoritmni ishlab chiqish
Algoritmlarni yaratish ijobiy ish, shuning uchun ixtiyoriy zarur algoritmlarni tuzish imkonini beradigan bir umumiy usul mavjud emas. Lekin algoritmlarni ishlab chiqishni asoslangan oddiy sxemalarini beradigan ko’pgina algoritmlashtirish nazariyalari bor. Bunday sxemalar va yangi algoritmlarni paydo qilishning o’rtasida qattai bog’liqlik kuzatiladi. Tez uchraydigan va ko’p foydalaniladigan usullarni quyidagicha ajratib olish mumkin:
Algoritmlarni konstruksiyalash.Bu usulda yangi algoritm mavjud algoritmlardan tarkibiy qismlar sifatida foydalanib, bir-biriga moslab bir butunlik hosil qilish yo’li bilan ishlab chiqiladi.
Algoritmlarni ekvivalent qayta ishlash. Ikki algoritm ekvivalent hisoblanishi uchun quyidagi shartlar bajarilish kerak:
Bittasi uchun mumkin bo’lgan dastlabki berilganlar varianti, ikkinchisi uchun ham mumkin bo’lishi kerak.
Bir algoritmni qandaydir dastlabki ma’lumotga qo’llanilishi, ikkinchi algoritmni ham shu berilganga qo’llanilishiga kafolat beradi.
Bir xil dastlabki berilgan ma’lumot uchun ikkala algoritm ham bir xil natija berishi. Lekin bu algoritmni ikki xil shakllarini ekvivalent deb
nomlash noto’g’ridir.
Shunday qilib, algoritmni ekvivalent qayta ishlash deb, natijada dastlabki algoritmga ekvivalent algoritmni paydo qiladigan o’zgartirilishlarga aytiladi. Misol tariqasida, algoritmni bir tildan boshqa tilga o’tkazishni keltirish mumkin.Shu bilan birgalikda algoritmni ekvivalent qayta ishlash usuli bilan keskin o’zgartirish mumkin, lekin bu holda asosiy e’tiborni dastlabki algoritmga nisbatan yahshi algoritmni yaratishga berish kerak.
3, Toraytiruvchi o’zgartirishlar.Bunday o’zgartirishlar natijasida dastlabki algoritmlar yechish kerak bo’lgan masalalarning xususiy holati yechimi algoritmlari ishlab chiqiladi.Odatda, bu usulda ekvivalent qayta ishlash jarayonida algoritmni ixchamlashtirish maqsaddida foydalaniladi.
Formal usulni matematikaga bog’liq bo’lmagan muammoga
qo’llash.Buyerda matematik muammo matematik ko’rinishga o’tkazilib, uning algoritmini ishlab chiqishga uriniladi.Agar o’xshash matematik masala yechimining algoritmi ma’lum bo’lsa, undan foydalaniladi.
Algoritmlashtirish jarayoni uslublari bo’yicha matematik modellarni tuzish jarayoniga juda yaqin. Har bir algoritmni ishlab chiqish bevosita o’ziga xos yondashishni talab qilishiga qaramasdan, bu faoliyatni umumiy uslub va bosqichlari ham mavjud. Ba’zan dasturlarni tezroq yozib boshlashga hohish paydo bo’ladi. Lekin bu xatoli, chunki aynan algoritmni ishlab chiqish bosqichiga va uning to’g’riligiga masalaning to’liq yechimi bog’liqdir.Algoritmlarni tuzish turli xil uslublari mavjud.
Do'stlaringiz bilan baham: |