Vysoké učení technické v Brně Fakulta elektrotechniky a informatiky Ústav biomedicínského inženýrství EXPERTNÍ SYSTÉMY.

Rozměr: px
Začít zobrazení ze stránky:

Download "Vysoké učení technické v Brně Fakulta elektrotechniky a informatiky Ústav biomedicínského inženýrství EXPERTNÍ SYSTÉMY."

Transkript

1 Vysoké učení technické v Brně Fakulta elektrotechniky a informatiky Ústav biomedicínského inženýrství EXPERTNÍ SYSTÉMY praktická cvičení Ing. Ivo Provazník, Ph.D., Ing. Jana Bardoňová 2000

2 Obsah 1 Úvod Reprezentace znalostí Strategická hra Analýza procesu Symbolická analýza Plánování strategie Fuzzy expertní systémy Fuzzy řízení procesu Informace o CLIPSu Literatura

3 Předmluva Skriptum "Expertní systémy - praktická cvičení" je textem, který navazuje na práci autorů Provazník I, Kozumplík J: "Expertní systémy", VUTIUM Brno, Obsahem skript Expertní systémy byl úvod do reprezentace znalostí, popis struktury expertních systémů založených na pravidlech, a také popis jazyka CLIPS pro tvorbu expertních systémů. Text byl řazen do následujících kapitol: Úvod do expertních systémů, Principy expertních systémů, Neurčitost a nepřesná inference, Fuzzy inference, Programovací jazyk CLIPS, a Efektivita jazyků založených na pravidlech. Skriptum předkládané čtenáři obsahuje řešené příklady z příslušné oblasti umělé inteligence a může sloužit k několika účelům. Jednak je možné jej použít jako návod pro cvičení univerzitního kurzu Umělá inteligence nebo Expertní systémy. Dále umožňuje lépe proniknout do podstaty jazyka CLIPS díky popisu jednotlivých částí řešení příkladů. Příklady je také možné použít jako vzor řešení obecných problémů pomocí expertních systémů, kde je vyžadována aplikace principů deklarativního programování. Při přípravě skript byly použity příklady, které jsou volně dostupné na různých pracovištích distribuujících jazyk CLIPS, dále vlastní příklady autorů a příklady, které vznikly v rámci předmětu Expertní systémy, zajišťovaném Ústavem biomedicínského inženýrství. Autoři děkují především kolegům Jiřímu Kozumplíkovi a Petru Fedrovi, kteří přispěli při přípravě cvičení a poskytli cenné rady. Poděkování patří i frekventantům uvedeného předmětu, kteří svými dotazy iniciovali nejeden nápad použitý v textu. Jana Bardoňová a Ivo Provazník Brno

4 1 Úvod Klasické programovací jazyky jako Pascal a C jsou navrženy a optimalizovány pro procedurální manipulaci s daty ve formě čísel, polí a pod. Člověk ale řeší složité problémy s použitím abstraktního symbolického přístupu, který není vhodný pro implementaci v klasických jazycích. Abstraktní informace může být těmito jazyky modelována, více se však využívá transformace informace do vhodnějšího formátu. Jedním z výsledků výzkumu v oblasti umělé inteligence (UI) je právě vyvinutí neprocedurálních technik modelování informací na vyšších úrovních abstrakce. Tyto techniky jsou zabudovány v jazycích a nástrojích umožňujících vytvoření programů, které jsou ve své struktuře blízké lidské logice a snadněji se proto rozvíjejí a udržují. Tyto programy se nazývají expertní systémy (ES) [14]. Expertní systémy představují nástroj k úspěšnému řešení klasických problémů umělé inteligence. Prof. Edward Feigenbaum ze Stanfordské university, který patří mezi první pracovníky v oboru expertních systémů, definuje ES jako... inteligentní počítačové programy, které využívají znalostí a inferenčních mechanismů k řešení problémů, které jsou natolik obtížné, že by vyžadovaly řešení lidským expertem. To znamená, že ES je počítačový systém, který emuluje schopnost lidského experta rozhodovat. Termín emulovat zde představuje vlastnost systému - snahu jednat stejně jako člověk ve všech ohledech [15]. Snadná dostupnost nástrojů jako je CLIPS umožnila zrychlit a zlevnit vývoj expertních systémů, a umožnila tak jejich praktické nasazení v různých oborech, např. v medicíně [1]. Tyto nástroje většinou zahrnují programování založené na pravidlech, které je v oblasti expertních systémů nejvíce rozšířené. Programování založené na pravidlech je paradigma, které specifikuje akce, které mají být provedeny v určité situaci. Pravidla jsou tvořena z částí když... potom (if... then). Část když obsahuje posloupnost tzv. obrazů specifikované fakty (daty). V procesu splňování pravidla se expertní systém snaží nalézt odpovídající obrazy a fakty v bázi faktů. Tento proces se nazývá inferencí (usuzování). Část potom pravidla obsahuje posloupnost akcí, které mají být provedeny kdykoliv inferenční mechanismus prokáže splnitelnost pravidla. Inference probíhá tak dlouho, dokud neexistuje žádné splnitelné pravidlo. Expertní systémy se skládají z následujících hlavních částí [9]: uživatelský interface - spojovací modul, který zabezpečuje komunikaci uživatele s ES, vysvětlovací modul - popisuje a vysvětluje postup usuzování ES uživateli, modul získávání znalostí - modul pro vkládání nových znalostí do ES, pracovní paměť - databáze faktů používaných pravidly, inferenční mechanismus - provádí inferenci (proces usuzování). Vytváří prioritní seznam pravidel, aplikuje pravidla podle seznamu a rozhoduje, která pravidla jsou splněna předloženými (existujícími) fakty, agenda - seznam pravidel s přiřazenou prioritou vytvořený inferenčním mechanismem, báze znalostí - databáze pravidel. Následující text je určen jako návod pro praktická cvičení, proto obsahuje pouze stručná shrnutí nejdůležitějších principů a metod používaných v umělé inteligenci - expertních systémech. Více prostoru je věnováno řešeným příkladům s komentovanými výpisy programů jazyka CLIPS a ukázkami výstupů programů. Po úvodu následuje druhá kapitola, která je nejrozsáhlejší a obsahuje shrnutí způsobů reprezentace znalostí v expertních systémech. Reprezentace znalostí je vedle inferenčních mechanismů stěžejním faktorem určujícím vlastnosti ES. Kapitola je doplněna 3

5 příklady z oblasti prohledávání stavového prostoru a predikátové logiky. Třetí kapitola je popisem klasické strategické hry a doplňuje problematiku stavového prostoru s definicí hodnotící funkce. Ve čtvrté kapitole je nastíněna další z aplikačních oblastí ES - analýza procesu s následným vyhodnocením. Pátá kapitola prezentuje ES jako nástroje pro řešení obecných problémů prostřednictvím příkladu symbolické analýzy. Šestá kapitola postihuje další důležitou aplikaci ES - plánování. Příklad plánování strategie (postupu) je ukázkou reprezentace znalostí s plně odděleným popisem dat a algoritmu. V sedmé kapitole jsou přiblíženy principy fuzzy expertních systémů jako důležitého nástroje při rozhodování s neúplnou informací. Vše je doplněno v osmé kapitole reálným příkladem fuzzy řízení jednoduchého procesu. Pro úplné pochopení příkladů v předkládaném textu je nutné znát alespoň základy programování v jazyku CLIPS. Ty je možné získat ve skriptu [23], literatuře [11] a [9], a dále v originálních příručkách [3] - [7] volně dostupných na Internetu (viz kapitola 10 Literatura). 4

6 2 Reprezentace znalostí Reprezentace znalostí představuje formu vyjádření určitých informací. Hlavním cílem současného výzkumu v oblasti umělé inteligence (UI) je vytvoření takové reprezentace znalostí, která je dostatečně obecná, tzn. umožňuje zahrnout širokou oblast znalostí, a systému s UI umožní použití dostatečně efektivní metody řešení. Požadované informace se organizují do takové formy, aby byly snadno přístupné pro programy, které vykonávají rozhodnutí, plánují činnost, rozpoznávají předměty, analyzují scény či jiné zajišťují funkce [10]. Znalosti by měly obecně informovat o vnitřním modelu prostředí. Jedná se o vkládání informací získané analýzou scény do modelu prostředí, udržování vlastního obsahu modelu prostředí a zpřístupnění jeho obsahu pro další činnost. Pro reprezentaci znalostí se používají různá schémata [22]: deklarativní schémata, procedurální schémata, rámcová schémata. Obecné požadavky na schémata jsou tyto [21]: možnost aplikace různých operací (řízení, prohledávání, porovnávání, použití), všeobecnost a abstraktnost (široké použití), strukturovanost (struktura základních jednotek vědomostí), zpřístupnitelnost (přístupné jednoduchým způsobem), modulárnost (efektivně přidat i odstranit znalosti), přirozenost a srozumitelnost, praktická realizovatelnost. 2.1 Deklarativní schémata V deklarativních schématech pracujeme s těmito základními množinami: množina specifických, navzájem nezávislých faktů, která popisuje dané prostředí, množina všeobecných procedur pro manipulaci s obsahem množiny specifikovaných faktů. Specifická fakta jsou v těchto schématech použita jako axiómy, manipulační procedury slouží jako procedury dokazování, tzn. umožňují odvozovat z axiómů nové znalosti. Podstata deklarativních schémat spočívá v popisu těch aspektů reprezentovaného prostředí, které určují, co fakt vyjadřuje. Mezi deklarativní schémata patří např. schémata, která jsou založená na matematické logice, algebře, relačních strukturách, grafech a pod. Deklarativní schémata se vyskytují v různých typech. Jde především o sémantická schémata (sémantické sítě), schémata založená na koncepci stavového prostoru, logická schémata (predikátová logika 1. řádu) Sémantické sítě Sémantická síť umožňuje popisovat realitu jako objekty, které jsou navzájem v nějakých vztazích (relacích). Grafickou reprezentací je ohodnocený orientovaný multigraf, jehož uzly odpovídají entitám (konkrétní předměty, pojmy, vztahy) daného prostředí, a hrany odpovídají sémantickým vztahům mezi entitami. Sémantickým sítím však dosud chybí exaktní matematická formalizace. 5

7 Entity sémantické sítě představují zejména: pojmy (konstanty reprezentovaného prostředí), události (změny a jejich realizace v prostředí), vlastnosti (zpřesnění pojmů). Vztahy v sémantické síti jsou především tyto: kvantifikační (hodně, málo, několik), lingvistické (slovesné charakteristiky, barva,...), logické (negace, konjunkce, disjunkce, implikace), množinové (množinové operace). Různorodost sémantických sítí se odráží i v různorodosti mechanismů odvozování znalostí. Jeden z přístupů je založený na porovnávání síťových struktur - báze znalostí. Druhá síťová struktura, vstupující do procesu porovnávání, vznikne transformací vstupního výroku (otázky) do tvaru sítě, přičemž některé uzly mohou být neznámými entitami - proměnnými. Inferenční metody realizují operace porovnávání i operace prohledávání s cílem najít ty znalosti, které jsou relativní k vstupní otázce. Oblast sémantické sítě, která obsahuje relevantní informace se nazývá kontext. Určení kontextu a jeho zpřístupnění pro další zpracování je hlavní činností inferenčního mechanismu Stavový prostor Stavový prostor realizuje strukturu problémů pomocí alternativ, které jsou přípustné v daném stavu. Prostředí se může nacházet v různých stavech a operátory představují akce na množině stavů. Stavy a operátory vytvářejí schémata na reprezentaci znalostí, stavový prostor. Pro tento typ úloh vycházíme ze znalosti o počátečním stavu prostředí, cílovém stavu a jednotlivých akcích, které mohou být provedeny. Na daný stav nemůže být použit libovolný operátor, ale jen takový, pro který jsou v daném stavu splněny podmínky aplikovatelnosti. Řešením úlohy je každá posloupnost operátorů, která transformuje počáteční stav na cílový. Úloha může mít samozřejmě více řešení. Stavový prostor: SP = <S,O> S neprázdná množina (všeobecně i nekonečná) množina stavů O neprázdná konečná množina operátorů (stavy a operátory vytvářejí schémata na reprezentaci znalostí např. pro robota, tj. stavový prostor). Cílová úloha ve stavovém prostoru: <s 0,G> s 0 počáteční stav, s 0 je prvkem S, G konečná množina cílových stavů. Řešením úlohy se nazývá každá posloupnost operátorů o 1, o 2,..., o n, pro kterou existuje posloupnost stavů s 1, s 2,..., s n s vlastnostmi: s 1 = o 1 (s 0 ) s 2 = o 2 (s 1 ) = o 2 (o 1 (s 0 )) = (o 1 o 2 )(s 0 )... s n = o n (s n-1 ) = o n (o n-1 ( (o 1 (s 0 )))) = (o 1 o 2 o n )(s 0 ) přičemž s n náleží G. Stav je tedy deklarativním popisem prostředí nebo jeho určité části, operátory jsou zobrazení množiny stavů do sebe, přičemž na daný stav nemůže být použit libovolný operátor. 6

