Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
|
|
- Ladislav Toman
- před 6 lety
- Počet zobrazení:
Transkript
1 Výpočetní modely Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
2 Nutnost upřesnění pojmu algoritmus Dosavadní definice pojmu algoritmus byla poněkud vágní. Pokud bychom pro nějaký problém chtěli dokázat, že neexistuje algoritmus, který by daný problém řešil, tak by to s takovouto neurčitou definicí pojmu algoritmus asi nešlo. Intuitivně chápeme, co by měl mít algoritmus za vlastnosti: Měl by se skládat z jednoduchých kroků, které je možno vykonávat mechanicky, bez porozumění problému. Objekty, se kterými algoritmus pracuje, i prováděné operace by měly být konečné. Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
3 Algoritmus realizovaný počítačem Například program v libovolném programovacím jazyce dané vlastnosti zcela jistě má. At už je program napsán v jakémkoliv programovacím jazyce, jsou jeho instrukce nakonec prováděny na hardwaru nějakého konkrétního počítače na úrovni instrukcí procesoru. Je tedy jasné, že každý program v každém programovacím jazyce bychom mohli zapsat jako program tvořený pouze instrukcemi strojového kódu nějakého procesoru. Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
4 Činnost počítače Typická architektura naprosté většiny počítačů vypadá následovně: IP flags MEM R1 R2 R3 R4 R5 R6 R7 R8 CPU Počítač má pamět skládající se z velkého množství pamět ových buněk. Každá buňka může obsahovat číslo určité velikosti, typicky 1 byte (8 bitů), tj. číslo v rozsahu Buňky jsou očíslovány. Číslo buňky se nazývá její adresa. Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
5 Činnost počítače Typická architektura naprosté většiny počítačů vypadá následovně: IP flags MEM R1 R2 R3 R4 R5 R6 R7 R8 CPU Instrukce jsou uloženy v paměti (každá instrukce má svůj číselný kód) a jsou sekvenčně vykonávány procesorem. Procesor udržuje tzv. čítač instrukcí IP, který obsahuje adresu aktuálně prováděné instrukce. Procesor načte instrukci z adresy určené IP, zvětší IP o délku načtené instrukce a provede danou instrukci. Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
6 Činnost počítače Typická architektura naprosté většiny počítačů vypadá následovně: IP flags MEM R1 R2 R3 R4 R5 R6 R7 R8 CPU Procesor obsahuje několik registrů pevné délky (např. 32 nebo 64 bitů). Většina operací je prováděna na registrech. Procesor obsahuje příznaky (flags), které umožňují testovat výsledek poslední operace (např. přetečení, jestli je výsledek nula apod.). Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
7 Činnost počítače Typické instrukce: Načtení obsahu pamět ové buňky (resp. několika po sobě jdoucích buněk) do některého registru (LOAD). Uložení obsahu registru do některé pamět ové buňky (resp. několika po sobě jdoucích buněk) (STORE). Poznámka: Adresa buňky je bud přímá (tj. je přímo součástí instrukce) nebo nepřímá (uložená v některém registru, případně spočítaná z obsahu jednoho nebo několika registrů). Načtení obsahu jednoho registru do jiného registru (MOV). Aritmetické instrukce (ADD, SUB, MUL, DIV, NEG, CMP, INC, DEC,...). Logické instrukce (AND, OR, XOR, NOT,...). Bitové posuny a rotace (SHL, SHR,...) Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
8 Činnost počítače Typické instrukce (pokračování): Nepodmíněný skok (JMP). Poznámka: Cílová adresa může být přímá nebo nepřímá. Podmíněné skoky (JZERO, JGTZ,...). Volání podprogramů (CALL, RET). Různé speciální instrukce práce se vstupem a výstupem, obsluha přerušení, mody činnosti procesoru, řízení přístupu do paměti, stránkování apod. Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
9 Činnost počítače Příklad: Instrukce zapsaná ve vyšším programovacím jazyce jako x = y +2 může být realizována následující sekvencí instrukcí určitého (hypotetického) procesoru: LOAD R5,[0x001b7c44] ADD R5,2 STORE [0x001b7c38],R5 Poznámka: Předpokládáme, že proměnná x je uložena na adrese 0x001b7c38 a proměnná y na adrese 0x001b7c44. Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
10 Stroj RAM Stroj RAM (Random Access Machine) je idealizovaný model počítače. Skládá se z těchto částí: Programová jednotka obsahuje program stroje RAM a ukazatel na právě prováděnou instrukci Pracovní pamět tvořená buňkami očíslovanými 0,1,2,... ; obsah buněk je možno číst i do nich zapisovat Vstupní páska je z ní možné pouze číst Výstupní páska je na ni možno pouze zapisovat Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
11 Stroj RAM programová jednotka READ JZERO 10 STORE *3 ADD 2 STORE 2 LOAD 1 ADD =1 STORE 1 JUMP 1 10 LOAD 2 11 DIV 1 12 STORE 2 13 LOAD =0 14 STORE 1 vstup IC ALU pracovní pamět výstup Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
12 Stroj RAM Buňky 0 a 1 mají speciální význam a slouží jako registry stroje RAM: Buňka 0 pracovní registr (akumulátor) registr, který je jedním z operandů většiny instrukcí a do kterého se ukládá výsledek většiny operací. Buňka 1 indexový registr je použit při nepřímém adresování. Tvary operandů instrukcí (i N): tvar hodnota operandu =i přímo číslo udané zápisem i i číslo obsažené v buňce s adresou i *i číslo v buňce s adresou i + j, kde j je aktuální obsah indexového registru Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
13 Stroj RAM Příklad: LOAD <op> načte obsah operandu <op> do pracovního registru (tj. do buňky číslo 0). LOAD =5 uloží do pracovního registru hodnotu 5 LOAD 5 uloží do pracovního registru obsah buňky číslo 5 LOAD *5 uloží do pracovního registru obsah buňky číslo 5+j, kde j je aktuální obsah indexového registru Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
14 Stroj RAM Instrukce vstupu a výstupu (jsou bez operandu): READ WRITE do pracovního registru se uloží číslo, které je v poĺıčku snímaném vstupní hlavou, a vstupní hlava se posune o jedno poĺıčko doprava výstupní hlava zapíše do snímaného poĺıčka výstupní pásky obsah pracovního registru a posune se o jedno poĺıčko doprava Instrukce přesunu v paměti: LOAD <op> do pracovního registru se načte hodnota operandu STORE <op> hodnota operandu se přepíše obsahem pracovního registru (zde se nepřipouští operand tvaru =i) Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
15 Stroj RAM Instrukce aritmetických operací: ADD <op> SUB <op> MUL <op> DIV <op> číslo v pracovním registru se zvýší o hodnotu operandu (tedy přičte se k němu hodnota operandu) od čísla v pracovním registru se odečte hodnota operandu číslo v pracovním registru se vynásobí hodnotou operandu číslo v pracovním registru se celočíselně vyděĺı hodnotou operandu (do pracovního registru se uloží výsledek příslušného celočíselného dělení) Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
16 Stroj RAM Instrukce skoku: JUMP <návěští> výpočet bude pokračovat instrukcí určenou návěštím JZERO <návěští> je-li obsahem pracovního registru číslo 0, bude výpočet pokračovat instrukcí určenou návěštím; v opačném případě bude pokračovat následující instrukcí JGTZ <návěští> je-li číslo v pracovním registru kladné, bude výpočet pokračovat instrukcí určenou návěštím; v opačném případě bude pokračovat následující instrukcí Instrukce zastavení: HALT výpočet je ukončen ( regulérně zastaven) Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
17 Stroj RAM Problém Vyhledávání Vstup: Celé číslo x a sekvence celých čísel a 1,a 2,...,a n (kde a i 0) ukončená 0. Výstup: Pokud a i = x, je výstupem i (pokud jich je takových i více, tak nejmenší z nich), jinak je výstupem 0. start: READ STORE 3 LOAD =1 cyklus: STORE 2 READ JZERO vypis SUB 3 JZERO nasel LOAD 2 ADD =1 JUMP cyklus nasel: LOAD 2 vypis: WRITE HALT Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
18 Stroj RAM start: READ STORE 3 LOAD =1 cyklus: STORE 2 READ JZERO vypis SUB 3 JZERO nasel LOAD 2 ADD =1 JUMP cyklus nasel: LOAD 2 vypis: WRITE HALT Vstup: 9,13,5,9,7,2,0 Buňka 0: 0 Buňka 1: 0 Buňka 2: 0 Buňka 3: 0 Buňka 4: 0 Výstup:. Instrukcí: 0 Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
19 Stroj RAM start: READ STORE 3 LOAD =1 cyklus: STORE 2 READ JZERO vypis SUB 3 JZERO nasel LOAD 2 ADD =1 JUMP cyklus nasel: LOAD 2 vypis: WRITE HALT Vstup: 9,13,5,9,7,2,0 Buňka 0: 0 Buňka 1: 0 Buňka 2: 0 Buňka 3: 0 Buňka 4: 0 Výstup:. Instrukcí: 0 Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
20 Stroj RAM start: READ STORE 3 LOAD =1 cyklus: STORE 2 READ JZERO vypis SUB 3 JZERO nasel LOAD 2 ADD =1 JUMP cyklus nasel: LOAD 2 vypis: WRITE HALT Vstup: 9,13,5,9,7,2,0 Buňka 0: 9 Buňka 1: 0 Buňka 2: 0 Buňka 3: 0 Buňka 4: 0 Výstup:. Instrukcí: 1 Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
21 Stroj RAM start: READ STORE 3 LOAD =1 cyklus: STORE 2 READ JZERO vypis SUB 3 JZERO nasel LOAD 2 ADD =1 JUMP cyklus nasel: LOAD 2 vypis: WRITE HALT Vstup: 9,13,5,9,7,2,0 Buňka 0: 9 Buňka 1: 0 Buňka 2: 0 Buňka 3: 9 Buňka 4: 0 Výstup:. Instrukcí: 2 Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
22 Stroj RAM start: READ STORE 3 LOAD =1 cyklus: STORE 2 READ JZERO vypis SUB 3 JZERO nasel LOAD 2 ADD =1 JUMP cyklus nasel: LOAD 2 vypis: WRITE HALT Vstup: 9,13,5,9,7,2,0 Buňka 0: 1 Buňka 1: 0 Buňka 2: 0 Buňka 3: 9 Buňka 4: 0 Výstup:. Instrukcí: 3 Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
23 Stroj RAM start: READ STORE 3 LOAD =1 cyklus: STORE 2 READ JZERO vypis SUB 3 JZERO nasel LOAD 2 ADD =1 JUMP cyklus nasel: LOAD 2 vypis: WRITE HALT Vstup: 9,13,5,9,7,2,0 Buňka 0: 1 Buňka 1: 0 Buňka 2: 1 Buňka 3: 9 Buňka 4: 0 Výstup:. Instrukcí: 4 Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
24 Stroj RAM start: READ STORE 3 LOAD =1 cyklus: STORE 2 READ JZERO vypis SUB 3 JZERO nasel LOAD 2 ADD =1 JUMP cyklus nasel: LOAD 2 vypis: WRITE HALT Vstup: 9,13,5,9,7,2,0 Buňka 0: 13 Buňka 1: 0 Buňka 2: 1 Buňka 3: 9 Buňka 4: 0 Výstup:. Instrukcí: 5 Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
25 Stroj RAM start: READ STORE 3 LOAD =1 cyklus: STORE 2 READ JZERO vypis SUB 3 JZERO nasel LOAD 2 ADD =1 JUMP cyklus nasel: LOAD 2 vypis: WRITE HALT Vstup: 9,13,5,9,7,2,0 Buňka 0: 13 Buňka 1: 0 Buňka 2: 1 Buňka 3: 9 Buňka 4: 0 Výstup:. Instrukcí: 6 Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
26 Stroj RAM start: READ STORE 3 LOAD =1 cyklus: STORE 2 READ JZERO vypis SUB 3 JZERO nasel LOAD 2 ADD =1 JUMP cyklus nasel: LOAD 2 vypis: WRITE HALT Vstup: 9,13,5,9,7,2,0 Buňka 0: 4 Buňka 1: 0 Buňka 2: 1 Buňka 3: 9 Buňka 4: 0 Výstup:. Instrukcí: 7 Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
27 Stroj RAM start: READ STORE 3 LOAD =1 cyklus: STORE 2 READ JZERO vypis SUB 3 JZERO nasel LOAD 2 ADD =1 JUMP cyklus nasel: LOAD 2 vypis: WRITE HALT Vstup: 9,13,5,9,7,2,0 Buňka 0: 4 Buňka 1: 0 Buňka 2: 1 Buňka 3: 9 Buňka 4: 0 Výstup:. Instrukcí: 8 Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
28 Stroj RAM start: READ STORE 3 LOAD =1 cyklus: STORE 2 READ JZERO vypis SUB 3 JZERO nasel LOAD 2 ADD =1 JUMP cyklus nasel: LOAD 2 vypis: WRITE HALT Vstup: 9,13,5,9,7,2,0 Buňka 0: 1 Buňka 1: 0 Buňka 2: 1 Buňka 3: 9 Buňka 4: 0 Výstup:. Instrukcí: 9 Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
29 Stroj RAM start: READ STORE 3 LOAD =1 cyklus: STORE 2 READ JZERO vypis SUB 3 JZERO nasel LOAD 2 ADD =1 JUMP cyklus nasel: LOAD 2 vypis: WRITE HALT Vstup: 9,13,5,9,7,2,0 Buňka 0: 2 Buňka 1: 0 Buňka 2: 1 Buňka 3: 9 Buňka 4: 0 Výstup:. Instrukcí: 10 Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
30 Stroj RAM start: READ STORE 3 LOAD =1 cyklus: STORE 2 READ JZERO vypis SUB 3 JZERO nasel LOAD 2 ADD =1 JUMP cyklus nasel: LOAD 2 vypis: WRITE HALT Vstup: 9,13,5,9,7,2,0 Buňka 0: 2 Buňka 1: 0 Buňka 2: 1 Buňka 3: 9 Buňka 4: 0 Výstup:. Instrukcí: 11 Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
31 Stroj RAM start: READ STORE 3 LOAD =1 cyklus: STORE 2 READ JZERO vypis SUB 3 JZERO nasel LOAD 2 ADD =1 JUMP cyklus nasel: LOAD 2 vypis: WRITE HALT Vstup: 9,13,5,9,7,2,0 Buňka 0: 2 Buňka 1: 0 Buňka 2: 2 Buňka 3: 9 Buňka 4: 0 Výstup:. Instrukcí: 12 Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
32 Stroj RAM start: READ STORE 3 LOAD =1 cyklus: STORE 2 READ JZERO vypis SUB 3 JZERO nasel LOAD 2 ADD =1 JUMP cyklus nasel: LOAD 2 vypis: WRITE HALT Vstup: 9,13,5,9,7,2,0 Buňka 0: 5 Buňka 1: 0 Buňka 2: 2 Buňka 3: 9 Buňka 4: 0 Výstup:. Instrukcí: 13 Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
33 Stroj RAM start: READ STORE 3 LOAD =1 cyklus: STORE 2 READ JZERO vypis SUB 3 JZERO nasel LOAD 2 ADD =1 JUMP cyklus nasel: LOAD 2 vypis: WRITE HALT Vstup: 9,13,5,9,7,2,0 Buňka 0: 5 Buňka 1: 0 Buňka 2: 2 Buňka 3: 9 Buňka 4: 0 Výstup:. Instrukcí: 14 Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
34 Stroj RAM start: READ STORE 3 LOAD =1 cyklus: STORE 2 READ JZERO vypis SUB 3 JZERO nasel LOAD 2 ADD =1 JUMP cyklus nasel: LOAD 2 vypis: WRITE HALT Vstup: 9,13,5,9,7,2,0 Buňka 0: -4 Buňka 1: 0 Buňka 2: 2 Buňka 3: 9 Buňka 4: 0 Výstup:. Instrukcí: 15 Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
35 Stroj RAM start: READ STORE 3 LOAD =1 cyklus: STORE 2 READ JZERO vypis SUB 3 JZERO nasel LOAD 2 ADD =1 JUMP cyklus nasel: LOAD 2 vypis: WRITE HALT Vstup: 9,13,5,9,7,2,0 Buňka 0: -4 Buňka 1: 0 Buňka 2: 2 Buňka 3: 9 Buňka 4: 0 Výstup:. Instrukcí: 16 Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
36 Stroj RAM start: READ STORE 3 LOAD =1 cyklus: STORE 2 READ JZERO vypis SUB 3 JZERO nasel LOAD 2 ADD =1 JUMP cyklus nasel: LOAD 2 vypis: WRITE HALT Vstup: 9,13,5,9,7,2,0 Buňka 0: 2 Buňka 1: 0 Buňka 2: 2 Buňka 3: 9 Buňka 4: 0 Výstup:. Instrukcí: 17 Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
37 Stroj RAM start: READ STORE 3 LOAD =1 cyklus: STORE 2 READ JZERO vypis SUB 3 JZERO nasel LOAD 2 ADD =1 JUMP cyklus nasel: LOAD 2 vypis: WRITE HALT Vstup: 9,13,5,9,7,2,0 Buňka 0: 3 Buňka 1: 0 Buňka 2: 2 Buňka 3: 9 Buňka 4: 0 Výstup:. Instrukcí: 18 Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
38 Stroj RAM start: READ STORE 3 LOAD =1 cyklus: STORE 2 READ JZERO vypis SUB 3 JZERO nasel LOAD 2 ADD =1 JUMP cyklus nasel: LOAD 2 vypis: WRITE HALT Vstup: 9,13,5,9,7,2,0 Buňka 0: 3 Buňka 1: 0 Buňka 2: 2 Buňka 3: 9 Buňka 4: 0 Výstup:. Instrukcí: 19 Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
39 Stroj RAM start: READ STORE 3 LOAD =1 cyklus: STORE 2 READ JZERO vypis SUB 3 JZERO nasel LOAD 2 ADD =1 JUMP cyklus nasel: LOAD 2 vypis: WRITE HALT Vstup: 9,13,5,9,7,2,0 Buňka 0: 3 Buňka 1: 0 Buňka 2: 3 Buňka 3: 9 Buňka 4: 0 Výstup:. Instrukcí: 20 Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
40 Stroj RAM start: READ STORE 3 LOAD =1 cyklus: STORE 2 READ JZERO vypis SUB 3 JZERO nasel LOAD 2 ADD =1 JUMP cyklus nasel: LOAD 2 vypis: WRITE HALT Vstup: 9,13,5,9,7,2,0 Buňka 0: 9 Buňka 1: 0 Buňka 2: 3 Buňka 3: 9 Buňka 4: 0 Výstup:. Instrukcí: 21 Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
41 Stroj RAM start: READ STORE 3 LOAD =1 cyklus: STORE 2 READ JZERO vypis SUB 3 JZERO nasel LOAD 2 ADD =1 JUMP cyklus nasel: LOAD 2 vypis: WRITE HALT Vstup: 9,13,5,9,7,2,0 Buňka 0: 9 Buňka 1: 0 Buňka 2: 3 Buňka 3: 9 Buňka 4: 0 Výstup:. Instrukcí: 22 Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
42 Stroj RAM start: READ STORE 3 LOAD =1 cyklus: STORE 2 READ JZERO vypis SUB 3 JZERO nasel LOAD 2 ADD =1 JUMP cyklus nasel: LOAD 2 vypis: WRITE HALT Vstup: 9,13,5,9,7,2,0 Buňka 0: 0 Buňka 1: 0 Buňka 2: 3 Buňka 3: 9 Buňka 4: 0 Výstup:. Instrukcí: 23 Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
43 Stroj RAM start: READ STORE 3 LOAD =1 cyklus: STORE 2 READ JZERO vypis SUB 3 JZERO nasel LOAD 2 ADD =1 JUMP cyklus nasel: LOAD 2 vypis: WRITE HALT Vstup: 9,13,5,9,7,2,0 Buňka 0: 0 Buňka 1: 0 Buňka 2: 3 Buňka 3: 9 Buňka 4: 0 Výstup:. Instrukcí: 24 Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
44 Stroj RAM start: READ STORE 3 LOAD =1 cyklus: STORE 2 READ JZERO vypis SUB 3 JZERO nasel LOAD 2 ADD =1 JUMP cyklus nasel: LOAD 2 vypis: WRITE HALT Vstup: 9,13,5,9,7,2,0 Buňka 0: 3 Buňka 1: 0 Buňka 2: 3 Buňka 3: 9 Buňka 4: 0 Výstup:. Instrukcí: 25 Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
45 Stroj RAM start: READ STORE 3 LOAD =1 cyklus: STORE 2 READ JZERO vypis SUB 3 JZERO nasel LOAD 2 ADD =1 JUMP cyklus nasel: LOAD 2 vypis: WRITE HALT Vstup: 9,13,5,9,7,2,0 Buňka 0: 3 Buňka 1: 0 Buňka 2: 3 Buňka 3: 9 Buňka 4: 0. Výstup: 3 Instrukcí: 26 Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
46 Stroj RAM start: READ STORE 3 LOAD =1 cyklus: STORE 2 READ JZERO vypis SUB 3 JZERO nasel LOAD 2 ADD =1 JUMP cyklus nasel: LOAD 2 vypis: WRITE HALT Vstup: 9,13,5,9,7,2,0 Buňka 0: 3 Buňka 1: 0 Buňka 2: 3 Buňka 3: 9 Buňka 4: 0. Výstup: 3 Instrukcí: 27 Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
47 Stroj RAM Rozdíly oproti skutečnému počítači: Velikost paměti není omezena (adresa může být libovolné přirozené číslo). Velikost obsahu jednotlivých buněk není omezena (buňka může obsahovat libovolné celé číslo). Čte data sekvenčně ze vstupu, který je tvořen sekvencí celých čísel. Ze vstupu lze pouze číst. Zapisuje data sekvenčně na výstup, který je tvořen sekvencí celých čísel. Na výstup je možné pouze zapisovat. Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
48 Stroj RAM a Turingův stroj Každý program v každém programovacím jazyce by mohl být realizován jako program stroje RAM. Není složité (i když je to trochu pracné) si rozmyslet, že libovolný algoritmus prováděný strojem RAM je možné realizovat také Turingovým strojem. Turingův stroj je schopen realizovat libovolný algoritmus, který by bylo možné zapsat jako program v nějakém programovacím jazyce. Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
49 Stroj RAM a Turingův stroj Turingův stroj pracuje se slovy nad nějakou abecedou, zatímco stroj RAM s čísly. Čísla ale můžeme zapisovat jako sekvence symbolů a naopak symboly nějaké abecedy můžeme zapisovat jako čísla. Například následující vstup stroje RAM může být v případě Turingova stroje reprezentován jako # # # # 0 # # Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
50 Vícepáskový Turingův stroj Při konstrukci Turingova stroje k danému stroji RAM může být jednodušší zkonstruovat nejprve vícepáskový Turingův stroj: a b a a b a b b a b b a b b b b a a a b b a a a b a b q Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
51 Vícepáskový Turingův stroj Činnost vícepáskového Turingova stroje a b a a b a b b a b b a b b b b a a a b b a a a b a b je možné simulovat jednopáskovým Turingovým strojem a b a a b a b b a b b a b b b b a a a b b a a a b a b Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
52 Vícepáskový Turingův stroj Příklad: Stroj, který dostane jako vstup dvě přirozená čísla zapsaná binárně a oddělená znaky # (např. čísla 6 a 11 budou zapsaná jako slovo #110#1011# ) a spočítá jejich součet. # # # # 0 1 # q Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
53 Turingův stroj simulující činnost stroje RAM Turingův stroj simulující činnost stroje RAM bude mít několik pásek: Pásku reprezentující vstupní pásku stroje RAM. Pásku reprezentující výstupní pásku stroje RAM. Pásku, na které bude uložen obsah pracovního registru. Pásku, na které bude uložen obsah indexového registru. Pásku, na které bude uložen obsah ostatních buněk paměti stroje RAM. Pásku, na které bude uložena adresa buňky paměti, se kterou se aktuálně pracuje. Několik dalších pomocných pásek (pro uložení mezivýsledků operací apod.) Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
54 Turingův stroj simulující činnost stroje RAM Turingův stroj si bude v řídící jednotce pamatovat, která instrukce stroje RAM se právě provádí. Provedení většiny instrukcí není složité: Instrukce READ zkopírování hodnoty (ohraničené znaky # ) ze vstupní pásky na pásku reprezentující pracovní registr. Instrukce WRITE zkopírování hodnoty pracovní registru na výstupní pásku. Instrukce JUMP změní se jen stav řídící jednotky Turingova stroje. Instrukce JZERO a JGTZ snadno otestujeme obsah pracovního registru a podle výsledku změníme stav řídící jednotky Turingova stroje. Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
55 Turingův stroj simulující činnost stroje RAM Aritmetické instrukce (ADD, SUB, MUL, DIV) jsou také relativně jednoduché: Hodnotu druhého operandu zapíšeme na pomocnou pásku. Provedeme operaci (např. sčítání) bit po bitu, výsledek ukládáme na další pomocnou pásku. Výsledek zkopírujeme na pásku s obsahem pracovního registru. Poznámka: Násobení a dělení je možné realizovat pomocí série sčítání a bitových posunů. Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
56 Turingův stroj simulující činnost stroje RAM Asi nejsložitější je realizace paměti stroje RAM. Jednou z možností je pamatovat si jen obsah těch buněk, se kterými stroj RAM v průběhu své činnosti někdy pracoval (víme, že všechny ostatní obsahují hodnotu 0). Příklad: Stroj RAM zatím pracoval jen s buňkami 2, 3 a 6: Buňka 2 obsahuje hodnotu 11. Buňka 3 obsahuje hodnotu 1. Buňka 6 obsahuje hodnotu 2. Obsah pásky Turingova stroje reprezentující buňky paměti stroje RAM bude následující: $ # 1 0 : # 1 1 : - 1 # : 1 0 # $ Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
57 Turingův stroj simulující činnost stroje RAM Instrukce LOAD: Hledanou adresu uložíme na příslušnou pásku obsahující adresu, se kterou se aktuálně pracuje. Budeme hledat příslušnou adresu na pásce reprezentující obsah paměti stroje RAM. (Pokud ji nenajdeme, přidáme ji na konec, s tím, že obsahuje hodnotu 0.) Příslušnou hodnotu zkopírujeme na pásku reprezentující pracovní registr. Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
58 Turingův stroj simulující činnost stroje RAM Instrukce STORE: Podobně jako u instrukce LOAD najdeme příslušné místo na pásce. Zbytek pásky s obsahem paměti stroje RAM zkopírujeme na pomocnou pásku. Na příslušné místo zkopírujeme hodnotu z pracovního registru. Zbytek pásky, který jsme zkopírovali na pomocnou pásku, zkopírujeme zpět (za nově zapsanou hodnotu). Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
59 Churchova-Turingova teze Churchova-Turingova teze Každý algoritmus je možné realizovat nějakým Turingovým strojem. Není to věta, kterou by bylo možno dokázat v matematickém smyslu není formálně definováno, co je to algoritmus. Tezi formulovali nezávisle na sobě v polovině 30. let 20. století Alan Turing a Alonzo Church. Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
60 Churchova-Turingova teze Příklady matematických formalismů zachycujících pojem algoritmus: stroje RAM Turingovy stroje lambda kalkulus rekurzivní funkce... Dále můžeme uvést: Libovolný (obecný) programovací jazyk (jako např. C, Java, Lisp, Haskell, Prolog apod.). Všechny tyto modely jsou ekvivalentní z hlediska algoritmů, které jsou schopny realizovat. Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
61 Výpočetní modely Takovým jazykům (resp. strojům), které jsou dostatečně obecné na to, aby se do nich (resp. do jejich instrukcí) daly přeložit programy napsané v libovolném jiném programovacím jazyce se říká Turingovsky úplné. Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
62 Simulace výpočtu Vysvětlení toho, co to znamená, že stroj M je simulován strojem M : Výpočet stroje M pro vstup w je (konečná nebo nekonečná) posloupnost konfigurací stroje M α 0 α 1 α 2 Tomuto výpočtu odpovídá výpočet stroje M tvořený konfiguracemi α 0 α 1 α 2 kde každé konfiguraci α i odpovídá nějaká konfigurace α f(i), kde f : N N je funkce, pro kterou platí, f(i) f(j) pro každé i a j, kde i < j. Existuje funkce mapující konfigurace stroje M na jim odpovídající konfigurace stroje M. Existují funkce mapující vstup w na odpovídající počáteční konfigurace α 0 a α 0 a analogicky funkce mapující koncové konfigurace na výsledek výpočtu. Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
63 Příklady výpočetních modelů a jejich vzájemných simulací Všechny následující stroje mají konečnou řídící jednotku doplněnou o nějaký druh neomezeně velké paměti. Tato pamět může být tvořena jednou nebo více struktur, jako jsou třeba: Páska čtení a zápis symbolu na aktuální pozici, posun hlavy doleva a doprava Poznámka: Páska může být jednostranně nebo oboustranně nekonečná. Zásobník push, pop, test prázdnosti zásobníku Čítač hodnotou je přirozené číslo, operace přičtení nebo odečtení hodnoty jedna, test rovnosti nule Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
64 Příklady výpočetních modelů a jejich vzájemných simulací Na jednostranně nekonečnou pásku je možné se dívat jako na speciální případ oboustranně nekonečné pásky. Na zásobník je možné se dívat jako na speciální případ jednostranně nekonečné pásky. Na čítač je možné se dívat jako na speciální případ zásobníku. Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
65 Příklady výpočetních modelů a jejich vzájemných simulací Oboustranně nekonečnou pásku je možné simulovat pomocí dvou zásobníků. Zásobník je možné simulovat pomocí dvou čítačů hodnota jednoho čítače reprezentuje obsah zásobníku jako číslo, jehož zápis v číselné soustavě o základu k = Γ (kde Γ je zásobníková abeceda) odpovídá obsahu zásobníku. Symbol na vrcholu zásobníku zbytek po dělení k Pop vydělit k Push vynásobit k a přičíst kód příslušného symbolu Dělení a násobení konstantou je možné implementovat postupným přičítáním s využitím druhého pomocného čítače. Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
66 Příklady výpočetních modelů a jejich vzájemných simulací Libovolný konečný počet čítačů je možné simulovat pomocí dvou čítačů. Jeden čítač reprezentuje hodnoty všech čítačů např. hodnoty čítačů x, y, z mohou reprezentovány jako číslo 2 x 3 y 5 z. Přičtení jedničky k čítači x je simulováno jako vynásobení hodnotou 2, přičtení jedničky k čítači y jako vynásobení hodnotou 3, atd. Analogicky je odečtení jedničky simulováno pomocí dělení příslušnou konstantou. Všechny tyto operace je možno realizovat pomocí postupného přičítání či odečítání s použitím druhého pomocného čítače. Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
67 Univerzální Turingův stroj Popis libovolného Turingova stroje M (či jiného výpočetního modelu) můžeme reprezentovat ve formě dat např. slova nad nějakou abecedou. Zápisem Kód(M) označme takovouto reprezentaci stroje M (v nějakém konkrétním formátu). Univerzální Turingův stroj U je stroj, který když dostane jako vstup Kód(M)#w, kde w je slovo nad abecedou Σ, začne simulovat činnost stroje M nad vstupem w. Univerzální Turingův stroj je tedy schopen vykonávat činnost libovolného jiného Turingova stroje (jehož popis dostane jako součást vstupu). Poznámka: Odpovídá to situaci, kdy máme hardware počítače (stroj U), který je schopen vykonávat libovolný algoritmus, který dostane ve formě programu (software) Kód(M). Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
68 Výpočet Turingova stroje jako data Nejen s popisem Turingova stroje můžeme pracovat jako s daty. Rovněž na výpočet (resp. na popis tohoto výpočtu) daného stroje M nad nějakým vstupem w můžeme nahĺıžet jako na určitý druh dat. Například konfigurace Turingova stroje M = (Q,Σ,Γ,δ,q 0,F) můžeme kódovat jako slova nad abecedou = Γ (Q Γ): V zápisu konfigurace je právě jeden symbol z množiny (Q Γ) reprezentuje stav řídící jednotky a pozici hlavy. Zbylé symboly (z množiny Γ) reprezentují obsah pásky. Výpočet je možné reprezentovat jako posloupnost konfigurací oddělených symbolem #. Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
69 C 0 C 1 C 2 C n n+1 j q 0 a 1 a 2 a 3 a n C i β 1 β 2β 3 β C t 1 C t q acc x Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
70 Nerozhodnutelné problémy Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
71 Algoritmicky řešitelné problémy Předpokládejme, že máme dán nějaký problém P. Jestliže existuje nějaký algoritmus, který řeší problém P, pak říkáme, že problém P je algoritmicky řešitelný. Jestliže P je rozhodovací problém a jestliže existuje nějaký algoritmus, který problém P řeší, pak říkáme, že problém P je (algoritmicky) rozhodnutelný. Když chceme ukázat, že problém P je algoritmicky řešitelný, stačí ukázat nějaký algoritmus, který ho řeší (a případně ukázat, že daný algoritmus problém P skutečně řeší). Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
72 Algoritmicky neřešitelné problémy Problém, který není algoritmicky řešitelný, je algoritmicky neřešitelný. Rozhodovací problém, který není rozhodnutelný, je nerozhodnutelný. Kupodivu existuje řada algoritmických problémů (přesně definovaných), o kterých je dokázáno, že nejsou algoritmicky řešitelné. Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
73 Halting Problem Vezměme si nějaký libovolný obecný programovací jazyk L. Navíc předpokládejme, že programy v jazyce L běží na nějakém idealizovaném stroji, kde mají k dispozici (potenciálně) neomezené množství paměti tj. kde alokace paměti nikdy neselže kvůli nedostatku paměti. Příklad: Následující problém zvaný Problém zastavení (Halting problem) je nerozhodnutelný: Halting problem Vstup: Zdrojový kód programu P v jazyce L, vstupní data x. Otázka: Zastaví se program P po nějakém konečném počtu kroků, pokud dostane jako vstup data x? Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
74 Halting Problem Předpokládejme, že by existoval nějaký program, který by rozhodoval Halting problem. Mohli bychom tedy vytvořit podprogram H, deklarovaný jako kde H(P,x) vrátí: Bool H(String kod, String vstup) true pokud se program P zastaví pro vstup x, false pokud se program P nezastaví pro vstup x. Poznámka: Řekněme, že podprogram H(P, x) by vracel false v případě, že P není syntakticky správný kód programu. Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
75 Halting Problem S použitím podprogramu H bychom vytvořili program D, který bude provádět následující kroky: Načte svůj vstup do proměnné x typu String. Zavolá podprogram H(x, x). Pokud podprogram H vrátil true, skočí do nekonečné smyčky loop: goto loop V případě, že H vrátil false, program D se ukončí. Co udělá program D, pokud mu předložíme jako vstup jeho vlastní kód? Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
76 Halting Problem Pokud D dostane jako vstup svůj vlastní kód, tak se bud zastaví nebo nezastaví. Pokud se D zastaví, tak H(D,D) vrátí true a D skočí do nekonečné smyčky. Spor! Pokud se D nezastaví, tak H(D,D) vrátí false a D se zastaví. Spor! V obou případech dospějeme ke sporu a další možnost není. Nemůže tedy platit předpoklad, že H řeší Halting problem. Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
77 Částečně rozhodnutelné problémy Problém je částečně rozhodnutelný, jestliže existuje algoritmus, který: Pokud dostane jako vstup instanci, pro kterou je odpověd Ano, tak se po konečném počtu kroků zastaví a vypíše "ANO". Pokud dostane jako vstup instanci, pro kterou je odpověd Ne, tak se bud zastaví a vypíše "NE" nebo se nikdy nezastaví. Je očividné, že například HP (Halting problem) je částečně rozhodnutelný. Některé problémy však nejsou ani částečně rozhodnutelné. Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
78 Postova věta Doplňkový problém k danému rozhodovacímu problému P je problém, kde vstupy jsou stejné jako u problému P a otázka je negací otázky z problému P. Postova věta Jestliže problém P i jeho doplňkový problém jsou částečně rozhodnutelné, pak je problém P rozhodnutelný. Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
79 Převody mezi problémy Pokud máme o nějakém (rozhodovacím) problému dokázáno, že je nerozhodnutelný, můžeme ukázat nerozhodnutelnost dalších problémů pomocí redukcí (převodů) mezi problémy. Problém P 1 je převeditelný na problém P 2, jestliže existuje algoritmus Alg takový, že: Jako vstup může dostat libovolnou instanci problému P 1. K instanci problému P 1, kterou dostane jako vstup (označme ji w), vyprodukuje jako svůj výstup instanci problému P 2 (označme ji Alg(w)). Platí, že pro vstup w je v problému P 1 odpověd Ano právě tehdy, když pro vstup Alg(w) je v problému P 2 odpověd Ano. Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
80 Převody mezi problémy vstupy problému P 1 vstupy problému P 2 Ano Ano Ne Ne Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
81 Převody mezi problémy vstupy problému P 1 vstupy problému P 2 Ano Ano Ne Ne Alg Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
82 Převody mezi problémy Řekněme, že existuje redukce Alg problému P 1 na problém P 2. Pokud by problém P 2 byl rozhodnutelný, pak i problém P 1 je rozhodnutelný. Řešení problému P 1 pro vstup x: Zavoláme Alg se vstupem x, vrátí nám hodnotu Alg(x). Zavoláme algoritmus řešící problém P 2 se vstupem Alg(x). Hodnotu, kterou nám vrátí vypíšeme jako výsledek. Je zřejmé, že pokud P 1 je nerozhodnutelný, tak P 2 nemůže být rozhodnutelný. Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
83 Další nerozhodnutelné problémy Redukcí z Halting problému se dá ukázat nerozhodnutelnost celé řady problémů, které se týkají ověřování chování programů: Vydá daný program pro nějaký vstup odpověd Ano? Zastaví se daný program pro libovolný vstup? Dávají dva dané programy pro stejné vstupy stejný výstup?... Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
84 Halting problem Pro účely důkazů se Halting problem nejčastěji používá v následující podobě: Halting problem Vstup: Popis Turingova stroje M a slovo w. Otázka: Zastaví se stroj M po nějakém konečném počtu kroků, pokud dostane jako svůj vstup slovo w? Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
85 Další nerozhodnutelné problémy S následujícím příkladem nerozhodnutelného problému už jsme se setkali: Problém Vstup: Bezkontextové gramatiky G 1 a G 2. Otázka: Je L(G 1 ) = L(G 2 )? případně Problém Vstup: Bezkontextová gramatika G generující jazyk nad abecedou Σ. Otázka: Je L(G) = Σ? Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
86 Další nerozhodnutelné problémy Vstupem je množina typů kartiček, jako třeba: abb a bab baba aba bbab aa ab aa a Otázka je, zda je možné z těchto typů kartiček vytvořit neprázdnou konečnou posloupnost, kde zřetězením slov nahoře i dole vznikne totéž slovo. Každý typ kartičky je možné používat opakovaně. a abb abb baba abb aba aa bbab bbab aa bbab a Nahoře i dole vznikne slovo aabbabbbabaabbaba. Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
87 Další nerozhodnutelné problémy Redukcí z předchozího problému se dá snadno ukázat nerozhodnutelnost některých dalších problémů z oblasti bezkontextových gramatik: Problém Vstup: Bezkontextové gramatiky G 1 a G 2. Otázka: Je L(G 1 ) L(G 2 ) =? Problém Vstup: Bezkontextová gramatika G. Otázka: Je G nejednoznačná? Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
88 Další nerozhodnutelné problémy Vstupem je množina typů kachliček, jako třeba: Otázka je, zda je možné použitím daných typů kachliček pokrýt každou libovolně velkou konečnou plochu tak, aby všechny kachličky spolu sousedily stejnými barvami. Poznámka: Můžeme předpokládat, že máme v zásobě neomezené množství kachliček všech typů. Kachličky není dovoleno otáčet. Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
89 Další nerozhodnutelné problémy Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
90 Další nerozhodnutelné problémy Problém Vstup: Uzavřená formule predikátové logiky (prvního řádu), ve které mohou být použity jako predikátové symboly pouze = a <, jako funkční symboly pouze + a a jako kostantní symboly pouze 0 a 1. Otázka: Je daná formule pravdivá v oboru přirozených čísel (při přirozené interpretaci všech funkčních a predikátových symbolů)? Příklad vstupu: x y z((x y = z) (y +1 = x)) Poznámka: Úzce souvisí s Gödelovou větou o neúplnosti. Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
91 Další nerozhodnutelné problémy Je zajímavé, že analogický problém, kde ale místo přirozených čísel uvažujeme čísla reálná, je algoritmicky rozhodnutelný (i když popis daného algoritmu a důkaz jeho korektnosti jsou značně netriviální). Rovněž pokud uvažujeme přirozená nebo celá čísla a stejné formule jako v předchozím případě, ale s tím, že v nich nesmí být použit funkční symbol (násobení), tak je problém algoritmicky rozhodnutelný. Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
92 Další nerozhodnutelné problémy Pokud můžeme používat, je ve skutečnosti je nerozhodnutelný už velmi omezený případ: Desátý Hilbertův problém Vstup: Polynom f(x 1,x 2,...,x n ) vytvořený z proměnných x 1,x 2,...,x n a celočíselných konstant. Otázka: Existují přirozená čísla x 1,x 2,...,x n taková, že f(x 1,x 2,...,x n ) = 0? Příklad vstupu: 5x 2 y 8yz +3z 2 15 Tj. ptáme se, zda x y z(5 x x y +( 8) y z +3 z z +( 15) = 0) platí v oboru přirozených čísel. Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
93 Další nerozhodnutelné problémy Také následující problém je algoritmicky nerozhodnutelný: Problém Vstup: Uzavřená formule ϕ predikátové logiky prvního řádu. Otázka: Platí = ϕ? Poznámka: Zápis = ϕ znamená, že formule ϕ je logicky platná, tj. pravdivá v každé interpretaci. Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
94 Riceova věta Řekněme, že P je nějaká vlastnost Turingových strojů. Vlastnost P je: netriviální pokud existuje alespoň jeden stroj, který vlastnost P má, a alespoň jeden stroj, který vlastnost P nemá vstupně-výstupní pokud každé dva stroje, které se zastaví pro stejné vstupy a pro stejné vstupu dávají stejné výstup, vždy oba vlastnost P mají nebo oba nemají Věta Každý problém tvaru Vstup: Turingův stroj M. Otázka: Má stroj M vlastnost P? kde P je netriviální vstupně-výstupní vlastnost, je nerozhodnutelný. Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63
Rozhodnutelné a nerozhodnutelné problémy. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 24. dubna / 49
Rozhodnutelné a nerozhodnutelné problémy M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 24. dubna 2007 1/ 49 Co je to algoritmus? Algoritmus Algoritmus je mechanický postup skládající
(viztakéslidyktétopřednášce...) Poznámka. Neudělali jsme vše tak podrobně, jak je to v zápisu.
Teoretická informatika průběh výuky v semestru 1 Týden 8 Přednáška- první část (viztakéslidyktétopřednášce...) Poznámka. Neudělali jsme vše tak podrobně, jak je to v zápisu. Turingovy stroje,(výpočetní)
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é
Teoretická informatika průběh výuky v semestru 1
Teoretická informatika průběh výuky v semestru 1 Týden 8 Přednáška Model RAM Ve studijním textu je detailně popsán model RAM, který je novějším výpočetním modelem než Turingův stroj a vychází z architektury
Postův korespondenční problém. Meze rozhodnutelnosti 2 p.1/13
Postův korespondenční problém Meze rozhodnutelnosti 2 p.1/13 Postův korespondenční problém Definice 10.1 Postův systém nad abecedou Σ je dán neprázdným seznamem S dvojic neprázdných řetězců nadσ, S = (α
Princip funkce počítače
Princip funkce počítače Princip funkce počítače prvotní úlohou počítačů bylo zrychlit provádění matematických výpočtů první počítače kopírovaly obvyklý postup manuálního provádění výpočtů pokyny pro zpracování
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
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ě
PŘÍJMENÍ a JMÉNO: Login studenta: DATUM:
PŘÍJMENÍ a JMÉNO: Login studenta: DATUM: Závěrečný test z předmětu Vyčíslitelnost a složitost Doba trvání: 90 minut Max. zisk: 100 bodů Obecné pokyny: Po obdržení testu ihned do pravého horního rohu napište
Strojový kód. Instrukce počítače
Strojový kód Strojový kód (Machine code) je program vyjádřený v počítači jako posloupnost instrukcí procesoru (posloupnost bajtů, resp. bitů). Z hlediska uživatele je strojový kód nesrozumitelný, z hlediska
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
Teoretická informatika průběh výuky v semestru 1
Teoretická informatika průběh výuky v semestru 1 Týden 7 Přednáška (Výpočetní) problémy, rozhodovací(ano/ne) problémy,... Připomněli jsme si obecné definice a konkrétní problémy, jako např. SAT[problém
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í
Algoritmy. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 15. dubna / 39
Algoritmy Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 15. dubna 2018 1/ 39 Algoritmy Příklad: Popis algoritmu pomocí pseudokódu: Algoritmus 1: Algoritmus pro nalezení největšího prvku v poli 1 Find-Max(A,n):
Turingovy stroje. Teoretická informatika Tomáš Foltýnek
Turingovy stroje Teoretická informatika Tomáš Foltýnek foltynek@pef.mendelu.cz Teoretická informatika strana 2 Opakování z minulé přednášky Jaké znáte algebraické struktury s jednou operací? Co je to okruh,
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í
Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem.
Algoritmus Algoritmus je schematický postup pro řešení určitého druhu problémů, který je prováděn pomocí konečného množství přesně definovaných kroků. nebo Algoritmus lze definovat jako jednoznačně určenou
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í
Složitost. Teoretická informatika Tomáš Foltýnek
Složitost Teoretická informatika Tomáš Foltýnek foltynek@pef.mendelu.cz Teoretická informatika 2 Opakování z minulé přednášky Co říká Churchova teze? Jak lze kódovat Turingův stroj? Co je to Univerzální
Architektura počítačů Logické obvody
Architektura počítačů Logické obvody http://d3s.mff.cuni.cz/teaching/computer_architecture/ Lubomír Bulej bulej@d3s.mff.cuni.cz CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics Digitální
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
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)
Architektura počítačů Logické obvody
Architektura počítačů Logické obvody http://d3s.mff.cuni.cz/teaching/computer_architecture/ Lubomír Bulej bulej@d3s.mff.cuni.cz CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics 2/36 Digitální
3. Třídy P a NP. Model výpočtu: Turingův stroj Rozhodovací problémy: třídy P a NP Optimalizační problémy: třídy PO a NPO MI-PAA
Jan Schmidt 2011 Katedra číslicového návrhu Fakulta informačních technologií České vysoké učení technické v Praze Zimní semestr 2011/12 MI-PAA EVROPSKÝ SOCIÁLNÍ FOND PRAHA & EU: INVESTUJENE DO VAŠÍ BUDOUCNOSTI
Čísla, reprezentace, zjednodušené výpočty
Čísla, reprezentace, zjednodušené výpočty Přednáška 5 A3B38MMP kat. měření, ČVUT - FEL, Praha J. Fischer A3B38MMP, 2015, J.Fischer, ČVUT - FEL, kat. měření 1 Čísla 4 bitová dec bin. hex. 0 0000 0 1 0001
Čísla, reprezentace, zjednodušené výpočty
Čísla, reprezentace, zjednodušené výpočty Přednáška 4 A3B38MMP kat. měření, ČVUT - FEL, Praha J. Fischer A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření 1 Čísla 4 bitová dec bin. hex. 0 0000 0 1 0001
Jako pomůcka jsou v pravém dolním rohu vypsány binární kódy čísel od 0 do 15 a binární kódy příkazů, které máme dispozici (obr.21). Obr.
Model procesoru Jedná se o blokové schéma složené z registrů, paměti RAM, programového čítače, instrukčního registru, sčítačky a řídicí jednotky, které jsou propojeny sběrnicemi. Tento model má dva stavy:
Výroková a predikátová logika - XIII
Výroková a predikátová logika - XIII Petr Gregor KTIML MFF UK ZS 2013/2014 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - XIII ZS 2013/2014 1 / 13 Úvod Algoritmická (ne)rozhodnutelnost Které
a operačních systémů
NSWI2 2/2 ZS Principy počítačů a operačních systémů INSTRUKCE Kdybych nařídil generálovi, aby létal od květině ke květině a on by rozkaz neprovedl, nebyla by to chyba generálova, ale moje. král asteroidu
Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12.
Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 12. září 2016 Jiří Dvorský (VŠB TUO) Vyhledávání 201 / 344 Osnova přednášky
Výpočetní složitost I
Výpočetní složitost I prooborlogikanaffuk Petr Savický 1 Úvod Složitostí algoritmické úlohy se rozumí především její časová a paměťová náročnost při řešení na počítači. Časová náročnost se měří počtem
Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu / 43
Zásobníkové automaty Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 1/ 43 Zásobníkový automat Chtěli bychom rozpoznávat jazyk L = {a i b i i 1} Snažíme se navrhnout zařízení (podobné konečným
Logika. 6. Axiomatický systém výrokové logiky
Logika 6. Axiomatický systém výrokové logiky RNDr. Luděk Cienciala, Ph. D. Tato inovace předmětu Úvod do logiky je spolufinancována Evropským sociálním fondem a Státním rozpočtem ČR, projekt č. CZ. 1.07/2.2.00/28.0216,
Pojem algoritmus. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava
Pojem algoritmus doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 12. září 2016 Jiří Dvorský (VŠB TUO) Pojem algoritmus 54 / 344
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
Základy algoritmizace
Algoritmus Toto je sice na první pohled pravdivá, ale při bližším prozkoumání nepřesná definice. Například některé matematické postupy by této definici vyhovovaly, ale nejsou algoritmy. Přesné znění definice
Definice 9.4. Nedeterministický algoritmus se v některých krocích může libovolně rozhodnout pro některé z několika možných různých pokračování.
9.5 Třída NP Definice 9.4. Nedeterministický algoritmus se v některých krocích může libovolně rozhodnout pro některé z několika možných různých pokračování. Příklad. Uvažujme problém IND a následující
8. Laboratoř: Aritmetika a řídicí struktury programu
8. Laboratoř: Aritmetika a řídicí struktury programu Programy v JSA aritmetika, posuvy, využití příznaků Navrhněte a simulujte v AVR studiu prográmky pro 24 bitovou (32 bitovou) aritmetiku: sčítání, odčítání,
Formální jazyky a gramatiky Teorie programovacích jazyků
Formální jazyky a gramatiky Teorie programovacích jazyků doc. Ing. Jiří Rybička, Dr. ústav informatiky PEF MENDELU v Brně rybicka@mendelu.cz Připomenutí základních pojmů ABECEDA jazyk je libovolná podmnožina
Architektury počítačů a procesorů
Kapitola 3 Architektury počítačů a procesorů 3.1 Von Neumannova (a harvardská) architektura Von Neumann 1. počítač se skládá z funkčních jednotek - paměť, řadič, aritmetická jednotka, vstupní a výstupní
Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.
Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 21. září 2018 Jiří Dvorský (VŠB TUO) Vyhledávání 242 / 433 Osnova přednášky
Pohled do nitra mikroprocesoru Josef Horálek
Pohled do nitra mikroprocesoru Josef Horálek Z čeho vycházíme = Vycházíme z Von Neumannovy architektury = Celý počítač se tak skládá z pěti koncepčních bloků: = Operační paměť = Programový řadič = Aritmeticko-logická
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
Jak v Javě primitivní datové typy a jejich reprezentace. BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické
Jak v Javě primitivní datové typy a jejich reprezentace BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické Obsah Celočíselný datový typ Reálný datový typ Logický datový typ, typ Boolean
Struktura a architektura počítačů (BI-SAP) 5
Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Struktura a architektura počítačů (BI-SAP) 5 doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních technologii
Výroková a predikátová logika - III
Výroková a predikátová logika - III Petr Gregor KTIML MFF UK ZS 2017/2018 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - III ZS 2017/2018 1 / 16 2-SAT 2-SAT Výrok je v k-cnf, je-li v CNF a
Paralelní programování
Paralelní programování přednášky Jan Outrata únor duben 2011 Jan Outrata (KI UP) Paralelní programování únor duben 2011 1 / 14 Atomické akce dále nedělitelná = neproložitelná jiným procesem izolovaná =
Číselné vyjádření hodnoty. Kolik váží hrouda zlata?
Čísla a logika Číselné vyjádření hodnoty Au Kolik váží hrouda zlata? Dekadické vážení Když přidám osmé závaží g, váha se převáží => závaží zase odeberu a začnu přidávat závaží x menší 7 závaží g 2 závaží
Struktura a architektura počítačů (BI-SAP) 7
Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Struktura a architektura počítačů (BI-SAP) 7 doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních technologii
Programovací jazyk Pascal
Programovací jazyk Pascal Syntaktická pravidla (syntaxe jazyka) přesná pravidla pro zápis příkazů Sémantická pravidla (sémantika jazyka) pravidla, která každému příkazu přiřadí přesný význam Všechny konstrukce
Matematická logika. Miroslav Kolařík
Matematická logika přednáška šestá 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
Základní pojmy. Program: Algoritmus zapsaný v programovacím jazyce, který řeší nějaký konkrétní úkol. Jedná se o posloupnost instrukcí.
Základní pojmy IT, číselné soustavy, logické funkce Základní pojmy Počítač: Stroj na zpracování informací Informace: 1. data, která se strojově zpracovávají 2. vše co nám nebo něčemu podává (popř. předává)
Výroková a predikátová logika - V
Výroková a predikátová logika - V Petr Gregor KTIML MFF UK ZS 2015/2016 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - V ZS 2015/2016 1 / 21 Dokazovací systémy VL Hilbertovský kalkul Hilbertovský
Číselné soustavy v mikroprocesorové technice Mikroprocesorová technika a embedded systémy
Ústav radioelektroniky Vysoké učení technické v Brně Číselné soustavy v mikroprocesorové technice Mikroprocesorová technika a embedded systémy Přednáška 8 doc. Ing. Tomáš Frýza, Ph.D. listopad 2012 Obsah
Od Turingových strojů k P=NP
Složitost Od Turingových strojů k P=NP Zbyněk Konečný Zimnění 2011 12. 16.2.2011 Kondr (Než vám klesnou víčka 2011) Složitost 12. 16.2.2011 1 / 24 O čem to dnes bude? 1 Co to je složitost 2 Výpočetní modely
Činnost CPU. IMTEE Přednáška č. 2. Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus
Činnost CPU Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus Hodinový cyklus CPU je synchronní obvod nutné hodiny (f CLK ) Instrukční cyklus IF = doba potřebná
Automaty a gramatiky(bi-aag) Formální překlady. 5. Překladové konečné automaty. h(ε) = ε, h(xa) = h(x)h(a), x, x T, a T.
BI-AAG (2011/2012) J. Holub: 5. Překladové konečné automaty p. 2/41 Formální překlady BI-AAG (2011/2012) J. Holub: 5. Překladové konečné automaty p. 4/41 Automaty a gramatiky(bi-aag) 5. Překladové konečné
Bezkontextové jazyky. Bezkontextové jazyky 1 p.1/39
Bezkontextové jazyky Bezkontextové jazyky 1 p.1/39 Jazyky typu 2 Definice 4.1 Gramatika G = (N, Σ, P, S) si nazývá bezkontextovou gramatikou, jestliže všechna pravidla z P mají tvar A α, A N, α (N Σ) Lemma
Program a životní cyklus programu
Program a životní cyklus programu Program algoritmus zapsaný formálně, srozumitelně pro počítač program se skládá z elementárních kroků Elementární kroky mohou být: instrukce operačního kódu počítače příkazy
Bezkontextové jazyky 2/3. Bezkontextové jazyky 2 p.1/27
Bezkontextové jazyky 2/3 Bezkontextové jazyky 2 p.1/27 Transformace bezkontextových gramatik Bezkontextové jazyky 2 p.2/27 Ekvivalentní gramatiky Definice 6.1 Necht G 1 a G 2 jsou gramatiky libovolného
Seznámení s mikropočítačem. Architektura mikropočítače. Instrukce. Paměť. Čítače. Porovnání s AT89C2051
051 Seznámení s mikropočítačem Architektura mikropočítače Instrukce Paměť Čítače Porovnání s AT89C2051 Seznámení s mikropočítačem řady 8051 Mikroprocesor řady 8051 pochází z roku 1980 a je vytvořené firmou
Úvod do programování 7. hodina
Úvod do programování 7. hodina RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015 Umíme z minulé hodiny Syntax Znaky Vlastní implementace
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ší
Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh. Ing. Hodál Jaroslav, Ph.D. VY_32_INOVACE_25 09
Střední průmyslová škola a Vyšší odborná škola technická Brno, Sokolská 1 Šablona: Název: Téma: Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Operátory Autor:
Předmluva 13 Použité konvence 14. KAPITOLA 1 Základní číselné soustavy a pojmy Číselné soustavy a převody 15 1.
7 Předmluva 13 Použité konvence 14 KAPITOLA 1 Základní číselné soustavy a pojmy 15 1.1 Číselné soustavy a převody 15 1.2 Datové typy 18 KAPITOLA 2 Seznámení s mikroprocesory řady x86 21 2.1 Počítač obecně
Procesor. Základní prvky procesoru Instrukční sada Metody zvýšení výkonu procesoru
Počítačové systémy Procesor Miroslav Flídr Počítačové systémy LS 2006-1/17- Západočeská univerzita v Plzni Víceúrovňová organizace počítače Digital logic level Microarchitecture level Processor Instruction
Automaty a gramatiky(bi-aag) Motivace. 1. Základní pojmy. 2 domácí úkoly po 6 bodech 3 testy za bodů celkem 40 bodů
BI-AAG (2011/2012) J. Holub: 1. Základní pojmy p. 2/29 Hodnocení předmětu BI-AAG (2011/2012) J. Holub: 1. Základní pojmy p. 4/29 Automaty a gramatiky(bi-aag) 1. Základní pojmy Jan Holub Katedra teoretické
Strojový kód k d a asembler procesoru MIPS SPIM. MIPS - prostředí NMS NMS. 32 ks 32bitových registrů ( adresa registru = 5 bitů).
Strojový kód k d a asembler procesoru MIPS Použit ití simulátoru SPIM K.D. - cvičení ÚPA 1 MIPS - prostředí 32 ks 32bitových registrů ( adresa registru = 5 bitů). Registr $0 je zero čte se jako 0x0, zápis
PJC Cvičení #2. Číselné soustavy a binární reprezentace proměnných
PJC Cvičení #2 Číselné soustavy a binární reprezentace proměnných Číselné soustavy Desítková (decimální) kdo nezná, tak...!!! Dvojková (binární) - nejjednodušší Šestnáctková (hexadecimální) - nejpoužívanější
Katedra informatiky a výpočetní techniky. 10. prosince Ing. Tomáš Zahradnický doc. Ing. Róbert Lórencz, CSc.
Katedra informatiky a výpočetní techniky České vysoké učení technické, fakulta elektrotechnická Ing. Tomáš Zahradnický doc. Ing. Róbert Lórencz, CSc. 10. prosince 2007 Pamět ové banky S výhodou používáme
Složitost algoritmů. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava
Složitost algoritmů doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 27. prosince 2015 Jiří Dvorský (VŠB TUO) Složitost algoritmů
Registry 32 bitové pro všeobecné použití: EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP.
1 Procesor i486 a vyšší - úvodní seznámení Procesory i486 a vyšší jsou v technické literatuře dobře dokumentovány, ale dokumentace je rozsáhlá a obsahuje pro začínajícího i zkušeného programátora mnoho
Bezkontextové gramatiky. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 6. května / 49
Bezkontextové gramatiky Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 6. května 2018 1/ 49 Bezkontextové gramatiky Příklad: Chtěli bychom popsat jazyk aritmetických výrazů obsahující výrazy jako například:
11 VYPOČITATELNOST A VÝPOČTOVÁ SLOŽITOST
11 VYPOČITATELNOST A VÝPOČTOVÁ SLOŽITOST Na první přednášce jsme si neformálně zavedli pojmy problém a algoritmus pro jeho řešení, které jsme na počítači vykonávali pomocí programů. Jako příklad uveďme
[1] Definice 1: Polynom je komplexní funkce p : C C, pro kterou. pro všechna x C. Čísla a 0, a 1,..., a n nazýváme koeficienty polynomu.
Polynomy Polynom je možno definovat dvěma způsoby: jako reálnou nebo komplexní funkci, jejichž hodnoty jsou dány jistým vzorcem, jako ten vzorec samotný. [1] První způsob zavedení polynomu BI-LIN, polynomy,
Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program
Denotační sémantika programovacího jazyka doc. Dr. Ing. Miroslav Beneš katedra informatiky, A-1007 59 732 4213 Obsah přednášky Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup
Kubatova 19.4.2007 Y36SAP 8. Strojový kód Jazyk symbolických instrukcí asembler JSA pro ADOP a AVR. 2007-Kubátová Y36SAP-strojový kód 1
Y36SAP 8 Strojový kód Jazyk symbolických instrukcí asembler JSA pro ADOP a AVR 2007-Kubátová Y36SAP-strojový kód 1 Architektura souboru instrukcí, ISA - Instruction Set Architecture Vysoká Architektura
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)
1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5
Obsah Obsah 1 Programovací jazyk Pascal 1 1.1 Struktura programu v Pascalu.................... 1 2 Proměnné 2 2.1 Vstup a výstup............................ 3 3 Operátory a některé matematické funkce 5
MQL4 COURSE. By Coders guru www.forex-tsd.com. -4 Operace & Výrazy
MQL4 COURSE By Coders guru www.forex-tsd.com -4 Operace & Výrazy Vítejte ve čtvrté lekci mého kurzu MQL4. Předchozí lekce Datové Typy prezentovaly mnoho nových konceptů ; Doufám, že jste všemu porozuměli,
Semestrální práce z předmětu ÚPA MIPS
Semestrální práce z předmětu ÚPA MIPS Jméno a příjmení: Martin Sloup Osobní číslo: A04372 Datum odevzdání: 21. prosince 2006 E-mail: msloup@students.zcu.cz Zadání Program převede signed integer na jeho
Predik atov a logika - pˇredn aˇska () Predik atov a logika - pˇredn aˇska / 16
Predikátová logika - přednáška 3 6. 1. 2015 () Predikátová logika - přednáška 3 6. 1. 2015 1 / 16 Věta (o dedukci) Bud L jazyk, T teorie pro L, ϕ L-sentence a ψ L-formule. Pak Věta (o kompaktnosti) T ϕ
C2115 Praktický úvod do superpočítání
C2115 Praktický úvod do superpočítání IX. lekce Petr Kulhánek, Tomáš Bouchal kulhanek@chemi.muni.cz Národní centrum pro výzkum biomolekul, Přírodovědecká fakulta, Masarykova univerzita, Kotlářská 2, CZ-61137
V každém kroku se a + b zmenší o min(a, b), tedy vždy alespoň o 1. Jestliže jsme na začátku dostali 2
Euklidův algoritmus Doprovodný materiál pro cvičení Programování I. NPRM044 Autor: Markéta Popelová Datum: 31.10.2010 Euklidův algoritmus verze 1.0 Zadání: Určete největšího společného dělitele dvou zadaných
SEKVENČNÍ LOGICKÉ OBVODY
Sekvenční logický obvod je elektronický obvod složený z logických členů. Sekvenční obvod se skládá ze dvou částí kombinační a paměťové. Abychom mohli určit hodnotu výstupní proměnné, je potřeba u sekvenčních
2. Složitost, grafové algoritmy (zapsal Martin Koutecký)
2. Složitost, grafové algoritmy (zapsal Martin Koutecký) Model Ram Při analýze algoritmu bychom chtěli nějak popsat jeho složitost. Abychom mohli udělat toto, potřebujeme nejprve definovat výpočetní model.
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...
Základy matematické analýzy
Základy matematické analýzy Spojitost funkce Ing. Tomáš Kalvoda, Ph.D. 1, Ing. Daniel Vašata 2 1 tomas.kalvoda@fit.cvut.cz 2 daniel.vasata@fit.cvut.cz Katedra aplikované matematiky Fakulta informačních
Paměť počítače. alg2 1
Paměť počítače Výpočetní proces je posloupnost akcí nad daty uloženými v paměti počítače Data jsou v paměti reprezentována posloupnostmi bitů (bit = 0 nebo 1) Připomeňme: paměť je tvořena řadou 8-mi bitových
setup() { I = 0; } loop() { I = I + 1; }
PŘERUŠENÍ Procesor pracuje tak, že načítá z paměti jednotlivé instrukce a ty následně zpracovává. Instrukce se zpracovávají v pořadí v jakém jsou uloženy v paměti. Vezměme jednoduchý program, který v nekonečném
Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7
Pascal Katedra aplikované kybernetiky Ing. Miroslav Vavroušek Verze 7 Proměnné Proměnná uchovává nějakou informaci potřebnou pro práci programu. Má ve svém oboru platnosti unikátní jméno. (Připadne, musí
Úvod do informatiky. Miroslav Kolařík. Zpracováno dle učebního textu R. Bělohlávka: Úvod do informatiky, KMI UPOL, Olomouc 2008.
Úvod do informatiky přednáška čtvrtá Miroslav Kolařík Zpracováno dle učebního textu R. Bělohlávka: Úvod do informatiky, KMI UPOL, Olomouc 2008. Obsah 1 Pojem relace 2 Vztahy a operace s (binárními) relacemi
1 Lineární prostory a podprostory
Lineární prostory a podprostory Přečtěte si: Učebnice AKLA, kapitola první, podkapitoly. až.4 včetně. Cvičení. Které z následujících množin jsou lineárními prostory s přirozenými definicemi operací?. C
/1: Teoretická informatika(ti) přednáška 4
456-330/1: Teoretická informatika(ti) přednáška 4 prof. RNDr Petr Jančar, CSc. katedra informatiky FI VŠB-TUO www.cs.vsb.cz/jancar LS 2009/2010 Petr Jančar (FI VŠB-TU) Teoretická informatika(ti) LS 2009/2010
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ě
Výroková a predikátová logika - XII
Výroková a predikátová logika - XII Petr Gregor KTIML MFF UK ZS 2015/2016 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - XII ZS 2015/2016 1 / 15 Algebraické teorie Základní algebraické teorie
Opakování programování
Opakování programování HW návaznost - procesor sběrnice, instrukční sada, optimalizace rychlosti, datové typy, operace (matematické, logické, podmínky, skoky, podprogram ) - paměti a periferie - adresování
Počítač jako prostředek řízení. Struktura a organizace počítače
Řídicí počítače - pro řízení technologických procesů. Specielní přídavná zařízení - I/O, přerušovací systém, reálný čas, Č/A a A/Č převodníky a j. s obsluhou - operátorské periferie bez obsluhy - operátorský
Týden 11. Přednáška. Teoretická informatika průběh výuky v semestru 1. Nejprve jsme dokončili témata zapsaná u minulé přednášky.
Teoretická informatika průběh výuky v semestru 1 Týden 11 Přednáška Nejprve jsme dokončili témata zapsaná u minulé přednášky. PSPACE, NPSPACE, PSPACE-úplnost Uvědomilijsmesi,ženapř.prozjištěnítoho,zdaBílýmánějakoustrategiivehřeŠACHY,