Алгоритм назарияси ва алгоритмлаш асослари.
Алгоритм сўзи ва тушунчаси IХ
асрда яшаб ижод этган буюк
бобокалонимиз Муҳаммад ал-Хоразмий номи билан узвий боғлиқ бўлиб,
унинг арифметикага бағишланган «Ал-жабр ва ал-муқобала» номли
асарининг дастлабки сахифасидаги «Dixit Algoritmic» («Дедики Ал
Хоразмий»нинг лотинча ифодаси) деган жумлалардан келиб чиққан.
Ал-Хоразмий биринчи бўлиб ўнлик саноқ тизимининг принципларини
ва унда турли амаллар бажариш қоидаларини асослаб берди. Бу эса ҳисоблаш
ишларини ихчамлаштириш ва осонлаштириш имконини яратади. Чунки бу
билан ўша даврда қўлланиб келинган рим рақамлари ва сонларни сўз орқали
ёзиб бажаришдаги ноқулайликлар бартараф этилди.
Ал-Хоразмийнинг илмий асарлари фанга
алгоритм тушунчасининг
киритилишига сабаб бўлди.
Нима учун алгоритмларни ўрганиш керак? Ҳақиқий компьютер
профессионали учун иккита сабаблар мавжуд: амалий ва назарий. Амалий
нуқтаи назардан у турли ҳисоблаш техникаси соҳаларига
тегишли асосий
алгоритмлар стандарт тўплами ҳақида тушунчага эга бўлиш керак. Бундан
ташқари,
у
янги
алгоритмларни
ишлаб
чиқиш
ва
уларнинг
самарадорликларини таҳлил қилишни билиши керак. Алгоритмика
(algorithmics) дейиладиган алгоритмларни ўрганиш жараёни назарий нуқтаи
назардан информатиканнинг (computerscience) пойдевори ҳисобланади.
Дэвид Харел (David Harel) ўзининг эҳтиётлик билан сарлавҳа қўйилган
ажойиб Algorithmics: the Spirit of Computing китобида қуйидагиларни ёзади:
Алгоритмика - бу нафақат информатиканинг бўлими,
балки ундан
кўпроқ нарса ҳисобланади. У информатиканинг асоси ҳисобланади ва қўлни
кўксига қўйиб айтиш мумкинки, у замонавий фанга,
техникага ва бизнесга
сезиларли таъсир кўрсатди.
Ҳатто, агар сиз компьютер фанларига ихтисослаштирилмаган ОЎЮ
талабаси ҳисобланмасангиз, алгоритмларни ўрганиш билан шуғулланиш
учун етарлича асосли сабаблар мавжуд. Содда қилиб айтганда,
алгоритмларсиз ҳеч бир нимани яратиш мумкин эмас. Шунинг учун
компьютер дастурлари профессионал фаолиятнинг (шахсий ҳаётда ҳам)
деярли барча соҳаларида янада аҳамиятли бўлиб
бориши билан
алгоритмларни ўрганиш кенг доирадаги инсонлар учун янада муҳим вазифа
бўлиб қолмоқда.
Алгоритмларни ўрганиш учун яна бир сабаб шундан иборатки, бу
жараён ўқувчиларда таҳлилий фикрлашни билишни ривожлантиради.
Пировардида, алгоритмларга нафақат қанчалик жавобларнинг ўзи, балки
уларни олиниши учун кўрсатмаларнинг шунчалик аниқлиги муҳим.
Натижада, алгоритмларни лойиҳалаштиришнинг
махсус усулларини
компьютер ишлатилишидан ёки ишлатилмасидан қатъий назар исталган
ҳолда тўғри келадиган масалаларни ечилишининг стратегик режаси деб
ҳисоблаш мумкин. Ўз-ўзидан тушунарлики, қандайдир алгоритм ёрдамида
ечилиши мумкин бўлган масалани ечиш аслида
алгоритмик фикрлашнинг
аниқлигига боғлиқ бўлади. Масалан, бахтли ҳаёт кечириш ёки бой ва машҳур
бўлишга имкон берадиган алгоритмни таърифлаш мумкин эмас, бошқа
томондан, аниқликка илгари сурилган талаб мулоқот қилиш нуқтаи
назаридан муҳим устунликка эга.