8 Na základě vnitřního modelu prostředí a zadaného cíle se systém snaží samostatně najít plán jako uspořádaný soubor operátorů, jejichž realizace povede k dosažení daného cíle. Když je zadán stavový prostor SP a cílová úloha, potom se při jejím řešení postupuje tak, že z počátečního stavu s 0 se postupnou aplikací operátorů generují další prvky stavového prostoru. Tento postup se opakuje do té doby, dokud není dosažený cílový stav. Graf odpovídající SP se nazývá stavový graf. Jednotlivé stavy odpovídají uzlům, na které se postupně aplikují všechny možné operátory. Nově vzniklý uzel se nazývá generovaný, uzel, na nějž jsou aplikovány všechny operátory, se nazývá expandovaný, jsou tedy generováni všichni jeho následovníci. Obecný postup při prohledávání stavového grafu je následující: počáteční uzel grafu odpovídá popisu počátečního stavu, aplikací některého z operátorů získáme bezprostředního následovníka, tedy nový stav reprezentovaný generovaným uzlem, u každého uzlu se v procesu řešení úlohy vytvářejí a uchovávají směrníky k rodičovskému uzlu, které po dosažení cíle dovolují nalézt řešení úlohy, po vytvoření všech bezprostředních následovníků daného uzlu, použitím všech aplikovatelných operátorů se uskutečňuje test, zda některý z následovníků neodpovídá cílovému stavu. Jestliže daný uzel mezi následovníky neexistuje, proces hledání řešení pokračuje expanzí dalšího uzlu. V opačném případě je možno pomocí směrníků získat informace o tomto řešení. Prohledávání stavového grafu může být rozděleno na dva základní typy podle toho, zda máme k dispozici bližší informace o pořadí expandovaných uzlů: neinformované prohledávání - prohledávání do šířky, při kterém jsou uzly expandovány v takovém pořadí, v jakém byly generovány, - prohledávání do hloubky, ve kterém je vždy expandován ten uzel, který byl generován jako poslední, informované prohledávání, při kterém algoritmus musí vyhovovat dvěma základním kritériím: - má produkovat nejkratší cestu k cíli, - při hledání cesty k cíli má expandovat co nejmenší počet uzlů. Pokud jsou bližší informace o řešení známé díky zkušenostem, hovoříme o využití heuristických informací. Hodnotící funkce Hodnotící funkce se využívá v informovaném prohledávání stavového prostoru a slouží k vyjádření heuristických znalostí. Toto kritérium nám umožňuje uspořádat uzly tak, aby bylo možné před každou expanzí vybrat nejvhodnější uzel. Funkce může být zvolena podle: pravděpodobnosti, zda uzel leží na optimální cestě, různých způsobů měření vzdálenosti mezi daným uzlem a množinou cílových uzlů, různých druhů diference mezi uzly, které jsou dané vlastnostmi řešené úlohy, analogie, která spočívá v nacházení podobnosti mezi uzly, případně stavovými prostory tak, že řešení úlohy v jednom stavovém prostoru se využije jako podklad k řešení úlohy v druhém stavovém prostoru. Příklad: Zadání: Navrhněte expertní systém, který bude řešit klasický problém umělé inteligence. K dispozici jsou dvě nádoby, které mají obsah 5 litrů a 3 litry. Odměřte přesně 4 litry. Nádoby lze doplnit, vyprázdnit nebo lze obsah přelévat z jedné nádoby do druhé, ale jen do plného obsahu. 7

9 Řešení: Řešení je provedeno pomocí prohledávání stavového prostoru, je znám počáteční stav, cílový stav a také operace, které mohou být provedeny: počáteční stav: obě nádoby jsou prázdné, aplikovatelné operátory: - doplnit nádobu, - vylít celý obsah nádoby, - přelít část obsahu z jedné nádoby do druhé, tedy doplnit jednu nádobu a částečně nebo úplně vyprázdnit nádobu druhou, cílový stav: 4 litry v jedné nádobě. Následující schéma obsahuje uzly, ve kterých jsou graficky znázorněny stavy v obou nádobách s uvedením obsahu. Z uzlu vychází hrana s uvedením značky operátoru, který je na daný stav aplikován. Ve schématu jsou rozkresleny téměř všechny možné postupy, které jsou dány možnostmi povolených operací. Horního uzel reprezentuje počáteční stav. Na něj lze aplikovat pouze operátor plnění nádob. Protože zde existují dvě možnosti, schéma se dělí do dvou základních větví. Na nově vzniklé uzly lze opět aplikovat operátory, v tomto případě budou využity všechny operace, které jsou povoleny. V dalším řádku jsou nově generované uzly. Na některé uzly již nejsou aplikovány žádné operátory, protože bylo dosaženo již dříve získaného řešení. To je ve schématu znázorněno zpětnou smyčkou vedoucí k zacyklení. Ve schématu je zobrazena pouze jedna zpětná smyčka jako příklad, další nejsou vykreslené z důvodu zachování přehlednosti schématu. Postupnou aplikací operátorů na jednotlivé stavy jsou nalezena dvě řešení. Cesta k cílovému řešení je vykreslena výrazněji. Jedno z řešení je získáno v sedmi krocích, druhé řešení je získáno po osmi krocích. Stavový prostor může být prohledáván třemi způsoby. Při prohledávání do šířky jsou na jeden uzel aplikovány všechny možné operátory. Po úplné expanzi uzlu se zjišťuje, zda některý z nových uzlů nereprezentuje cílový stav a pokud ne, operátory jsou aplikovány na uzly v nově vzniklé vrstvě a to ve stejném pořadí, jak uzly vznikly. Ve schématu to odpovídá pohybu po celé šířce ve směru dolů. Při prohledávání do hloubky se na nově vzniklý uzel aplikuje pouze jeden operátor. Pokud nový uzel není reprezentací cílového stavu, bude na něj aplikován opět jeden operátor. Tento postup se opakuje do té doby, pokud se již s nově vzniklým uzlem nedají provádět žádné operace nebo byl nalezen cílový stav. Pokud byla tato cesta řešení neúspěšná, řešení se vrací o krok zpět a je aplikován jiný operátor. Ve schématu to odpovídá pohybu do hloubky (dolů) a po té dále do šířky. Tento postup bývá méně přehledný a je náročnější na uchovávání informací o předchozích postupech, než je tomu u metody prohledávání do šířky. Pokud o řešeném problému existuje bližší informace, je možné ji vhodně interpretovat a využít pro informované prohledávání. Ve skutečnosti jde o upravené prohledávání do šířky. Po aplikaci všech operátorů na daný uzel je vypočtena tzv. hodnotící funkce podle jejíž hodnoty je vybrán nejvhodnější uzel pro další expanzi. Toto řešení vede k nalezení optimální cesty (nejrychlejší, nejkratší) vzhledem k definici hodnotící funkce. 8

10 aplikovatelné operátory: naplnit (popř. doplnit) nádobu vyprázdnit jednu nádobu doplnit druhou nádobu Obr. 2.1 Levá část stromu stavového prostoru řešení příkladu. 9

11 0 0 aplikovatelné operátory: naplnit (popř. doplnit) nádobu vyprázdnit jednu nádobu doplnit druhou nádobu Obr. 2.2 Pravá část stromu stavového prostoru řešení příkladu. 10

12 2.1.3 Predikátová logika Systémy umělé inteligence (a tedy i expertní systémy) používají určité metody automatického sestavování plánu činnosti. Model prostředí, který je uvažován (je předmětem činnosti systému), musí být vytvořený na principech logických schémat. Logické schéma pro reprezentaci znalostí je vyjádřené pomocí matematické logiky, především pak jazykem predikátové logiky [17]. Základním výrazem jazyka predikátové logiky je formule. Základními prvky jazyka jsou: logické hodnoty, logické spojky, logické kvantifikátory, individuové konstanty a proměnné, funkční symboly, predikátové symboly. logické hodnoty T pravda (true) F nepravda (false) logické spojky ' negace konjunkce disjunkce implikace ekvivalence = rovnost logické kvantifikátory univerzální existenční individuové konstanty a proměnné malá písmena (např. a, b, c,...) funkční symboly malá písmena a řetězce (např. f, g, h, zdvihni,...) predikátové symboly velká písmena a řetězce (např. A, B, C, ODKRYTÝ,...) Ze základních prvků jazyka predikátové logiky jsou složeny tyto výrazy: termy, atomické formule a formule. Uvedené výrazy jsou definovány takto: termy každá individuová konstanta a individuová proměnná tvoří term f(t 1,t 2,t 3,...) je term, kde f je funkční symbol a t i jsou termy atomické formule logické hodnoty T a F jsou atomické formule P(t 1,t 2,t 3,...) je atomická formule, kde P je predikátový symbol a t i jsou termy výraz t 1 =t 2 je atomická formule, kde t i jsou termy formule každá atomická formule je formule A', A B, A B, A B a A B jsou formule, kde A i B jsou formule x(a) a x(a) jsou formule, kde x je individuová proměnná a A je formule Význam základních prvků jazyka je dokumentován na následujícím příkladu. Jsou dány jednoduché formule A a B ve tvaru A = x(p(x) Q(x)) 11

