IB107 Vyčíslitelnost a složitost Riceovy věty, redukce Jan Strejček Fakulta informatiky Masarykova univerzita respektování funkcí Definice 9.2 (respektování funkcí) Množina A c N respektuje funkce, jestliže platí i e A a ifj = ifj =4> j g A. ■ A respektuje funkce, právě když A respektuje funkce ■ 0, N ■ konečná neprázdná množina A c N ■ {/1 (f i je prostá} ■ {/ | Wi = {42}} IB107 Vyčíslitelnost a složitost: Riceovy věty, redukce 2/20 1. Riceova věta Věta 9.1 (1. Riceova věta) Neprázdná vlastní podmnožina N (tedy A splňující® ^ A c N), která respektuje funkce, není rekurzivní. Důkaz: (sporem) ■ předpokládejme, že A je rekurzivní ■ nechí e je prázdná funkce {dom(e) = 0) a {/1 cpi = e} c A ■ nechí 0 je nějaká vyčíslitelná funkce splňující {/ \ (/, /); *i := 0(x1) end ■ tedy e A i e K a tudíž /C je rekurzivní (spor) ■ IB107 Vyčíslitelnost a složitost: Riceovy věty, redukce 3/20 použití 1. Riceovy věty A = {/ | Lpi je prostá} není rekurzivní Existují nerekurzivní množiny, které nerespektují funkce. (Jejich nerekurzivita není důsledkem 1. Riceovy věty.) IB107 Vyčíslitelnost a složitost: Riceovy věty, redukce 4/20 důsledky 1. Riceovy věty Množina všech indexů programů s daným vstupně-výstupním chováním, která není rovna 0 nebo N, není rekurzivní. Není rozhodnutelné, zda má funkce cpj danou netriviální vlastnost, která není závislá na jejím indexu. Není rozhodnutelné, zda jsou dvě vyčíslitelné funkce identické (nebo dva algoritmy/while-programy sémanticky ekvivalentní). IB107 Vyčíslitelnost a složitost: Riceovy věty, redukce 5/20 1. Riceova věta pro relace Definice 9.6 (respektovaní funkcí relacemi) Množina R c Nk respektuje funkce, jestliže (ai,..., a^) e R a ¥>a! = ■■■> bk implikuje(bi,...,bk) e R. ■ {UJ) I ¥>/ = ► N takové, že6<9f a dále: ■ {/1 ^(/) = 0 =^ g /4 / g /C =4> dom((pf(j)) je konečná a <^(/) < 0 =4> g >A celkem / g /C <=: g A tedy /C = ŕ"1 (4) IB107 Vyčíslitelnost a složitost: Riceovy věty, redukce 9/20 použití 3. Riceovy věty C = {/ | cpi = f}, kde f je pevně zvolená totálně vyčíslitelná funkce, není r.e. Množina všech indexů programů s daným nekonečným vstupně-výstupním chováním není rekurzivně spočetná. Existují množiny, které nejsou r.e. a nelze to o nich dokázat Riceovými větami. IB107 Vyčíslitelnost a složitost: Riceovy věty, redukce 10/20 intuice pro redukci A = {ne N | nje dělitelné 13} B= {n e N | nje dělitelné 26} IB107 Vyčíslitelnost a složitost: Riceovy věty, redukce 11/20 intuice pro redukci K = {/' e N | N taková, že x e A f(x) e 6. Funkci f nazveme redukcí A na B. AaB jsou m-ekvivalentní, psáno A =m B, pokud A ► >4 A je rekurzivní B B je rekurzivně spočetná =4> A je rekurzivně spočetná Důkaz: A B není rekurzivní Q A není rekurzivně spočetná =4> B není rekurzivně spočetná Důsledek NechíA=m B. O /A ye rekurzivní <^> 6 ye rekurzivní B >A ye rekurzivně spočetná <=^> 6 ye rekurzivně spočetná IB107 Vyčíslitelnost a složitost: Riceovy věty, redukce 17/20 typické aplikace ■ důkaz (částečné) rozhodnutelnosti A ■ důkaz nerozhodnutelnosti B IB107 Vyčíslitelnost a složitost: Riceovy věty, redukce 18/20 r.e. množiny a K Věta 10.5 Je-li A c N rekurzivně spočetná, pak A ); x-| := 1 end IB107 Vyčíslitelnost a složitost: Riceovy věty, redukce 19/20 těžká a úplná množina Definice 10.6 (těžká a úplná množina) Necht C je třída podmnožin množiny N a A c N. Řekneme, že A je C-těžká, právě když pro každou množinu B e C platí B