Алгоритм. Алгоритм қасиеттері



1. Алгоритм. Алгоритм қасиеттері
2. Алгоритмнің қасиеттері және оған қойылатын талаптар
3. Информация өлшемі. Алгоритм ұғымын нақтылау. Тьюринг машинасы.
4. Машиналық тілдегі программа.
5. Марковтың нормалау алгоритмі.
ЭЕМ бір тактілік уақытта бір ғана қарапайым не логикалық операцияны орындай алатын етіп құрылғандықтан, информацияны өңдеу үшін машинаға берілетін командалар (нұсқаулар) осы сияқты нұсқаулар тізбегінен тұрады.
Алгоритмдік тілдің алфавиті мен пайдаланылатын символдар:
Латын, орыс алфавиттері мен араб цифрлары: A, B, C, D, ..., а, b, с, d, ..., А, Б, В, Г, ..., а, б, в, г, ..., 1, 2, 3, ...;
* — көбейту, / — бөлу,
** — дәрежелеу, := — меншіктеу,
. — нүкте (нүкте — нақты санның бөлшек бөлігін бүтін бөлігінен ажырату үшін пайдаланылатын белгі) және т.б.
Мысалы, а = 10.3, b = 5.4 жене h = 6 мәндерін пайдаланып, ЭЕМ-де трапеция ауданын есептеу керек болсын (a, b — табандары, h — биіктігі).
Мұндағы өңделетін информация — трапеция ауданы. Өндеу алгоритмі — ауданды есептеу формуласы:
B = (а + b) * h /2.
Осы формула бойынша трапеция ауданын есептеуге арналған қарапайым нұсқаулар тізбегін мынадай түрде жазуға болады:
1. 10.3-ті а деп, 5.4-ті b деп, 6-ны h деп белгілеу (а:= 10.3; b:= 5.4; h:= 6);
2. а-ны b-ға қосып, нәтижені r 1деп белгілеу (rl:= a + b);
3. rl-ді - h қа көбейтіп, нөтижені r 2 деп белгілеу (г2:= rl*h);
4. г2-ні 2-ге бөліп, нөтижені B деп белгілеу (B:= г2/2).
Осы сияқты жеке қадамдардан тұратын, формальды түрде жазылған реттелген нұсқаулар тізбегі алгоритм делінеді.
Жалпы, алгоритм деп алға қойылған мақсатқа жету немесе берілген есепті шешу бағьггында арнайы ережелер бойьшша орындаушыға (адамға не компьютерге) жинақы түрде берілген реттелген нұсқаулар тізбегін айтады. (алгоритм сөзі IX ғасырда өмір сүрген ұлы өзбек математигі әл-Хорезмидің атымен аталған жазудың латыңдық формасы. Ол бірінші рет арифметикалық амалдарды орындаудың ережелерін тұжырымдаған ғалым).

Алгоритм. Алгоритм қасиеттері
ЭЕМ бір тактілік уақытта бір ғана қарапайым не логикалық операцияны
орындай алатын етіп құрылғандықтан, информацияны өңдеу үшін машинаға
берілетін командалар (нұсқаулар) осы сияқты нұсқаулар тізбегінен тұрады.
Алгоритмдік тілдің алфавиті мен пайдаланылатын символдар:
Латын, орыс алфавиттері мен араб цифрлары: A, B, C, D, ..., а, b, с, d,
..., А, Б, В, Г, ..., а, б, в, г, ..., 1, 2, 3, ...;
* — көбейту, — бөлу,
** — дәрежелеу, := — меншіктеу,
. — нүкте (нүкте — нақты санның бөлшек бөлігін бүтін бөлігінен ажырату үшін
пайдаланылатын белгі) және т.б.
Мысалы, а = 10.3, b = 5.4 жене h = 6 мәндерін пайдаланып, ЭЕМ-де трапеция
ауданын есептеу керек болсын (a, b — табандары, h — биіктігі).
Мұндағы өңделетін информация — трапеция ауданы. Өндеу алгоритмі — ауданды
есептеу формуласы:
B = (а + b) * h 2.
Осы формула бойынша трапеция ауданын есептеуге арналған қарапайым нұсқаулар
тізбегін мынадай түрде жазуға болады:
1. 10.3-ті а деп, 5.4-ті b деп, 6-ны h деп белгілеу (а:= 10.3; b:= 5.4;
h:= 6);
2. а-ны b-ға қосып, нәтижені r 1деп белгілеу (rl:= a + b);
3. rl-ді - h қа көбейтіп, нөтижені r 2 деп белгілеу (г2:= rl*h);
4. г2-ні 2-ге бөліп, нөтижені B деп белгілеу (B:= г22).
Осы сияқты жеке қадамдардан тұратын, формальды түрде жазылған реттелген
нұсқаулар тізбегі алгоритм делінеді.
Жалпы, алгоритм деп алға қойылған мақсатқа жету немесе берілген есепті
шешу бағьггында арнайы ережелер бойьшша орындаушыға (адамға не компьютерге)
жинақы түрде берілген реттелген нұсқаулар тізбегін айтады. (алгоритм сөзі
IX ғасырда өмір сүрген ұлы өзбек математигі әл-Хорезмидің атымен аталған
жазудың латыңдық формасы. Ол бірінші рет арифметикалық амалдарды орындаудың
ережелерін тұжырымдаған ғалым).

Алгоритмнің қасиеттері жене оған қойылатын талаптар:
1. Алгоритмнің үздіктілігі. Информацияны өндеу процесі ретімен
жазылған жеке-жеке нұсқаулардан құралған тізбектен түруы тиіс (мысалы,
жоғарғы есепті шешу үшін құрылған нұсқаулар);
2. Алгоритмнің түсініктілігі және анықтылыгы. Алгоритм жалпы түрде
қабылданған символдарды, алфавитті пайдаланьш жазылуы тиіс. Орындаушы
(адам, компьютер) алгоритмді түсініп, орыңдай алатын болуы керек. Оның
үстіне, түрліше түсінілетін нұсқаулар енгізілмеуі тиіс. Ол орындаушыға
алгоритмді орындау үшін басқа нүсқаулар іздеуіне жол қалдырмайтындай етіліп
жөне орындалу реттері дәл көрсетіліп қатаң түрде жазылуы қажет;
3. Алгоритмнің қарастырылып отырған информацияның кез келген
мәндеріне, яғни көпшілікке бірдейлігі (мысалы, жоғарыда құрылған
алгоритмнің екінші, үшінші нұсқаулары a, b мен h айнымалыларының сөйкес
келетін кез келген мәндері үшін бірдей. Жалпы, алгоритмде анықталу
облысынан түрлі мәндер қабылдай алатын айнымалылар болуы тиіс);
4. Алгоритмнің нәтижелілігі. Нұсқаулар шексіз кеп болмай, қоры-
тындысында оның нәтижесі болуы тиіс. Егер алгоритм бойынша құрылған сандық
программа шексіз есептеулерге өкелсе, онда алгоритмнің талапқа сай
жазылмағаны не есептің шешуі жоқ болғаны.
Алгоритмде пайдаланатын мәліметтер түрлі-түрлі болуы да мүмкін.
Мысалы, жоғарыда қүрылған алгоритмде үш түрлі мәліметтер кездеседі:
1) бастапқы мәліметтер (10.3, 5.4, 6);
2) аралық мәліметтер (жоғарғы алгоритмде олар — екінші және үшінші
нұсқауларды орындаудан соң шыққан мәндер;
3) нәтиже (ол — төртінші (қорытынды) нұсқауды орындаудан соң шыққан
мән).
Мұнда ескеретін жайт: егер алгоритм математикалық формула түрінде берілсе,
оны шешу жолы орындалатын операцияларға байланысты біреу ғана болмауы
мүмкін, мысалы, 4*53 өрнегін не B = (а + b) * h 2 формуласын түрлі
жолдармен шешуте болатыны белгілі).
Алгоритм ұғымы кез келген программа құру кезінде негізгі орын алады,
себебі программа — енгізілген берілгендерді өңдеу үшін арнайы және қатаң
түрде бір программалау тілінде дайындалған алгоритм, шекті нұсқаулар
тізбегі.