13 B = x((kvádr(x) ZDVIHNUTÝ(x)) POLOŽENÝ'(x)) Formule A je obecná a vyjadřuje fakt, že pro každé x, pro které platí P(x), vyplývá platnost predikátu Q(x). Formule B reprezentuje skutečnost, že každý objekt x, který je kvádrem a současně je zdvihnutý, už nemůže být položený. KVÁDR, ZDVIHNUTÝ, POLOŽENÝ jsou jednomístné predikáty. x představuje individuovou proměnnou a je možné za ní dosadit název kvádru, např. a, b nebo c. Základní výraz predikátové logiky, formule, je jen posloupností symbolů. Svůj význam dostává až interpretací. Interpretace je vztah mezi syntaktickými objekty jazyka (soustava formulí) a některou jeho interpretační strukturou (stav prostředí, ve kterém je řešen problém). Formule, které jsou pravdivé ve všech interpretacích se nazývají logicky pravdivé. Právě prokázání logické pravdivosti je řešením problému, bohužel však z praktického hlediska není možné, aby bylo ověření provedeno ve všech interpretacích. Predikátová logika však poskytuje prostředky, jak se takovému postupu vyhnout [25]. Použití predikátové logiky včetně prokazování platnosti lze ukázat na následujících dvou příkladech. V prvním z nich je řešen jednoduchý problém; budou zde zavedeny pojmy tautologie a modus ponens. Příklad Zadání: Cena počítačových čipů roste pouze tehdy, když sílí yen (japonská měna). Yen sílí pouze tehdy, když dolar oslabuje a dolar oslabuje, když yen sílí. Dokud cena čipů roste, dolar musí klesat. Prokažte platnost/neplatnost tvrzení. Řešení: Logické proměnné jsou definovány takto: C = cena čipů roste Y = yen sílí D = dolar oslabuje Problém je zapsán takto: C Y - 1. premisa (Y D) (Y D) - 2. premisa C - 3. premisa D - výrok Druhá premisa může být zjednodušena: C Y Y D C D Premisa Y D dovoluje provést substituci D za Y v premise C Y C D Y D C D a potom platí C D C D 12

14 což je tzv. modus ponens. Modus ponens lze interpretovat tak, že když z tvrzení C vyplývá tvrzení D a tvrzení C platí, potom platí i tvrzení D. V našem příkladu postupným zjednodušováním vznikl modus ponens, který je podle výše uvedené interpretace vždy platný a zadání je splněno. Jinými slovy, ze tří definovaných premis skutečně plyne proklamovaný výrok. Tvrzení, které je platné ve všech interpretacích, se nazývá tautologií. Modus ponens je tedy tautologií. V druhém příkladě je dokumentován postup odvozování, běžně používaný v programech umělé inteligence i v expertních systémech. Konkrétně jde o použití rezolučního pravidla, které je aplikováno na analyzované tvrzení. Hlavním úkolem rezoluční metody je inferovat (tzn. odvodit) nové klauzule 1, tzv. rezolventy, ze dvou rodičovských klauzulí. Rezolventy by měly mít méně literálů 2 než rodičovské klauzule. Poslední rezolventa je nesplnitelná klauzule. V expertních systémech se používá varianty s kontradikcí. Jde o prokázání platnosti negace teorému. Prakticky pak jde o testování dvojice klauzulí, kde v jedné se vyskytuje literál a ve druhé jeho negace. Prokázání platnosti formule kontradikcí (tedy prokázání její neplatnosti) se nazývá vyvrácení a za použití rezoluční metody pak rezoluční vyvrácení [23]. Příklad Zadání: Je definováno tvrzení pomocí dvou premis a výroku: Někteří programátoři nemají rádi chyby. Všichni programátoři mají rádi jakýkoliv úspěch. Žádná chyba není úspěch. Prokažte platnost/neplatnost tvrzení. Pozn. Pravidla českého jazyka dovolují použití dvojitého záporu ve větě. Tím může dojít k dezinterpretaci a špatnému přepisu do predikátů. Například výrok "Žádná chyba není úspěch." vlastně znamená "Všechny chyby nejsou úspěchem." Řešení: Definujme predikáty: P(x) = x je programátor F(x) = x je chyba S(x) = x je úspěch H(x,y) = x nemá rádo y Zadání pak může být přepsáno takto: x (P(x) y (F(y) H(x,y))) x ((P(x) ( y (S(y) H'(x,y))) y' (F(y) S'(y)) kde výrok byl již negován pro následující rezoluci. První premisa výše uvedeného tvrzení x (P(x) y (F(y) H(x,y))) je postupně upravována následovně. Nejprve je použito eliminace implikace použitím ekvivalence p q p' q. 1 Klauzule je logické spojení literálů (viz níže). 2 Literál je atomický výraz nebo negovaný atomický výraz a nesmí obsahovat logická spojení (kvantifikátory, logické spojky). 13

15 x (P(x) y (F'(y) H(x,y))) Dále jsou eliminovány existenční kvantifikátory použitím Skolemovy funkce. Je zavedena Skolemova konstanta a s takovou hodnotou, aby formule byla splněna. (P(a) y (F'(y) H(a,y))) Formule je převedena do prenexové formy, která je tvořena sekvencí kvantifikátorů následovaných kombinací predikátů. y (P(a) (F'(y) H(a,y))) Dále jsou odstraněny univerzální kvantifikátory přiřazením hodnot všem proměnným. P(a) (F'(y) H(a,y)) První premisa je tedy převedena do dvou klauzulí P(a) (F'(y) H(a,y)) Podobně lze odvodit, že druhá premisa je převedena do klauzule P'(x) S'(y) H'(x,y) a negovaný výrok do dvou klauzulí F'(y) H(a,y) F(b) Nyní je nutné nalézt vhodné substituční případy (hodnoty proměnných) procesem unifikace. Vhodné hodnoty pro unifikaci jsou takové, pro které jsou příslušné klauzule platné. První substitucí je y b, která umožní odvodit platnost dvojice klauzulí F'(y) H(a,y) a F(b). Celý unifikační strom je uveden na obrázku níže. Výsledkem unifikace je klauzule nil, což znamená, že negované tvrzení neplatí a původní tvrzení je platné. F'(y) H(a,y) F(b) P(a) P'(x) S'(y) H'(x,y) H(a,b) S'(y) H'(a,y) S'(b) S(b) nil 14

16 2.2 Procedurální schémata Procedurální přístup k reprezentaci znalostí je založený na předpokladu, že znalosti typu vědět jak jsou primární v modelování procesů odvozování. Procedurální schémata kladou proto důraz na popis takových aspektů reprezentovaných znalostí, které hovoří o tom, jak objekty používat a jaké akce s nimi možno realizovat. Znalosti jsou reprezentované jako procedury (části programů), které určují možné akce s objekty prostředí a vztahy mezi nimi. V realizovaných systémech využívajících procedurálních schémat se dnes uplatňují tyto přístupy [21]: Vyjádření řídící informace ve formě speciálních výrazů, tzv. teorém, které jsou součástí báze znalostí a reprezentují výpovědi o objektech a vztazích, které se vyskytují v prostředí. Vytvoření jazyka pro reprezentaci řídící informace, který je součástí schématu na reprezentaci znalostí. Tento jazyk je vytvářený na nižší úrovni, než samotné schéma, ale uživatel má přístup k množině jeho mechanismů, které umožňují specifikovat řídící proces. Vytvoření samostatného jazyka na reprezentaci řídící informace, který je používaný paralelně se schématem pro reprezentaci ostatních znalostí. Tato myšlenka tvoří základ přístupů k logickému programování. Produkční systémy Produkční systémy jsou procedurální technikou reprezentace znalostí, která je založena na operaci s obrazci [22]. Produkční systém je nejčastěji lineárně uspořádaná dvojice pravidel, které se nazývají produkce, vyjádřená dvojicí: podmínka (situace) > akce. Aplikace pravidla se uskuteční provedením akce, pokud v bázi údajů nastala daná situace. Produkční pravidla operují nad pracovní pamětí, která může být organizována různými způsoby. Produkční systém je tvořen třemi základními složkami: souborem produkčních pravidel, které tvoří vlastní bázi znalostí, bázi údajů, která reprezentuje konkrétní konzultovaný případ, interpretem pravidel, který představuje řídící (inferenční, odvozovací) mechanismus. Přímé produkční systémy Přímé produkční systémy začínají svou činnost s určitým počátečním stavem pracovní paměti, který je činností produkčního systému postupně rozšiřován do té doby, dokud není dosažený zadaný cíl. Inferenční mechanismus postupuje od faktů k cíli a realizuje tzv. přímé (dopředné) řetězení znalostí. Rozpoznávací cyklus pracuje následujícím způsobem: nalezení všech pravidel, jejichž podmínkové části jsou splněny, vyřazení takových pravidel, jejichž aplikace vede k výsledkům již v paměti obsažených, použití rozpoznávacího cyklu pro výběr nejvhodnějšího produkčního pravidla. Pokud takové pravidlo neexistuje, nastává konec postupu, jinak je celý postup opakován (nalezení všech pravidel). Zpětné produkční systémy Zpětné produkční systémy pracují s inferenčním mechanismem, který postupuje od cíle, tj. hypotézy, k faktům a realizují tak zpětné řetězení. Hypotézu reprezentuje tvrzení, které má produkční systém verifikovat s použitím báze znalostí. Rozpoznávací cyklus pracuje následovně: pokud je hypotéza v bázi znalostí, je vytvořeno jádro hypotézy a nalezena všechna produkční pravidla, jejichž akční části obsahují formy ekvivalentní s jádrem hypotézy, výběr nejvhodnějšího pravidla strategií řešení konfliktů, 15

17 realizace pravidla po ověření jeho aplikovatelnosti; pokud podmínky aplikovatelnosti nejsou splněny, jsou zapsány do hypotézy a celý postup se opakuje do nalezení řešení. 2.3 Rámcová schémata Rámce jsou dalším schématem reprezentace znalostí, které je používáno k popisovaní objektů v bázi znalostí. Základními prvky těchto schémat jsou tzv. rámce, které umožňují vyjádřit statické znalosti. V průběhu užívání rámce nabývají položky konkrétních hodnot. Vazba mezi rámci se dá znázornit grafem. Uzly rámcových schémat mají svou vnitřní strukturu, což je odlišné od sémantických sítí. Rámce jsou obvykle doplněna o pravidla, která umožňují odvozovat v bázi znalostí. Auto typ: vozidlo pohon: motor Auto typ: auto pohon: motor účel: přeprava osob Auto typ: auto pohon: motor účel: přeprava nákladu Ford typ: osobní auto pohon: motor účel: přeprava osob výrobce: Ford Obr. 2.3 Příklad rámců. 16

18 3 Strategická hra Níže uvedený příklad strategické hry je ukázkou možností jednoduchého expertního systému vytvořeného v CLIPSu. Jde o problém soupeření uživatele a počítače formou hry, jejíž strategie je dokazatelná a především může být analyticky popsána. Popis strategie má formu množiny faktů ve tvaru "vykonej akci, když nastanou určité podmínky". Hra je velmi jednoduchá, jde o střídavé odebírání 1 až 3 zápalek z hromádky. Vstupními hodnotami je počet zápalek v hromádce, a určení začínajícího hráče. Strategie se řídí velikostí zbytku po celočíselném dělení zbývajících zápalek číslem 4. Při vhodně zvoleném počtu zápalek tedy nemůže začínající hráč prohrát (dodrží-li strategii), naopak nezačínající hráč pak může vyhrát jen po chybě začínajícího. Hra musí být spuštěna z určitého definovaného bodu, což je zajištěno vložením inicializačního faktu (faze vybirani-hrace). Fakt je níže použit v pravidle vyber-hrace. (deffacts inicializacni-faze (faze vybirani-hrace)) Následuje vložení čtyř faktů, určujících taktiku počítače. (deffacts pocty-zapalek (pocitac-bere 1 jestlize-zbyva-zbytek 1) (pocitac-bere 1 jestlize-zbyva-zbytek 2) (pocitac-bere 2 jestlize-zbyva-zbytek 3) (pocitac-bere 3 jestlize-zbyva-zbytek 0)) Další pravidlo zahajuje běh systému - bude tedy splněno jako první prostřednictvím již vloženého faktu (faze vybirani-hrace). Pravidlo vypíše na obrazovku monitoru zprávu Kdo bere prvni (pocitac: c clovek: h)? a očekává vstup znaku z klávesnice. Správnost vloženého znaku je kontrolována pravidly dobry-vyber-hrace a spatny-vyber-hrace. (defrule vyber-hrace (faze vybirani-hrace) (printout t "Kdo bere prvni (pocitac: p clovek: c)? ") (assert (vyber-hrace =(read)))) Pravidlo dobry-vyber-hrace zkontroluje, zda byl ve fázi vybírání hráče (reprezentované faktem (faze vybirani-hrace)) vložen znak c nebo h, a v kladném případě odstraní nepotřebné fakty. Dále je určeno, který hráč je na tahu (fakt (hraje-hrac h) nebo (hraje-hrac c)), a je iniciována další fáze běhu programu vložením faktu (faze vyber-pocet-zapalek). (defrule dobry-vyber-hrace?faze <- (faze vybirani-hrace)?vyber <- (vyber-hrace?hrac&p c) (retract?faze?vyber) (assert (hraje-hrac?hrac)) (assert (faze vyber-pocet-zapalek))) Pravidlo spatny-vyber-hrace ošetřuje případ vložení nepovolených znaků tak, že dochází k opětovnému dotazu na začínajícího hráče pravidlem dobry-vyber-hrace znovuvložením faktu (faze vybirani-hrace). 17

19 (defrule spatny-vyber-hrace?faze <- (faze vybirani-hrace)?vyber <- (vyber-hrace?hrac&~p&~c) (retract?faze?vyber) (assert (faze vybirani-hrace)) (printout t "Vyber p nebo c." crlf)) Fáze výběru počtu zápalek je zajištěna pravidlem volba-poctu-zapalek. V něm je proveden výpis na obrazovku (dotaz na počet) a vstup zvoleného čísla z klávesnice. Číslo je zaznamenáno vložením faktu (volba-poctu-zapalek xxx). (defrule volba-poctu-zapalek (faze vyber-pocet-zapalek) (printout t "S kolika zapalkami chcete zacit? ") (assert (volba-poctu-zapalek =(read)))) Pro zajištění korektního vstupu je vložené číslo testováno v pravidle dobry-pocetzapalek. Je-li vložené číslo celé a větší než 0, dojde k inicializaci další fáze programu vložením faktu (zbyva-zapalek xxx). Tento fakt představuje hypotetickou hromádku zápalek, ze které se bude odebírat. (defrule dobry-pocet-zapalek?faze <- (faze vyber-pocet-zapalek)?vyber <- (volba-poctu-zapalek?pocet&:(integerp?pocet)&:(>?pocet 0)) (retract?faze?vyber) (assert (zbyva-zapalek?pocet))) V pravidle spatny-pocet-zapalek je definováno, jak se bude postupovat v případě špatného zadání. Je-li zvolený počet necelé číslo nebo je menší než 0, je znovu aktivována fáze výběru počtu zápalek. (defrule spatny-pocet-zapalek?faze <- (faze vyber-pocet-zapalek)?vyber <- (volba-poctu-zapalek?pocet&~:(integerp?pocet) :(<=?pocet 0)) (retract?faze?vyber) (assert (faze vyber-pocet-zapalek)) (printout t "Vyberte cele cislo vetsi nez 0." crlf)) Systém pracuje v cyklu, který je ukončen prohrou hráče-člověka nebo počítače. Prohra počítače je ošetřena pravidlem pocitac-prohral. Pro prohru počítače musí být splněny dvě podmínky: zbývající počet zápalek je roven 1 a na tahu je hráč označený p. (defrule pocitac-prohral (zbyva-zapalek 1) (hraje-hrac p) (printout t "Pocitac musi vzit posledni zapalku!" crlf) (printout t "Pocitac prohral!" crlf)) Prohra hráče je ošetřena pravidlem clovek-prohral. Pro prohru hráče musí být splněny dvě podmínky: zbývající počet zápalek je roven 1 a na tahu je hráč označený c. 18

20 (defrule clovek-prohral (zbyva-zapalek 1) (hraje-hrac c) (printout t "Musite vzit posledni zapalku!" crlf) (printout t "Prohral jste!" crlf)) Smyčka programu je tvořena pravidly, ve kterých je zajištěno odebírání zápalek, t.j. vstup zvoleného počtu zápalek z klávesnice (v případě hráče), nebo generování počtu podle taktiky (v případě počítače). Pravidlo clovek-bere je splněno v případě, že na tahu je hráč označený c a zbývá více než jedna zápalka. Následuje dotaz na počet a vložení příslušného faktu se zadaným číslem. (defrule clovek-bere (zbyva-zapalek?pocet&:(>?pocet 1)) (hraje-hrac c) (printout t "Kolik zapalek chcete vzit? ") (assert (clovek-bere =(read)))) Vložený počet zápalek musí být opět testován (číslo od 1 do 3). To je zajištěno pravidlem clovek-bere-dobre, které pracuje podobně jako pravidlo dobry-pocet-zapalek. Je-li pravidlo splněno, je odstraněn fakt (zbyva-zapalek xxx) obsahující počet zbývajících zápalek a vložen nový fakt s již odečteným počtem odebraných zápalek. Vše je doprovázeno výpisem na obrazovku. Jako poslední je vložen fakt (hraje-hrac p), čímž se předává tah počítači. (defrule clovek-bere-dobre?zapalky <- (zbyva-zapalek?pocet)?tah <- (clovek-bere?vyber)?kdo-bere <- (hraje-hrac c) (test (and (integerp?vyber) (>=?vyber 1) (<=?vyber 3) (<?vyber?pocet))) (retract?zapalky?tah?kdo-bere) (bind?novy-pocet (-?pocet?vyber)) (assert (zbyva-zapalek?novy-pocet)) (printout t?novy-pocet " zapalek zbyva." crlf) (assert (hraje-hrac p))) Došlo-li k nesprávnému vstupu (vložení nepovoleného čísla hráčem), je znovu iniciován dotaz na počet odebíraných zápalek znovuvložením faktu (hraje-hrac c). To způsobí znovusplnění pravidla clovek-bere. (defrule clovek-bere-spatne (zbyva-zapalek?pocet)?tah <- (clovek-bere?vyber)?kdo-bere <- (hraje-hrac c) (test (or (not (integerp?vyber)) (<?vyber 1) (>?vyber 3) (>=?vyber?pocet))) (printout t "Pocet zapalek musi byt 1 az 3." crlf) (retract?tah?kdo-bere) (assert (hraje-hrac c))) 19

21 Tah počítače je zajištěn pravidlem pocitac-bere. Zde samozřejmě nedochází k dotazu na počet jako v případě hráče, ale potřebné číslo je "vypočteno" podle výše popsané strategie. Nejprve je vypočítán zbytek xxx po celočíselném dělení (modulo), a ten je použit pro výběr jedno ze 4 faktů (pocitac-bere yyy jestlize-zbyva-zbytek xxx). Číslo yyy pak určuje, kolik zápalek počítač odebere. Splněním pravidla pro příslušný fakt opět vyvolá změnu v aktuálním počtu zbývajících zápalek (vložením faktu (zbyvazapalek zzz)). Jako poslední je vložen fakt (hraje-hrac c), čímž se předává tah hráči. (defrule pocitac-bere?kdo-bere <- (hraje-hrac p)?zapalky <- (zbyva-zapalek?pocet&:(>?pocet 1)) (pocitac-bere?cislo jestlize-zbyva-zbytek =(mod?pocet 4)) (retract?kdo-bere?zapalky) (bind?novy-pocet (-?pocet?cislo)) (printout t "Pocitac bere "?cislo " zapalek." crlf) (printout t?novy-pocet " zapalek zbyva." crlf) (assert (zbyva-zapalek?novy-pocet)) (assert (hraje-hrac c))) Funkci programu lze předvést na následující jednoduché ukázce. Předpokládejme, že člověk začne jako první brát zápalky a že počáteční počet zápalek je 9. Program je nejdříve spuštěn příkazy CLIPSu (reset) a (run). Po té již probíhá komunikace (viz níže uvedený výpis z obrazovky). CLIPS> (reset) CLIPS> (run) Kdo bere prvni (pocitac: p clovek: c)? c S kolika zapalkami chcete zacit? 9 Kolik zapalek chcete vzit? 3 6 zapalek zbyva. Pocitac bere 1 zapalek. 5 zapalek zbyva. Kolik zapalek chcete vzit? 1 4 zapalek zbyva. Pocitac bere 3 zapalek. 1 zapalek zbyva. Musite vzit posledni zapalku! Prohral jste! CLIPS> 20

22 4 Analýza procesu Následující příklad popisuje část analýzy procesu startování motoru auta. Kód obsahuje deklaraci 6 globálních proměnných: citac_experta, citac_pokrocileho, citac_zacatecnika, citac_bez_odezvy, cas_startu, maximalni_cas. Proměnné mají následující význam: citac_experta - počet pokusů o nastartování motoru na úrovni experta (zkušeného řidiče), citac_pokrocileho - počet pokusů o nastartování motoru na úrovni pokročilého, citac_zacatecnika - počet pokusů o nastartování motoru na úrovni začátečníka, citac_bez_odezvy - počet neúspěšných pokusů o nastartování motoru, cas_startu - čas startování motoru, maximalni_cas - maximální doba povolená k nastartování motoru. Dále jsou v programu definovány dva nesetříděné fakty stavy_auta a akce, každý s několika sloty (položkami). Pro uvedenou část programu je významný druhý fakt, který obsahuje sloty typ, hodnota, cas, casova_znacka. V bázi faktů se tak za běhu programu může vyskytovat například fakt (akce (typ pas) (hodnota 1) (casova_znacka 3)). Fakt představuje akci (úkon), kterou provedl řidič v čase t=3, přičemž se jednalo o uvedení (bezpečnostních) pásů do stavu 1 (zapnutí). Funkce programu je dokumentována na pravidle expert_startuje_motor. Pravidlo je splněno za dvou podmínek: 1. byly provedeny potřebné akce, 2. akce byly provedeny ve správném pořadí. Splnění pravidla odpovídá nastartování motoru. (defrule expert_startuje_motor "Uroven experta" (declare (salience 3))?f1 <- (akce (typ pas) (hodnota 1) (casova_znacka?t))?f2 <- (akce (typ rucni_brzda_zatazena) (hodnota 0) (casova_znacka?t1))?f3 <- (akce (typ brzda) (hodnota 1) (casova_znacka?t2))?f4 <- (akce (typ spojka) (hodnota 1) (casova_znacka?t3))?f5 <- (akce (typ razeni) (hodnota 0) (casova_znacka?t4))?f6 <- (akce (typ klicek_zapalovani) (hodnota 1) (casova_znacka?t5))?f7 <- (motor nestartuje) (test (= (+?t 1)?t1)) (test (= (+?t 2)?t2)) (test (= (+?t 3)?t3)) (test (= (+?t 4)?t4)) (test (= (+?t 5)?t5)) (assert (motor startuje)) (retract?f1?f2?f3?f4?f5?f6?f7) (bind?*citac_experta* (+?*citac_experta* 1)) (printout evaluation "ULOHA: nastartovani motoru" crlf) (printout evaluation "CAS: " (- (integer (time))?*cas_startu*) " vterin" crlf) (printout evaluation "CHYBY: 0" crlf crlf) ) Vysvětlení LHS (levostranné části) pravidla: 1. Pravidlu je přiřazena relativně nejvyšší priorita ve vztahu k ostatním pravidlům (viz celkový výpis níže). Nejvyšší priorita zajišťuje, že systém se bude snažit splnit toto pravidlo jako první, jinými slovy nejprve zjišťuje, zda bylo auto nastartováno na "expertní" úrovni. 21

23 2. Zjišťuje se přítomnost faktu (akce (typ pas) (hodnota 1) (casova_znacka xxx)) v bázi faktů. Existuje-li fakt, je do proměnné t uložena hodnota xxx odečtená z příslušného slotu (význam: čas zapnutí pásů). Adresa faktu je uložena do proměnné f1. 3. Podobně jako v bodě 2. je zjištěna existence dalších 6 faktů, odpovídajících těmto akcím: povolení ruční brzdy, sešlápnutí brzdového pedálu, sešlápnutí pedálu spojky, zařazení neutrálu, otočení klíčkem zapalování. Příslušné časové okamžiky provedení jednotlivých akcí jsou uloženy v proměnných t1 až t5, adresy faktů jsou uloženy do proměnných f2 až f7. 4. Zjištění existence faktu (motor nestartuje), který odpovídá stavu nenastartovaného motoru. 5. Ověření, jestli platí následující rovnice: t+1=t1, t+2=t2, t+3=t3, t+4=t4, t+5=t5. Prakticky to znamená, že t<t1<t2<t3<t4<t5, t.j. prvních 6 akcí následuje za sebou v určitém pořadí. Dále je zajištěno, že jednotlivé časy se liší max. o 1, t.j. akce následují těsně za sebou (předpokládáme jen celočíselné hodnoty času). Vysvětlení RHS (pravostranné části) pravidla: 1. Je vložen fakt (motor startuje) označující, že motor je nastartován. 2. Pomocí adres f1 až f7 jsou odstraněny již nepotřebné fakty vyjadřující jednotlivé akce. 3. Počet nastartování experta je zvýšen o jedničku (hodnota proměnné citac_experta). 4. Je vytištěna zpráva "ULOHA: nastartovani motoru". 5. Je vytištěna zpráva "CAS: xxx vterin". xxx je doba startování auta. 6. Je vytištěna zpráva "CHYBY: 0", t.j. auto bylo nastartováno bezchybně. Níže je uveden kompletní výpis programu v CLIPSu. Jde o část analýzy, která může být doplněna např. o další akce (stavy_auta) a pod. Jednotlivá pravidla programu jsou okomentována přímo ve výpisu. (defglobal?*citac_experta* = 0*) (defglobal?*citac_pokrocileho* = 0*) (defglobal?*citac_zacatecnika* = 0*) (defglobal?*citac_bez_odezvy* = 0*) (defglobal?*cas_startu* = 0*) (defglobal?*maximalni_cas* = 10*) (deftemplate stavy_auta "Konstanty pouzite v rizeni auta" (slot brzda) (slot rucni_brzda_zatazena) (slot spojka) (slot klicek_zapalovani) (slot razeni) (slot pas) ) ;sablona stavy_auta (deftemplate akce "Akce ridice pri rizeni" (slot typ) ;typ akce (slot hodnota) ;hodnota akce (slot cas) ;cas akce (slot casova_znacka) ;poradi akce ) ;sablona akce ; pravidla pro nastartovani motoru (defrule expert_startuje_motor "Uroven experta" ; hodnota salience je nejvyssi mei 4 aktivnimi pravidly (declare (salience 3)) ; tato cast pravidla zajistuje, ze budou provedeny vsechny dilci akce pri 22

24 ; startu motoru ; prvni akce je zapnuti bepecnostnich pasu?f1 <- (akce (typ pas) (hodnota 1) (casova_znacka?t)) ; dalsi akce je odbrzdeni rucni brzdy?f2 <- (akce (typ rucni_brzda_zatazena) (hodnota 0) (casova_znacka?t1)) ; dalsi akce je seslapnuti brzdoveho pedalu?f3 <- (akce (typ brzda) (hodnota 1) (casova_znacka?t2)) ; dalsi akce je seslapnuti pedalu spojky?f4 <- (akce (typ spojka) (hodnota 1) (casova_znacka?t3)) ; dalsi akce je zarazeni neutralu?f5 <- (akce (typ razeni) (hodnota 0) (casova_znacka?t4)) ; dalsi akce je otoceni klickem zapalovani?f6 <- (akce (typ klicek_zapalovani) (hodnota 1) (casova_znacka?t5))?f7 <- (motor nestartuje) ; Nasleduje test spravnosti poradi provedenych akci. Spravne poradi je: ; zapnuti pasu, uvolneni rucni brzdy, seslapnuti brzdoveho pedalu, ; seslapnuti pedalu spojky, zarazeni neutralu, otoceni klickem zapalovani (test (= (+?t 1)?t1)) (test (= (+?t 2)?t2)) (test (= (+?t 3)?t3)) (test (= (+?t 4)?t4)) (test (= (+?t 5)?t5)) ; Nasledujici vlozeni faktu oznacuje, ze byl ucinen pokus o nastartovani (assert (motor startuje)) ; akce byly zaznamenany a jsou odstraneny z baze faktu (retract?f1?f2?f3?f4?f5?f6?f7) ; inkrementace citace pokusu experta (bind?*citac_experta* (+?*citac_experta* 1)) (printout evaluation "ULOHA: nastartovani motoru" crlf) (printout evaluation "CAS: " (- (integer (time))?*cas_startu*) " vterin" crlf) (printout evaluation "CHYBY: 0" crlf crlf) ) ; expert_startuje_motor (defrule pokrocily_startuje_motor "Uroven pokrocileho" ; hodnota salience je nizsi nez u experta ale vyssi nez u zacatecnika (declare (salience 2))?f1 <- (akce (typ pas) (hodnota 1) (casova_znacka?t))?f2 <- (akce (typ rucni_brzda_zatazena) (hodnota 0) (casova_znacka?t1))?f3 <- (akce (typ brzda) (hodnota 1) (casova_znacka?t2))?f4 <- (akce (typ spojka) (hodnota 1) (casova_znacka?t3))?f5 <- (akce (typ razeni) (hodnota 0) (casova_znacka?t4))?f6 <- (akce (typ klicek_zapalovani) (hodnota 1) (casova_znacka?t5))?f7 <- (motor nestartuje) ; Nasleduje test spravnosti poradi provedenych akci. Spravne poradi je: ; zapnuti pasu, uvolneni rucni brzdy, seslapnuti brzdoveho pedalu, ; seslapnuti pedalu spojky, zarazeni neutralu, otoceni klickem zapalovani ; Mezi nutnymi akcemi mohou byt provedeny dalsi. (test (>?t1?t)) (test (>?t2?t1)) (test (>?t3?t2)) (test (>?t4?t3)) (test (>?t5?t4)) ; Nasledujici vlozeni faktu oznacuje, ze byl ucinen pokus o nastartovani (assert (motor startuje)) ; akce byly zaznamenany a jsou odstraneny z baze faktu (retract?f1?f2?f3?f4?f5?f6?f7) 23

25 ; inkrementace citace pokusu pokrocileho (bind?*citac_pokrocileho* (+?*citac_pokrocileho* 1)) (printout evaluation "ULOHA: nastartovani motoru" crlf) (printout evaluation "CAS: " (- (integer (time))?*cas_startu*) " vterin" crlf) (printout evaluation "CHYBY: 1 nebo vice" crlf) (printout evaluation "VYSVETLENI: Pri startu byly provedeny dalsi akce." crlf ) ) ; pokrocily_startuje_motor (defrule zacatecnik_startuje_motor "Uroven zacatecnika" ; hodnota salience je mensi nez u pokrocileho ale vyssi nez u urovne ; "nenastartovani" (declare (salience 1)) ; Nasleduje test, zda byy provedeny vsechny nutne akce?f1 <- (akce (typ pas) (hodnota 1) (casova_znacka?t))?f2 <- (akce (typ rucni_brzda_zatazena) (hodnota 0) (casova_znacka?t1))?f3 <- (akce (typ brzda) (hodnota 1) (casova_znacka?t2))?f4 <- (akce (typ spojka) (hodnota 1) (casova_znacka?t3))?f5 <- (akce (typ razeni) (hodnota 0) (casova_znacka?t4))?f6 <- (akce (typ klicek_zapalovani) (hodnota 1) (casova_znacka?t5))?f7 <- (motor nestartuje) ; Akce nemusi byt provedeny v urcitem poradi. Pouze musi byt vsechny ; provedeny. ; Nasledujici vlozeni faktu oznacuje, ze byl ucinen pokus o nastartovani (assert (motor startuje)) ; akce byly zaznamenany a jsou odstraneny z baze faktu (retract?f1?f2?f3?f4?f5?f6?f7) ; inkrementace citace pokusu zacatecnika (bind?*citac_zacatecnika* (+?*citac_zacatecnika* 1)) (printout evaluation "ULOHA: nastartovani motoru" crlf) (printout evaluation "CAS: " (- (integer (time))?*cas_startu*) " vterin" crlf) (printout evaluation "CHYBY: 1 nebo vice" crlf) (printout evaluation "VYSVETLENI: Akce byly provedeny v nespravnem poradi." crlf) ) ; zacatecnik_startuje_motor (defrule motor_se_nenastartoval "Motor se ne a ne nastartovat" ; Kontrola, zda byl motor startovan (motor nestartuje) ; Kontrola, zda cas prekrocil casovy limit (test (> (integer (time)) (+?*maximalni_cas*?*cas_startu*))) ; inkrementace citace nenastartovani motoru (bind?*citac_bez_odezvy* (+?*citac_bez_odezvy* 1)) (printout evaluation "Motor se nenastartoval" crlf) (printout evaluation "CAS: " (- (integer (time))?*cas_startu*) "vterin" crlf crlf) ) ; motor_se_nenastartoval 24

26 5 Symbolická analýza Další příklad je ukázkou symbolické analýzy pomocí expertního systému. Jde o řešení hádankářského problému, tzv. slovního puzzle. Zadání problému tvoří rovnice představující součet dvou šesticiferných čísel. Číslice jsou ovšem nahrazeny symboly - písmeny. Úkolem je přiřadit písmenům číslice tak, aby rovnice platila. GERALD + DONALD = ROBERT Základem řešení problému v CLIPSu je generování všech možných kombinací dvojic číslic 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 a písmen G, E, R, A, L, D, O, N, B, T ve formě faktů. Nejprve je však nutné zajistit vložení faktů (cislo x) a (pismeno y), kde x a y jsou výše uvedené číslice a písmena. Vložení faktů probíhá v pravidle start, které je vždy splněno. (defrule start (printout t t "Zadani problemu:" t t) (printout t " GERALD" t) (printout t " + DONALD" t) (printout t " " t) (printout t " = ROBERT" t t) (assert (cislice 0) (cislice 1) (cislice 2) (cislice 3) (cislice 4) (cislice 5) (cislice 6) (cislice 7) (cislice 8) (cislice 9) (pismeno G) (pismeno E) (pismeno R) (pismeno A) (pismeno L) (pismeno D) (pismeno O) (pismeno N) (pismeno B) (pismeno T))) Kombinace dvojic číslice-písmeno jsou generovány pravidlem generuj_kombinace tak, že jsou vloženy fakty (kombinace x y). (defrule generuj_kombinace (cislice?x) (pismeno?a) (assert (kombinace?a?x))) 25

27 Vlastní řešení probíhá v LHS (levostranné části) pravidla nalezni-reseni. V pravidle jsou postupně zadány vztahy mezi písmeny (číslicemi) zprava daného vztahu: 1. je zvoleno číslo d odpovídající písmenu D, 2. je zvoleno číslo t odpovídající písmenu T tak, že není rovno d, 3. čísla jsou zkontrolována tak, že musí platit (d+d) mod 10 = t, 4. je zvoleno číslo l odpovídající písmenu L tak, že není rovno l, d, ani t, 5. je zvoleno číslo r odpovídající písmenu R tak, že není rovno r, d, t, ani l, 6. čísla jsou zkontrolována tak, že musí platit (d+d+10*l+10*l) mod 100 = (10*r+t), V RHS (pravostranné části) výkonného pravidla je pak proveden výpis nalezených čísel ve formátu zadání. V případě, kdy zadání nemá řešení, nebude pravidlo naleznireseni splněno a program bude ukončen bez jakéhokoliv upozornění. K řešení příkladu je potřeba poznamenat, že se jedná o použití paměťově náročného algoritmu. Je to dáno množstvím obrazů v LHS, které je potřeba splnit (najít jejich protějšky v existujících faktech), přičemž faktů je vygenerováno značné množství (kombinace písmen a číslic). (defrule nalezni-reseni (kombinace D?d) (kombinace T?t&~?d) (test (= (mod (+?d?d) 10)?t)) (kombinace L?l&~?d&~?t) (kombinace R?r&~?d&~?t&~?l) (test (= (mod (+?d?d (* 10?l) (* 10?l)) 100) (+ (* 10?r)?t))) (kombinace A?a&~?d&~?t&~?l&~?r) (kombinace E?e&~?d&~?t&~?l&~?r&~?a) (test (= (mod (+?d?d (* 10?l) (* 10?l) (* 100?a) (* 100?a)) 1000) (+ (* 100?e) (* 10?r)?t))) (kombinace N?n&~?d&~?t&~?l&~?r&~?a&~?e) (kombinace B?b&~?d&~?t&~?l&~?r&~?a&~?e&~?n) (test (= (mod (+?d?d (* 10?l) (* 10?l) (* 100?a) (* 100?a) (* 1000?r) (* 1000?n)) 10000) (+ (* 1000?b) (* 100?e) (* 10?r)?t))) (kombinace O?o&~?d&~?t&~?l&~?r&~?a&~?e&~?n&~?b) (kombinace G?g&~?d&~?t&~?l&~?r&~?a&~?e&~?n&~?b&~?o) (test (= (+?d?d (* 10?l) (* 10?l) (* 100?a) (* 100?a) (* 1000?r) (* 1000?n) (* 10000?e) (* 10000?o) (* ?g) (* ?d)) (+ (* ?r) (* 10000?o) (* 1000?b) (* 100?e) (* 10?r)?t))) (printout t "Reseni je:" t t) (printout t " G = "?g t) (printout t " E = "?e t) 26

Metody odvozování. matematická východiska: logika, Prolog

Metody odvozování. matematická východiska: logika, Prolog Metody odvozování matematická východiska: logika, Prolog psychologická východiska: rámce biologická východiska: konekcionismus, neuronové sítě statistická východiska: kauzální (bayesovské) sítě ekonomická

Více

1 REZOLUČNÍ FORMÁLNÍ DŮKAZY

1 REZOLUČNÍ FORMÁLNÍ DŮKAZY Vážená kolegyně / vážený kolego, součástí Vašeho rozšiřujícího studia informatiky je absolvování předmětu Logika pro učitele 2, jehož cílem je v návaznosti na předmět Logika pro učitele 1 seznámení se

Více

Matematická logika. Miroslav Kolařík

Matematická logika. Miroslav Kolařík Matematická logika přednáška první 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

Více

Predikátová logika. prvního řádu

Predikátová logika. prvního řádu Predikátová logika prvního řádu 2 Predikát Predikát je n-ární relace - vyjadřuje vlastnosti objektů a vztahy mezi objekty - z jednoduchého výroku vznikne vypuštěním alespoň jednoho jména objektu (individua)

Více

Základy informatiky. Výroková logika

Základy informatiky. Výroková logika Základy informatiky Výroková logika Zpracoval: Upravila: Ing. Pavel Děrgel Daniela Sztrucová Obsah přednášky Výroková logika Výroky Pravdivostní ohodnocení Logické spojky Výrokově logická analýza Aristotelés

Více

Která tvrzení jsou pravdivá nezávisle na tom, který den v týdnu byla vyslovena? Tvrzení trosečníka Dana.

Která tvrzení jsou pravdivá nezávisle na tom, který den v týdnu byla vyslovena? Tvrzení trosečníka Dana. Trosečníci Adam, Barry, Code a Dan zapoměli po čase kalendář. Začali se dohadovat, který den v týdnu vlastně je. Každý z nich řekl svůj názor: A: Dnes je úterý nebo zítra je neděle B: Dnes není úterý nebo

Více

Predikátová logika. Teoretická informatika Tomáš Foltýnek

Predikátová logika. Teoretická informatika Tomáš Foltýnek Predikátová logika Teoretická informatika Tomáš Foltýnek foltynek@pef.mendelu.cz strana 2 Opakování z minulé přednášky Z čeho se skládá jazyk výrokové logiky? Jaká jsou schémata pro axiomy VL? Formulujte

Více

09. seminář logika (úvod, výroková).notebook. November 30, 2011. Logika

09. seminář logika (úvod, výroková).notebook. November 30, 2011. Logika Logika 1 Logika Slovo logika se v češtině běžně používá ve smyslu myšlenková cesta, která vedla k daným závěrům. Logika je formální věda, zkoumající právě onen způsob vyvozování závěrů. Za zakladatele

Více

Okruh č.3: Sémantický výklad predikátové logiky

Okruh č.3: Sémantický výklad predikátové logiky Okruh č.3: Sémantický výklad predikátové logiky Predikátová logika 1.řádu formalizuje úsudky o vlastnostech předmětů a vztazích mezi předměty pevně dané předmětné oblasti (univerza). Nebudeme se zabývat

Více

Usuzování za neurčitosti

Usuzování za neurčitosti Usuzování za neurčitosti 25.11.2014 8-1 Usuzování za neurčitosti Hypotetické usuzování a zpětná indukce Míry postačitelnosti a nezbytnosti Kombinace důkazů Šíření pravděpodobnosti v inferenčních sítích

Více

Výroková logika - opakování

Výroková logika - opakování - opakování ormální zavedení Výroková formule: Máme neprázdnou nejvýše spočetnou množinu A výrokových proměnných. 1. Každá proměnná je výroková formule 2. Když α, β jsou formule, potom ( α), (α β), (α

Více

Dodatek č. 3 ke školnímu vzdělávacímu programu. Strojírenství. (platné znění k 1. 9. 2009)

Dodatek č. 3 ke školnímu vzdělávacímu programu. Strojírenství. (platné znění k 1. 9. 2009) Střední průmyslová škola Jihlava tř. Legionářů 1572/3, Jihlava Dodatek č. 3 ke školnímu vzdělávacímu programu Strojírenství (platné znění k 1. 9. 09) Tento dodatek nabývá platnosti dne 1. 9. 13 (počínaje

Více

Sémantika predikátové logiky

Sémantika predikátové logiky Sémantika predikátové logiky pro analýzu sémantiky potřebujeme nejprve specifikaci jazyka (doména, konstanty, funkční a predikátové symboly) příklad: formální jazyk s jediným binárním predikátovým symbolem

Více

Negace bázového atomu Negace atomu s existenčním termem Negace klauzule Negace množiny klauzulí Predikát rovnosti. Klauzulární logika

Negace bázového atomu Negace atomu s existenčním termem Negace klauzule Negace množiny klauzulí Predikát rovnosti. Klauzulární logika Vlastnosti klauzulí, negace Šárka Vavrečková Ústav informatiky, Filozoficko-přírodovědecká fakulta Slezské univerzity v Opavě sarka.vavreckova@fpf.slu.cz 27. října 2008 Věta o transferu bázového atomu

Více

Základy číslicové techniky. 2 + 1 z, zk

Základy číslicové techniky. 2 + 1 z, zk Základy číslicové techniky 2 + 1 z, zk Ing. Vít Fábera, K614 e-mail: fabera@fd.cvut.cz K508, 5. patro, laboratoř, 2 2435 9555 Ing. Tomáš Musil, Ph.D., K620 e-mail: musil@asix.cz K508, 5. patro, laboratoř,

Více

Převyprávění Gödelova důkazu nutné existence Boha

Převyprávění Gödelova důkazu nutné existence Boha Převyprávění Gödelova důkazu nutné existence Boha Technické podrobnosti Důkaz: Konečná posloupnost výrokůkorektně utvořených formulí nějakého logického kalkulu), z nichž každý jelogickým) axiomem, postulátemteorie),

Více

teorie logických spojek chápaných jako pravdivostní funkce

teorie logických spojek chápaných jako pravdivostní funkce Výroková logika teorie logických spojek chápaných jako pravdivostní funkce zabývá se způsoby tvoření výroků pomocí spojek a vztahy mezi pravdivostí různých výroků používá specifický jazyk složený z výrokových

Více

1 Predikátová logika. 1.1 Syntax. jaký mohou mít formule význam (sémantiku). 1. Logických symbolů: 2. Speciálních (mimologických) symbolů:

1 Predikátová logika. 1.1 Syntax. jaký mohou mít formule význam (sémantiku). 1. Logických symbolů: 2. Speciálních (mimologických) symbolů: 1 Predikátová logika 1.1 Syntax Podobně jako ve výrokové logice začneme nejprve se syntaxí predikátové logiky, která nám říká, co jsou správně utvořené formule predikátové logiky. V další části tohoto

Více

Výroková a predikátová logika - II

Výroková a predikátová logika - II Výroková a predikátová logika - II Petr Gregor KTIML MFF UK ZS 2015/2016 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - II ZS 2015/2016 1 / 18 Základní syntax Jazyk Výroková logika je logikou

Více

Formální systém výrokové logiky

Formální systém výrokové logiky Formální systém výrokové logiky 1.Jazyk výrokové logiky Nechť P = {p,q,r, } je neprázdná množina symbolů, které nazýváme prvotní formule. Symboly jazyka L P výrokové logiky jsou : a) prvky množiny P, b)

Více

platné nejsou Sokrates je smrtelný. (r) 1/??

platné nejsou Sokrates je smrtelný. (r) 1/?? Predikátová logika plně přejímá výsledky výrokové logiky zabývá se navíc strukturou jednotlivých jednoduchých výroků na základě této analýzy lze odvodit platnost některých výroků, které ve výrokové logice

Více

Interpret jazyka IFJ2011

Interpret jazyka IFJ2011 Dokumentace projektu Interpret jazyka IFJ2011 Tým číslo 093, varianta b/3/i: 20 % bodů: Cupák Michal (xcupak04) vedoucí týmu 20 % bodů: Číž Miloslav (xcizmi00) 20 % bodů: Černá Tereza (xcerna01) 20 % bodů:

Více

Výroková a predikátová logika - 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ý

Více

Teoretické minimum z PJV

Teoretické minimum z PJV Teoretické minimum z PJV Pozn.: následující text popisuje vlastnosti jazyka Java zjednodušeně pouze pro potřeby výuky. Třída Zavádí se v programu deklarací třídy což je část programu od klíčových slov

Více

Dnešní program odvozování v Bayesovských sítích exaktní metody (enumerace, eliminace proměnných) aproximační metody y( (vzorkovací techniky)

Dnešní program odvozování v Bayesovských sítích exaktní metody (enumerace, eliminace proměnných) aproximační metody y( (vzorkovací techniky) Umělá inteligence II Roman Barták, KTIML roman.bartak@mff.cuni.cz http://ktiml.mff.cuni.cz/~bartak Bayesovská síť zachycuje závislosti mezi náhodnými proměnnými Pro zopakování orientovaný acyklický graf

Více

Složené výroky Jsou tvořeny dvěma nebo více výroky jednoduššími. V : Číslo 8 je liché. V : 0,1 N. V : Paříž je hl. město Španělska.

Složené výroky Jsou tvořeny dvěma nebo více výroky jednoduššími. V : Číslo 8 je liché. V : 0,1 N. V : Paříž je hl. město Španělska. Výrok a jeho negace Výrokem se rozumí sdělení u něhož má smysl otázka zda je či není pravdivé. Budeme určovat tzv. pravdivostní hodnotu výroku (PH). Příklady výroků: V : Úhlopříčky čtverce jsou na sebe

Více

ZPRACOVÁNÍ NEURČITÝCH ÚDAJŮ V DATABÁZÍCH

ZPRACOVÁNÍ NEURČITÝCH ÚDAJŮ V DATABÁZÍCH 0. Obsah Strana 1 z 12 VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA STROJNÍHO INŽENÝRSTVÍ ÚSTAV AUTOMATIZACE A INFORMATIKY FACULTY OF MECHANICAL ENGINEERING INSTITUTE OF AUTOMATION

Více

Logika a logické programování

Logika a logické programování Logika a logické programování témata ke zkoušce Poslední aktualizace: 16. prosince 2009 Zkouška je písemná, skládá se obvykle ze sedmi otázek (může být více nebo méně, podle náročnosti otázek), z toho

Více

popel, glum & nepil 16/28

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

Více

Základy umělé inteligence

Základy umělé inteligence Základy umělé inteligence Automatické řešení úloh Základy umělé inteligence - prohledávání. Vlasta Radová, ZČU, katedra kybernetiky 1 Formalizace úlohy UI chápe řešení úloh jako proces hledání řešení v

Více

RELAČNÍ DATABÁZOVÉ SYSTÉMY

RELAČNÍ DATABÁZOVÉ SYSTÉMY RELAČNÍ DATABÁZOVÉ SYSTÉMY VÝPIS KONTROLNÍCH OTÁZEK S ODPOVĚDMI: Základní pojmy databázové technologie: 1. Uveďte základní aspekty pro vymezení jednotlivých přístupů ke zpracování hromadných dat: Pro vymezení

Více

Databázové systémy. * relační kalkuly. Tomáš Skopal. - relační model

Databázové systémy. * relační kalkuly. Tomáš Skopal. - relační model Databázové systémy Tomáš Skopal - relační model * relační kalkuly Osnova přednášky relační kalkuly doménový n-ticový Relační kalkuly využití aparátu predikátové logiky 1. řádu pro dotazování rozšíření

Více

Lekce 01 Úvod do algoritmizace

Lekce 01 Úvod do algoritmizace Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů Lekce 01 Úvod do algoritmizace Tento projekt CZ.1.07/1.3.12/04.0006 je spolufinancován Evropským sociálním

Více

Jazyk matematiky. 2.1. Matematická logika. 2.2. Množinové operace. 2.3. Zobrazení. 2.4. Rozšířená číslená osa

Jazyk matematiky. 2.1. Matematická logika. 2.2. Množinové operace. 2.3. Zobrazení. 2.4. Rozšířená číslená osa 2. Jazyk matematiky 2.1. Matematická logika 2.2. Množinové operace 2.3. Zobrazení 2.4. Rozšířená číslená osa 1 2.1 Matematická logika 2.1.1 Výrokový počet logická operace zapisujeme čteme česky negace

Více

Masarykova univerzita. Fakulta informatiky. Evoluce pohybu

Masarykova univerzita. Fakulta informatiky. Evoluce pohybu Masarykova univerzita Fakulta informatiky Evoluce pohybu IV109 Tomáš Kotula, 265 287 Brno, 2009 Úvod Pohyb je jedním ze základních projevů života. Zdá se tedy logické, že stejně jako ostatní vlastnosti

Více

Tabulka symbolů. Vazba (binding) Vazba - příklad. Deklarace a definice. Miroslav Beneš Dušan Kolář

Tabulka symbolů. Vazba (binding) Vazba - příklad. Deklarace a definice. Miroslav Beneš Dušan Kolář Vazba (binding) Tabulka symbolů Miroslav Beneš Dušan Kolář vazba = spojení mezi entitou a vlastností okamžik vazby (binding time) při návrhu jazyka při implementaci jazyka během překladu/spojování/zavádění

Více

Seminář z matematiky. 2 hodiny ve 3. ročníku, 4 hodiny ve 4. ročníku. Charakteristika předmětu

Seminář z matematiky. 2 hodiny ve 3. ročníku, 4 hodiny ve 4. ročníku. Charakteristika předmětu Seminář z matematiky 2 hodiny ve 3. ročníku, 4 hodiny ve 4. ročníku Charakteristika předmětu Předmět Seminář z matematiky navazuje na základní výuku matematiky. Slouží k rozšiřování a prohlubování již

Více

STROMOVE ALGORITMY Prohledavani do sirky (level-order) Po vodorovnejch carach fronta

STROMOVE ALGORITMY Prohledavani do sirky (level-order) Po vodorovnejch carach fronta STROMOVE ALGORITMY Prohledavani do sirky (level-order) Po vodorovnejch carach vlož do fronty kořen opakuj, dokud není fronta prázdná 1. vyber uzel z fronty a zpracuj jej 2. vlož do fronty levého následníka

Více

Jak je důležité být fuzzy

Jak je důležité být fuzzy 100 vědců do SŠ 1. intenzivní škola Olomouc, 21. 22. 6. 2012 Jak je důležité být fuzzy Libor Běhounek Ústav informatiky AV ČR 1. Úvod Klasická logika Logika se zabývá pravdivostí výroků a jejím přenášením

Více

Logika. 2. Výroková logika. RNDr. Luděk Cienciala, Ph. D.

Logika. 2. Výroková logika. RNDr. Luděk Cienciala, Ph. D. Logika 2. Výroková logika 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, Logika:

Více

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ 2014 5, 5.1 a 5.2 8/14

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ 2014 5, 5.1 a 5.2 8/14 ZÁKLADY PROGRAMOVÁNÍ Mgr. Vladislav BEDNÁŘ 2014 5, 5.1 a 5.2 8/14 Co je vhodné vědět, než si vybereme programovací jazyk a začneme programovat roboty. 1 / 18 0:40 Algoritmus Algoritmem by se dal nazvat

Více

TÉMATICKÝ OKRUH TZD, DIS a TIS

TÉMATICKÝ OKRUH TZD, DIS a TIS TÉMATICKÝ OKRUH TZD, DIS a TIS Číslo otázky : 15. Otázka : Paralelní procesy v databázích. Transakce, zamykání, uváznutí. Dvoufázový protokol, časová razítka. Obsah : 1 Úvod 2 Paralelní procesy v databázích

Více

Úvod do informatiky. Miroslav Kolařík

Ú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

Více

Univerzita Hradec Králové Fakulta informatiky a managementu

Univerzita Hradec Králové Fakulta informatiky a managementu Univerzita Hradec Králové Fakulta informatiky a managementu Dokumentace k programu Robotická včela Seminární práce ze Znalostních technologií 1 Petr Voborník im(5 cvičení 05 vobornik@mikmik.cz Obsah Obsah...

Více

Booleovská algebra. Booleovské binární a unární funkce. Základní zákony.

Booleovská algebra. Booleovské binární a unární funkce. Základní zákony. Booleovská algebra. Booleovské binární a unární funkce. Základní zákony. Tomáš Bayer bayertom@natur.cuni.cz Katedra aplikované geoinformatiky a kartografie, Přírodovědecká fakulta UK. Tomáš Bayer bayertom@natur.cuni.cz

Více

1 Pravdivost formulí v interpretaci a daném ohodnocení

1 Pravdivost formulí v interpretaci a daném ohodnocení 1 Pravdivost formulí v interpretaci a daném ohodnocení Než uvedeme konkrétní příklady, zopakujme si definici interpretace, ohodnocení a pravdivosti. Necht L je nějaký jazyk. Interpretaci U, jazyka L tvoří

Více

Výroková a predikátová logika - XII

Výroková a predikátová logika - XII Výroková a predikátová logika - XII Petr Gregor KTIML MFF UK ZS 2018/2019 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - XII ZS 2018/2019 1 / 15 Rezoluční metoda v PL Rezoluční důkaz Obecné

Více

Implementace A* algoritmu na konkrétní problém orientace v prostoru budov

Implementace A* algoritmu na konkrétní problém orientace v prostoru budov Implementace A* algoritmu na konkrétní problém orientace v prostoru budov Popis problému Orientaci ve známém prostředí lze převést na problém nalezení cesty z místa A do místa B. Obecně platí, že robot

Více

5 Rekurze a zásobník. Rekurzivní volání metody

5 Rekurze a zásobník. Rekurzivní volání metody 5 Rekurze a zásobník Při volání metody z metody main() se do zásobníku uloží aktivační záznam obsahující - parametry - návratovou adresu, tedy adresu, kde bude program pokračovat v metodě main () po skončení

Více

Logika II. RNDr. Kateřina Trlifajová PhD. Katedra teoretické informatiky Fakulta informačních technologíı BI-MLO, ZS 2011/12

Logika II. RNDr. Kateřina Trlifajová PhD. Katedra teoretické informatiky Fakulta informačních technologíı BI-MLO, ZS 2011/12 Logika II. RNDr. Kateřina Trlifajová PhD. Katedra teoretické informatiky Fakulta informačních technologíı České vysoké učení technické v Praze c Kateřina Trlifajová, 2010 BI-MLO, ZS 2011/12 Evropský sociální

Více

2.5 Rezoluční metoda v predikátové logice

2.5 Rezoluční metoda v predikátové logice 2.5. Rezoluční metoda v predikátové logice [101104-1520] 19 2.5 Rezoluční metoda v predikátové logice Rezoluční metoda v predikátové logice je obdobná stejnojmenné metodě ve výrokové logice. Ovšem vzhledem

Více

Petr Chvosta. vlevo, bude pravděpodobnost toho, že se tyč na počátku intervalu τ B nachází nad vpravo

Petr Chvosta. vlevo, bude pravděpodobnost toho, že se tyč na počátku intervalu τ B nachází nad vpravo MOLEKULÁRNÍ MOTORY Petr Chvosta. Automobil v krupobití aneb brzděním k pohybu Uvažme automobil stojící na mírném svahu a bombardovaný rovnoměrně ze všech stran obrovskými kroupami. Svah stoupá směrem doprava

Více

Algoritmizace prostorových úloh

Algoritmizace prostorových úloh INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Datové struktury Daniela Szturcová

Více

GRAFY A GRAFOVÉ ALGORITMY

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É

Více

Klasická predikátová logika

Klasická predikátová logika Klasická predikátová logika Matematická logika, LS 2012/13, závěrečná přednáška Libor Běhounek www.cs.cas.cz/behounek/teaching/malog12 PřF OU, 6. 5. 2013 Symboly klasické predikátové logiky Poznámky Motivace

Více

Logické programy Deklarativní interpretace

Logické programy Deklarativní interpretace Logické programy Deklarativní interpretace Petr Štěpánek S využitím materialu Krysztofa R. Apta 2006 Logické programování 7 1 Algebry. (Interpretace termů) Algebra J pro jazyk termů L obsahuje Neprázdnou

Více

6. Logika a logické systémy. Základy logiky. Lucie Koloušková, Václav Matoušek / KIV. Umělá inteligence a rozpoznávání, LS

6. Logika a logické systémy. Základy logiky. Lucie Koloušková, Václav Matoušek / KIV. Umělá inteligence a rozpoznávání, LS Základy logiky Umělá inteligence a rozpoznávání, LS 2012 6-1 Logika je naukou, která se zabývá studiem lidského uvažování. Mezi základní úlohy logiky patří nalézání metod správného usuzování, tedy postupů,

Více

Výroková a predikátová logika - II

Výroková a predikátová logika - II Výroková a predikátová logika - II Petr Gregor KTIML MFF UK ZS 2013/2014 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - II ZS 2013/2014 1 / 20 Základní syntax Jazyk Výroková logika je logikou

Více

1. Programování PLC. Programovatelné automaty II - 1 -

1. Programování PLC. Programovatelné automaty II - 1 - Programovatelné automaty II - 1-1. Programování PLC Centrální jednotka Poskytuje programovatelnému automatu inteligenci. Realizuje soubor instrukcí a systémových služeb, zajišťuje i základní komunikační

Více

Informace, kódování a redundance

Informace, kódování a redundance Informace, kódování a redundance Data (jednotné číslo údaj) obvykle chápeme jako údaje, tj. číselné hodnoty, znaky, texty a další fakta zaznamenaná (a uložená v databázi) ve formě uspořádané posloupnosti

Více

Výroková logika. Sémantika výrokové logiky

Výroková logika. Sémantika výrokové logiky Výroková logika Výroková logika se zabývá vztahy mezi dále neanalyzovanými elementárními výroky. Nezabývá se smyslem těchto elementárních výroků, zkoumá pouze vztahy mezi nimi. Elementární výrok je takový

Více

Prolog PROgramming in LOGic část predikátové logiky prvního řádu rozvoj začíná po roce 1970 Robert Kowalski teoretické základy Alain Colmerauer, David

Prolog PROgramming in LOGic část predikátové logiky prvního řádu rozvoj začíná po roce 1970 Robert Kowalski teoretické základy Alain Colmerauer, David Úvod do Prologu Prolog PROgramming in LOGic část predikátové logiky prvního řádu rozvoj začíná po roce 1970 Robert Kowalski teoretické základy Alain Colmerauer, David Warren (Warren Abstract Machine) implementace

Více

Šifrování/Dešifrování s použitím hesla

Šifrování/Dešifrování s použitím hesla Fakulta elektrotechnická Katedra teoretické elektrotechniky Dokumentace k semestrální práci Šifrování/Dešifrování s použitím hesla 2012/13 Petr Zemek Vyučující: Ing. Petr Kropík, Ph.D Předmět: Základy

Více

NPRG030 Programování I, 2010/11

NPRG030 Programování I, 2010/11 Podmínka = něco, co JE, nebo NENÍ splněno typ Boolean hodnoty: TRUE pravda FALSE lež domluva (optimistická): FALSE < TRUE když X, Y jsou (číselné) výrazy, potom X = Y X Y X < Y X > Y X = Y jsou

Více

Uživatelská příručka

Uživatelská příručka OM-Link Uživatelská příručka Verze: 2.1 Prosinec 2006 Copyright 2005, 2006 ORBIT MERRET, s r.o. I Nápověda k programu OM-Link Obsah Část I Úvod 3 Část II Základní pojmy a informace 3 1 Připojení... 3 2

Více

Úvod do TI - logika Predikátová logika 1.řádu (4.přednáška) Marie Duží marie.duzi@vsb.cz

Úvod do TI - logika Predikátová logika 1.řádu (4.přednáška) Marie Duží marie.duzi@vsb.cz Úvod do TI - logika Predikátová logika 1.řádu (4.přednáška) Marie Duží marie.duzi@vsb.cz Jednoduché úsudky, kde VL nestačí Všechny opice mají rády banány Judy je opice Judy má ráda banány Z hlediska VL

Více

PŘIJÍMACÍ TEST z informatiky a matematiky pro navazující magisterské studium Fakulta informatiky a managementu Univerzity Hradec Králové

PŘIJÍMACÍ TEST z informatiky a matematiky pro navazující magisterské studium Fakulta informatiky a managementu Univerzity Hradec Králové PŘIJÍMACÍ TEST z informatiky a matematiky pro navazující magisterské studium Fakulta informatiky a managementu Univerzity Hradec Králové Registrační číslo Hodnocení část A Hodnocení část B Hodnocení A+B

Více

Úloha ve stavovém prostoru SP je <s 0, C>, kde s 0 je počáteční stav C je množina požadovaných cílových stavů

Úloha ve stavovém prostoru SP je <s 0, C>, kde s 0 je počáteční stav C je množina požadovaných cílových stavů Stavový prostor a jeho prohledávání SP = formalismus k obecnějšímu uchopení a vymezení problému, který spočívá v nalezení posloupnosti akcí vedoucích od počátečního stavu úlohy (zadání) k požadovanému

Více

MNOŽINY. x A. Jeho varianty paradox mostu se šibenicí, paradox holiče.

MNOŽINY. x A. Jeho varianty paradox mostu se šibenicí, paradox holiče. MNOŽINY Naivní definice (pojetí): Množina [set] je přesně definovaný soubor prvků, které mají nějakou vlastnost. O čemkoliv je třeba umět jednoznačně rozhodnout, zda do dané množiny patří či nikoliv. Vztah

Více

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

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.

Více

NPRG030 Programování I, 2016/17 1 / :58:13

NPRG030 Programování I, 2016/17 1 / :58:13 NPRG030 Programování I, 2016/17 1 / 31 10. 10. 2016 10:58:13 Podmínka = něco, co JE, nebo NENÍ splněno typ Boolean hodnoty: TRUE pravda FALSE lež domluva (optimistická): FALSE < TRUE NPRG030 Programování

Více

Predikátová logika Individua a termy Predikáty

Predikátová logika Individua a termy Predikáty Predikátová logika Predikátová logika je rozšířením logiky výrokové o kvantifikační výrazy jako každý, všichni, někteří či žádný. Nejmenší jazykovou jednotkou, kterou byla výroková logika schopna identifikovat,

Více

Přednáška 2: Formalizace v jazyce logiky.

Přednáška 2: Formalizace v jazyce logiky. Přednáška 2: Formalizace v jazyce logiky. Marie Duží marie.duzi@vsb.cz Úvod do teoretické informatiky (logika) Dva základní logické systémy: Výroková logika a predikátová logika. řádu. Výroková logika

Více

Fuzzy logika a reálný svět, aneb jsou všechny hromady skutečně malé?

Fuzzy logika a reálný svět, aneb jsou všechny hromady skutečně malé? Fuzzy logika a reálný svět, aneb jsou všechny hromady skutečně malé? Jiří Močkoř University of Ostrava Department of Mathematics Institute for Research and Applications of Fuzzy Modeling 30. dubna 22,

Více

ČSN ISO/IEC 27001 P D. Informační technologie - Bezpečnostní techniky Systémy managementu bezpečnosti informací - Požadavky. Struktura normy ISO 27001

ČSN ISO/IEC 27001 P D. Informační technologie - Bezpečnostní techniky Systémy managementu bezpečnosti informací - Požadavky. Struktura normy ISO 27001 ČSN ISO/IEC 27001 Informační technologie - Bezpečnostní techniky Systémy managementu bezpečnosti informací - Požadavky Představení normy ISO/IEC 27001 a norem souvisejících - Současný stav ISO/IEC 27001:2005

Více

Výroková logika. Teoretická informatika Tomáš Foltýnek

Výroková logika. Teoretická informatika Tomáš Foltýnek Výroková logika Teoretická informatika Tomáš Foltýnek foltynek@pef.mendelu.cz Teoretická informatika strana 2 Opakování z minulé přednášky Co je to formalismus a co je jeho cílem? Formulujte Russelův paradox

Více

Výroková a predikátová logika - IX

Výroková a predikátová logika - IX Výroková a predikátová logika - IX Petr Gregor KTIML MFF UK ZS 2013/2014 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - IX ZS 2013/2014 1 / 15 Korektnost a úplnost Důsledky Vlastnosti teorií

Více

Metodika využití národního rámce kvality při inspekční činnosti ve školách a školských zařízeních

Metodika využití národního rámce kvality při inspekční činnosti ve školách a školských zařízeních Metodika využití národního rámce kvality při inspekční činnosti Praha, červen 2015 Obsah 1 Úvod... 3 2 Role národního rámce kvality při inspekční činnosti... 3 3 Cíle metodiky využití národního rámce kvality

Více

přirozený algoritmus seřadí prvky 1,3,2,8,9,7 a prvky 4,5,6 nechává Metody řazení se dělí:

přirozený algoritmus seřadí prvky 1,3,2,8,9,7 a prvky 4,5,6 nechává Metody řazení se dělí: Metody řazení ve vnitřní a vnější paměti. Algoritmy řazení výběrem, vkládáním a zaměňováním. Heapsort, Shell-sort, Radix-sort, Quicksort. Řazení sekvenčních souborů. Řazení souborů s přímým přístupem.

Více

přednáška 2 Marie Duží

přednáška 2 Marie Duží Logika v praxi přednáška 2 Marie Duží marie.duzi@vsb.cz 1 1 Výroková logika Analyzuje způsoby skládání jednoduchých výroků do výroků složených pomocí logických spojek. Co je to výrok? Výrok je tvrzení,

Více

Rezoluce v predikátové logice

Rezoluce v predikátové logice Rezoluce v predikátové logice Jiří Velebil: AD0B01LGR 2015 Rezoluce v PL 1/16 Základní myšlenky 1 M = ϕ iff X = M { ϕ} nesplnitelná. (M musí být množina sentencí, ϕ sentence.) 2 X nesplnitelná iff X =

Více

Umělá inteligence I. Roman Barták, KTIML.

Umělá inteligence I. Roman Barták, KTIML. Umělá inteligence I Roman Barták, KTIML roman.bartak@mff.cuni.cz http://ktiml.mff.cuni.cz/~bartak Už umíme používat výrokovou logiku pro reprezentaci znalostí a odvozování důsledků. Dnes Dnes zopakujeme

Více

VY_42_Inovace_12_MA_2.01_ Výroky. Prezentace určena pro první ročník maturitních oborů, ve které je vysvětlení učiva výroky.

VY_42_Inovace_12_MA_2.01_ Výroky. Prezentace určena pro první ročník maturitních oborů, ve které je vysvětlení učiva výroky. Číslo projektu Číslo materiálu CZ.1.07/1.5.00/34.0394 VY_42_Inovace_12_MA_2.01_ Výroky Název školy Střední odborná škola a Střední odborné učiliště, Hustopeče, Masarykovo nám. 1 Autor Tematický celek Mgr.

Více

Rezoluce v predikátové logice

Rezoluce v predikátové logice Rezoluce v predikátové logice Jiří Velebil: X01DML 15. října 2010: Rezoluce v PL 1/16 Základní myšlenky 1 M = ϕ iff X = M { ϕ} nesplnitelná. (M musí být množina sentencí, ϕ sentence.) 2 X nesplnitelná

Více

Matematické symboly a značky

Matematické symboly a značky Matematické symboly a značky Z Wikipedie, otevřené encyklopedie Matematický symbol je libovolný znak, používaný v. Může to být znaménko pro označení operace s množinami, jejich prvky, čísly či jinými objekty,

Více

Matematická logika. Lekce 1: Motivace a seznámení s klasickou výrokovou logikou. Petr Cintula. Ústav informatiky Akademie věd České republiky

Matematická logika. Lekce 1: Motivace a seznámení s klasickou výrokovou logikou. Petr Cintula. Ústav informatiky Akademie věd České republiky Matematická logika Lekce 1: Motivace a seznámení s klasickou výrokovou logikou Petr Cintula Ústav informatiky Akademie věd České republiky www.cs.cas.cz/cintula/mal Petr Cintula (ÚI AV ČR) Matematická

Více

Základy logiky Logika a logické systémy. Umělá inteligence a rozpoznávání, LS

Základy logiky Logika a logické systémy. Umělá inteligence a rozpoznávání, LS Základy logiky 22. 4. 2015 Umělá inteligence a rozpoznávání, LS 2015 6-1 Logika je naukou, která se zabývá studiem lidského uvažování. Mezi základní úlohy logiky patří nalézání metod správného usuzování,

Více

postaveny výhradně na syntaktické bázi: jazyk logiky neinterpretujeme, provádíme s ním pouze syntaktické manipulace důkazy

postaveny výhradně na syntaktické bázi: jazyk logiky neinterpretujeme, provádíme s ním pouze syntaktické manipulace důkazy Formální systémy (výrokové) logiky postaveny výhradně na syntaktické bázi: jazyk logiky neinterpretujeme, provádíme s ním pouze syntaktické manipulace důkazy cíl: získat formální teorii jako souhrn dokazatelných

Více

Logika a formální sémantika: 8. Game-theoretical semantics

Logika a formální sémantika: 8. Game-theoretical semantics Logika a formální sémantika: 8. Game-theoretical semantics Logika: systémový rámec rozvoje oboru v ČR a koncepce logických propedeutik pro mezioborová studia (reg. č. CZ.1.07/2.2.00/28.0216, OPVK) doc.

Více

Predikátová logika [Predicate logic]

Predikátová logika [Predicate logic] Predikátová logika [Predicate logic] Přesněji predikátová logika prvého řádu. Formalizuje výroky o vlastnostech předmětů (entit) a vztazích mezi předměty, které patří do dané předmětné oblasti univerza.

Více

Informatika Algoritmy

Informatika Algoritmy Informatika Algoritmy Radim Farana Podklady předmětu Informatika pro akademický rok 2010/2011 Obsah Algoritmus. Vlastnosti algoritmu. Popis algoritmu. Hodnocení algoritmů. Příklady algoritmů. Algoritmus

Více

Matematická logika. Miroslav Kolařík

Matematická logika. Miroslav Kolařík Matematická logika přednáška desátá Miroslav Kolařík Zpracováno dle textu R. Bělohlávka: Matematická logika poznámky k přednáškám, 2004. Obsah 1 Úvod do modální logiky 2 Logické programování a Prolog 3

Více

NEXIS 32 rel. 3.50. Generátor fází výstavby TDA mikro

NEXIS 32 rel. 3.50. Generátor fází výstavby TDA mikro SCIA CZ, s. r. o. Slavíčkova 1a 638 00 Brno tel. 545 193 526 545 193 535 fax 545 193 533 E-mail info.brno@scia.cz www.scia.cz Systém programů pro projektování prutových a stěnodeskových konstrukcí NEXIS

Více

Výroková logika. p, q, r...

Výroková logika. p, q, r... Výroková logika Výroková logika je logika, která zkoumá pravdivostní podmínky tvrzení a vztah vyplývání v úsudcích na základě vztahů mezi celými větami. Můžeme též říci, že se jedná o logiku spojek, protože

Více

LOGIKA VÝROKOVÁ LOGIKA

LOGIKA VÝROKOVÁ LOGIKA LOGIKA Popisuje pravidla odvozování jedněch tvrzení z druhých. Je to myšlenková cesta ke správným závěrům. Vznikla jako součást filosofie. Zakladatelem byl Aristoteles. VÝROKOVÁ LOGIKA Obsahuje syntaktická,

Více

Úvod do TI - logika Výroková logika - pokračování (3.přednáška) Marie Duží

Úvod do TI - logika Výroková logika - pokračování (3.přednáška) Marie Duží Úvod do TI - logika Výroková logika - pokračování (3.přednáška) Marie Duží marie.duzi@vsb.cz Normální formy formulí výrokové logiky Každé formuli výrokové logiky přísluší právě jedna pravdivostní funkce,

Více

KMA/MDS Matematické důkazy a jejich struktura

KMA/MDS Matematické důkazy a jejich struktura Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.0141 KMA/MDS Matematické důkazy a jejich struktura Seminář 2 Výroková logika pokračování Logické vyplývání

Více

Pravidlové znalostní systémy

Pravidlové znalostní systémy Pravidlové znalostní systémy 31. října 2017 2-1 Tvary pravidel Pravidla (rules) mohou mít například takovéto tvary: IF předpoklad THEN závěr IF situace THEN akce IF podmínka THEN závěr AND akce IF podmínka

Více

Klauzulární logika. úvod. Šárka Vavrečková. 20. října Ústav informatiky Filozoficko-Přírodovědecká fakulta Slezské univerzity, Opava

Klauzulární logika. úvod. Šárka Vavrečková. 20. října Ústav informatiky Filozoficko-Přírodovědecká fakulta Slezské univerzity, Opava Klauzulární logika úvod Šárka Vavrečková Ústav informatiky Filozoficko-Přírodovědecká fakulta Slezské univerzity, Opava 20. října 2008 Klauzulární logika Hlavní vlastnosti pracujeme s klauzulemi, které

Více

výrok-každésdělení,uněhožmásmyslseptát,zdaječinenípravdivé, aproněžprávějednaztěchtodvoumožnostínastává.

výrok-každésdělení,uněhožmásmyslseptát,zdaječinenípravdivé, aproněžprávějednaztěchtodvoumožnostínastává. 1 Základní pojmy matematické logiky Výrokový počet... syntaktické hledisko Predikátový počet... sémantické hledisko 1.1 VÝROKOVÝ POČET výrok-každésdělení,uněhožmásmyslseptát,zdaječinenípravdivé, aproněžprávějednaztěchtodvoumožnostínastává.

Více