|
Algoritmlarni loyihalashga kirish. Algoritmlarni ishlab chiqish va tahlil qilishning ilg'or usullari
|
bet | 1/2 | Sana | 12.01.2024 | Hajmi | 20,59 Kb. | | #135849 |
Bog'liq Algoritmlarni loyihalashga kirish. Algoritmlarni ishlab chiqish -fayllar.org
Algoritmlarni loyihalashga kirish. Algoritmlarni ishlab chiqish va tahlil qilishning ilg'or usullari
Algoritmlarni loyihalashga kirish. Algoritmlarni ishlab chiqish va tahlil qilishning ilg'or usullari.
REJA:
Algoritm tushunchasi.
Algoritmlarni loyihalash.
Algoritmlarni loyihalashning asosiy bosqichlari.
EHM larning paydo bo‘lishi ( XX asrning 2-yarmi) bilan ALGORITM tushunchasi PROGRAMMALAShTIRISh tushunchasi bilan bog‘landi.
Ko‘plab algoritmik tillar paydo bo‘ldi: Fortran, Paskal, Beysik….
XII asrda Yevropada al – Xorezmi. matematik traktatining lotincha tarjimasi chiqdi. O’sha paytlar Algoritm deganda o‘nlik sanoq sistemasida arifmetik amallarning bajarilash qoidalari nazarda tutilgan. Hozirgi davrda algoritm barcha soxalarda qo’llanib kelinmoqda.
Ingliz matematigi Alan Tyuring 1935 – 1936 yillarda «mantiqiy hisoblash mashinasi» nazariyasini yaratdi. Ishlab chiqilgan «Tyuring Mashina»si bo‘lajak matematiklar va kompyuterchiklar uchun majburiy o‘qitiladigan bo‘ldi. London mehmonxonalarining birida: «Bu yerda kodlarning buzuvchisi va informatikaning pioneri Alan Tyuring (1912 – 1954), tug‘ilgan» deb yozib qo‘yilgan.
Rus matematigi Andrey Markov 1947 yil «normal algoritm» tushunchasini kiritdi va tizimlashgan va qat’iy algoritmlar umumiy nazariyasini yaratdi. Belgini qayta ishlashga mo‘ljallangan zamonaviy tillar (Prolog) Markovning «normal algoritm» lariga asoslanadi.
O’nli sanoq sistemasida Butun sonlar va o‘nli kasr bilan arifmetik amallarning bajarilish qoidasi birinchi bo‘lib, buyuk olim Muxammad ibn Muso al-Xorazmi (arabchadan tarjimasi «Muxammad Muso o‘g‘li Xorazmdan», qisqa qilib Al-Xorazmiy deyiladi) tomonidan ishlab chiqilgan.
Al-Xorazmiy IX asrda Xiva shahrida yashab ijod qilgan. Arab tilida yozilgan asarlari yo‘qolib ketgan, ammo XII asrda lotin tiliga tarjima qilingan nusxalari saqlanib qolingan. Shu orqali G’arbiy Yevropa O’nli sanoq sistemasida Butun sonlar va o‘nli kasr bilan arifmetik amallarning bajarilish qoidasi bilan tanishgan.
Algoritm ta’rifi. Elektron hisoblash mashinalarining vujudga kelishiga qadar algoritmga har xil ta’rif berib kelindi. Lekin ularning barchasi ma’no jihatdan bir-biriga juda yaqin bo‘lib, bu ta’rif hozirgi kunda quyidagicha talqin qilinadi.
Ta’rif. Algoritm deb, biror masalani yechish uchun ma’lum qoidaga asosan bajariladigan amallarning chekli ketma-ketligiga aytiladi yoki aniq natija beruvchi sodda hisoblashlar ketma-ketligi.
Yoki boshqacha aytsak algoritm-bu to’g’ri aniqlangan hisoblash jarayoni bo’lib, natijada kirishda berilgan m-tlarni chiquvchi m-tlarga aylantirib beradi, ya’ni algoritm kiruvchi m-tlarni chiquvchi m-tlarga aylantiruvchi hisoblash qadamlari ketma-ketligidan iborat jarayondir. Masalan, amaliyotda juda ko’p uchraydigan masalalardan biri bu -elementlar ketma-ketligidan ma’lum birlarini aniqlash masalasi ham aniq algoritm asosida yechiladi. Konkret masala: (4,6,-9,43,-11,7,91,-15) sonlar ketma-ketligidan manfiylarini aniqlash masalasida, kiruvchi ketma-ketlikdan chiquvchi (-9,-11,-15) ketma-ketlikni hosil qilish kerak bo’ladi. Bunday masalalar ko’pincha oraliq masala sifatida uchraydi. Ma’lumki, bu masalani bir necha hil algoritmlar yordamida echish mumkin. Bunday masalalarni juda ko’p keltirish mumkin.
Algoritmlarni loyihalash. Algoritmni tanlash qo’yilgan masalaning shartlari va boshqa bir nechta parametrlar asosida amalga oshiriladi: ular elementlar soni, elementlar joylashish tartibi, EHM axitekturasi, elementlarga qo’yiladigan masala shartlari va b. bo’lishi mumkin. Shuning uchun, algoritmni loyihalashda masalaning qo’yilishi, qo’llash mumkin bo’lgan algoritmlar sinflari va yuqoridagi parametrlar juda chuqur o’rganilishi kerak. Algoritm korrekt deyiladi, agar unng natijasi barcha kiruvchi mt lar uchun aniq chiquvchi mt larni tashkil etsa. Bu holda ihlatilgan korrekt algoritm berilgan masalani yechib beradi deyiladi. Agar algoritm nokorrekt bo’lsa, uning natijasi ba’zi bir kiruvchi mt lar uchun noto’g’ri bo’ladi yoki umuman natija bermasligi mumkin. Ba’zi hollarda, ya’ni xatoliklarni tekshirib turish imkoni bo’lganda, nokorrekt algoritmlar ham foydali bo’lishi mumkin. Ko’pincha korrekt algoritmlardan foydalaish maqsadga muvofiq hisoblanadi.
Algoritm samaradorligi. Javob berilishi kerak bo'lgan birinchi jiddiy savol: qanday qilib “samarali algoritm” tushunchasini aniqlash mumkin? Bir qarashda samaradorlikning ishchi ta'rifi quyidagicha ko'rinishi mumkin.
1- ta'rif: algoritm samarador deb ataladi, agar ma'lumotlar kiritilganda uni amalga oshirish tezkor bajarilsa.
Albatta, samaradorlik nisbiy tushuncha bo’lib, bir nechta algoritmlarni solishtirish orqali aniqlanadi.
Xossalari:
Tushunarlilik –algoritmda ijrochiga berilayotgan ko‘rsatmalar aniq mazmunda bo‘lishi;
Diskretlilik – algoritmlarni chekli qadamlardan tashkil qilib bo‘laklash imkoniyati ;
Cheklilik – bajarilayotgan algoritm chekli qadamlarda natijaga olib kelishi;
Natijaviylik - natijaning bo‘lishi;
Ommaviylik – har bir algoritm mazmuniga ko‘ra bir turdagi masalalarning barchasi uchun ham o‘rinli bo‘lishi .
Formallik –komandalarni mexanik bajarish imkoniyati.
Bu xossa robotlar, kompyuterlar va boshqa qurilmalarda komandalarning ketma-ket bajarilishini ta’minlaydi.
Algoritm turlari : Chiziqli algoritm - deb hech qanday shartsiz faqat ketma-ket bajariladigan jarayonlarga aytiladi.
Tarmoqlanuvchi algoritm - deb ma’lum shartlarga muvofiq bajariladigan ko‘rsatmalardan tuzilgan algoritmga aytiladi.
Takrorlanuvchi algoritm - deb biron bir shart tekshirilishi yoki biron parametrning har xil qiymatlari asosida takroriy xisblashlarni bajaradigan algoritmga aytiladi.
Chiziqli algoritm - deb hech qanday shartsiz faqat ketma-ket bajariladigan jarayonlarga aytiladi. Chiziqli algoritm strukturasi:
Tarmoqlanuvchi va siklik algoritmlar
Algoritmlarning qo’llanish soxalari. Algoritmlarni amalda juda ko’p yo’nalihlarda qo’llash mumkin, masalan:
Inson genomini o’qish masalasi-ya’ni inson DNK siga kiruvchi 100 ming genlar ketma-ketligini identifikatsiya ilish; Internet; Elektron tijorat; Ishlab chiqarish va elektron tijoratda resurslardan optimal foydalanish va b.
Algoritmni ishlab chiqish va tahlil qilish usullari. Yuqoridan pastga qarab algoritmni loyihalash yoki ketma-ket (bosqichma-bosqich) algoritmni loyihalash usuli - bu asl muammo (algoritm) bir qator yordamchi pastki qismlarga bo'linganida (subalgoritmlar) sodda va elementar operatsiyalar nuqtai nazaridan hal qilingan holda algoritmlarni tuzish usuli hisoblanadi ( protseduralar).
"Pastdan-yuqoriga" usuli, aksincha, oldindan aniqlangan subalgoritmlarning to'g'ri to'plamiga tayanib, funktsional ravishda to'liqroq bajariladigan kichik vazifalarni tuzadi, ulardan umumiyroq narsalarga o'tadi va hokazo, biz echimni yoza oladigan darajaga yetguncha. Ushbu usul pastki qavatdagi dizayn usuli sifatida tanilgan.
Algoritmlarning tarkibiyli hosil qilish printsiplari (algoritmlarni ishlab chiqishning tarkibiy usullari) algoritmlarni asosiy tarkibiy algoritmik birliklaridan hosil qilish, ularning ketma-ket ulanishi yoki bir-birlariga joylashtirilishi algoritmni o'qilishini va bajarilishini kafolatlaydigan qoidalarni yuqoridan pastga va ketma-ketlikda bajarish tamoyillaridir.
Strukturalangan algoritm - bu asosiy algoritmik tuzilmalarni aniqlash va joylashtirish sifatida taqdim qilingan algoritmdir. Strukturalangan algoritmda statik holat (algoritmni yangilashdan oldin) va dinamik holat (yangilangandan keyin) bir xil mantiqiy tuzilishga ega, uni yuqoridan pastgacha kuzatib borish mumkin ("u ham o'qiladi, ham bajariladi"). Algoritmlarning strukturali rivojlanishi bilan uning tuzilishi va bajarilishining har bir bosqichida algoritmning to'g'riligini kuzatish mumkin.
Algoritmlarni (dasturlarni) loyihalash va ishlab chiqishda keng qo'llaniladigan usullardan biri bu modulli usul. Modul bu ma'lum bir algoritm yoki uning ba'zi bir bloklari bo'lib, ularni ajratib va yangilash mumkin bo'lgan ma'lum nomga ega. Ba'zida modul barcha algoritmlar yordamchi bo'lsa ham, yordamchi algoritm deb ataladi.
Modul xususiyatlari: funktsional yaxlitlik va to'liqlik (har bir modul bitta vazifani bajaradi, lekin to'liq va to'liq bajaradi); avtonomiya va boshqa modullardan mustaqillik (vorislik modulining avvalgi modul ishlashidan mustaqilligi; bundan tashqari, ularning aloqasi faqat parametrlarni uzatish / qabul qilish va boshqarish darajasida amalga oshiriladi);
Algoritmlarning modulli dizaynining afzalliklari:
-turli ijrochilar tomonidan katta hajmli algoritmni (algoritmik kompleks) ishlab chiqish imkoniyati; -eng ko'p ishlatiladigan algoritmlar (subalgoritmlar) kutubxonasini yaratish va yuritish qobiliyati; algoritmlarni sinash va ularning to'g'riligini asoslash; dizaynni soddalashtirish va algoritmlarni o'zgartirish; algoritmlarni (yoki algoritmlarning komplekslarini) ishlab chiqish (loyihalash) murakkabligini kamaytirish; algoritmlarni amalga oshirishda hisoblash jarayonining kuzatilishi.
Algoritmni sinash - bu maxsus belgilangan testlar yoki test misollarida algoritmning to'g'riligi yoki noto'g'riligini tekshirish - ma'lum ma'lumotlar va natijalar bilan bog'liq muammolar (ba'zan ularni yaqinlashtirish etarli). Testlar to'plami minimal va to'liq bo'lishi kerak, ya'ni kirish ma'lumotlar to'plamining har bir alohida turini, ayniqsa alohida holatlarda, tekshirishni ta'minlaydi. Algoritmlarning ishlash vaqtlari:
|
| |