Информация ѳлшемі. Алгоритм ұғымын нақтылау.
Тьюринг машинасы
Информация шамасын өлшеудің үш тәсілі бар: көлемдік, энтропиялық,
алгоритмдік.
Көлемдік өлшем — мәлімет құрайтын символдар саны.
Оны ѳлшеу информацияның жазылу түріне байланысты. Мысалы, 13 санын
түрліше жазуға болады: "он ұш ", 13, XIII, 11012 (бұлардың соңғысы екілік
санау жүйесінде жазылған).
Информация теориясында информацияны ѳлшеу үшін энтропиялық тәсіл
пайдаланылған (энтропия — ішке айналу). Энтропия деп кездейсоқ (екі
үштылық) болатын жағдайдың (орындалуы алдында нәтижесі белгілі емес
тәжірибенің) анықталмағандық шамасын айтады. Ол мынадай модельден түрады:
- тәжірибе бойынша белгілі оқиғалардың орындалу шамасы анықталады;
- шамаларды дәл есептеу мүмкін болмағандықтан, олардың энтропиясын
ықтималдықты пайдаланып есептейді.
Энтропияны информацияның жеткіліксіздік шамасы деп қарастыруға болады.
Ол ықтималдықтар жиынтығының біршама математикалық байланыстылығы арқылы
сипатталады.
1-мысал. Тиын ақшаны аспанға лақтырғаңда оның сандық бетімен не қарсы
бетімен түсуінің энтропиясын анықтау керек.
Мұңдай жағдай тең ықтималдықты екі оқиғадан тұратыны белгілі, ықтималдық
(P) 0.5-ке тең. Информация теориясында берілген тең ықтималдықты n оқиғалар
үшін әр оқиғаның энтропиялық шамасы (H) анықталатын формула:

H = * log2 n
Жоғарғы мысалда: n = 2, H = 0.5 (log2 2 = 1).
Тандалған оқиғалар саны (n) 2-нің бүтін дәрежесіне тең болмаса да, тең
ықтималдықты оқиғалар үшін осы формула пайдаланылады (әр оқиғаның орындалу
ықтималдығы ln-ге тең). Егер оқиғалар тең ықтимаддықты болмаса, энтропия
шамасы төмендегі формула бойынша есептеледі (формуланы 1948 жылы ғалым К.
Шеннон ұсынған):

Мұңдағы Рк — к-жағдайдағы жүйенің ықтималдығы; H — жүйенің энтропиясы
(информацияньщ жеткіліксіздік шамасы. Ол тәжірибеде информация санының
мөлшері үшін де пайдаланылады).
Егер барлық оқиғалар тең ықтимаддықты болса (Рк = 1 n), олардың
энтропиясы:

2-мысал. Қапшықта 10 шар бар. Олардың 9-ы ақ, 1-і қара түсті.
Қапшықтан алынған шардың түсін білдіретін информация шамасын (энтропияны)
анықтау керек.
P1 = 0.9; P2 = 0.1
H = 0.9 * log2 (1 0.9) + 0.1 * log2 (1 0.1) 0.469
Яғни бұл тәжірибенің энтропиясы бірдей ықтималдықты екі оқиғаның
энтропиясынан кіші екенін көрсетеді.
Алгоритмдер теориясьшда мәліметтік информацияны алгоритмдік тәсілмен
бағалау жүргізіледі. Алгоритм қасиеттері жоғарыда аталып кеткен болатын.
Олар: үздіктілік, түсініктілік, қадамдардың қарапайымдылыгы, көпшілікке
бірдейлігі және нәтижелілік. Ал, егер есептің шешімі болмаса, оны дәлелдеу
және мәнсіздіктен құтылу үшін алгоритмнің қатаң түрде зандылық анықтамасы
қажет. Мұндай ұғым өткен ғасырдың 30-жылдарының ортасында рекурсивті
функциялар және дерексіз автоматтар (машиналар) негізінде енгізілді:
у = f (X1, X2, ... , Xn) сандық функциясының мәңдерін есептеудің
алгоритмі болу үшін функция жарым-жартылай рекурсивті болу керек.
Жарым-жартылай рекурсивті функция ұғымы алгоритмдер теориясының
негізгі ұғымдарының бірі:
- әр жарым-жартылай рекурсивті функцияньщ шешу алгоритмі бар;
- алгоритмдер бойынша шешілетін функциялар жарым-жартылай рекурсивті,
керісінше жагдайда есеп алгоритм бойынша шешімсіз.
Есептің шешілуін оңайлату тәсілдерінің бірі — берілген есепті бастапқы
берілгендер мен шешуі бірдей болатын оңайлатылған ішкі есепке ауыстыру (ол
бәсендету стратегиясы делінеді), ал кезегімен оны да осы сияқты басқа ішкі
есепке алмастыруға мүмкін болса, мұндай процесс рекурсия делінеді. Кейбір
программалау тілдерінде ішкі программаның ѳзін-ѳзіне шақыратын құрылымын
рекурсивтік құрылым деп атайды. Рекурсивтік әдіс нәтижелі болу үшін ол
есептің шешуін дәл беруі тиіс. Рекурсияны пайдалану үшін алдымен берілген
есеп пен қосымша есептің байланысын (кейде жиектік шартты да) анықтап алу
керек. Әдетте қарапайымдау болатын жиектік шартты пайдаланып есепті шешу
әдісі жоғары кѳтерілу стратегиясы делінеді. Мысалы, рекурсия бойынша n !
мәнін есептеу әдісі:
n! = (n—1)! * n;

Мұндай әдіс рекурренттік деп те аталады (recurrent — қайталанушы).
Алгоритмдер теориясында дәлелденгеніндей, алгоритмнің бір менді
түсінілуі, ал оның қадамдары қарапайым және орыңдалатын болуы үшін осы
талаптарды орындайтын машина болуы тиіс. МҰндай машиналардың бірі —
абстрактілі (теория жүзіндегі) Тьюринг машинасы. Алгоритмнің қатаң
зандылығымен жұмыс істейтін Тьюринг машинасының құрылымы 2.1-суретте
кѳрсетілген (а — енгізілген символдар, і = 1, 2, 3, ...).
Машина құрамындағы таспа жеке ұяшықтардан тұрады (таспа шексіз болуы
да мүмкін). Әр ұяшыққа алфавитке сәйкес тек бір символ енгізіледі
( 1-суретте символ енгізілмеген ұяшық бос символ ( ) арқылы
белгіленген). Бастиек міндетті түрде бір ұяшықтың үстінде орналасулы
тұрады. Ол символды оқи және енгізе алады, қажет болса, оны өшіреді.
Бастиектің ерекшелігі — ол таспа бойынша еркін жылжи алатын етіп
орналастырылган.

басқару құрылғысы
бастиек

......[pi... [pic[pi[pic......
c] ] c] ]

