To'g'ri ijro etish uchun algoritmlarni taqdim etishning yana bir shakli kerak.
Har qanday hisoblash tizimi nima qiladi? "Har qanday hisoblash faoliyat-
tizim ikki turdagi ishni bajarish uchun kamayadi: axborotni qayta ishlash va uni
kiritish " [Karpov, Skates, 2005]. Bizning nuqtai nazarimizdan, har ikkisi ham
ba'zi ma'lumotlar bo'yicha operatsiyalarni bajarish. Shunday qilib, kompyuterda amalga oshirilgan har qanday algoritm,
2010 Yil, T. 2, № 3, P. 231-272 244
Va Karpov
dastlabki ma'lumotlarga nisbatan muayyan harakatlar amalga oshirilishi kerak
, ularni qisman bajarish tartibini belgilaydi. Shu bilan birga, ayrim operatsiyalarni bajarishda olingan natijalar boshqa operatsiyalarni
bajarish uchun foydali ma'lumotlar sifatida xizmat qilishi mumkin.
Keling, berilgan dastlabki ma'lumotlar uchun kompyuterda algoritmning bajarilishini
yo'naltiruvchi grafik shaklida tasvirlaylik. Amalga oshirilgan operatsiyalar ushbu ustunning
ustunlari bo'lib xizmat qiladi va qovurg'alar-bir
operatsiyaning natijasini boshqasini bajarish uchun ishlatishdir. Ba'zi ishlarda axborotni kiritish
(yoki boshlang'ich qiymatlarni belgilash) va uning xulosasiga mos keladigan tugunlar grafaga kiritilmagan, ammo biz
ularni aniqlik uchun kiritamiz. Agar 1 operatsiyalari natijasi
2 operatsiyalari tomonidan bevosita ishlatilmasa, ular tomonidan aniqlangan tepalar qovurg'a bilan bog'lanmaydi. Shakl bo'yicha. 1 algoritmlar uchun grafikalar berilgan
S := (a1 + a2) + a3
(shakl. 1a) va
S := a1 + (a2 + a3)
(shakl. 1b).
Shakl. 1. Algoritmlar uchun grafikalar
S := (a1 + a2) + a3
(a) va
S := a1 + (a2 + a3)
(b)
Qo'shimchalarning bajarilishini turli xil tartibda tasvirlaydigan bu ikki grafik
bir-biridan farq qilishini ko'rish oson. Agar siz
bir xil hisoblash tizimida bir xil kirish ma'lumotlari bilan grafik tomonidan taqdim etilgan ushbu algoritmlardan birini amalga oshirsangiz, siz
doimo bir xil natijaga erishasiz.
Ushbu dastlabki ma'lumot uchun kompyuter dasturlarining bajarilishiga mos keladigan bunday dizaynlar
odatda dastur tomonidan amalga oshirilgan algoritmlar yoki oddiygina
algoritmlar soni deb ataladi. Ular qanday xususiyatlarga ega?
1. Algoritm grafigi har doim asiklik hisoblanadi. Kompyuter faqat Java qila oladi-
operatsiyalar. Yopiq turdagi operatsiyalarni bajarish
x = 2
∗ x + 5 bevosita mavjud emas
kompyuter.
2. Algoritmning grafigi bo'lishi mumkinmultigraf. Agar biron-bir operatsiyada bu ishlatilgan bo'lsa-
ikki marta, keyin bu operatsiyaning tuguniga mos keladigan tugundan ikkita
qovurg'a olib boriladi (qarang: shakl. 2).
Shakl. 2. Algoritm uchun grafikalar
S := (a2 + a2) + a1
3. Algoritmning grafigi parametrikdir. Siz hal qiladigan har qanday zamonaviy vazifa-
raqamli tizimda o'lchov parametrlari mavjud. Va
algoritm grafigi tuzilishini saqlab, bu parametrlar unda mavjud toplar umumiy sonini o'zgartiradi.
O'zgaruvchilarni qo'shish, yana bir narsa esa 10 000 o'zgaruvchini qo'shishdir.
Kirish ma'lumotlarini o'zgartirganda grafikaning tuzilishi, agar
dasturda shartli operatsiyalar mavjud bo'lmasa, saqlanadi. Algoritmning o'zi kabi algoritmning bunday grafigi odatda deyiladi
deterministik. Misol uchun, 1 va 2 raqamlarida deterministik grafikalar tasvirlangan.
Kelajakda biz faqat deterministik algoritmlarni va ularning grafikalarini ko'rib chiqamiz. Ammo
bugungi kunda dasturlarning aksariyati shartli operatorlardan foydalanmasdan tasavvur ham qila olmaydi. Qanday bo'lishi kerak?