Ця стаття містить правописні, лексичні, граматичні, стилістичні або інші мовні помилки, які треба виправити. (червень 2014) |
Ця стаття потребує додаткових для поліпшення її . (червень 2014) |
Цю статтю треба для відповідності Вікіпедії. (червень 2014) |
Загальні поняття
Однією з особливостей абстрактної теорії алгоритмів є незмінність набору допустимих засобів, що використовуються для побудови запису алгоритму або під час його виконання. Наприклад, всі частково рекурсивні функції складаються з деякого фіксованого набору основних функцій за допомогою трьох операторів: оператора підстановки, оператора примітивної рекурсії, оператора найменшого кореня.
Елементарні дії під час обчислення на машині Тюрінга обмежуються фіксованим набором операцій, які виконує описовий клас машин і т. д.
У той же час при вивченні конкретних алгоритмів бажано, щоб кожен алгоритм міг вивчатися в термінах тих елементарних засобів, які найзручніші для його опису. Наприклад, алгоритми лінійної алгебри найзручніше описувати за допомогою чотирьох арифметичних дій, а алгоритми обчислення функцій алгебри логіки — з допомогою тих базисних логічних операцій, в термінах яких ці функції записані.
Тому однією з вимог, яка пред'являється до визначення алгоритму при його практичному використанні, є те, щоб і вид перероблюваної інформації, і засоби її переробки вибиралися в залежності від класу аналізованих алгоритмів.
У кожній класичній алгоритмічній системі тим чи іншим способом вводиться поняття виконання алгоритму, тобто здійснення послідовності дій, які виробляють поступовий перехід від початкових даних до результату. При цьому характерно, що в кожному алгоритмі перелік розпоряджень про виконання елементарних дій (команд) алгоритму фіксується заздалегідь і явно вказується в записі алгоритму. Наприклад, в нормальних алгоритмах всі застосовувані формули підстановки заздалегідь вказані в записі алгоритму. Список допустимих дій машини Тюрінга під час її роботі залишається незмінним. Частково рекурсивна функція задається фіксованою послідовністю рівнянь.
Водночас припущення формування команд алгоритму в процесі їх впровадження призводить до істотного скорочення та спрощення запису алгоритму.
Розгляд справжніх алгоритмів показує, що всі елементарні операції, вироблені в процесі виконання алгоритмів, розпадаються на дві групи операцій, які зазвичай називають арифметичними і логічними. Арифметичні операції здійснюють безпосереднє перетворення інформації. Логічні операції визначають подальший напрямок розрахунку, тобто послідовність виконання арифметичних операцій. При цьому в багатьох складних алгоритмах переважають логічні операції, в той час як перетворення інформації носить іноді дуже простий характер. До числа таких завдань належить і більшість економічних завдань.
Елементарні дії, аналогічні логічним операціям, в явному або неявному вигляді вводяться і при визначенні поняття виконання алгоритму в абстрактній теорії алгоритмів.
Наприклад, при виконанні нормального алгоритму після розгляду чергової формули підстановки здійснюється або перехід до наступної формули підстановки, або зупинка, або перехід до першої формули підстановки схеми алгоритму.
У машині Тюрінга логічною операцією можна вважати рух стрічки вправо або вліво залежно від стану машини і прочитаного символу. Однак, як правило, логічні операції в класичних алгоритмічних системах носять тривіальний характер. У багатьох випадках така тривіальність логічних операцій дуже ускладнює побудову конкретних алгоритмів.
У зв'язку з цим наступною вимогою, яка пред'являється до визначення алгоритму, є допущення більш універсальних логічних елементарних операцій, ніж ті, які є в абстрактній теорії алгоритмів. В тій чи іншій мірі цим вимогам відповідають так звані операторні алгоритмічні системи.
Операторні алгоритми Ван Хао
Операторний алгоритм Ван Хао задається послідовністю наказів спеціального вигляду. Кожен наказ має певний номер і містить вказівки: яку операцію слід виконати над заданим об'єктом і наказ з яким номером слід далі виконати над результатом даної операції. Загальний вигляд такого наказу (1):
де i — номер наказу; ω — елементарна операція над об'єктом; α, β — номери деяких наказів.
У термінах машин Тюрінга номери наказів відповідають номерам конфігурацій машини, а елементарна операція над об'єктом — елементарній дії над конфігурацією при деякому стані.
Виконати наказ (1) над числом х в операторному алгоритмі — значить знайти число ω(х) і далі перейти до виконання над ω(х) наказу з номером α.
Якщо ж ω(х) не визначено, то перейти до виконання над числом х наказу з номером β.
Наприклад, виконавши над числом 24 наказ
отримаємо число 4 і вказівку виконувати далі над 4 наказом з номером 7. Виконавши цей наказ над числом 23, отримаємо знову число 23 і вказівку виконувати над 23 наказ з номером 13.
Останнім станом машини Тюрінга в операторних алгоритмах відповідає наказ виду:
який означає, що обчислення слід зупинити. Число, над яким слід виконати цей наказ, є результат обчислень.
У загальному випадку результат виконання наказу (1) над числом х будемо зображати парою (z, γ), де z — отримане число, γ — номер наказу, який повинен виконуватися далі над z.
Програмою операторного алгоритму називається послідовність наказів виду:
де ω(x),…, ωi+s(x) — задані одномісні часткові функції, що визначають елементарні операції над об'єктом х; αi, βi,…, αi+s, βi+s… — якісь натуральні числа з послідовності i, i+1,…, i+n.
Переробити х згідно даного операторного алгоритму — це означає виконати над х послідовність наступних дій.
i — крок. Знаходимо ωi(x). Якщо ωi(x) визначено, то результатом буде пара чисел [ωi(x), αi]. Якщо ω(x) не визначено, то результатом i-го кроку буде пара (х, βi).
i+1 — крок, якщо результат попереднього кроку х, βi, де βi= i+1. Знаходимо ωi+1(x). Якщо вона визначена, то результатом буде пара [ωi+1(x), αi+1], якщо не визначена, то результатом буде пара (х, βi+1) і т. д.
i+n-1 — крок. Якщо як результат на цьому кроці вийде пара, яка вказує на останній оператор (z, i+n), то процес обривається і число z є результатом переробки числа х згідно заданому алгоритму (z = ωi+n-1(х)).
Якщо ж у процесі виконання алгоритму не виникає пари, що вказує на останній оператор, то результатом переробки х буде «невизначене значення».
Якщо функція всюди визначена, то символ β не впливає на процес обчислень і тому зазвичай не вказується. У цьому випадку наказ має вигляд i: [ω,α]: Кажуть, що операторний алгоритм А з програмою (х) обчислює часткову функцію f(x), якщо алгоритм А переробляє кожне натуральне число х в f(x). Зокрема, якщо f(x) НЕ визначено, то процес переробки х згідно з програмою (2) повинен бути нескінченним.
Природа функцій, обчислюваних за допомогою операторних алгоритмів Ван Хао, залежить від того, які функції ω1 входять у записі наказів. Має місце наступна теорема, що визначає природу функцій ωi.
Теорема (3). Для того щоб часткова функція f(x) була обчислюваною за допомогою операторного алгоритму, програма якого містить лише частково рекурсивні функції ωi(х) з рекурсивною областю визначеності, необхідно і достатньо, щоб f(х) була частково рекурсивною.
Необхідність умов очевидна, і ми обмежимося лише доказом їх достатності.
Насамперед, введемо поняття однієї важливої для доказу функції. Цю функцію будемо позначати через ех(х, у) або скорочено ехху і називати експонентою числа рx в числі у. При у≠0 вважаємо ехху рівним показнику найвищого ступеня простого числа рх, на яку ділиться у. Для у=0 вважаємо за визначенням ехх0= 0 для всіх значень х.
Наприклад,
.
Ясно, що алгоритм з програмою
обчислює ніде не визначену функцію f(x).
Нехай частково рекурсивна функція f(x) має непорожній графік. Тоді цей графік можна представити у вигляді сукупності пар
<α(t),β(t)>, (t=0,1,…),
де α і β — відповідні примітивно рекурсивні функції. Позначимо через υ(x) вираз 2х і введемо часткову функцію ω(x), вважаючи
Функція ω(x) частково рекурсивних з рекурсивною областю визначеності. Легко переконатися, що операторний алгоритм, що має програму
обчислює якраз функцію f(x). Справді, виконавши над довільним числом х наказ 1, отримаємо пару (2х, 2). Якщо x≠α(0), то, виконавши над 2х наказ 2, отримаємо пару (2x31, 2) . Якщо x≠α(1), то, виконавши над 2x31 наказ 2, отримаємо пару (2x32, 2) і т. д. Процес продовжується до тих пір, доки, нарешті, вийде пара (2x3n, 2), для якої х=α(n). Так як ω(2x3n) не визначено, то над числом 2x3n тепер треба виконати наказ 3, в результаті якого отримаємо пару (n,4). Виконавши над n наказ 4, отримаємо пару (β(n),0). Так як х=α(n), то β(n)=f(х), і, отже, алгоритм переробляє х в f(x), що й було потрібно.
Побудована програма для обчислення функції f(x) виявилася досить тривіальною внаслідок того, що запас функцій, допустимих в наказах, був дуже великий. Природно, чим менше запас, тим важче будувати потрібні програми. Тому безсумнівний інтерес представляє наступна теорема, яку ми наводимо без доведення.
Теорема Мінського (4). Для кожної частково рекурсивної функцій f(х) існує операторний алгоритм, програма якого складається з наказів виду
для будь-якого х, переробний 2x в 2f(x).
Іншими словами, будь-яка частково рекурсивна функція f(х) обчислювана за допомогою відповідного алгоритму, програма якого складається з наказів наведеного виду, за умови, що значення аргументу і функції кодуються числами 2, 2f(x).
Операторні алгоритми О. А. Ляпунова
Алгоритмічна система радянського вченого Олексія Ляпунова, запропонована ним в 1953 р., є однією з перших, що враховують всі вимоги, пропоновані для конкретних алгоритмів. Вона виникла у зв'язку зі впровадженням алгоритмів різних завдань в ЕОМ.
Для опису будови алгоритмів Ляпунов використовує спеціальний математичний апарат — так звана «логічна схема алгоритмів», в яких великими логічними буквами позначаються окремі дії алгоритму для перетворення інформації. Їх називають операторами. Малими літерами позначаються перевіряються логічні умови, при цьому використовується символіка, прийнята в математичній логіці. Наприклад, символом р(х<у) позначають логічну умову, виконану в тому випадку, коли нерівність, що стоїть у дужках є істиною. В іншому випадку це умова є хибою.
Послідовне виконання декількох операторів позначається як твір, причому співмножник, що стоїть праворуч, діє після співмножника, що стоїть ліворуч.
Логічними схемами алгоритму називаються вирази, складені з операторів і логічних умов, наступних один за іншим. Від кожної логічної умови починається стрілка, яка закінчується біля якого-небудь з операторів. Наприклад, з операторів А, В, С і логічних умов р і q можна скласти такі логічні схеми:
, або
Знак ↑i позначає початок стрілки, знак ↓i — її кінець. Однаковими номерами позначаються початок і кінець однієї і тієї ж стрілки. Стрілки можуть починатися у будь-якого нелогічного оператора.
Логічна схема алгоритму визначає порядок роботи операторів залежно від значення вхідних до неї логічних умов. Робота алгоритму починається з того, що виконується найлівіший оператор схеми. Після того, як певний елемент схеми виконаний, визначається, який оператор схеми повинен виконуватися наступним. Якщо це був оператор, то наступний за ним повинен виконуватися той елемент, який стоїть безпосередньо праворуч, або той, який зазначений відповідною стрілкою. Якщо останнім була логічне умова, то можливі два випадки. Якщо перевірена умова виконана, то повинен працювати елемент, що стоїть праворуч. Якщо воно хибне, повинен працювати той оператор, до якого веде стрілка, що починається після даної умови. Робота алгоритму закінчується або тоді, коли останній з робочих операторів містить вказівку про її припинення, або коли на деякому етапі не виявляється такого елемента схеми, який мав би працювати.
Для запису алгоритмів використовуються такі основні типи операторів: 1) арифметичні оператори; 2) оператори перевірки логічних умов; 3) оператори переадресації; 4) оператори перенесення; 5) оператори формування.
1. Арифметичні оператори служать для запису різних арифметичних дій і позначаються початковими буквами латинського алфавіту. Наприклад, оператор А обчислює величину а = аjk-саik, оператор В — величину с = аij. Вибір букв для позначення операцій довільний.
2. Оператори перевірки логічних умов служать для визначення порядку роботи алгоритму і позначаються малими буквами латинського алфавіту р, q та ін.
3. Оператори переадресації служать для зміни адрес в наказах; для зміни різних параметрів, від яких залежать оператори програми; для відновлення значень параметрів і адрес, які були змінені в процесі роботи алгоритму (програми).
Оператори переадресації позначаються буквою F із зазначенням у дужках змінюваного адреси або параметра. Так, оператор, що змінює параметр i на одиницю, буде позначатися F(i). Оператор, що збільшує параметр i на n одиниць, буде позначатися Fn(i). оператор, параметр i на n одиниць, буде позначатися F-n(i).
4. Оператор перенесення служить для "перенесення" одного параметра на «місце» іншого, або, іншими словами, для заміни одного параметра іншим. Оператори перенесення позначаються [а → b], де а означає, чим замінюється (що переноситься), b — що замінюється (замість чого переноситься).
5. Оператори формування служать для формування початкових значень деяких операторів алгоритму. Вони переносять деякі заздалегідь запасені накази в певні місця алгоритму. Оператори формування можна використовувати замість операторів переадресації. Це особливо зручно, коли число переадресацій може бути різним, а початкове значення параметра — завжди одне і те ж. Наприклад, якщо початкове значення параметра i=l, то оператор формування може бути записаний у вигляді {l → i}. Розглянемо приклад запису операторного алгоритму Ляпунова для підсумовування п'яти чисел: а1 , a2 , а3 , a4 , a5.
Нехай с — параметр, що є сумою аі, і=1,…n, оператор Ai обчислює величину сі = cі-1 + аі. Обчислення суми починаємо з i=1. Алгоритм має вигляд: [1 → i] {0 → ci-1}↑' Ai F(i) p (i=6)↑'
Операторні алгоритми Ляпунова для розв'язку певної задачі допускають деякі еквівалентні перетворення. Програма, побудована за будь-якого з еквівалентних між собою алгоритмів, служить для вирішення однієї і тієї ж задачі.
Такі перетворення алгоритмів корисні в тому відношенні, що вони можуть бути використані для пошуків раціональної програми під час виконання даного алгоритму в машині.
Перетворення схем можна розглядати з двох точок зору. Перший шлях — досліджувати формальні тотожні перетворення схем алгоритмів, пропонується радянським математиком Ю. І. Яновим.
Другий шлях — дослідити змістовні перетворення схем алгоритмів, що враховують індивідуальні особливості розв'язуваної задачі.
Джерела
- Алферова З. В. «Теория алгоритмов»
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Cya stattya mistit pravopisni leksichni gramatichni stilistichni abo inshi movni pomilki yaki treba vipraviti Vi mozhete dopomogti vdoskonaliti cyu stattyu pogodivshi yiyi iz chinnimi movnimi standartami cherven 2014 Cya stattya potrebuye dodatkovih posilan na dzherela dlya polipshennya yiyi perevirnosti Bud laska dopomozhit udoskonaliti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Zvernitsya na za poyasnennyami ta dopomozhit vipraviti nedoliki Material bez dzherel mozhe buti piddano sumnivu ta vilucheno cherven 2014 Cyu stattyu treba vikifikuvati dlya vidpovidnosti standartam yakosti Vikipediyi Bud laska dopomozhit dodavannyam dorechnih vnutrishnih posilan abo vdoskonalennyam rozmitki statti cherven 2014 Zagalni ponyattyaOdniyeyu z osoblivostej abstraktnoyi teoriyi algoritmiv ye nezminnist naboru dopustimih zasobiv sho vikoristovuyutsya dlya pobudovi zapisu algoritmu abo pid chas jogo vikonannya Napriklad vsi chastkovo rekursivni funkciyi skladayutsya z deyakogo fiksovanogo naboru osnovnih funkcij za dopomogoyu troh operatoriv operatora pidstanovki operatora primitivnoyi rekursiyi operatora najmenshogo korenya Elementarni diyi pid chas obchislennya na mashini Tyuringa obmezhuyutsya fiksovanim naborom operacij yaki vikonuye opisovij klas mashin i t d U toj zhe chas pri vivchenni konkretnih algoritmiv bazhano shob kozhen algoritm mig vivchatisya v terminah tih elementarnih zasobiv yaki najzruchnishi dlya jogo opisu Napriklad algoritmi linijnoyi algebri najzruchnishe opisuvati za dopomogoyu chotiroh arifmetichnih dij a algoritmi obchislennya funkcij algebri logiki z dopomogoyu tih bazisnih logichnih operacij v terminah yakih ci funkciyi zapisani Tomu odniyeyu z vimog yaka pred yavlyayetsya do viznachennya algoritmu pri jogo praktichnomu vikoristanni ye te shob i vid pereroblyuvanoyi informaciyi i zasobi yiyi pererobki vibiralisya v zalezhnosti vid klasu analizovanih algoritmiv U kozhnij klasichnij algoritmichnij sistemi tim chi inshim sposobom vvoditsya ponyattya vikonannya algoritmu tobto zdijsnennya poslidovnosti dij yaki viroblyayut postupovij perehid vid pochatkovih danih do rezultatu Pri comu harakterno sho v kozhnomu algoritmi perelik rozporyadzhen pro vikonannya elementarnih dij komand algoritmu fiksuyetsya zazdalegid i yavno vkazuyetsya v zapisi algoritmu Napriklad v normalnih algoritmah vsi zastosovuvani formuli pidstanovki zazdalegid vkazani v zapisi algoritmu Spisok dopustimih dij mashini Tyuringa pid chas yiyi roboti zalishayetsya nezminnim Chastkovo rekursivna funkciya zadayetsya fiksovanoyu poslidovnistyu rivnyan Vodnochas pripushennya formuvannya komand algoritmu v procesi yih vprovadzhennya prizvodit do istotnogo skorochennya ta sproshennya zapisu algoritmu Rozglyad spravzhnih algoritmiv pokazuye sho vsi elementarni operaciyi virobleni v procesi vikonannya algoritmiv rozpadayutsya na dvi grupi operacij yaki zazvichaj nazivayut arifmetichnimi i logichnimi Arifmetichni operaciyi zdijsnyuyut bezposerednye peretvorennya informaciyi Logichni operaciyi viznachayut podalshij napryamok rozrahunku tobto poslidovnist vikonannya arifmetichnih operacij Pri comu v bagatoh skladnih algoritmah perevazhayut logichni operaciyi v toj chas yak peretvorennya informaciyi nosit inodi duzhe prostij harakter Do chisla takih zavdan nalezhit i bilshist ekonomichnih zavdan Elementarni diyi analogichni logichnim operaciyam v yavnomu abo neyavnomu viglyadi vvodyatsya i pri viznachenni ponyattya vikonannya algoritmu v abstraktnij teoriyi algoritmiv Napriklad pri vikonanni normalnogo algoritmu pislya rozglyadu chergovoyi formuli pidstanovki zdijsnyuyetsya abo perehid do nastupnoyi formuli pidstanovki abo zupinka abo perehid do pershoyi formuli pidstanovki shemi algoritmu U mashini Tyuringa logichnoyu operaciyeyu mozhna vvazhati ruh strichki vpravo abo vlivo zalezhno vid stanu mashini i prochitanogo simvolu Odnak yak pravilo logichni operaciyi v klasichnih algoritmichnih sistemah nosyat trivialnij harakter U bagatoh vipadkah taka trivialnist logichnih operacij duzhe uskladnyuye pobudovu konkretnih algoritmiv U zv yazku z cim nastupnoyu vimogoyu yaka pred yavlyayetsya do viznachennya algoritmu ye dopushennya bilsh universalnih logichnih elementarnih operacij nizh ti yaki ye v abstraktnij teoriyi algoritmiv V tij chi inshij miri cim vimogam vidpovidayut tak zvani operatorni algoritmichni sistemi Operatorni algoritmi Van HaoOperatornij algoritm Van Hao zadayetsya poslidovnistyu nakaziv specialnogo viglyadu Kozhen nakaz maye pevnij nomer i mistit vkazivki yaku operaciyu slid vikonati nad zadanim ob yektom i nakaz z yakim nomerom slid dali vikonati nad rezultatom danoyi operaciyi Zagalnij viglyad takogo nakazu 1 i w a b displaystyle i begin array c c c hline omega amp alpha amp beta hline end array de i nomer nakazu w elementarna operaciya nad ob yektom a b nomeri deyakih nakaziv U terminah mashin Tyuringa nomeri nakaziv vidpovidayut nomeram konfiguracij mashini a elementarna operaciya nad ob yektom elementarnij diyi nad konfiguraciyeyu pri deyakomu stani Vikonati nakaz 1 nad chislom h v operatornomu algoritmi znachit znajti chislo w h i dali perejti do vikonannya nad w h nakazu z nomerom a Yaksho zh w h ne viznacheno to perejti do vikonannya nad chislom h nakazu z nomerom b Napriklad vikonavshi nad chislom 24 nakaz i 6 7 13 displaystyle i begin array c c c hline 6 amp 7 amp 13 hline end array otrimayemo chislo 4 i vkazivku vikonuvati dali nad 4 nakazom z nomerom 7 Vikonavshi cej nakaz nad chislom 23 otrimayemo znovu chislo 23 i vkazivku vikonuvati nad 23 nakaz z nomerom 13 Ostannim stanom mashini Tyuringa v operatornih algoritmah vidpovidaye nakaz vidu i C T O P displaystyle i begin array c hline mbox C mathrm T mbox O Pi hline end array yakij oznachaye sho obchislennya slid zupiniti Chislo nad yakim slid vikonati cej nakaz ye rezultat obchislen U zagalnomu vipadku rezultat vikonannya nakazu 1 nad chislom h budemo zobrazhati paroyu z g de z otrimane chislo g nomer nakazu yakij povinen vikonuvatisya dali nad z Programoyu operatornogo algoritmu nazivayetsya poslidovnist nakaziv vidu i w i a i b i displaystyle i begin array c c c hline omega i amp alpha i amp beta i hline end array displaystyle i s w i s a i s b i s displaystyle i s begin array c c c hline omega i s amp alpha i s amp beta i s hline end array displaystyle i n C T O P displaystyle i n begin array c hline mbox C mathrm T mbox O Pi hline end array de w x wi s x zadani odnomisni chastkovi funkciyi sho viznachayut elementarni operaciyi nad ob yektom h ai bi ai s bi s yakis naturalni chisla z poslidovnosti i i 1 i n Pererobiti h zgidno danogo operatornogo algoritmu ce oznachaye vikonati nad h poslidovnist nastupnih dij i krok Znahodimo wi x Yaksho wi x viznacheno to rezultatom bude para chisel wi x ai Yaksho w x ne viznacheno to rezultatom i go kroku bude para h bi i 1 krok yaksho rezultat poperednogo kroku h bi de bi i 1 Znahodimo wi 1 x Yaksho vona viznachena to rezultatom bude para wi 1 x ai 1 yaksho ne viznachena to rezultatom bude para h bi 1 i t d i n 1 krok Yaksho yak rezultat na comu kroci vijde para yaka vkazuye na ostannij operator z i n to proces obrivayetsya i chislo z ye rezultatom pererobki chisla h zgidno zadanomu algoritmu z wi n 1 h Yaksho zh u procesi vikonannya algoritmu ne vinikaye pari sho vkazuye na ostannij operator to rezultatom pererobki h bude neviznachene znachennya Yaksho funkciya vsyudi viznachena to simvol b ne vplivaye na proces obchislen i tomu zazvichaj ne vkazuyetsya U comu vipadku nakaz maye viglyad i w a Kazhut sho operatornij algoritm A z programoyu h obchislyuye chastkovu funkciyu f x yaksho algoritm A pereroblyaye kozhne naturalne chislo h v f x Zokrema yaksho f x NE viznacheno to proces pererobki h zgidno z programoyu 2 povinen buti neskinchennim Priroda funkcij obchislyuvanih za dopomogoyu operatornih algoritmiv Van Hao zalezhit vid togo yaki funkciyi w1 vhodyat u zapisi nakaziv Maye misce nastupna teorema sho viznachaye prirodu funkcij wi Teorema 3 Dlya togo shob chastkova funkciya f x bula obchislyuvanoyu za dopomogoyu operatornogo algoritmu programa yakogo mistit lishe chastkovo rekursivni funkciyi wi h z rekursivnoyu oblastyu viznachenosti neobhidno i dostatno shob f h bula chastkovo rekursivnoyu Neobhidnist umov ochevidna i mi obmezhimosya lishe dokazom yih dostatnosti Nasampered vvedemo ponyattya odniyeyi vazhlivoyi dlya dokazu funkciyi Cyu funkciyu budemo poznachati cherez eh h u abo skorocheno ehhu i nazivati eksponentoyu chisla rx v chisli u Pri u 0 vvazhayemo ehhu rivnim pokazniku najvishogo stupenya prostogo chisla rh na yaku dilitsya u Dlya u 0 vvazhayemo za viznachennyam ehh0 0 dlya vsih znachen h Napriklad e x 3 8 3 e x 1 8 0 e x 0 0 0 displaystyle ex 3 8 3 ex 1 8 0 ex 0 0 0 Yasno sho algoritm z programoyu 0 C T O P 1 a 1 displaystyle 0 begin array c hline mbox C mathrm T mbox O Pi hline end array 1 begin array c c c hline alpha amp 1 amp hline end array obchislyuye nide ne viznachenu funkciyu f x Nehaj chastkovo rekursivna funkciya f x maye neporozhnij grafik Todi cej grafik mozhna predstaviti u viglyadi sukupnosti par lt a t b t gt t 0 1 de a i b vidpovidni primitivno rekursivni funkciyi Poznachimo cherez y x viraz 2h i vvedemo chastkovu funkciyu w x vvazhayuchi w x 3 x e x 0 x a e x 1 x e x 0 x a e x 1 x displaystyle omega x begin cases 3 x ex 0 x neq alpha ex 1 x ex 0 x alpha ex 1 x end cases Funkciya w x chastkovo rekursivnih z rekursivnoyu oblastyu viznachenosti Legko perekonatisya sho operatornij algoritm sho maye programu 0 C T O P 1 y 2 2 w 2 3 3 e x 1 4 4 b 0 displaystyle 0 begin array c hline mbox C mathrm T mbox O Pi hline end array mbox 1 begin array c c hline upsilon amp 2 hline end array mbox 2 begin array c c c hline omega amp 2 amp 3 hline end array mbox 3 begin array c c hline ex 1 amp 4 hline end array mbox 4 begin array c c hline beta amp 0 hline end array obchislyuye yakraz funkciyu f x Spravdi vikonavshi nad dovilnim chislom h nakaz 1 otrimayemo paru 2h 2 Yaksho x a 0 to vikonavshi nad 2h nakaz 2 otrimayemo paru 2x31 2 Yaksho x a 1 to vikonavshi nad 2x31 nakaz 2 otrimayemo paru 2x32 2 i t d Proces prodovzhuyetsya do tih pir doki nareshti vijde para 2x3n 2 dlya yakoyi h a n Tak yak w 2x3n ne viznacheno to nad chislom 2x3n teper treba vikonati nakaz 3 v rezultati yakogo otrimayemo paru n 4 Vikonavshi nad n nakaz 4 otrimayemo paru b n 0 Tak yak h a n to b n f h i otzhe algoritm pereroblyaye h v f x sho j bulo potribno Pobudovana programa dlya obchislennya funkciyi f x viyavilasya dosit trivialnoyu vnaslidok togo sho zapas funkcij dopustimih v nakazah buv duzhe velikij Prirodno chim menshe zapas tim vazhche buduvati potribni programi Tomu bezsumnivnij interes predstavlyaye nastupna teorema yaku mi navodimo bez dovedennya Teorema Minskogo 4 Dlya kozhnoyi chastkovo rekursivnoyi funkcij f h isnuye operatornij algoritm programa yakogo skladayetsya z nakaziv vidu C T O P c a d a b displaystyle begin array c hline mbox C mathrm T mbox O Pi hline end array mbox begin array c c c hline times c amp a amp hline end array mbox begin array c c c hline d amp alpha amp beta hline end array dlya bud yakogo h pererobnij 2x v 2f x Inshimi slovami bud yaka chastkovo rekursivna funkciya f h obchislyuvana za dopomogoyu vidpovidnogo algoritmu programa yakogo skladayetsya z nakaziv navedenogo vidu za umovi sho znachennya argumentu i funkciyi koduyutsya chislami 2 2f x Operatorni algoritmi O A LyapunovaAlgoritmichna sistema radyanskogo vchenogo Oleksiya Lyapunova zaproponovana nim v 1953 r ye odniyeyu z pershih sho vrahovuyut vsi vimogi proponovani dlya konkretnih algoritmiv Vona vinikla u zv yazku zi vprovadzhennyam algoritmiv riznih zavdan v EOM Dlya opisu budovi algoritmiv Lyapunov vikoristovuye specialnij matematichnij aparat tak zvana logichna shema algoritmiv v yakih velikimi logichnimi bukvami poznachayutsya okremi diyi algoritmu dlya peretvorennya informaciyi Yih nazivayut operatorami Malimi literami poznachayutsya pereviryayutsya logichni umovi pri comu vikoristovuyetsya simvolika prijnyata v matematichnij logici Napriklad simvolom r h lt u poznachayut logichnu umovu vikonanu v tomu vipadku koli nerivnist sho stoyit u duzhkah ye istinoyu V inshomu vipadku ce umova ye hiboyu Poslidovne vikonannya dekilkoh operatoriv poznachayetsya yak tvir prichomu spivmnozhnik sho stoyit pravoruch diye pislya spivmnozhnika sho stoyit livoruch Logichnimi shemami algoritmu nazivayutsya virazi skladeni z operatoriv i logichnih umov nastupnih odin za inshim Vid kozhnoyi logichnoyi umovi pochinayetsya strilka yaka zakinchuyetsya bilya yakogo nebud z operatoriv Napriklad z operatoriv A V S i logichnih umov r i q mozhna sklasti taki logichni shemi 2 A p 1 B q 1 2 C displaystyle downarrow 2 mbox Ap 1 mbox B downarrow q 1 uparrow 2 mbox C abo p 1 A 2 B 1 C q 2 displaystyle p uparrow 1 mbox A downarrow 2 mbox B downarrow 1 mbox Cq uparrow 2 Znak i poznachaye pochatok strilki znak i yiyi kinec Odnakovimi nomerami poznachayutsya pochatok i kinec odniyeyi i tiyeyi zh strilki Strilki mozhut pochinatisya u bud yakogo nelogichnogo operatora Logichna shema algoritmu viznachaye poryadok roboti operatoriv zalezhno vid znachennya vhidnih do neyi logichnih umov Robota algoritmu pochinayetsya z togo sho vikonuyetsya najlivishij operator shemi Pislya togo yak pevnij element shemi vikonanij viznachayetsya yakij operator shemi povinen vikonuvatisya nastupnim Yaksho ce buv operator to nastupnij za nim povinen vikonuvatisya toj element yakij stoyit bezposeredno pravoruch abo toj yakij zaznachenij vidpovidnoyu strilkoyu Yaksho ostannim bula logichne umova to mozhlivi dva vipadki Yaksho perevirena umova vikonana to povinen pracyuvati element sho stoyit pravoruch Yaksho vono hibne povinen pracyuvati toj operator do yakogo vede strilka sho pochinayetsya pislya danoyi umovi Robota algoritmu zakinchuyetsya abo todi koli ostannij z robochih operatoriv mistit vkazivku pro yiyi pripinennya abo koli na deyakomu etapi ne viyavlyayetsya takogo elementa shemi yakij mav bi pracyuvati Dlya zapisu algoritmiv vikoristovuyutsya taki osnovni tipi operatoriv 1 arifmetichni operatori 2 operatori perevirki logichnih umov 3 operatori pereadresaciyi 4 operatori perenesennya 5 operatori formuvannya 1 Arifmetichni operatori sluzhat dlya zapisu riznih arifmetichnih dij i poznachayutsya pochatkovimi bukvami latinskogo alfavitu Napriklad operator A obchislyuye velichinu a ajk saik operator V velichinu s aij Vibir bukv dlya poznachennya operacij dovilnij 2 Operatori perevirki logichnih umov sluzhat dlya viznachennya poryadku roboti algoritmu i poznachayutsya malimi bukvami latinskogo alfavitu r q ta in 3 Operatori pereadresaciyi sluzhat dlya zmini adres v nakazah dlya zmini riznih parametriv vid yakih zalezhat operatori programi dlya vidnovlennya znachen parametriv i adres yaki buli zmineni v procesi roboti algoritmu programi Operatori pereadresaciyi poznachayutsya bukvoyu F iz zaznachennyam u duzhkah zminyuvanogo adresi abo parametra Tak operator sho zminyuye parametr i na odinicyu bude poznachatisya F i Operator sho zbilshuye parametr i na n odinic bude poznachatisya Fn i operator parametr i na n odinic bude poznachatisya F n i 4 Operator perenesennya sluzhit dlya perenesennya odnogo parametra na misce inshogo abo inshimi slovami dlya zamini odnogo parametra inshim Operatori perenesennya poznachayutsya a b de a oznachaye chim zaminyuyetsya sho perenositsya b sho zaminyuyetsya zamist chogo perenositsya 5 Operatori formuvannya sluzhat dlya formuvannya pochatkovih znachen deyakih operatoriv algoritmu Voni perenosyat deyaki zazdalegid zapaseni nakazi v pevni miscya algoritmu Operatori formuvannya mozhna vikoristovuvati zamist operatoriv pereadresaciyi Ce osoblivo zruchno koli chislo pereadresacij mozhe buti riznim a pochatkove znachennya parametra zavzhdi odne i te zh Napriklad yaksho pochatkove znachennya parametra i l to operator formuvannya mozhe buti zapisanij u viglyadi l i Rozglyanemo priklad zapisu operatornogo algoritmu Lyapunova dlya pidsumovuvannya p yati chisel a1 a2 a3 a4 a5 Nehaj s parametr sho ye sumoyu ai i 1 n operator Ai obchislyuye velichinu si ci 1 ai Obchislennya sumi pochinayemo z i 1 Algoritm maye viglyad 1 i 0 ci 1 Ai F i p i 6 Operatorni algoritmi Lyapunova dlya rozv yazku pevnoyi zadachi dopuskayut deyaki ekvivalentni peretvorennya Programa pobudovana za bud yakogo z ekvivalentnih mizh soboyu algoritmiv sluzhit dlya virishennya odniyeyi i tiyeyi zh zadachi Taki peretvorennya algoritmiv korisni v tomu vidnoshenni sho voni mozhut buti vikoristani dlya poshukiv racionalnoyi programi pid chas vikonannya danogo algoritmu v mashini Peretvorennya shem mozhna rozglyadati z dvoh tochok zoru Pershij shlyah doslidzhuvati formalni totozhni peretvorennya shem algoritmiv proponuyetsya radyanskim matematikom Yu I Yanovim Drugij shlyah dosliditi zmistovni peretvorennya shem algoritmiv sho vrahovuyut individualni osoblivosti rozv yazuvanoyi zadachi DzherelaAlferova Z V Teoriya algoritmov