1-сурет. Тьюринг машинасының негізгі құрылымдық бөлімдері
Тьюринг машинасының қарапайым бір қадамдық өрекеті мынадай іс-
әрекеттерден тұрады:
— бастиек бір тактілік уақытта өзі тұрған ұяшыққа енгізілген символды
оқиды;
— оқылған символ және бастиектің ағымдық орны басқару құрылғысының
жағдайын (жаңа күйге өтуін, жаңа жазылатын символды, бастиектің жылжуын
және т.с.с.) бір мәнді анықтайды;
— басқару құрылғысы машинаға берілген команданы орындайды және
сақтайды;
— автоматтың соңғы қалып-күйге өтуіне байланысты, машина ѳз жұмысын
тоқтатады не алгоритм дұрыс құрылмаған болса, еш уақытта тоқтамайды.
Жұмыс басында бастиек таспа ұяшығына бір машиналық сөз жазады да,
келесі ұяшықтың үстіне орналастырылып қойылады, т.с.с.
Алгоритмдер теориясында құрылган алгоритмдер өзінің мүмкіндігі бойынша
Тьюринг машинасына және алгоритм ұғымын делелдейтін басқа үлгілерге
(модельдерге) баламалы екені делелденген. Алгоритмнің мұндай ұғымы арқылы
шешілмейтін проблемаларды алгоритмдеу мүмкін емес екені де дәлелденді. Яғни
есепті Тьюринг машинасы арқылы шешуге мүмкін болмаса, оның алгоритмі
шешімсіз.

Машиналық тілдегі программа
Қарапайым операцияны орындау үшін компьютерге берілетін әр нұсқау
машиналық команда деп, ал комаңдада көрсетілген амалға енетін сан не символ
операнд не амал аргументі деп аталады.
Шын мәнінде есептеуіш машина жоғарғы есепті шешу үшін құрылған
алгоритмге енгізілген командаларды оқи да, орындай да алмайды. Машинаның
орындай алуы үшін оларды машина "түсіне" алатындай етіп, қайтадан жазып
шығу керек. Осы шарт орындалған кезде командалар машина кодында не
машиналық тілде жазылған делінеді. ЭЕМ-ге түсінікті командалар тізбегі
арқылы жазылған алгоритм программа (өңдеу бағдарламасы) деп, программа құру
процесі программалау (өңдеу бағдарламасын құру) деп, машина орындай алатын
командалар жиыптыгы командалар жүйесі деп аталады.
Программаға программалау тілінің (жүйенің) кітапханасында сақтаулы арнайы
функциялар (мысалы, sin, In) мен түрлі ішкі программалардың енгізілуі де
мүмкін.
Программа дайындалып, машинаға еңізілген соң, ЭЕМ-нің жұмысы — оны
автоматгы түрде орындау. Яғни ЭЕМ-нің іс-әрекеттері алдын ала құрылған
программа бойынша ғана жүргізіледі. ЭЕМ жұмысының бұл ерекшелігін
программалық басқару принцип деп атайды. Машиналық команда мынадай екі
болімнен тұрады:
а) ЭЕМ орындайтын операция;
б) операцияда пайдаланылатын айнымалылар мен тұрақтылар
(операндтар).
Мысалы, "10.3-ті 5.4-ке қосу керек" командасында операция — қосу
амалы, мәліметтер — 10.3 пен 5.4. Бірақ мұндай команданы ЭЕМ түсіне
бермейді, оны микрокалькулятор сияқты тікелей есептеу арқылы орындауы
мүмкін. Ал күрделі программаларды орындауда ЭЕМ-дер мәліметтер енгізілген
ұяшықтардың адрестерін ғана хабарлайтын командаларды орындайтын етіп
құрастырылған.
Алғашқы буын ЭЕМ-дері үш адресті, екі адресті, бір адресті болып үш
типке болінетін. Дербес компьютерлерде адрестер күрделі түрде
ұйымдастырылған. Біз машиналық командаларды үш адресті ЭЕМ-ге беру ... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Алгоритм типтері
Алгоритм тілін оқыту әдістемесі
Алгоритм және алгоритмдеу ұғымдары
Алгоритмдер теориясы. Анықтамасы. Қасиеттері. Түрлері. Алгоритмді жазу әдістері. Алгоритм модельдері
Алгоритм тілінде есеп шығару жолдары
Алгоритмдердің концепциялары мен қасиеттері
Алгоритмнің күрделілігі - осы алгоритмді есептеу процесінде қолданылған элементарлы қадамдар саны
Алгоритмнің қасиеттері
Информатика пәнінен әдістемелік құрал
Алгоритм және алгоритмнің қасиеттері
Пәндер