Univerzita Karlova v Praze Matematicko-fyzikální fakulta BAKALÁŘSKÁ PRÁCE. Jan Vacek Universální Turingův stroj. Katedra algebry
|
|
- Žaneta Sedláková
- před 6 lety
- Počet zobrazení:
Transkript
1 Univerzita Karlova v Praze Matematicko-fyzikální fakulta BAKALÁŘSKÁ PRÁCE Jan Vacek Universální Turingův stroj Katedra algebry Vedoucí bakalářské práce: prof. RNDr. Jan Krajíček, DrSc. Studijní program: Matematika, Obecná matematika 2010
2 Na tomto místě bych chtěl poděkovat vedoucímu práce profesorovi Janu Krajíčkovi za odbornou pomoc, Haně Cermonové za korekturu a všem blízkým, kteří mě podporovali. Prohlašuji, že jsem svou bakalářskou práci napsal samostatně a výhradně s použitím citovaných pramenů. Souhlasím se zapůjčováním práce a jejím zveřejňováním. V Praze dne 22.května 2010 Jan Vacek 2
3 Obsah 1 Úvod Definice Univerzálního Turingova stroje Konstrukce Univerzálního Turingova stroje Kódování Turingova stroje Konstrukce Univerzálního Turingova stroje Složitost Univerzálního Turingova stroje Časová složitost stroje U Literatura 35 3
4 Název práce: Universální Turingův stroj Autor: Jan Vacek Katedra: Katedra algebry Vedoucí bakalářské práce: prof. RNDr. Jan Krajíček, DrSc. vedoucího: Abstrakt: V předložené práci studujeme Univerzální Turingův stroj. Konkrétně se zabýváme jeho konstrukcí. Sestrojený Univerzální Turingův stroj pro zadaný Turingův stroj T a nějaký jeho vstup simuluje chod tohoto stroje. Pro naší konstrukci jsme předpokládali, že Turingův stroj T má binární vstupní abecedu, že se jeho pracovní abeceda skládá ze symbolů 0, 1 a symbolu pro prázdné políčko. Dále jsme ještě předpokládali, že má nekonečnou pásku pouze směrem vpravo. Na takový tvar ale můžeme převést libovolný Turingův stroj. Nijak jsme tím tedy neubrali na obecnosti. Závěr práce je věnován výpočtu časové složitosti námi sestrojeného stroje. Dojdeme k závěru, že námi zkonstruovaný Univerzální Turingův stroj má asymptoticky kvadratickou složitost. Klíčová slova: Turingův stroj, Univerzální Turingův stroj, Časová složitost Title: Universal Turing machine Author: Jan Vacek Department: Department of Algebra Supervisor: prof. RNDr. Jan Krajíček, DrSc. Supervisor's address: krajicek@karlin.mff.cuni.cz Abstract: In the present work we study the Universal Turing machine. Specifically, we are engaged in its construction. Constructed Universal Turing machine simulates for a given Turing machine T and some of its input the run of this machine. We expected, for our construction, that the Turing machine T has a binary input alphabet and that its tape alphabet consists of symbols 0, 1 and the symbol for the blank cell. We have expected that the Turing machine T has an infinite tape just on the right hand side. We can change any Turing machine into this form. Hence, we haven t lost none of generality this way. Final part of this work consists of time complexity computation of our machine. We find that designed Universal Turing machine has asymptotically quadratic complexity. Keywords: Turing machine, Universal Turing machine, Time complexity 4
5 Kapitola 1 Úvod Tématem této práce je sestrojení Univerzálního Turingova stroje. V poslední části analyzujeme časovou složitost zkonstruovaného stroje. V první kapitole se nejprve seznámíme s několika pojmy, které budeme v dalším průběhu používat. Zmíníme také některá tvrzení, která ale nebudeme dokazovat. Přitom se ovšem vždy odvoláme na publikaci, v níž se o daném problému šíří obsáhleji. 1.1 Definice Univerzálního Turingova stroje V této části se nacházejí především definice, proto je následující text jakousi kombinací různých částí knih z použité literatury uvedené na konci celé práce. Nejprve ze všeho definujeme Turingův stroj. Definice Turingův stroj je uspořádaná šestice T = V,, P, S, q 0, F, kde V je konečná množina všech prvků vstupní abecedy, V je znak pro prázdné políčko pásky, P V { } je konečná množina pracovní abecedy, S je konečná množina stavů stroje, q 0 S je počáteční stav stroje a F je přechodová funkce stroje F : S P S P { L,R }, kde { L, R } určuje směr pohybu čtecí hlavy stroje. Přechodová funkce F může být jen částečná. V definici není pro přechodovou funkci stroje žádné omezení, co se týká posunu čtecí hlavy stroje. Turingův stroj jsme tedy definovali pro oboustranně nekonečnou pásku. Nyní budeme definovat výstup Turingova stroje, protože pro definici Univerzálního Turingova stroje budeme tento pojem potřebovat. Abychom ale mohli definovat výstup, musíme nejprve říci, 5
6 co je vstupem Turingova stroje. Zavedeme také značení, které budeme i dále používat. Vstupem Turingova stroje T = V,, P, S, q 0, F je libovolné slovo x V *, kde V * je množina všech slov nad V. Dále budeme předpokládat, že čtecí hlava stroje T bude umístěna nad první symbol x, že x je neprázdné slovo, a že kromě x je páska prázdná. Nyní již můžeme definovat výstup Turingova stroje. Definice Nechť se Turingův stroj někdy zastaví, pak výstup stroje definujeme jako nejdelší souvislé slovo bez symbolu pro prázdné políčko, na jehož začátku je čtecí hlava stroje. Výstup Turingova stroje T na vstupu x budeme označovat T x. Pokud se Turingův stroj na vstupu x nezastaví, výstup nedefinujeme. Takto definovaný výstup Turingova stroje nezáleží na vzdálenosti posloupnosti od předem vybraného políčka. Dalším potřebným pojmem je ekvivalence Turingových strojů. Definice Nechť S a T jsou Turingovy stroje, a nechť x V * je libovolné slovo. Pak řekneme, že S x T x, jsou li splněny následující podmínky : 1 ) S se na vstupu x zastaví T se na vstupu x zastaví 2 ) Pokud se S na vstupu x zastaví, pak S x =T x. Posledním pojmem, který použijeme v definici Univerzálního Turingova stroje je pojem zakódování stroje. Tomuto pojmu se budeme více věnovat v kapitole 2, nebudeme jej tedy definovat teď. Bude nám pouze stačit, že se jedná o jednoznačnou interpretaci Turingova stroje konečným slovem nad konečnou abecedou, a budeme jej značit kód T. Než přistoupíme k definici Univerzálního Turingova stroje zmíníme několik známých faktů, které budou potřebné pro další průběh konstrukce. Pro Turingův stroj budeme později chtít, aby jeho vstupní abeceda byla {0, 1} a aby jeho pracovní abeceda kromě symbolů vstupní abecedy obsahovala pouze symbol. 6
7 Z uvedené literatury [1] plyne, že se každý Turingův stroj dá převést na Turingův stroj se vstupní abecedou {0, 1} (takovému stroji budeme říkat binární) a pracovní abecedou {0, 1, }. Zřejmě se přitom musí zvýšit počet stavů, ale převod je možný. Dále budeme pro konstrukci potřebovat, aby stroj, který se chystáme simulovat, měl nekonečnou pásku pouze směrem vpravo. (Tzn., že pro každé políčko z pásky existuje pouze konečně mnoho políček směrem nalevo a nekonečně mnoho směrem napravo od tohoto políčka.) Z uvedené literatury [1] plyne, že na takový stroj lze převést každý Turingův stroj. Z toho jako závěr vyplývá, že každý Turingův stroj lze převést na Turingův stroj, který má pásku nekonečnou pouze vpravo, jeho vstupní abeceda je {0, 1} a pracovní abeceda je {0, 1, }. Dále tedy budeme bez újmy na obecnosti předpokládat, že Turingův stroj je tohoto tvaru. Pro náš Univerzální Turingův stroj tedy budeme takový převod využívat. Definice Univerzálním Turingovým strojem nazveme Turingův stroj U = V ',, P ', S ', q 0 ', F ', kde {0, 1} V ', právě když pro každý Turingův stroj T = V,, P, S, q 0, F takový, že V V ', a x V platí U kód T, x T x, kde kód T V ' je nějaké zakódování Turingova stroje T. Budeme říkat, že Univerzální Turingův stroj simuluje stroj T. Námi zkonstruovaný Univerzální Turingův stroj nebude stejného tvaru jako stroj, který simuluje. Bude mít sice nekonečnou pásku pouze směrem vpravo, ale bude používat mnoho symbolů a stavů. V této práci nám půjde hlavně o srozumitelnost konstrukce. Podle předchozích úvah bude ale existovat i Univerzální Turingův stroj s binární vstupní abecedou a pracovní abecedou {0, 1, }. 7
8 Kapitola 2 Konstrukce Univerzálního Turingova stroje Nejprve je třeba nějakým způsobem zakódovat Turingův stroj. V tomto případě budeme používat kódování popsané v následující podkapitole. 2.1 Kódování Turingova stroje Podle předpokladu je Turingův stroj, který se chystáme zakódovat, binární s pracovní abecedou {0, 1, }. Tuto množinu si uspořádáme podle pořadí v textu. Dále si vezmeme množinu všech stavů stroje. V našem případě se bude jednat o množinu {q 1, q 2, q 3,..., q n }. Tuto množinu si opět uspořádáme. Uspořádejme ji například podle indexů. Číslování začneme od jedničky. Budeme ale potřebovat, aby počáteční stav stroje T byl v pořadí první. Teď si můžeme vyrobit tabulku, která bude reprezentovat Turingův stroj. V jednotlivých řádcích budou popořadě všechny stavy a každý sloupec bude reprezentovat po řadě všechny symboly množiny {0, 1, }. V buňce o souřadnicích (q i, s j ), kde q i je i-tý stav a s j je j-tý symbol, bude uspořádaná trojice (q k, p m, s l ), kde p m je jeden prvek uspořádané množiny {R, L}. R znamená pohyb doprava a L pohyb doleva. A prvek s l je prvek {0, 1, } a znamená, na jaký symbol se přepíše symbol s j. Tato tabulka bude sestavována podle přechodové funkce Turingova stroje. Pokud pro nějakou buňku neexistuje instrukce, zapíšeme do příslušné buňky nulu. Jako příklad uvedu tabulku pro Turingův stroj T. T bude mít pouze čtyři stavy q 1, q 2, q 3, q 4 a přechodová funkce bude zadána následovně. Stroj ve stavu q 1 a na symbolu 0 přepíše symbol na 1, přejde do stavu q 3 a posune se o jedno políčko vpravo. Je-li na symbolu 1, přepíše jej na 0, zůstane ve stavu q 1 a posune se vpravo. Nachází-li se stroj T ve stavu q 1 a jeho čtecí 8
9 hlava na symbolu, zůstane stroj ve stavu q 1, symbol změní na 1 a posune svou hlavu o jedno místo vlevo. Zbytek přechodové funkce nechám znázorněn jen v Tabulce 1. stav\symbol 0 1 q 1 (q 3, R, 1) (q 1, R, 0) (q 1, L, 1) q 2 0 (q 1, R, ) (q 2, L, 0) q 3 (q 3, R, 1) 0 (q 1, R, ) q 4 (q 1, R, 0) (q 4, R, 1) (q 1, L, 1) Tabulka 1: Příklad tabulky kódující Turingův stroj T. Tato tabulka nám teď kóduje stroj T. Pro další konstrukci budeme předpokládat, že v prvním řádku tabulky bude vždy počáteční stav stroje T. Tvrzení T Pro každý Turingův stroj T existuje po uspořádání stavů právě jeden popsaný zápis do tabulky. Existence tabulky je zřejmým důsledkem způsobu, jakým zapisujeme přechodovou funkci libovolného Turingova stroje. Zvolíme-li následně posloupnost stavů libovolného stroje T, existuje zřejmě pouze jediná možnost pro zápis tabulky, neboť množinu symbolů {0, 1, } jsme již uspořádali. Již tedy víme, že pro každý Turingův stroj nějaká taková tabulka existuje. K zakódování každého Turingova stroje tedy použijeme jeho tabulku. Tu musíme nějak přepsat na řetězec znaků. Nejprve si ji ale trochu přepíšeme. Místo každého stavu napíšeme jen jeho pořadové číslo. To ale nakonec napíšeme jen pomocí jedniček. Tedy místo q 4 napíšeme Dále do tabulky nebudeme psát závorky ani čárky. Jelikož máme zvolené pořadí 9
10 stavů a symbolů, nemusíme dokonce psát první sloupec ani řádek. Výsledná tabulka je znázorněna v Tabulce R1 1R0 1L1 0 1R 11L0 111R1 0 1R 1R0 1111R1 1L1 Tabulka 2: Zjednodušený přepis Tabulky 1. Teď už jen stačí takto zjednodušenou tabulku přepsat v posloupnost symbolů. K tomu použijeme nový symbol. Zvolíme třeba #. Posloupnosti znaků v jednotlivých buňkách tabulky napíšeme za sebe do řady, přičemž na začátku a na konci tabulky budou tři křížky ###, na konci buňky bude jeden křížek, tzn. #, a na konci řádku budou dva křížky, tzn. ##. Celou naší tabulku kódující stroj T převedeme v následující řetězec: ###111R1#1R0#1L1##0#1R #11L0##111R1#0#1R ##1R0#1111R1#1L1## # Tato posloupnost šesti symbolů nám kóduje Turingův stroj T. Protože se budeme čtecí hlavou Univerzálního stroje často vracet na začátek této posloupnosti, uděláme si tam jakousi zarážku. Tou bude znak. Ten tedy umístíme před celou posloupnost. Takto vytvořený kód použijeme jako část vstupnu pro Univerzální Turingův stroj. Tuto posloupnost symbolů kódující Turingův stroj T označíme jako kód T. Nyní si popíšeme, jak vyrobit univerzální Turingův stroj. Nazvěme jej U. Popíšeme práci stroje U, který má simulovat chod stroje T na nějakém jeho vstupu. U dostane jako vstup kód T a hned za ním vstup stroje T. Pro přehlednost budeme vstup stroje T označovat páska T. Pro názornost použijeme jako páska T posloupnost Vstup stroje U tedy bude v našem příkladě vypadat takto: ###111R1#1R0#1L1##0#1R #11L0##111R1#0#1R ##1R0#1111R1#1L1# ## Náš univerzální stroj U bude potřebovat ještě další symboly. 10
11 Budou to již všechny použité symboly, kromě symbolu, s indexy st a hl. Symbol s indexem st bude značit, v jakém stavu se nachází stroj T, a symbol s indexem hl bude značit, na jaké políčko ukazuje hlava stroje T. Podrobněji to bude vysvětleno dále. Tedy množina všech symbolů je {0, 1,, R, L, #, 0 st, 1 st, st, R st, L st, # st, 0 hl, 1 hl, hl, R hl, L hl, # hl, }. Označme ji třeba S. 2.2 Konstrukce Univerzálního Turingova stroje Budeme předpokládat, že stroj T je neprázdný, tedy že počáteční stav má definovanou přechodovou funkci pro všechny symboly {0, 1, }. Dále musíme nějak připravit posloupnost na samotný výpočet. A to tak, že Univerzální stroj nejprve přepíše celkem třetí symbol # na # st a první symbol posloupnosti páska T na 0 hl, nebo 1 hl. Jeho stavy a přechodovou funkci pro tento počáteční podprogram nyní popíšeme. Můžeme předpokládat, že čtecí hlava stroje U začne na prvním políčku zadané posloupnosti. Stroj bude v počátečním stavu q 0 -st. Tento stav se bude starat o přejetí čtecí hlavy stroje U na třetí symbol # zleva. Potom stav q 0 -st 1 zapíše index st pod tento symbol. Přechodové funkce tedy budou vypadat takto: stav\symbol # a S-{#, } q 0 -st (q 0 -st, R, ) (q 0 -st, R, #) (q 0 -st 1, L, a) q 0 -st 1 0 (q 0 -hl 1,, R, # st ) 0 Tabulka 3: Přechodové funkce pro q 0 -st a q 0 -st 1. Stav q 0 -hl 1 je stav, který se stará o zapsání indexu hl k prvnímu symbolu posloupnosti páska T. K tomu budeme potřebovat ještě další čtyři stavy. Ty budou q 0 -hl 2, q 0 -hl 3, q 0 -hl 4, q 0 -hl 5. Stav q 0 -hl 1 pojede doprava, dokud nenarazí na symbol #, potom přejde do stavu q 0 -hl 2 a posune se o jedno políčko vpravo. Stav q 0 -hl 2 se podívá, jestli se jedná o symbol #. Pokud ano, posune se o jedno políčko vpravo a přejde do stavu q 0 -hl 3. Pokud ne, posune se o políčko vpravo a přejde zpět do stavu q 0 -hl 1. Stav q 0 -hl 3 se opět podívá, zda se jedná o symbol #. Jestliže ne, posune se vpravo a přejde do stavu q 0 -hl 1. Pokud ano, stroj U posune svou čtecí hlavu o jedno políčko 11
12 vpravo a přejde do stavu q 0 -hl 4. Stroj U ve stavu q 0 -hl 4 jen připíše index hl k symbolu, na němž se nachází, a přejde do stavu q 0 -hl 5. Stav q 0 -hl 5 jen přejede čtecí hlavou na začátek celé posloupnosti a přejde do stavu q 1. Stav q 1 je následující stav, který už není přípravný. Všechny stavy, které byly zatím popsány (kromě stavu q 1 ), můžeme shrnout do podbloku, který budeme označovat Q 0. Přechodové funkce celého podbloku Q 0 jsou popsány v Tabulce 4: stav\ symbol q 0 -st # 0 1 (q 0 -st, R, #) q 0 -st 1 (q 0 -hl 1,, R, # st ) q 0 -hl 1 (q 0 -hl 2, R, #) q 0 -hl 2 (q 0 -hl 3, R, #) q 0 -hl 3 (q 0 -hl 4, R, #) (q 0 -st, R, ) q 0 -hl q 0 -hl 5 (q 0 -hl 5, L, #) (q 0 -st 1, L, 0) (q 0 -st 1, L, 1) a S-{#,,0,1, } (q 1, R, ) (q 0 -hl 1, R, 0) (q 0 -hl 1, R, 0) (q 0 -hl 1, R, 0) (q 0 -hl 5, L, 0 hl ) (q 0 -hl 5, L, 0) (q 0 -hl 1, R, 1) (q 0 -hl 1, R, 1) (q 0 -hl 1, R, 1) (q 0 -hl 5, L, 1 hl ) (q 0 -hl 5, L, Tabulka 4: Přechodové funkce podbloku Q 0. 1) (q 0 -hl 1, R, ) (q 0 -hl 1, R, ) (q 0 -hl 1, R, ) (q 0 -hl 5, L, hl ) (q 0 -hl 5, L, ) (q 0 -hl 1, R, a) (q 0 -hl 1, R, a) (q 0 -hl 1, R, a) 0 (q 0 -hl 5, L, a) 12
13 Tvrzení Q 0 Podblok Q 0 označí indexem st třetí křížek zleva a zapíše index hl na první symbol posloupnosti páska T. Což odpovídá tomu, že stroj T najede svou čtecí hlavou na první symbol vstupu a je ve svém počátečním stavu. Po skončení podbloku Q 0 bude čtecí hlava stroje U na druhém symbolu posloupnosti kód T. Z předchozího popisu je celkem zřejmé, co stroj U v podbloku Q 0 dělá. Nejprve stavy q 0 -st a q 0 -st 1 připíší index st před stav, který je v zápisu stroje T jako první. Přepíše tedy třetí křížek zleva na # st. První stav v zápisu je podle naší volby na začátku počáteční stav stroje T. Potom stavy q 0 -st i, kde i {2,3,4}, přejedou čtecí hlavou stroje U na konec posloupnosti kód T a následně hned na další políčko. To je první políčko posloupnosti páska T. K němu připíše index hl, který nám označuje polohu čtecí hlavy námi simulovaného stroje T. A konečně stav q 0 -st 1 přejede čtecí hlavou stroje U na druhé políčko posloupnosti kód T. Podblok Q 0 byl přípravný. Teď rozepíšeme, jak se chová stroj U, aby simuloval jeden krok stroje T v případě, kdy je čtecí hlava simulovaného stroje na symbolu s indexem hl a nachází se ve stavu, který je označen indexem st. Posloupnost páska T se na pásce stroje U nachází vpravo od poslední trojice křížků. Nejprve pojede stroj U svou čtecí hlavou stále doprava, dokud nenarazí na symbol s indexem hl. Tento symbol (bez indexu) si zapamatuje a jede doleva, dokud nenarazí na symbol # st. Jelikož jsme si množinu možných symbolů stroje T uspořádali (a to sice takto: {0, 1, }), víme, která sekce odpovídá kterému symbolu. Hledáme-li například sekci odpovídající symbolu 1, víme, že se jedná o symboly mezi prvním a druhým osamoceným symbolem # za znakem # st. Tedy v našem příkladě se jedná o tučně vyznačenou část. 13
14 ### st 111R1#1R0#1L1##0#1R #11L0##111R1#0#1R ##1R0#1111R1#1L1 ###1 hl Stroj U tedy vymaže index st u symbolu # st a posune svou hlavu na první symbol sekce, která odpovídá zapamatovanému symbolu. Toto budeme označovat jako podblok Q 1. stav\ symbol # # st 0 hl 1 hl hl a S- q 1 (q 1, R, #) (q 1, R, # st ) q 1-0 q 1-1 (q 1-0, L, #) (q 1-1, L, #) (q 1-0, L, 0 hl ) (q 1-1, L, 1 hl ) (q 1 -, L, hl ) (q 2, R, #) (q 1-1 st, R, #) q 1-1 st (q 2, R, #) q 1 - (q 1 -, L, #) q 1 - st (q 1-1 st, R, #) (q 1 - st, R, #) Tabulka 5: Přechodové funkce podbloku Q 1. {#,# st,0 hl, 1 hl, hl } (q 1, R, a) (q 1-0, L, a) (q 1-1, L, a) (q 1-1 st, R, a) (q 1 -, L, a) (q 1 - st, R, a) Tvrzení Q 1 Nachází li se stroj T v i tém stavu a jeho čtecí hlava je na j tém znaku uspořádané množiny symbolů, potom stroj U v podbloku Q 1 vymaže index st a přesune svou čtecí hlavu na první znak části posloupnosti, která odpovídá i tému řádku a j tému sloupci tabulky zapisující přechodovou funkci stroje T. Stroj U nejprve v tomto podbloku zjistí, na jaký symbol ukazuje právě stroj T. K tomu slouží stav q 1. Pak se postup stroje U dělí 14
15 podle toho, jaký symbol se na daném políčku vyskytoval. Pokud se čtecí hlava stroje T dívá na políčko se symbolem 0, pak se stroj U pouze posune o jedno políčko vpravo od políčka s indexem st, přičemž tento index vymaže. Hned vpravo od políčka, které bylo označeno indexem st se totiž nachází část posloupnosti příslušná symbolu 0. Pokud se na políčku, na němž je čtecí hlava stroje T, nachází symbol 1, tak stroj U posune nejprve svou čtecí hlavu o jeden křížek vpravo od symbolu s indexem st (index umaže) a pak postupuje jako v předchozím případě. Je-li nakonec poslední symbol na políčku, na nějž hledí čtecí hlava stroje T, posune se nejprve čtecí hlava stroje U o dva křížky vpravo od symbolu s indexem st. Index se jako v předchozích případech vymaže a pak stroj U postupuje stejně jako v případě, kdy byl symbol 0. V každém případě se tedy čtecí hlava stroje U přesune na odpovídající políčko. Pro symbol, na kterém se právě nachází čtecí hlava stroje U, jsou dvě možnosti. Buď je na tomto místě jednička, nebo nula. V případě nuly přechodová funkce stroje T není definovaná na symbol vstupu, tudíž by se stroj T zastavil. Musíme tedy zastavit i stroj U, ale nejprve musíme zařídit, aby konečný výstup stroje U byl stejný jako stroje T. To znamená, že musíme vymazat (tj. nahradit symbolem, který označuje prázdné políčko) všechny symboly posloupnosti kód T, následně odstranit index hl ve zbývajícím řetězci páska T a nastavit čtecí hlavu stroje U na políčko, z nějž byl index odstraněn. To budeme ale podrobně řešit později. Druhým možným symbolem je jednička. V takovém případě přepíše symbol na 1 st. Toto shrneme do podbloku Q 2. 15
16 stav\symbol 0 1 a S-{0,1} q 2 (q end, L, 0) (q 3, L, 1 st ) 0 Tabulka 6: Přechodová funkce podbloku Q 2. Tvrzení Q 2 V podbloku Q 2 stroj U zjistí, zda stroj T v aktuálním stavu na aktuálním symbolu skončí. Podblok Q 2 obsahuje pouze jeden stav q 2. Ten se pouze podívá, na jakém symbolu se nachází a je-li to 1, připíše k jedničce index st a pokračuje dál. Je-li ale symbol 0, přejde na ukončení, protože nula se na první pozici políčka tabulky kódující přechodovou funkci stroje T vyskytuje pouze v případě, že přechodová funkce stroje T není definovaná. Pokud byla posloupnost kód T vyrobena výše popsaným způsobem, jistě se na tomto políčku nemohl jiný symbol nacházet. Pro další postup by se nám hodila další sada symbolů s indexy. Abychom jich ale neměli tolik, použijeme symboly s indexem hl. Musíme si však dávat pozor, abychom je nezaměnili s těmi v sekci s údaji pro stroj T. To ale nehrozí, neboť se po celou dobu, kdy na pásce stroje U budou vyskytovat dva indexy hl, budeme pohybovat pouze v posloupnosti kód T. Nejprve se stroj U čtecí hlavou posune na začátek posloupnosti a tam označí křížek nejvíc vpravo indexem hl. Tuto část budeme označovat jako podblok Q 3. 16
17 stav\symbol # a S-{,#} q 3 (q 3 -, R, ) (q 3, L, #) (q 3, L, a) q 3-0 (q 3 -, R, #) (q 3 -#, L, a) q 3 -# 0 (q 4 -st 1, R, # hl ) 0 Tabulka 7: Přechodové funkce podbloku Q 3. Tvrzení Q 3 V podbloku Q 3 označí stroj U indexem hl první stav přechodové funkce stroje T. Čtecí hlava stroje U zde jede z levého kraje posloupnosti a označí indexem hl poslední křížek v řadě, což je křížek před prvním stavem stroje T. Podblok Q 3 byl přípravný na následující podblok. Zde se čtecí hlava stroje U vrátí zpět k symbolu s indexem st a podívá se na políčko vpravo, je-li tam jednička. Pokud ano, přepíše k této jedničce index st. Potom pojede stroj U hlavou až na začátek posloupnosti. Odtamtud se vydá vpravo, dokud nenarazí na symbol s indexem hl. Stroj U, vždy když hledá symbol s indexem hl, narazí v tomto podbloku na ten, který se nachází v posloupnosti kód T. Tento index pak přepíše k druhému křížku nejbližší pravé dvojice ##. Stroj U posune svou hlavu na symbol s indexem st a opět se podívá o jedno políčko vpravo, zda je tam jednička. Tento postup opakuje tak dlouho, dokud je na políčku o jedno vpravo od políčka s indexem st symbol jedna. Tedy zkráceně stroj U umístí index hl pod křížek, kterým začíná sekce tolikátého stavu, kolik je u indexu st jedniček za sebou. Tento podblok pojmenujeme Q 4. 17
18 stav\ a S- # # hl 1 st symbol {,#,# hl,1 st } (q 4 -st 1, R, (q 4 -st 1, R, (q 4 -st 2, R, (q 4 -st 1, R, q 4 -st 1 0 ) #) 1) a) (q 4 -hl 2, R, (q 4 -hl 1, L, (q 4 -hl 1, L, (q 4 -hl 1, L, q 4 -hl 1 0 ) #) # hl ) a) q 4 -hl 2 0 (q 4 -hl 2, R, (q 4 -hl 3, R, (q 4 -hl 2, R, (q 4 -hl 2, R, #) #) 1 st ) a) q 4 -hl 3 0 (q 4 -hl 4, R, (q 4 -hl 3, R, (q 4 -hl 3, R, (q 4 -hl 3, R, #) # hl ) 1 st ) a) q 4 -hl 4 0 (q 4 -st 0, L, (q 4 -hl 3, R, (q 4 -hl 3, R, (q 4 -hl 3, R, # hl ) # hl ) 1 st ) a) (q 4 -st 1, R, (q 4 -st 0, L, (q 4 -st 0, L, (q 4 -st 0, L, q 4 -st 0 0 ) #) 1 st ) a) Tabulka 8: Přechodové funkce podbloku Q 4 bez stavu q 4 -st 2 Stav q 4 -st 2 je už tak trochu částí dalšího podbloku, ale stále ještě jej budeme řadit do podbloku Q 4. stav\symbol 1 R L a S-{1,R,L} q 4 -st 2 (q 4 -hl 1, L, 1 st ) (q 5, R, R st ) (q 5, R, L st ) 0 Tabulka 9: Přechodová funkce stavu q 4 -st 2. Tvrzení Q 4 V podbloku Q 4 stroj U přesune index hl z posloupnosti kód T na ten křížek v posloupnosti, který je před stavem, do kterého by přešel stroj T v simulované situaci. Dále stroj U přesune index st na symbol určující směr posunu čtecí hlavy stroje T. 18
19 Jak již bylo uvedeno dříve, stroj U v tomto podbloku několikrát opakuje stejnou činnost. Pokaždé když se za symbolem s indexem st nachází další jednička, přesune na ni index st. Dále index hl, který je v posloupnosti kód T, přesune ke křížku předcházejícímu další stav stroje T. Neboli posune index hl k dalšímu stavu tolikrát, kolik je u indexu st jedniček za sebou mínus jedna. Je to o jednu méně, protože na začátku se čtecí hlava stroje U dívá už za první jedničku. To ale odpovídá skutečnosti, že na začátku je již označen první stav. Tímto stroj U simuloval výběr stavu, do kterého stroj T přejde. Další podblok bude Q 5. Ten se zabývá situací, kdy se napravo od symbolu 1 st nachází jiný symbol než 1. Tehdy stroj U na tento symbol přesune index st. Dále se podívá na políčko o jedno vpravo a zapamatuje si symbol na tomto místě napsaný. Stroj U potom posunuje svou čtecí hlavu vpravo do posloupnosti páska T až na políčko, kde je buď 0 hl, 1 hl, nebo hl. To přepíše na zapamatovaný symbol s indexem hl. stav\symbol 0 1 a S-{0,1, } q 5 (q 5-0, R, 0) (q 5-1, R, 1) (q 5 -, R, ) 0 Tabulka 10: Přechodová funkce stavu q 5. stav\symbol 0 hl 1 hl hl a S-{0 hl,1 hl, hl } q 5-0 (q 6, L, 0 hl ) (q 6, L, 0 hl ) (q 6, L, 0 hl ) (q 5-0, R, a) q 5-1 (q 6, L, 1 hl ) (q 6, L, 1 hl ) (q 6, L, 1 hl ) (q 5-1, R, a) q 5 - (q 6, L, hl ) (q 6, L, hl ) (q 6, L, hl ) (q 5 -, R, a) Tabulka 11: Přechodové funkce zbytku podbloku Q 5. 19
20 Tvrzení Q 5 V podbloku Q 5 přepíše stroj U symbol u indexu hl v posloupnosti páska T na symbol odpovídající přechodové funkci stroje T. Speciálně tedy v tomto podbloku stroj U simuluje přepsání symbolu strojem T. Stroj U nejprve ze zápisu přechodové funkce stroje T zjistí, na jaký symbol má znak na pásce stroje T přepsat. K tomu slouží stav q 5. Potom jede stroj U svou čtecí hlavou k symbolu s indexem hl v posloupnosti páska T a přepíše jej na odpovídající symbol opět s indexem hl. Udělá tedy totéž, co by se symbolem v daném stavu udělal i stroj T. Následně se čtecí hlava stroje U posunuje zpět doleva, dokud nenajde symbol s indexem st. Tento index vymaže a zapamatuje si symbol, u nějž index byl. stav\symbol R st L st a S-{R st,l st } q 6 (q 6 -R 1, L, R) (q 6 -L 1, L, L) (q 6 L, a) Tabulka 12: Přechodová funkce dělicího stavu q 6. Stav q 6 dělí další postup stroje U na dvě části podle toho, jaký symbol si pamatuje. Svou čtecí hlavu pak posune stroj U na první políčko posloupnosti. Index hl v posloupnosti kód T přepíše na index st. Pak se čtecí hlava posunuje doprava, dokud nenajde symbol s indexem hl v posloupnosti páska T. Podle toho, jaký symbol si stroj U pamatoval, přesune index hl buď o jedno políčko vpravo, nebo o jedno vlevo. (Pamatoval-li si R, přesune index o jedno políčko vpravo. Pamatoval-li si L, posune jej o jedno vlevo.) 20
21 stav\ symbol q 6 -R 1 (q 6 -R 2, R, ) q 6 -R 2 0 # hl 0 hl 1 hl hl a S-{,# hl, (q 6 -R 1, L, # hl ) (q 6 -R 2, R, # st ) (q 6 -R 1, L, 0 hl ) (q 6 -R 1, L, 1 hl ) (q 6 -R 1, L, hl ) (q 7, R, 0) (q 7, R, 1) (q 7, R, ) Tabulka 13: Přechodové funkce pro zapamatovaný symbol R. 0 hl,1 hl, hl } (q 6 -R 1, L, a) (q 6 -R 2, R, a) stav\ symbol q 6 -L 1 (q 6 -L 2, R, ) q 6 -L 2 0 # hl 0 hl 1 hl hl a S-{,# hl, (q 6 -L 1, L, # hl ) (q 6 -L 2, R, # st ) (q 6 -L 1, L, 0 hl ) (q 6 -L 1, L, 1 hl ) (q 6 -L 1, L, hl ) (q 7, L, 0) (q 7, L, 1) (q 7, L, ) Tabulka 14: Přechodové funkce pro zapamatovaný symbol L. 0 hl,1 hl, hl } (q 6 -L 1, L, a) (q 6 -L 2, R, a) Q 6. Tyto přechodové funkce shrneme do společného podbloku Tvrzení Q 6 V podbloku Q 6 stroj U smaže index st a napíše jej místo indexu hl v posloupnosti kód T. Pak čtecí hlava stroje U ještě smaže druhý index hl v posloupnosti páska T a podle přechodové funkce stroje T se přesune o jedno políčko vedle. To tedy speciálně odpovídá dokončení změny stavu stroje T a začátku přesunu čtecí hlavy stroje T na sousedící symbol. Hned první stav tohoto podbloku rozdělí zbytek výpočtu na dvě možnosti. Zda přechodová funkce stroje T posune čtecí hlavu vpravo, nebo vlevo. Tím si stroj U vlastně pamatuje, kam má na konci výpočtu posunout svou čtecí hlavu. Pak už jen stroj U 21
22 jede svou čtecí hlavou na začátek celé posloupnosti a odtud postupuje směrem vpravo. První index hl (tj. ten v posloupnosti kód T ) přepíše na index st, což odpovídá přechodu stroje T do jiného stavu. Index st totiž značí, v jakém stavu se stroj T nachází. Potom stroj U najde symbol s indexem hl v posloupnosti páska T, ten značí polohu čtecí hlavy stroje T, vymaže jej a posune se o jedno políčko vedle podle toho, jaký symbol si zpočátku pamatoval. Dále použijeme podblok Q 7. Ten pouze připíše index hl k symbolu, na němž je právě čtecí hlava stroje U. stav\symbol 0 1 a S-{0,1, } q 7 (q 1, L, 0 hl ) (q 1, L, 1 hl ) (q 1, L, hl ) 0 Tabulka 15: Přechodová funkce podbloku Q 7. Tvrzení Q 7 Podblok Q 7 slouží k tomu, aby stroj U připsal index hl do políčka, na nějž zrovna ukazuje jeho čtecí hlava. Tím tedy dokončí simulaci přesunu čtecí hlavy stroje T. V tomto podbloku je jen jedna přechodová funkce, která aktuálnímu políčku připíše index hl. Tím je tedy simulace přesunu čtecí hlavy stroje T dokončena. Právě popsaným postupem tedy stroj U nasimuluje chod stroje T krok za krokem. Přičemž simulaci jednoho kroku jsme právě předvedli. (tzn. Nejprve stroj U pomocí podbloku Q 0 upraví svou vstupní pásku. Dále stroj U v podbloku Q 1 simuluje proces, při němž stroj T zjistí, na jakém symbolu se nachází jeho čtecí hlava a podle toho se připraví na plnění 22
23 instrukcí přechodové funkce. Pomocí podbloku Q 2 stroj U zjistí, zda stroj T v daném okamžiku končí, či ne. Potom, pokud stroj T nekončí, nastane podblok Q 3, kde se stroj U připraví na přechod do jiného stavu. Přesun samotný simuluje stroj U v podbloku Q 4. Podblok Q 5 slouží k simulaci přepisu symbolu pod čtecí hlavou strojem T. Dále stroj U používá podblok Q 6 k ukončení simulace přechodu stroje T do jiného stavu a pomocí tohoto podbloku také spouští simulaci posunu čtecí hlavy stroje T. V podbloku Q 7 pak stroj U dokončí simulaci přesunu čtecí hlavy stroje T a připraví se na další krok.) Teď se ještě podíváme, jak budou vypadat přechodové funkce podbloku Q 8, který je ukončovací a začíná stavem q end. Nejprve čtecí hlava stroje U jede úplně vlevo, až narazí na symbol. Pak jede vpravo a cestou přepisuje všechny symboly na, dokud nedojede k druhé trojici křížků bezprostředně za sebou. Tyto křížky ještě také přepíše na. Tím stroj U vymaže celou posloupnost kód T. Dále už stroj U jen hledá symbol s indexem hl. Když jej najde, odebere od něj tento index, posune se o jedno políčko vpravo a přejde do dalšího stavu. Je jedno, na kterou stranu se čtecí hlava posune. Potřebujeme jen zajistit, aby se čtecí hlava stroje U zastavila na stejném políčku, jako by se zastavil stroj T. V tomto novém stavu se tedy jen popojede o jedno políčko zpět vlevo a přejde do stavu, pro nějž není definovaná přechodová funkce. Stroj U se tedy zastaví na symbolu, na kterém by se zastavil i stroj T. Na pásce stroje U se nyní sice nenachází přímo to, co by bylo na pásce stroje T. Jsou tam totiž v levé části navíc ještě symboly. Nicméně zbytek pásky již odpovídá tomu, jak by vypadala výstupní páska stroje T. Budeme-li tedy podle definice za výstup Turingova stroje považovat nejdelší souvislé slovo bez symbolu, na jehož první symbol se kouká čtecí hlava stroje, pak můžeme říci, že výstup stroje U je roven výstupu stroje T. 23
24 stav\ a S-{,#, # 0 hl 1 hl hl symbol 0 hl,1 hl, hl } q end (q end -, (q end, L, (q end, L, a) R, ) #) q end - 0 (q end -, (q end -# 0, R, R, ) ) q end -# 0 0 (q end -# 1, (q end -# 0, R, R, ) ) q end -# 1 0 (q end -# 2, (q end -# 0, R, R, ) ) q end -# 2 0 (q end -hl, (q end -# 0, R, R, ) ) q end -hl 0 0 (q-end, (q-end, (q-end, (q end -hl, R, R, 0) R, 1) R, ) a) q-end (q nedef, L, a) q nedef Tabulka 16: Přechodové funkce podbloku Q 8. Tvrzení Q 8 Podblok Q 8 přepíše všechny symboly posloupnosti kód T na symboly značící prázdné políčko. Pak najde symbol s indexem hl, smaže tento index a zastaví se. Tím tedy stroj U přemění svou pásku na pásku stroje T po ukončení. A to tedy odpovídá ukončení chodu stroje T. Nejprve stroj U jede svou čtecí hlavou úplně vlevo, a jak je již popsáno výše, přepíše všechny symboly kód T na symbol. Následně přejede na symbol s indexem hl, kterýžto vymaže a skončí. Tím tedy stroj U simuluje konec chodu stroje T. 24
25 Nyní již z předchozích tvrzení zřejmě plyne tvrzení následující. V tom vlastně jen shrneme funkčnost námi sestrojeného stroje U. Tvrzení F Stroj U simuluje chod stroje T. Platí tedy vztah U kód T, x T x, pro každé binární slovo x, tzn. x {0,1} *. 25
26 Kapitola 3 Složitost Univerzálního Turingova stroje V této části se budeme zabývat časovou složitostí námi sestrojeného univerzálního stroje U. Budeme ji posuzovat vzhledem k délce posloupnosti kód T a době běhu stroje T na daném vstupu. Proto zavedeme jednoduché značení. Dobu běhu stroje T budeme značit t a f nám bude označovat délku posloupnosti kód T. 2.1 Časová složitost stroje U Nejprve se podíváme na přípravný podblok Q 0. Ten nemá z hlediska t moc velkou složitost, protože se provede jen jednou na začátku. Z hlediska f už ale má smysl tuto složitost počítat. V tomto podbloku nejprve stoj U jede svou čtecí hlavou čtyři políčka doprava a potom jedno zpět. Dále jede přes celý zbytek posloupnosti kód T až na první políčko posloupnosti páska T. Tam se zastaví a vrátí se zpět na začátek celé posloupnosti. Tedy celkem v podbloku Q 0 vykoná 2 f 2 kroků. Složitostní odhad našeho stroje U nás ale nebude zajímat takto přesně. Pro velká f (případně později i t ) bude konstantní číslo ztrácet význam. Tudíž jej zanedbáme. Proto definujeme značení O h, které budeme nazývat asymptotickou složitostí. Definice Pro g, h funkce N N označíme g=o h c 0 n 1: g n c h n. Pomocí takto definovaného značení můžeme tedy říci, že asymptotická složitost podbloku Q 0 je omezena O f. Stejně tak ale 26
27 můžeme říci, že asymptotická složitost podbloku Q 0 je O 2 f 2. Toto je ale teprve jedna z částí celkové složitosti stroje U, takže se zatím budeme snažit o co největší přesnost. Pořádné využití funkce O h uvidíme až v závěru. Teď se zatím spokojíme s tím, že nebudeme počítat jednotlivé kroky úplně přesně, ale konstantní počet kroků nahradíme O 1. Tímto způsobem tedy napíšeme, že složitost podbloku Q 0 je 2 f O 1. Značení O 1 budeme používat i při ostatních odhadech, toto označení tedy nebude vyjadřovat žádnou konkrétní hodnotu. Tím bude pouze naznačeno, že se jedná o konstantní člen. O 1 může nabývat libovolných hodnot ze Z. Zřejmě tedy platí následující: O 1 ±O 1 =O 1, O 1 O 1 =O 1. Složitosti jednotlivých podbloků budeme uvádět jako tvrzení. Tvrzení SQ 0 Podblok Q 0 má asymptotickou složitost 2 f O 1. tohoto tvrzení jsme vlastně již udělali. Teď se zaměříme na podbloky Q 1, Q 2, Q 3, Q 4, Q 5, Q 6 a Q 7. Všechny tyto podbloky se zabývají jen jedním krokem stroje T, tudíž je budeme všechny opakovat t krát. Nejprve si ale vypočítáme složitosti jednotlivých podbloků a teprve potom budeme jejich součet násobit počtem opakování. Pro snadnější popis si ještě zavedeme značení. Písmeno i bude značit počet kroků, který zatím stroj T provedl. Tvrzení i Stroj T použije v i tém kroku nejvýše i prvních míst pásky. Jelikož stroj T doposud udělal pouze i kroků, mohl se na pásce posunout maximálně o i míst doprava. Na další místo se již nemohl svou čtecí hlavou dostat, tudíž je z hlediska i - tého kroku jedno, co se nachází za i - tým políčkem pásky. 27
28 následujícím. Toto tvrzení bylo přípravné. Využijeme jej hned třeba v tvrzení Tvrzení SQ 1 Podblok Q 1 má asymptotickou složitost 2 f i O 1. Speciálně složitost podbloku Q 1 je omezena funkcí O f i. Čtecí hlava stroje U jede nejprve vpravo, dokud nenarazí na symbol s indexem hl. Projede tedy celou posloupnost kód T, což trvá f O 1 kroků, a pak ještě nějaký kus posloupnosti páska T. Podle Tvrzení i toto trvá nejvýše i kroků. Pak jede čtecí hlava stroje U zase zpět, což trvá opět f i O 1 kroků. Následně stroj U posune svou čtecí hlavu na příslušnou sekci. To zabere jen konstantní počet kroků. Po sečtení dílčích výpočtů tedy dostaneme 2 f i O 1 kroků. Tvrzení SQ 2 Podblok Q 2 má asymptotickou složitost O 1. V tomto podbloku stroj U pouze zjišťuje, jestli stroj T v tomto kroku končí, či nikoliv. Pouze se podívá, na jakém symbolu se nachází. Tedy jistě je složitost jen konstantní. Tvrzení SQ 3 Podblok Q 3 má asymptotickou složitost f O 1, neboli zkráceně O f. 28
29 Univerzální stroj U jede svou čtecí hlavou úplně vlevo. Odtamtud popojede o pár políček vpravo. Po předchozím podbloku Q 2 se čtecí hlava stroje U zastavila někde v posloupnosti kód T, tudíž na posunutí na začátek posloupnosti bude jistě stačit f O 1 kroků. Tvrzení SQ 4 Nechť f , pak podblok Q 4 má asymptotickou složitost 3 12 f 2 3 O 1 f O 1. Čili časová složitost podbloku Q 4 je omezena funkcí O f 3 2. V tomto podbloku stroj U zjistí, na jaký stav se má změnit stav stroje T, a potom posune index hl k tomuto stavu. To znamená, že musíme nejprve odhadnout počet stavů, který se v posloupnosti kód T může nacházet. Tímto odhadem budeme násobit. Stroj U totiž posune vždy index hl jen o jeden stav vpravo, přičemž začne na začátku posloupnosti. Při každém posunu indexu hl stroj U provede následující postup. Svou čtecí hlavou přejede stroj U až k prvnímu symbolu s indexem st, potom přejede zpět na začátek. Odtud se vydá vpravo, dokud nenajde symbol s indexem hl. (Ten, který je v posloupnosti kód T. V tomto podbloku se totiž čtecí hlava stroje U pohybuje výhradně v části kód T.) To je tedy prozatím přibližně 3 f O 1 kroků. Předpokládáme totiž vždy nejhorší možný případ. Dále se čtecí hlava přesune opět na začátek celé posloupnosti. Tím končí jeden krok tohoto cyklu. Za každé opakování cyklu tedy provede stroj U přibližně 4 f O 1 kroků. Pro výpočet celkové asymptotické složitosti proto stačí odhadnout počet opakování tohoto cyklu. Horní odhad počtu opakování je zřejmě roven počtu 29
30 přechodových funkcí stroje T mínus jedna. Pro poslední jedničku se sice provede jen první posun vpravo, při odhadu ale nic nepokazíme, pokud budeme počítat s tolika posuny, kolik je stavů stroje T. Budeme předpokládat, že na každý stav, kromě prvního, je někde odkazováno. V opačném případě bychom jej mohli z posloupnosti kód T vypustit a stroj by fungoval stejným způsobem. V zápisu se tedy vyskytuje alespoň l 1 l 2 1 jedniček, kde l značí počet stavů stroje T. Dále také obsahuje za každý stav dva křížky přímo za sebou, dva křížky samostatné a další tři symboly. Tyto tři symboly jsou z množiny {R, L, 0}. Jsou tam tři pro každý stav, protože sekce odpovídající každému stavu je rozdělena na tři části, kde každá odpovídá jednomu symbolu. Pro každý symbol se pak v příslušné sekci nachází buď nula, nebo je přechodová funkce definovaná. Je-li funkce definovaná, pak se v jejím zápise objevuje buď R, nebo L. Dále se za každým symbolem označujícím směr pohybu (R,L) nachází ještě jeden symbol. Jelikož jsme předpokládali, že přechodová funkce je definovaná alespoň v l případech, máme tedy dalších l symbolů. Takže celkem tedy dostáváme, že se v zápisu přechodové funkce stroje T nachází nejméně l 1 l 2 l 8 1 symbolů. Odtud můžeme odhadnou l jednoduše. Jelikož f l 1 l 2 l 8 1, pak 0 l 2 17 l 2 f 1. Čili pak dostáváme, že l f 4 2. Pro f tedy dostáváme l 17 3 f 2. Určitě tedy platí l 3 f. Roznásobením tím pádem dostaneme požadovaný 30
31 3 odhad 12 f 2 3 O 1 f O 1. Tvrzení SQ 5 Podblok Q 5 má asymptotickou složitost f i O 1. Čili jeho složitost je omezena funkcí O f i. Čtecí hlava stroje U jede stále vpravo, dokud v posloupnosti páska T nenajde symbol s indexem hl. Nejprve tedy přejede posloupnost kód T. Na to je potřeba f O 1 kroků. Potom stroj U posune svou čtecí hlavu ještě po nějaké části posloupnosti páska T. K tomu je podle Tvrzení i zapotřebí i kroků. Celkem tedy dostáváme asymptotickou složitost f i O 1. Tvrzení SQ 6 Podblok Q 6 má asymptotickou složitost 2 f i O 1. Je tedy ve složitosti omezen funkcí O f i. V podbloku Q 6 jede stroj U nejprve svou čtecí hlavou od symbolu s indexem hl v posloupnosti páska T k symbolu s indexem st a potom pokračuje na začátek celé posloupnosti. To nám z Tvrzení i dává celkem f i O 1 kroků. Potom se čtecí hlava stroje U posouvá stále vpravo, cestou přepíše index hl v části kód T na index st, a zastaví se až u indexu hl v posloupnosti páska T. Tento posun tedy podle Tvrzení i trvá opět f i O 1 kroků. Celkem tedy máme požadovanou složitost 2 f i O 1 kroků. 31
32 Tvrzení SQ 7 Podblok Q 7 má asymptotickou složitost O 1. Tento podblok vlastně jen připíše index hl ke znaku, na kterém se právě nachází čtecí hlava stroje U. Má tedy zřejmě jen konstantní složitost. Tvrzení SQ 1 7 Nechť f , potom asymptotická složitost podbloků Q 1, Q 2, Q 3,, Q 7 je za celou dobu běhu stroje U 5 2 t 2 O t 12 t f 2 6 f t 3 O 1 f t O 1. Celková složitost těchto podbloků je tedy celkem omezena funkcí O t 2 t f 3 2. K ověření tohoto tvrzení stačí sečíst jednotlivé složitosti z Tvrzení SQ 1 až Tvrzení SQ 7 a vynásobit počtem opakování, který je v našem případě roven t. Pro přehlednost rovnou napíšeme pouze jednou O 1 na konec výrazu. Neboli rovnou sečteme všechna O 1. Dostáváme tedy t [ 2 f i f 12 f 2 f i O 1 ]. Úpravami získáme 12 f O 1 f f i f t 3 O 1 t f O 1 t O 1 5 t i, kde si t t i můžeme vyjádřit jako i, protože v každém kroku je i=1 i o jedna větší a začíná na hodnotě 1. Podle vzorce 32
33 pro geometrickou řadu máme i = t 1 t. Po dosazení 2 tedy získáme požadovaný výsledek 5 2 t 2 O t 12 t f 2 6 f t 3 O 1 t f O 1. t i=1 Teď už nám zbývá spočítat složitost podbloku Q 8 a budeme moci sečíst výsledky do souhrnného tvrzení. Podblok Q 8 se opět opakuje za celou simulaci pouze jednou na konci, proto jsme jej nechali samostatně, stejně jako podblok Q 0. Tvrzení SQ 8 Podblok Q 8 má asymptotickou složitost 2 f t O 1. Jeho složitost je tedy omezena funkcí O f t. V tomto podbloku jede nejprve stroj U svou čtecí hlavou z posloupnosti kód T na začátek celé posloupnosti, což mu tedy přibližně trvá f O 1 kroků. Potom se čtecí hlava stroje U přesouvá přes celou část kód T vpravo a pokračuje až k symbolu s indexem hl v části páska T. To trvá nejvýše f t O 1 kroků. Celkem tedy dostáváme asymptotickou složitost 2 f t O 1. Tvrzení S Asymptotická složitost stroje U je 5 2 t 2 O t 12 t f 2 f 6 t 4 3 O 1 f t O 1. Celkem je tedy složitost stroje U omezena funkcí O t 2 t f
34 Celková asymptotická složitost se rovná součtu složitostí z Tvrzení SQ 0, Tvrzení SQ 1 7 a Tvrzení SQ 8. Tím tedy snadno po upravení dostáváme kýžený výsledek. Důsledek t Asymptotická složitost univerzálního stroje U vzhledem k době chodu stroje T je O t 2. Čili pro pevně zvolený Turingův stroj T t.j. f je konstantní je jeho složitost omezená funkcí O t 2. Jedná se o zřejmý důsledek Tvrzení S. Stačí jen počítat s f jako s konstantou. Důsledek f Asymptotická složitost stroje U vzhledem k délce posloupnosti 3 kód T stroje T je O f. Neboli i tý krok chodu stroje T t.j. t je konstantní simuluje stroj U se složitostí odhadnutelnou funkcí O f 3 2. Podobně jako v Důsledku t stačí pouze t brát jako konstantu. A zbytek plyne již jednoduše z Tvrzení i. 34
35 Literatura [1] Aho A.V., Hopcroft J.E., Ullman J.D.: The design and analysis of computer algorithms, Reading, Massachusetts: Addison-Wesley, [2] Turing A. M.: On Computable Numbers, with an Application to the Entscheidungsproblem, Proceedings of the London Mathematical Society 42: pp ,
TURINGOVY STROJE. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze
TURINGOVY STROJE Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze BI-GRA, LS 2010/2011, Lekce 12 Evropský sociální fond Praha & EU: Investujeme do vaší
Složitost Filip Hlásek
Složitost Filip Hlásek Abstrakt. Příspěvek popisuje dva základní koncepty teoretické informatiky, Turingovy stroje a složitost. Kromě definic důležitých pojmů uvádí také několik souvisejících tvrzení,
NP-úplnost problému SAT
Problém SAT je definován následovně: SAT(splnitelnost booleovských formulí) Vstup: Booleovská formule ϕ. Otázka: Je ϕ splnitelná? Příklad: Formule ϕ 1 =x 1 ( x 2 x 3 )jesplnitelná: např.přiohodnocení ν,kde[x
Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace
Vektory a matice Aplikovaná matematika I Dana Říhová Mendelu Brno Obsah 1 Vektory Základní pojmy a operace Lineární závislost a nezávislost vektorů 2 Matice Základní pojmy, druhy matic Operace s maticemi
Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy
Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy Lukáš Havrlant Univerzita Palackého 10. ledna 2014 Primární zdroj Jiří Adámek: Foundations of Coding. Strany 137 160. Na webu ke stažení, heslo:
0.1 Úvod do lineární algebry
Matematika KMI/PMATE 1 01 Úvod do lineární algebry 011 Lineární rovnice o 2 neznámých Definice 011 Lineární rovnice o dvou neznámých x, y je rovnice, která může být vyjádřena ve tvaru ax + by = c, kde
AUTOMATY A GRAMATIKY. Pavel Surynek. Kontextové uzávěrové vlastnosti Turingův stroj Rekurzivně spočetné jazyky Kódování, enumerace
AUTOMATY A 11 GRAMATIKY Pavel Surynek Univerzita Karlova v Praze Matematicko-fyzikální fakulta Katedra teoretické informatiky a matematické logiky Kontextové uzávěrové vlastnosti Turingův stroj Rekurzivně
Naproti tomu gramatika je vlastně soupis pravidel, jak
1 Kapitola 1 Úvod V přednášce se zaměříme hlavně na konečný popis obecně nekonečných množin řetězců symbolů dané množiny A. Prvkům množiny A budeme říkat písmena, řetězcům (konečným posloupnostem) písmen
Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic
Přednáška třetí (a pravděpodobně i čtvrtá) aneb Úvod do lineární algebry Matice a soustavy rovnic Lineární rovnice o 2 neznámých Lineární rovnice o 2 neznámých Lineární rovnice o dvou neznámých x, y je
Rozšiřování = vynásobení čitatele i jmenovatele stejným číslem různým od nuly
Rozšiřování a krácení zlomků Rozšiřování vynásobení čitatele i jmenovatele stejným číslem různým od nuly rozšířený zlomek vznikl tak, že jsme čitatel i jmenovatel původního zlomku vynásobili číslem rozšířený
PŘEDNÁŠKA 2 POSLOUPNOSTI
PŘEDNÁŠKA 2 POSLOUPNOSTI 2.1 Zobrazení 2 Definice 1. Uvažujme libovolné neprázdné množiny A, B. Zobrazení množiny A do množiny B je definováno jako množina F uspořádaných dvojic (x, y A B, kde ke každému
IB112 Základy matematiky
IB112 Základy matematiky Řešení soustavy lineárních rovnic, matice, vektory Jan Strejček IB112 Základy matematiky: Řešení soustavy lineárních rovnic, matice, vektory 2/53 Obsah Soustava lineárních rovnic
0.1 Úvod do lineární algebry
Matematika KMI/PMATE 1 01 Úvod do lineární algebry 011 Vektory Definice 011 Vektorem aritmetického prostorur n budeme rozumět uspořádanou n-tici reálných čísel x 1, x 2,, x n Definice 012 Definice sčítání
South Bohemia Mathematical Letters Volume 23, (2015), No. 1, DĚLENÍ KRUHU NA OBLASTI ÚVOD
South Bohemia Mathematical Letters Volume 23, (2015), No. 1, 113-122. DĚLENÍ KRUHU NA OBLASTI MAREK VEJSADA ABSTRAKT. V textu se zabývám řešením následujícího problému: Zvolíme na kružnici určitý počet
M - Příprava na 1. zápočtový test - třída 3SA
M - Příprava na 1. zápočtový test - třída 3SA Autor: Mgr. Jaromír JUŘEK Kopírování a jakékoliv další využití výukového materiálu je povoleno pouze s uvedením odkazu na www.jarjurek.cz. VARIACE 1 Tento
M - Příprava na pololetní písemku č. 1
M - Příprava na pololetní písemku č. 1 Určeno pro třídy 3SA, 3SB. VARIACE 1 Tento dokument byl kompletně vytvořen, sestaven a vytištěn v programu dosystem - EduBase. Více informací o programu naleznete
5 Orientované grafy, Toky v sítích
Petr Hliněný, FI MU Brno, 205 / 9 FI: IB000: Toky v sítích 5 Orientované grafy, Toky v sítích Nyní se budeme zabývat typem sít ových úloh, ve kterých není podstatná délka hran a spojení, nýbž jejich propustnost
63. ročník Matematické olympiády 2013/2014
63. ročník Matematické olympiády 2013/2014 Úlohy ústředního kola kategorie P 2. soutěžní den Na řešení úloh máte 4,5 hodiny čistého času. Při soutěži je zakázáno používat jakékoliv pomůcky kromě psacích
8.3). S ohledem na jednoduchost a názornost je výhodné seznámit se s touto Základní pojmy a vztahy. Definice
9. Lineární diferenciální rovnice 2. řádu Cíle Diferenciální rovnice, v nichž hledaná funkce vystupuje ve druhé či vyšší derivaci, nazýváme diferenciálními rovnicemi druhého a vyššího řádu. Analogicky
ŘEŠENÍ KVADRATICKÝCH A ZLOMKOVÝCH NEROVNIC V ŠESTI BODECH
(Tento text je součástí výkladu k definičním oborům, tam najdete další příklady a pokud chcete část tohoto textu někde použít, můžete čerpat ze stažené kompletní verze definičních oborů ve formátu.doc.)
Fakulta informačních technologií. Teoretická informatika
Vysoké učení technické v Brně Fakulta informačních technologií Teoretická informatika Třetí úkol 2 Jan Trávníček . Tato úloha je řešena Turingovým strojem, který je zobrazen na obrázku, který si můžeme
Výroková logika II. Negace. Již víme, že negace je změna pravdivostní hodnoty výroku (0 1; 1 0).
Výroková logika II Negace Již víme, že negace je změna pravdivostní hodnoty výroku (0 1; 1 0). Na konkrétních příkladech si ukážeme, jak se dají výroky negovat. Obecně se výrok dá negovat tak, že před
Vztah teorie vyčíslitelnosti a teorie složitosti. IB102 Automaty, gramatiky a složitost, /31
Vztah teorie vyčíslitelnosti a teorie složitosti IB102 Automaty, gramatiky a složitost, 2. 12. 2013 1/31 IB102 Automaty, gramatiky a složitost, 2. 12. 2013 2/31 Časová složitost algoritmu počet kroků výpočtu
9 Kolmost vektorových podprostorů
9 Kolmost vektorových podprostorů Od kolmosti dvou vektorů nyní přejdeme ke kolmosti dvou vektorových podprostorů. Budeme se zabývat otázkou, kdy jsou dva vektorové podprostory na sebe kolmé a jak to poznáme.
Lineární algebra : Lineární prostor
Lineární algebra : Lineární prostor (3. přednáška) František Štampach, Karel Klouda LS 2013/2014 vytvořeno: 17. dubna 2014, 14:43 1 2 3.1 Aximotické zavedení lineárního prostoru Číselné těleso Celou lineární
Kolik existuje různých stromů na pevně dané n-prvkové množině vrcholů?
Kapitola 9 Matice a počet koster Graf (orientovaný i neorientovaný) lze popsat maticí, a to hned několika různými způsoby. Tématem této kapitoly jsou incidenční matice orientovaných grafů a souvislosti
Limita a spojitost funkce. 3.1 Úvod. Definice: [MA1-18:P3.1]
KAPITOLA 3: Limita a spojitost funkce [MA-8:P3.] 3. Úvod Necht je funkce f definována alespoň na nějakém prstencovém okolí bodu 0 R. Číslo a R je itou funkce f v bodě 0, jestliže pro každé okolí Ua) bodu
1.3. Číselné množiny. Cíle. Průvodce studiem. Výklad
1.3. Cíle Cílem kapitoly je seznámení čtenáře s axiomy číselných oborů a jejich podmnožin (intervalů) a zavedení nových pojmů, které nejsou náplní středoškolských osnov. Průvodce studiem Vývoj matematiky
(Cramerovo pravidlo, determinanty, inverzní matice)
KMA/MAT1 Přednáška a cvičení, Lineární algebra 2 Řešení soustav lineárních rovnic se čtvercovou maticí soustavy (Cramerovo pravidlo, determinanty, inverzní matice) 16 a 21 října 2014 V dnešní přednášce
INTEGRÁLY S PARAMETREM
INTEGRÁLY S PARAMETREM b a V kapitole o integraci funkcí více proměnných byla potřeba funkce g(x) = f(x, y) dy proměnné x. Spojitost funkce g(x) = b a f(x, y) dy proměnné x znamená vlastně prohození limity
Jednoduché cykly 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45.
Jednoduché cykly Tento oddíl obsahuje úlohy na první procvičení práce s cykly. Při řešení každé ze zde uvedených úloh stačí použít vedle podmíněných příkazů jen jediný cyklus. Nepotřebujeme používat ani
doplněk, zřetězení, Kleeneho operaci a reverzi. Ukážeme ještě další operace s jazyky, na které je
28 [181105-1236 ] 2.7 Další uzávěrové vlastnosti třídy regulárních jazyků Z předchozích přednášek víme, že třída regulárních jazyků je uzavřena na sjednocení, průnik, doplněk, zřetězení, Kleeneho operaci
1 Linearní prostory nad komplexními čísly
1 Linearní prostory nad komplexními čísly V této přednášce budeme hledat kořeny polynomů, které se dále budou moci vyskytovat jako složky vektorů nebo matic Vzhledem k tomu, že kořeny polynomu (i reálného)
Necht tedy máme přirozená čísla n, k pod pojmem systém lineárních rovnic rozumíme rovnice ve tvaru
2. Systémy lineárních rovnic V této kapitole se budeme zabývat soustavami lineárních rovnic s koeficienty z pole reálných případně komplexních čísel. Uvádíme podmínku pro existenci řešení systému lineárních
Riemannův určitý integrál
Riemannův určitý integrál 1. Motivační příklad Příklad (Motivační příklad pro zavedení Riemannova integrálu). Nechť,. Vypočtěme obsah vybarvené oblasti ohraničené grafem funkce, osou a svislými přímkami
V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti
Kapitola 5 Vektorové prostory V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti operací sčítání a násobení
Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty
Data v počítači Informační data (elementární datové typy) Logické hodnoty Znaky Čísla v pevné řádové čárce (celá čísla) v pohyblivé (plovoucí) řád. čárce (reálná čísla) Povelová data (instrukce programu)
MATICE. a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij]
MATICE Matice typu m/n nad tělesem T je soubor m n prvků z tělesa T uspořádaných do m řádků a n sloupců: a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij] a m1 a m2 a mn Prvek a i,j je prvek matice A na místě
Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice
Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice Vektorové podprostory K množina reálných nebo komplexních čísel, U vektorový prostor nad K. Lineární kombinace vektorů u 1, u 2,...,u
Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:
3 Maticový počet 3.1 Zavedení pojmu matice Maticí typu (m, n, kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru: a 11 a 12... a 1k... a 1n a 21 a 22...
6 Ordinální informace o kritériích
6 Ordinální informace o kritériích Ordinální informací o kritériích se rozumí jejich uspořádání podle důležitosti. Předpokládejme dále standardní značení jako v předchozích cvičeních. Existují tři základní
1 Řešení soustav lineárních rovnic
1 Řešení soustav lineárních rovnic 1.1 Lineární rovnice Lineární rovnicí o n neznámých x 1,x 2,..., x n s reálnými koeficienty rozumíme rovnici ve tvaru a 1 x 1 + a 2 x 2 +... + a n x n = b, (1) kde koeficienty
Báze a dimenze vektorových prostorů
Báze a dimenze vektorových prostorů Buď (V, +, ) vektorový prostor nad tělesem (T, +, ). Nechť u 1, u 2,..., u n je konečná posloupnost vektorů z V. Existují-li prvky s 1, s 2,..., s n T, z nichž alespoň
Algoritmus pro hledání nejkratší cesty orientovaným grafem
1.1 Úvod Algoritmus pro hledání nejkratší cesty orientovaným grafem Naprogramoval jsem v Matlabu funkci, která dokáže určit nejkratší cestu v orientovaném grafu mezi libovolnými dvěma vrcholy. Nastudoval
INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.
INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.0141 Báze vektorových prostorů, transformace souřadnic Michal Botur Přednáška
Komisionální přezkoušení 1T (druhé pololetí) 2 x. 1) Z dané rovnice vypočtěte neznámou x:. 2) Určete, pro která x R není daný výraz definován:
1) Z dané rovnice vypočtěte neznámou :. ) Určete, pro která R není daný výraz definován: 3) Určete obor hodnot funkce Komisionální přezkoušení 1T (druhé pololetí) f : y 4 3. 4 8 5 1 4) Vyšetřete vzájemnou
Mgr. et Mgr. Jan Petrov, LL.M. Ph.D. BYZNYS A PRÁVO
BYZNYS A PRÁVO Byznys a právo OBSAH ZÁKLADNÍ FUNKCE EXCELU... 2 FUNKCE ODMOCNINA A ZAOKROULIT... 4 FORMÁT A OBSAH BUNĚK... 5 RELATIVNÍ ODKAZY... 9 ABSOLUTNÍ ODKAZY... 11 Byznys a právo ZÁKLADNÍ FUNKCE
[1] Determinant. det A = 0 pro singulární matici, det A 0 pro regulární matici
[1] Determinant je číslo jistým způsobem charakterizující čtvercovou matici det A = 0 pro singulární matici, det A 0 pro regulární matici používá se při řešení lineárních soustav... a v mnoha dalších aplikacích
JčU - Cvičení z matematiky pro zemědělské obory (doc. RNDr. Nýdl, CSc & spol.) Minitest MT4
ŘEŠENÍ MINITESTŮ JčU - Cvičení z matematiky pro zemědělské obory (doc. RNDr. Nýdl, CSc & spol.) Minitest MT4. Z daných tří soustav rovnic o neznámých x, x vyberte právě všechny ty, které jsou regulární.
Greenova funkce pro dvoubodové okrajové úlohy pro obyčejné diferenciální rovnice
Greenova funkce pro dvoubodové okrajové úlohy pro obyčejné diferenciální rovnice Jan Tomeček Tento stručný text si klade za cíl co nejrychlejší uvedení do teorie Greenových funkcí pro obyčejné diferenciální
Výběr báze. u n. a 1 u 1
Výběr báze Mějme vektorový prostor zadán množinou generátorů. To jest V = M, kde M = {u,..., u n }. Pokud je naším úkolem najít nějakou bázi V, nejpřímočařejším postupem je napsat si vektory jako řádky
PQ-stromy a rozpoznávání intervalových grafů v lineárním čase
-stromy a rozpoznávání intervalových grafů v lineárním čase ermutace s předepsanými intervaly Označme [n] množinu {1, 2,..., n}. Mějme permutaci π = π 1, π 2,..., π n množiny [n]. Řekneme, že množina S
f(c) = 0. cn pro f(c n ) > 0 b n pro f(c n ) < 0
KAPITOLA 5: Spojitost a derivace na intervalu [MA-8:P5] 5 Funkce spojité na intervalu Věta 5 o nulách spojité funkce: Je-li f spojitá na uzavřeném intervalu a, b a fa fb < 0, pak eistuje c a, b tak, že
Třídy složitosti P a NP, NP-úplnost
Třídy složitosti P a NP, NP-úplnost Cíle přednášky: 1. Definovat, za jakých okolností můžeme problém považovat za efektivně algoritmicky řešitelný. 2. Charakterizovat určitou skupinu úloh, pro které není
popel, glum & nepil 16/28
Lineární rezoluce další způsob zjemnění rezoluce; místo stromu směřujeme k lineární struktuře důkazu Lineární rezoluční odvození (důkaz) z Ë je posloupnost dvojic ¼ ¼ Ò Ò taková, že Ò ½ a 1. ¼ a všechna
Úvod do informatiky. Miroslav Kolařík
Úvod do informatiky přednáška první Miroslav Kolařík Zpracováno dle učebního textu prof. Bělohlávka: Úvod do informatiky, KMI UPOL, Olomouc 2008. Obsah 1 Co a k čemu je logika? 2 Výroky a logické spojky
Učební texty k státní bakalářské zkoušce Matematika Vlastní čísla a vlastní hodnoty. študenti MFF 15. augusta 2008
Učební texty k státní bakalářské zkoušce Matematika Vlastní čísla a vlastní hodnoty študenti MFF 15. augusta 2008 1 14 Vlastní čísla a vlastní hodnoty Požadavky Vlastní čísla a vlastní hodnoty lineárního
Zavedení a vlastnosti reálných čísel
Zavedení a vlastnosti reálných čísel jsou základním kamenem matematické analýzy. Konstrukce reálných čísel sice není náplní matematické analýzy, ale množina reálných čísel R je pro matematickou analýzu
GRAFY A GRAFOVÉ ALGORITMY
KATEDRA INFORMATIKY PŘÍRODOVĚDECKÁ FAKULTA UNIVERZITA PALACKÉHO GRAFY A GRAFOVÉ ALGORITMY ARNOŠT VEČERKA VÝVOJ TOHOTO UČEBNÍHO TEXTU JE SPOLUFINANCOVÁN EVROPSKÝM SOCIÁLNÍM FONDEM A STÁTNÍM ROZPOČTEM ČESKÉ
Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují
Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují 1. u + v = v + u, u, v V 2. (u + v) + w = u + (v + w),
Definice 7.2. Nejmenší přirozené číslo k, pro které je graf G k-obarvitelný, se nazývá chromatické číslo (barevnost) grafu G a značí se χ(g).
7 Barevnost grafu Definice 71 Graf G se nazývá k-obarvitelný, jestliže každému jeho uzlu lze přiřadit jednu z barev 1 k tak, že žádné dva sousední uzly nemají stejnou barvu Definice 72 Nejmenší přirozené
Derivace funkcí více proměnných
Derivace funkcí více proměnných Pro studenty FP TUL Martina Šimůnková 16. května 019 1. Derivace podle vektoru jako funkce vektoru. Pro pevně zvolenou funkci f : R d R n a bod a R d budeme zkoumat zobrazení,
Příklad z učebnice matematiky pro základní školu:
Příklad z učebnice matematiky pro základní školu: Součet trojnásobku neznámého čísla zvětšeného o dva a dvojnásobku neznámého čísla zmenšeného o pět se rovná čtyřnásobku neznámého čísla zvětšeného o jedna.
Parametrická rovnice přímky v rovině
Parametrická rovnice přímky v rovině Nechť je v kartézské soustavě souřadnic dána přímka AB. Nechť vektor u = B - A. Pak libovolný bod X[x; y] leží na přímce AB právě tehdy, když vektory u a X - A jsou
KAPITOLA 4 ZPRACOVÁNÍ TEXTU
KAPITOLA 4 ZPRACOVÁNÍ TEXTU TABULÁTORY Jsou to značky (zarážky), ke kterým se zarovná text. Můžeme je nastavit kliknutím na pravítku nebo v dialogovém okně, které vyvoláme kliknutím na tlačítko Tabulátory
Řešení úloh z TSP MU SADY S 1
Řešení úloh z TSP MU SADY S 1 projekt RESENI-TSP.CZ úlohy jsou vybírány z dříve použitých TSP MU autoři řešení jsou zkušení lektoři vzdělávací agentury Kurzy-Fido.cz Masarykova univerzita nabízí uchazečům
5. Lokální, vázané a globální extrémy
5 Lokální, vázané a globální extrémy Studijní text Lokální extrémy 5 Lokální, vázané a globální extrémy Definice 51 Řekneme, že f : R n R má v bodě a Df: 1 lokální maximum, když Ka, δ Df tak, že x Ka,
Lingebraické kapitolky - Počítání s maticemi
Lingebraické kapitolky - Počítání s maticemi Jaroslav Horáček KAM MFF UK 20 Rozehřívačka: Definice sčítání dvou matic a násobení matice skalárem, transpozice Řešení: (A + B ij A ij + B ij (αa ij α(a ij
7B. Výpočet limit L Hospitalovo pravidlo
7B. Výpočet it L Hospitalovo pravidlo V prai často potřebujeme určit itu výrazů, které vzniknou operacemi nebo složením několika spojitých funkcí. Většinou pomohou pravidla typu ita součtu násobku, součinu,
Soustavy rovnic pro učební obory
Variace 1 Soustavy rovnic pro učební obory Autor: Mgr. Jaromír JUŘEK Kopírování a jakékoliv další využití výukového materiálu je povoleno pouze s uvedením odkazu na www.jarjurek.cz. 1. Soustavy rovnic
Cykly a pole 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116.
Cykly a pole Tato část sbírky je tvořena dalšími úlohami na práci s cykly. Na rozdíl od předchozího oddílu se zde již v řešeních úloh objevuje více cyklů, ať už prováděných po sobě nebo vnořených do sebe.
označme j = (0, 1) a nazvěme tuto dvojici imaginární jednotkou. Potom libovolnou (x, y) = (x, 0) + (0, y) = (x, 0) + (0, 1)(y, 0) = x + jy,
Komplexní čísla Množinu všech uspořádaných dvojic (x, y) reálných čísel x, y nazýváme množinou komplexních čísel C, jestliže pro každé dvě takové dvojice (x, y ), (x 2, y 2 ) je definována rovnost, sčítání
Matematická logika. Miroslav Kolařík
Matematická logika přednáška třetí Miroslav Kolařík Zpracováno dle textu R. Bělohlávka: Matematická logika poznámky k přednáškám, 2004. a dle učebního textu R. Bělohlávka a V. Vychodila: Diskrétní matematika
Postup: Nejprve musíme vyplnit tabulku. Pak bude vypadat takto:
Úkol: Jednoduchá tabulka v Excelu Obrázky jsou vytvořené v Excelu verze 2003 CZ. Postupy jsou platné pro všechny běžně dostupné české verze Excelu s výjimkou verze roku 2007. Postup: Nejprve musíme vyplnit
Semestrální z předmětu MM
Semestrální z předmětu MM práce Diferenční rovnice Jméno a příjmení: Osobní číslo: Studijní skupina: Obor: E-mail: Jan Forejt A07026 1. ročník, komb. studium Matematika forejt@cs.mfcr.cz Datum odevzdání:
6 Algebra blokových schémat
6 Algebra blokových schémat Operátorovým přenosem jsme doposud popisovali chování jednotlivých dynamických členů. Nic nám však nebrání, abychom přenosem popsali dynamické vlastnosti složitějších obvodů,
Logaritmická rovnice
Ročník:. Logaritmická rovnice (čteme: logaritmus z x o základu a) a základ logaritmu x argument logaritmu Vzorce Použití vzorců a principy počítání s logaritmy jsou stejné jako u logaritmů základních,
Nechť je číselná posloupnost. Pro všechna položme. Posloupnost nazýváme posloupnost částečných součtů řady.
Číselné řady Definice (Posloupnost částečných součtů číselné řady). Nechť je číselná posloupnost. Pro všechna položme. Posloupnost nazýváme posloupnost částečných součtů řady. Definice (Součet číselné
Unární je také spojka negace. pro je operace binární - příkladem může být funkce se signaturou. Binární je velká většina logických spojek
Otázka 06 - Y01MLO Zadání Predikátová logika, formule predikátové logiky, sentence, interpretace jazyka predikátové logiky, splnitelné sentence, tautologie, kontradikce, tautologicky ekvivalentní formule.
7 = 3 = = Učivo Vysvětlení Př. + pozn. Zlomek = vyjádření části celku 3 část snědla jsem 3 kousky
0 Učivo Vysvětlení Př. + pozn. Zlomek vyjádření části celku část snědla jsem kousky celek a pizza byla rozdělena na kousky Pojem zlomek Vyjádření zlomku Základní tvar: čitatel a jmenovatel jsou nesoudělná
5. Náhodná veličina. 2. Házíme hrací kostkou dokud nepadne šestka. Náhodná veličina nabývá hodnot z posloupnosti {1, 2, 3,...}.
5. Náhodná veličina Poznámka: Pro popis náhodného pokusu jsme zavedli pojem jevového pole S jako množiny všech možných výsledků a pravděpodobnost náhodných jevů P jako míru výskytů jednotlivých výsledků.
IV. Základní pojmy matematické analýzy IV.1. Rozšíření množiny reálných čísel
Matematická analýza IV. Základní pojmy matematické analýzy IV.1. Rozšíření množiny reálných čísel na množině R je definováno: velikost (absolutní hodnota), uspořádání, aritmetické operace; znázornění:
Výhody a nevýhody jednotlivých reprezentací jsou shrnuty na konci kapitoly.
Kapitola Reprezentace grafu V kapitole?? jsme se dozvěděli, co to jsou grafy a k čemu jsou dobré. rzo budeme chtít napsat nějaký program, který s grafy pracuje. le jak si takový graf uložit do počítače?
Matematická analýza pro informatiky I. Limita posloupnosti (I)
Matematická analýza pro informatiky I. 3. přednáška Limita posloupnosti (I) Jan Tomeček tomecek@inf.upol.cz http://aix-slx.upol.cz/ tomecek/index Univerzita Palackého v Olomouci 25. února 2011 tomecek@inf.upol.cz
FUNKCE 3. Autor: Mgr. Dana Kaprálová. Datum (období) tvorby: září, říjen 2013. Ročník: sedmý. Vzdělávací oblast: Informatika a výpočetní technika
FUNKCE 3 Autor: Mgr. Dana Kaprálová Datum (období) tvorby: září, říjen 2013 Ročník: sedmý Vzdělávací oblast: Informatika a výpočetní technika 1 Anotace: Žáci se seznámí se základní obsluhou tabulkového
Třída PTIME a třída NPTIME. NP-úplnost.
VAS - Přednáška 9 Úvod ke kursu. Složitost algoritmu. Model RAM. Odhady složitosti. Metoda rozděl a panuj. Greedy algoritmy. Metoda dynamického programování. Problémy, třídy složitosti problémů, horní
Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto
Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto Registrační číslo projektu Šablona Autor Název materiálu / Druh CZ.1.07/1.5.00/34.0951 III/2 INOVACE A ZKVALITNĚNÍ VÝUKY PROSTŘEDNICTVÍM ICT
a se nazývá aritmetická právě tehdy, když existuje takové číslo d R
Předmět: Ročník: Vytvořil: Datum: MATEMATIKA TŘETÍ Mgr. Tomáš MAŇÁK. březen 014 Název zpracovaného celku: ARITMETICKÁ POSLOUPNOST A JEJÍ UŽITÍ ARITMETICKÁ POSLOUPNOST Teorie: Posloupnost každé ( ) n n1
Matematika B101MA1, B101MA2
Matematika B101MA1, B101MA2 Zařazení předmětu: povinný předmět 1.ročníku bc studia 2 semestry Rozsah předmětu: prezenční studium 2 + 2 kombinované studium 16 + 0 / semestr Zakončení předmětu: ZS zápočet
Dijkstrův algoritmus
Dijkstrův algoritmus Hledání nejkratší cesty v nezáporně hranově ohodnoceném grafu Necht je dán orientovaný graf G = (V, H) a funkce, která každé hraně h = (u, v) H přiřadí nezáporné reálné číslo označované
Množinu všech slov nad abecedou Σ značíme Σ * Množinu všech neprázdných slov Σ + Jazyk nad abecedou Σ je libovolná množina slov nad Σ
Abecedou se rozumí libovolná konečná množina Σ. Prvky abecedy nazýváme znaky (symboly) Slovo (řetězec) v nad abecedou Σ je libovolná konečná posloupnost znaků této abecedy. Prázdné posloupnosti znaků odpovídá
Nyní využijeme slovník Laplaceovy transformace pro derivaci a přímé hodnoty a dostaneme běžnou algebraickou rovnici. ! 2 "
ŘEŠENÉ PŘÍKLADY Z MB ČÁST Příklad Nalezněte pomocí Laplaceovy transformace řešení dané Cauchyho úlohy lineární diferenciální rovnice prvního řádu s konstantními koeficienty v intervalu 0,, které vyhovuje
1 Mnohočleny a algebraické rovnice
1 Mnohočleny a algebraické rovnice 1.1 Pojem mnohočlenu (polynomu) Připomeňme, že výrazům typu a 2 x 2 + a 1 x + a 0 říkáme kvadratický trojčlen, když a 2 0. Číslům a 0, a 1, a 2 říkáme koeficienty a písmenem
16. Goniometrické rovnice
@198 16. Goniometrické rovnice Definice: Goniometrická rovnice je taková rovnice, ve které proměnná (neznámá) vystupuje pouze v goniometrických funkcích. Řešit goniometrické rovnice znamená nalézt všechny
Algoritmizace a programování
Algoritmizace a programování Výrazy Operátory Výrazy Verze pro akademický rok 2012/2013 1 Operace, operátory Unární jeden operand, operátor se zapisuje ve většině případů před operand, v některých případech
3. podzimní série. ... {z }
3. podzimní série Téma: Kombinatorika Datumodeslání: º ÔÖÓ Ò ¾¼¼ ½º ÐÓ Ó Ýµ Monča potřebuje zatelefonovat Pepovi, avšak nemá u sebe svůj telefonní seznam PraSátek. Zná však předvolbu 723 a vzpomněla si,
Úlohy krajského kola kategorie C
67. ročník matematické olympiády Úlohy krajského kola kategorie C 1. Najděte nejmenší přirozené číslo končící čtyřčíslím 2018, které je násobkem čísla 2017. 2. Pro celá čísla x, y, z platí x 2 + y z =
Matematika III. Miroslava Dubcová, Daniel Turzík, Drahoslava Janovská. Ústav matematiky
Matematika III Řady Miroslava Dubcová, Daniel Turzík, Drahoslava Janovská Ústav matematiky Přednášky ZS 202-203 Obsah Číselné řady. Součet nekonečné řady. Kritéria konvergence 2 Funkční řady. Bodová konvergence.
12 DYNAMIKA SOUSTAVY HMOTNÝCH BODŮ
56 12 DYNAMIKA SOUSTAVY HMOTNÝCH BODŮ Těžiště I. impulsová věta - věta o pohybu těžiště II. impulsová věta Zákony zachování v izolované soustavě hmotných bodů Náhrada pohybu skutečných objektů pohybem