В теорії обчислюваності та складності обчислень проблема зупинки є проблемою визначення чи завершиться дана комп'ютерна програма отримавши певні вхідні дані за скінченний час чи буде працювати нескінченно. Проблема зупинки - алгоритмічно нерозв'язна задача, тобто не існує алгоритму (програми) який би розв'язував проблему зупинки для всіх можливих пар програма-вхідні дані.
[en] описав коротке доведення від протилежного того факту що проблема зупинки нерозв'язна. Спершу припустимо що проблема розв'язна, і існує функція зупиняється(f)
, яка повертає true
, якщо програма f
зупиняється і false
- якщо ні. Тоді, маючи функцію:
def парадокс(): if зупиняється(парадокс): нескінченний_цикл() return 'зупинилася'
зупиняється(парадокс)
згідно початкового припущення має повернути true
або false
, але у випадку true
парадокс
увійде у нескінченний цикл і не зупиниться, тому такий результат суперечитиме визначенню функції зупиняється
. У випадку false
- аналогічно. Маємо суперечність, тому початкове припущення про те що функція зупиняється
може існувати - хибне.
Огляд
В 1936 році, Алан Тюринг довів, що не може існувати загального алгоритму для розв'язання проблеми зупинки для всіх пар програма-вхідні дані. Тепер проблема зупинки називається нерозв'язною на множині машин Тюринга.
Розглянемо множину алгоритмів S, які приймають на вхід натуральне число і на виході теж видають натуральне число.
Виберемо якусь повну за Тюрингом мову програмування. Кожен алгоритм можна записати у вигляді скінченної послідовності символів на цій мові. Впорядкуємо множину S лексикографічно (в словниковому порядку), при цьому кожен алгоритм отримає свій порядковий номер. Назвемо "Аналізатором" гіпотетичний алгоритм, який отримує на вхід пару натуральних чисел (N, X), і:
- зупиняється і повертає 1, якщо алгоритм з номером N не зупиняється, отримавши на вхід X
- не зупиняється в іншому випадку (якщо алгоритм з номером N зупиняється, отримавши на вхід X).
Проблему зупинки можна переформулювати наступним чином: чи існує Аналізатор?
Теорема. Аналізатор не існує.
Доведемо — від протилежного.
Припустимо, Аналізатор існує. Напишемо алгоритм Аналізатора Алгоритму Х, який приймає на вхід число N. Аналізатор отримує на вхід пару аргументів (Х, N). Тут є два варіанти. Якщо Алгоритм Х — не зупиняється: Аналізатор зупиняється — ми знайшли такий алгоритм (чудово).
Якщо Алгоритм Х — зупиняється: Аналізатор повертає результат, наприклад Y, і переходить до розгляду наступного алгоритму Х+1 з нескінченної множини алгоритмів.
Доведення.
Виникає суперечність, або зупиняється Алгоритм Х, або Х+1 з числом N. Або зупиняється сам Аналізатор. З цієї суперечності випливає, що наше припущення невірно: Аналізатор не існує, що і треба було довести.
Формалізація поняття алгоритму дозволила дослідити існування задач, для яких не існує алгоритмів пошуку розв'язків. Згодом було доведено неможливість алгоритмічного обчислення розв'язків ряду задач, що робить неможливим їхнє розв'язання на будь-якому обчислювальному пристрої.
Функцію f називають обчислюваною (англ. computable), якщо існує машина Тюринга, яка обчислює значення f для всіх елементів множини визначення функції. Якщо такої машини не існує, функцію f називають необчислюваною. Функція вважатиметься необчислюваною навіть, якщо існують машини Тюринга, здатні обчислити значення для підмножини з усієї множини вхідних даних.
Випадок, коли результатом обчислення функції f є булеве значення істина або неправда (або множина {0, 1}) називають задачею, яка може бути розв'язною, або нерозв'язною в залежності від обчислюваності функції f.
Важливо точно вказувати припустиму множину вхідних даних, оскільки задача може бути розв'язною для однієї множини та нерозв'язною для іншої.
Однією з перших задач, для якої було доведено нерозв'язність є проблема зупинки. Формулюється вона наступним чином: Маючи опис програми для машини Тюринга, визначити, чи завершить роботу програма за скінченний час, чи працюватиме нескінченно, отримавши будь-які вхідні дані.
Доведення нерозв'язності проблеми зупинки важливе тим, що до неї можна звести інші задачі. Наприклад, проблему зупинки на порожній стрічці (визначити для заданої машини Тюринга чи зупиниться вона, будучи запущена на порожній стрічці) можна звести до простої задачі зупинки, довівши, тим самим, її нерозв'язність
Див. також
Зноски
- Strachey, Christopher (1 січня 1965). An impossible program. The Computer Journal. 7 (4): 313—313. doi:10.1093/comjnl/7.4.313. Процитовано 11 лютого 2024.
- [[Structure and Interpretation of Computer Programs]]. 4.1.5 Data as Programs. Процитовано 11 лютого 2024.
{{}}
: Назва URL містить вбудоване вікіпосилання ()
Джерела
- .
- Мир, 1972. — 416 с. . Теория рекурсивных функций и эффективная вычислимость. — М. : (рос.)
- Н. К. Верещагин, . Лекции по математической логике и теории алгоритмов. Вычислимые функции. — 4-е. — М : МЦНМО, 2012. — Т. 3. — 160 с.(рос.)
Це незавершена стаття з математики. Ви можете проєкту, виправивши або дописавши її. |
Це незавершена стаття про інформаційні технології. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
V teoriyi obchislyuvanosti ta skladnosti obchislen problema zupinki ye problemoyu viznachennya chi zavershitsya dana komp yuterna programa otrimavshi pevni vhidni dani za skinchennij chas chi bude pracyuvati neskinchenno Problema zupinki algoritmichno nerozv yazna zadacha tobto ne isnuye algoritmu programi yakij bi rozv yazuvav problemu zupinki dlya vsih mozhlivih par programa vhidni dani en opisav korotke dovedennya vid protilezhnogo togo faktu sho problema zupinki nerozv yazna Spershu pripustimo sho problema rozv yazna i isnuye funkciya zupinyayetsya f yaka povertaye true yaksho programa f zupinyayetsya i false yaksho ni Todi mayuchi funkciyu def paradoks if zupinyayetsya paradoks neskinchennij cikl return zupinilasya zupinyayetsya paradoks zgidno pochatkovogo pripushennya maye povernuti true abo false ale u vipadku true paradoks uvijde u neskinchennij cikl i ne zupinitsya tomu takij rezultat superechitime viznachennyu funkciyi zupinyayetsya U vipadku false analogichno Mayemo superechnist tomu pochatkove pripushennya pro te sho funkciya zupinyayetsya mozhe isnuvati hibne OglyadV 1936 roci Alan Tyuring doviv sho ne mozhe isnuvati zagalnogo algoritmu dlya rozv yazannya problemi zupinki dlya vsih par programa vhidni dani Teper problema zupinki nazivayetsya nerozv yaznoyu na mnozhini mashin Tyuringa Rozglyanemo mnozhinu algoritmiv S yaki prijmayut na vhid naturalne chislo i na vihodi tezh vidayut naturalne chislo Viberemo yakus povnu za Tyuringom movu programuvannya Kozhen algoritm mozhna zapisati u viglyadi skinchennoyi poslidovnosti simvoliv na cij movi Vporyadkuyemo mnozhinu S leksikografichno v slovnikovomu poryadku pri comu kozhen algoritm otrimaye svij poryadkovij nomer Nazvemo Analizatorom gipotetichnij algoritm yakij otrimuye na vhid paru naturalnih chisel N X i zupinyayetsya i povertaye 1 yaksho algoritm z nomerom N ne zupinyayetsya otrimavshi na vhid X ne zupinyayetsya v inshomu vipadku yaksho algoritm z nomerom N zupinyayetsya otrimavshi na vhid X Problemu zupinki mozhna pereformulyuvati nastupnim chinom chi isnuye Analizator Teorema Analizator ne isnuye Dovedemo vid protilezhnogo Pripustimo Analizator isnuye Napishemo algoritm Analizatora Algoritmu H yakij prijmaye na vhid chislo N Analizator otrimuye na vhid paru argumentiv H N Tut ye dva varianti Yaksho Algoritm H ne zupinyayetsya Analizator zupinyayetsya mi znajshli takij algoritm chudovo Yaksho Algoritm H zupinyayetsya Analizator povertaye rezultat napriklad Y i perehodit do rozglyadu nastupnogo algoritmu H 1 z neskinchennoyi mnozhini algoritmiv Dovedennya Vinikaye superechnist abo zupinyayetsya Algoritm H abo H 1 z chislom N Abo zupinyayetsya sam Analizator Z ciyeyi superechnosti viplivaye sho nashe pripushennya nevirno Analizator ne isnuye sho i treba bulo dovesti Formalizaciya ponyattya algoritmu dozvolila dosliditi isnuvannya zadach dlya yakih ne isnuye algoritmiv poshuku rozv yazkiv Zgodom bulo dovedeno nemozhlivist algoritmichnogo obchislennya rozv yazkiv ryadu zadach sho robit nemozhlivim yihnye rozv yazannya na bud yakomu obchislyuvalnomu pristroyi Funkciyu f nazivayut obchislyuvanoyu angl computable yaksho isnuye mashina Tyuringa yaka obchislyuye znachennya f dlya vsih elementiv mnozhini viznachennya funkciyi Yaksho takoyi mashini ne isnuye funkciyu f nazivayut neobchislyuvanoyu Funkciya vvazhatimetsya neobchislyuvanoyu navit yaksho isnuyut mashini Tyuringa zdatni obchisliti znachennya dlya pidmnozhini z usiyeyi mnozhini vhidnih danih Vipadok koli rezultatom obchislennya funkciyi f ye buleve znachennya istina abo nepravda abo mnozhina 0 1 nazivayut zadacheyu yaka mozhe buti rozv yaznoyu abo nerozv yaznoyu v zalezhnosti vid obchislyuvanosti funkciyi f Vazhlivo tochno vkazuvati pripustimu mnozhinu vhidnih danih oskilki zadacha mozhe buti rozv yaznoyu dlya odniyeyi mnozhini ta nerozv yaznoyu dlya inshoyi Odniyeyu z pershih zadach dlya yakoyi bulo dovedeno nerozv yaznist ye problema zupinki Formulyuyetsya vona nastupnim chinom Mayuchi opis programi dlya mashini Tyuringa viznachiti chi zavershit robotu programa za skinchennij chas chi pracyuvatime neskinchenno otrimavshi bud yaki vhidni dani Dovedennya nerozv yaznosti problemi zupinki vazhlive tim sho do neyi mozhna zvesti inshi zadachi Napriklad problemu zupinki na porozhnij strichci viznachiti dlya zadanoyi mashini Tyuringa chi zupinitsya vona buduchi zapushena na porozhnij strichci mozhna zvesti do prostoyi zadachi zupinki dovivshi tim samim yiyi nerozv yaznistDiv takozhMashina Tyuringa ZavisannyaZnoskiStrachey Christopher 1 sichnya 1965 An impossible program The Computer Journal 7 4 313 313 doi 10 1093 comjnl 7 4 313 Procitovano 11 lyutogo 2024 Structure and Interpretation of Computer Programs 4 1 5 Data as Programs Procitovano 11 lyutogo 2024 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite book title Shablon Cite book cite book a Nazva URL mistit vbudovane vikiposilannya dovidka Dzherela inshi movi Teoriya rekursivnyh funkcij i effektivnaya vychislimost M Mir 1972 416 s ros N K Vereshagin Lekcii po matematicheskoj logike i teorii algoritmov Vychislimye funkcii 4 e M MCNMO 2012 T 3 160 s ros Ce nezavershena stattya z matematiki Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi Ce nezavershena stattya pro informacijni tehnologiyi Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi