Organon V – Olomouc, Visual Turing …aneb teoretická informatika v kurzech logiky Martin Víta
Organon V – Olomouc, Cíle základních kurzů logiky Student by v nich měl získat především: základní algoritmické dovednosti (vyplývání ve VL, řeš. sylogismů) zkušenosti s prací ve formálních systémech (odlišení práce uvnitř a vně systému) znalosti významných logických konceptů, prostředků a (meta)vět logiky – korektnost, úplnost, rozhodnutelnost, self-reference, diagonalizace, … povědomí o vztahu logiky a ostatních disciplín, zejm. matematiky a filosofie, přiměřené informace o současném stavu oboru. Každý z těchto bodů má přirozený teoreticko-informatický kontext.
Organon V – Olomouc, Návrh: rozšíření kurzů logiky o některá témata TI Teorie formálních jazyků – abeceda, jazyk, gramatika, derivace, … Vyčíslitelnost – algoritmy a Turingovy stroje Hlavní myšlenka: první části příspěvku: demonstrovat některé logické koncepty na informatických tématech
Organon V – Olomouc, „Úkrok stranou“: dokumentografické systémy a Google Information Retrieval („vyhledávání informací“) – viz Pokorný J., Snášel V., Kopecký M. Dokumentografické informační systémy. Karolinum, Praha, 2005 Koeficient úplnosti = počet všech vybraných relevantních dokumentů : počet všech relevantních dokumentů v kolekci Google: vyhledávání adres podle klíčových slov Definujme klíčové slovo |– g URL (dokumentu) iff URL se objeví na některé ze stránek Googlu po zadání klíčového slova
Organon V – Olomouc, „Úkrok stranou“: dokumentografické systémy a Google II. Definujme dále klíčové slovo |= URL (dokumentu) iff stránka s URL obsahuje klíčové slovo Jaký je „význam“ tvrzení: Jestliže klíčové slovo |– g URL, pak klíčové slovo |= URL ? a Jestliže klíčové slovo |= URL, pak klíčové slovo |– g URL ? …a máme základní představu o korektnosti a úplnosti.
Organon V – Olomouc, Teorie formálních jazyků Základní definice Viz např. Barták online, Chytil a spol… Abeceda Slovo Jazyk (Generativní) gramatika Derivace Ukázka…kdy pracujeme uvnitř a vně systému?
Organon V – Olomouc, Teorie formálních jazyků Ukázky Mějme gramatiku N = {S} T = {p, q, r, ¬, &, (, )} s touto množinou pravidel P S → p | q | r S → (S & S) | ¬S Jaký jazyk tato gramatika generuje…?
Organon V – Olomouc, Teorie formálních jazyků Ukázky II. Máme („nějak“) zadaný jazyk a vytvořili jsme gramatiku – adekvátní otázky: 1. Generuje gramatika pouze slova daného jazyka? 2. Je možné každé slovo daného jazyka vygenerovat naší gramatikou? V teoretické lingvistice se taktéž objevují pojmy korektnosti a úplnosti
Organon V – Olomouc, Teorie formálních jazyků Ukázky III. Jak vylepšit naši gramatiku, aby generovala „všechny“ správně utvořené formule VL? Vhodná cvičení * jazyk aritmetických termů – menší komplikace: priorita
Organon V – Olomouc, Turingovy stroje Algoritmus jakožto centrální pojem logiky 20. stol. (Gödelovy věty, dále např. témata jako důkazová složitost, …) Churchova teze a její důsledky, odkaz na teorii mysli, … Formalizace pojmu algoritmus: částečně rekurzivní funkce, RAM, Turingovy stroje
Organon V – Olomouc, Turingovy stroje II. Definice viz např. Barták online, Demuth, Kryl, Kučera: Teorie algoritmů I. Další příležitost ukázat si práci uvnitř a vně systému a vyzkoušet si „programátorské“ myšlení Jak vypadá výpočet TS – čítanka z AF
Organon V – Olomouc, (Vizuální) simulátory TS umožňují většinou: 1. interaktivně – pomocí myši a dialogových oken – editovat „programy“ pro TS, 2. sledování běhu vytvořeného „programu“ (stav pásky, vnitřní stav TS), 3. trasování a debuggování jednotlivých „programů“. Přehledové a srovnávací články 1. C. Martin and T. olde Scheper. Teaching Tools for Turing Machines. 2003, Reference [CC02]:
Organon V – Olomouc, (Vizuální) simulátory TS II. Seznam několika simulátorů viz handout a výše zmíněné články Základní idea: vytváření „vývojových diagramů“ odpovídajících TS vizuální cestou Ve druhé části se budeme zabývat nástrojem Visual Turing
Organon V – Olomouc, Visual Prolog Freeware pro Windows 95, 98, NT, 2000 (XP?) Instalace naprosto bezproblémová (instalační soubor 410 kB…) IDE – podobné ideje jako v případě vývojových prostředí ve „skutečných“ programovacích jazycích
Organon V – Olomouc, Práce ve Visual Turing Okno VT: struktura projektu, graf konkrétního TS (defaultně: Main), anotace, stav pásky, příp. debuggovací okno VT mj. umožňuje: definovat abecedu ? Jak kódovat zadání ? (používat proměnné) používat jiné TS (jako „podprogramy“) debuggovat a trasovat TS
Organon V – Olomouc, Práce ve Visual Turing II. bohaté editační prostředky, cut+paste, vícenásobné undo možnost tisku Nedostatky: nelze importovat TS do vytvářeného projektu nelze přímo získat kód TS ve smyslu definice – riziko, že budou studenti ztotožňovat VT a TS nefunkčnost v některých akcích?
Organon V – Olomouc, Práce ve Visual Turing III. Vytváření TS definování abecedy (příp. proměnných, dalších TS jako podprogramů) vkládání instrukcí (pohyb hlavy, nic, zápis symbolu nebo proměnné na pásku, volání podprogramu) vkládání šipek – určuje posloupnost provádění instrukcí, ale i čtení symbolu z pásky, speciální případ smyčky (odpovídají while cyklu) větvení: podmínky ve tvaru rovnosti, resp. její negace
Organon V – Olomouc, Práce ve Visual Turing IV. Běh TS stanovení polohy hlavy, stavu pásky určení rychlosti animace Debuggování TS stanovení breakpointů provádění po krocích sledování hodnot proměnných
Organon V – Olomouc, VT ve výuce logiky I. Negování flí VL (triv.) Rozhodnutí o splnitelnosti fle daným ohodnocením – proč je tak zajímavá (reverzní) polská notace…? Vyplývání ve VL Vhodný zdroj úloh: kniha dodávaná se sw Turing’s World
Organon V – Olomouc, VT ve výuce logiky II. složitější úlohy lze řešit použitím podprogramů nutnost definování vstupů a výstupů rozdělení práce jako ve vývojářském teamu
Organon V – Olomouc, VT ve výuce logiky III. VT z nadhledu… TS se dá popsat jako posloupnost slov v nějaké abecedě, TS pracují s posloupnostmi slov na pásce – náznak selfreference, cesta k problému zastavení, pojem nerozhodnutelnosti Odkaz na nerozhodnutelnost PL
Organon V – Olomouc, VT ve výuce logiky IV na základě konceptu TS je možné alespoň přehledově zmínit téma výpočtové složitosti: časová a prostorová složitost (odkaz na SAT, 3-SAT, 3R-3SAT, …, důkazová složitost, …) Je možné poukázat na souvislosti logiky s informatikou a dále s kognitivními vědami, teorií mysli, teoretickou lingvistikou,
Organon V – Olomouc, Děkuji Vám za pozornost. Veškeré podněty VítaM!