Seminární práce z Teorie ICT
|
|
- Radomír Staněk
- před 9 lety
- Počet zobrazení:
Transkript
1 ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA V PRAZE Provozně ekonomická fakulta Seminární práce z Teorie ICT Implementace logické hádanky v Prologu Autor : Petr Pechek
2 1 Popis zvoleného problému Mým úkolem bylo vyřešit logickou hádanku pomocí programu prolog. Logická hádanka měla následující zadání: Skvělý fotbal Pět hráčů hraje v různých mužstvech na různých pozicích a má různě barevné dresy. 1. Hráč Carolina Panthers má fialový dres. 2. Samuel není zadní útočník, křídelní útočník hraje v mužstvu Dallas Cowboys. 3. Obránce má žlutý dres, Claude hraje za Dallas Cowboys. 4. Útočník nehraje za Green Bay Packers. 5. David nehraje za Oakland Raiders, Samuel je v černém. 6. Střední obránce je z Oakland Raiders, David hraje ve žlutém. 7. Victor je z Cleveland Browns a nenosí modrý dres. 8. Bill je útočník a hráči Cleveland Browns nosí červené dresy. Určete dres, družstvo a postavení každého hráče. 2 Stručný přehled teorie potřebné k vyřešení problému 2.1 Jazyk prolog Prolog je logický programovací jazyk. Patří mezi tzv. deklarativní programovací jazyky, ve kterých programátor popisuje pouze cíl výpočtu, přičemž přesný postup, jakým se k výsledku program dostane, je ponechán na libovůli systému. Prolog se snaží o pokud možno abstraktní vyjádření faktů a logických vztahů mezi nimi s potlačením imperativní složky. Prolog je využíván především v oboru umělé inteligence a v počítačové lingvistice (obzvláště zpracování přirozeného jazyka, pro nějž byl původně navržen). Syntaxe jazyka je velice jednoduchá a snadno použitelná pravě proto, že byl původně určen pro počítačově nepříliš gramotné lingvisty. Prolog je založen na predikátové logice prvního řádu; konkrétně se omezuje na Hornovy klauzule. Běh programu je pak představován aplikací dokazovacích technik na zadané klauzule. Základními využívanými přístupy jsou unifikace, rekurze a backtracking. [1] 2.2 Datové typy v jazyku Jednotnou datovou strukturou, se kterou Prolog pracuje, je tzv. term - pojem převzatý z formální logiky. Základní členění termů: 2
3 term struktura jednoduchý term proměnná konstanta číslo atom Atomy Atomy lze dle konstrukce rozdělit do třech kategorií: řetězce znaků začínající malým písmenem obsahující pouze písmena, číslice a podtržítko posloupnost znaků uzavřená v apostrofech (některé implementace používají uvozovky) atomy skládající se pouze ze speciálních znaků [1] Čísla Původní Prolog podporoval pouze celá čísla. Řada implementací pracuje s reálnými i racionálními čísly a s neohraničenými celými čísly Proměnné Proměnné začínají velkým písmenem nebo podtržítkem a nesmí obsahovat speciální znaky. Vyskytují se v pravidlech, kde popisují účastníky vztahu, nebo v dotazech, kde reprezentují hledané objekty. Rozsah platnosti proměnné je pouze jedna klauzule, stejnojmenná proměnná v sousední klauzuli nemá s touto nic společného, i když je třeba součásti stejného predikátu. Hodnotu získává pomocí srovnávání (unifikace) a po jejím přiřazení se již dále nemění, pokud se použité pravidlo, které ji přiřadilo, neodvolá (backtracking). [1] Z pohledu interpretu lze proměnné rozdělit na dva typy: volné - jejich hodnota zatím není známá a interpret se ji snaží nalézt vázané - z dřívějších kroků řešení již plyne její hodnota, tedy je s ní svázána Příklad použití proměnných: klauzule dotazy 3
4 Speciálním typem je tzv. anonymní proměnná. Značí se jako podtržítko a používá se v pravidlech. Její hodnota není podstatná a Prolog ji ve výsledcích nezobrazuje Struktury Struktury jsou tvořeny z funktoru a argumentů. Počet argumentů udává aritu struktury. Některé operátory mohou být používány také v infixovém tvaru. Strukturou tedy mohou být i klauzule, kde se jako funktor používá infixový operátor :-. [1] V jednom programu se mohou vyskytovat dva stejně pojmenované funktory, pokud mají různé arity. Speciálním případem struktur jsou seznamy a řetězce. [1] Seznamy Seznamy jsou definovány induktivně: Prázdný seznam je označen atomem [ ], k reprezentaci neprázdného seznamu slouží binární funktor tečka '.'. Neprázdný seznam je tedy tzv. tečka-dvojice (terminologie pochází z jazyka LISP).(Hlava,Tělo), kde Hlava je první prvek seznamu a Tělo je seznam tvořený zbývajícími prvky seznamu. Pro zjednodušení zápisu lze použít výčet prvků v hranatých závorkách (oba zápisy jsou ekvivalentní). [1] Pro práci se seznamy se často využívá operátor ' ', který umožňuje přístup k jednotlivým částem seznamu. Seznam lze pak zapsat jako [Začátek Tělo], kde Začátek je výčet (nikoliv seznam) prvků tvořící začátek definovaného seznamu a Tělo je seznam (nikoliv výčet) tvořící zbytek definovaného seznamu (je-li prázdný, nemusí se uvádět). [1] 2.3 Programování v Prologu Programování v Prologu se výrazně liší od programování v běžných procedurálních jazycích jako například C. Program popisuje vztahy definované pomocí klauzulí. Čistý Prolog se omezuje na Hornovy klauzule tedy predikátovou logiku prvního řádu. Základem Prologu je databáze klauzulí, které lze dále rozdělit na fakta a pravidla, nad kterými je možno klást dotazy formou tvrzení, u kterých Prolog zhodnocuje jejich pravdivost (dokazatelnost z údajů obsažených v databázi). Nejjednoduššími klauzulemi jsou fakta, které pouze vypovídají o vlastnostech objektu nebo vztazích mezi objekty. Složitějšími klauzulemi jsou pravidla, které umožňují pomocí implikace odvozovat nová fakta. Zapisují se ve tvaru hlavička :- tělo, kde hlavička definuje odvozovaný fakt, tělo podmínky, za nichž je pravdivý, obsahuje jeden či více cílů. Pokud se interpretu podaří odvodit, že tělo je pravdivé, ověřil tím pravdivost hlavičky. Pravidla (závislosti) se zapisují pomocí implikací. 4
5 2.3.1 Predikát Predikát lze charakterizovat jako sadu klauzulí se stejným jménem a stejnou aritou. Může obsahovat fakta i pravidla, které fungují jako alternativy platnost predikátu lze dokázat libovolnou z nich. Pravdivost predikátu vyjadřují dvě logické konstanty true, fail. Při vyhodnocování pravidel lze využít základní logické operátory: konjunkce čárka ',' pokud některá část selže, další se nevyhodnocují disjunkce středník ';' disjunkci lze také zapsat, tak že pravidlo rozepíšeme na více řádků [1] Rekurze Rekurze v Prologu nahrazuje cykly, tudíž je velmi často používána. Například predikát pro nalezení předka. [1] Při používání rekurze je třeba dávat pozor na pořadí klauzulí, které Prolog prochází zleva doprava. Jejich prohození může vést ke snížení efektivity algoritmu nebo až k nekonečnému cyklu. Například prohození klauzulí ve výše uvedeném příkladu by mělo za následek nekonečný cyklus. [1] 3 Analýza problému Úkolem je zjistit jaký hráč hraje v jakém týmu, na jaké pozici v něm nastupuje a jaký nosí dres. Je dáno 8 podmínek, které musí být splněny, tedy musí platit zároveň. Jedné se konjunkci jednotlivých výroků. Řešení úlohy musí splňovat všechny tyto podmínky. 4 Rozbor možných řešení či přístupů k řešení Úloha může mít více, jedno nebo žádné řešení. Maximální počet řešení úlohy je 5! 4 podmínky.. Tolik by bylo řešení pokud by úloha neměla omezující Správného řešení lze dosáhnout pomocí postupného dosazování hodnot, tak aby splňovaly dané podmínky. Pokud již nelze dosadit další hodnotu vrátíme se zpět a zkusíme dosadit jinou hodnotu. Tento postup řešení se označuje jako prohledávání do hloubky. 5 Zdrojový kód programu jmeno(claude). jmeno(david). jmeno(viktor). jmeno(samuel). 5
6 jmeno(bill). druzstvo(green_bay_packers). druzstvo(dallas_cowboys). druzstvo(cleveland_browns). druzstvo(oakland_raiders). druzstvo(carolina_panthers). pozice(obrance). pozice(krajni_utocnik). pozice(zadni_utocnik). pozice(stredni_obrance). pozice(utocnik). dres(zluty). dres(modry). dres(cerveny). dres(cerny). dres(fialovy). %member(y,[y _]). %member(y,[_ Remainder]) :- member(y,remainder). %zjisteni zda je Y prvkem struktury, neni nutne predikat je integrovany primo v prologu reseni(x):- % do proměné X uloží řešení (poradi prvku jmeno,druzstvo,pozice,dres) X=[ [_,_,_,zluty], %nutno zadat aby se ve vypisu neopakovali kombinace s prehozenymi prvky seznamu [_,_,_,modry], [_,_,_,cerveny], [_,_,_,cerny], [_,_,_,fialovy]], member([_,green_bay_packers,_,_],x), %je zmineno, ze pouze hrac neni clenem klubu, proto_nutno dodefinovat klub member([_,_,zadni_utocnik,_],x), %stejne jako v predchozim pripade member([_,_,_,modry],x), %stejne jako v predchozim pripade member([_,carolina_panthers,_,fialovy],x), % podmínka 1 - Hrac carolina panthers ma fialovy dres member([samuel,_,po,_],x),po\==zadni_utocnik, % podminka 2 - Samuel neni utocnik member([_,dallas_cowboys,krajni_utocnik,_],x), % podminka 2 - za Dallas kowboys hraje křídelní útočník member([_,_,obrance,zluty],x), % podminka 3 - obrance ma zluty dres member([claude,dallas_cowboys,_,_],x), %podminka 3 - Claud hraje za Dallas Cowboys member([_,klub,utocnik,_],x),klub\==green_bay, %podminka 4 - Útočník nehraje za Green Bay Packers 6
7 member([david,klub2,_,_],x),klub2\==oakland_riders, %podminka 5 - David nehraje za Oakland Raiders member([samuel,_,_,cerny],x), %podminka 5 - Samuel je v černém member([_,oakland_riders,stredni_obrance,_],x), %podminka 6 - Střední obránce je z Oakland Raiders member([david,_,_,zluty],x), %podminka 6 - David hraje ve žlutém member([viktor,cleveland_browns,_,dr],x),dr\==modry, %podminka 7 - Victor je z Cleveland Browns a nenosí modrý dres member([bill,_,utocnik,_],x), %podminka 8 - Bill je útočník member([_,cleveland_browns,_,cerveny],x). %podminka 8 - hráči Cleveland Browns nosí červené dresy 6 Vysvětlení programu Program je realizován pomocí implementace prologu binprolog. Před spuštěním je nutné načíst program pomocí příkazu consult(fotbal). případně reconsult(fotbal). Předtím je potřeba zdrojový kód uložit do souboru fotbal.pl do adresáře s programem binprolog. 6.1 Jak program řeší jednotlivé úlohy Řešení programu se zobrazuje pomocí příkazu reseni(x). Jména hráčů, lze zobrazit pomocí příkazu jmena(x). Všechna družstva pomocí druzstvo(x). Všechny možné pozice pomocí pozice(x). A všechny barvy dresů pomocí dres(x). Pokud je vypnut interaktivní režim, tak dané příkazy zobrazí všechny možnosti. 6.2 Výpis trasování programu Výpis pomocí příkazu trace by měl rozsah na několik stovek stran. Zde je ukázka výpisu, která ukazuje jak program pracuje. Podtržítkem na začátku jsou označované anonymní proměnné. Jejich hodna nás nezajímá. Call: reseni(_2304)!!! dynamic(reseni/1) Call: _2304 = [[_2896,_2898,_2900,zluty],[_2905,_2907,_2909,modry],[_2914,_2916,_2918,cerveny],[_2923,_2925,_2927,cerny],[_2932,_2934,_2936,fialovy]]!!! compiled((=)/2) %vychozí řešení, dosazení výchozích hodnot do proměné Exit: [[_2896,_2898,_2900,zluty],[_2905,_2907,_2909,modry],[_2914,_2916,_2918,cerveny],[_2923,_2925,_2927,cerny],[_2932,_2934,_2936,fialovy]] = [[_2896,_2898,_2900,zluty],[_2905,_2907,_2909,modry],[_2914,_2916,_2918,cerveny],[_2923,_2925,_2927,cerny],[_2932,_2934,_2936,fialovy]] %volání zkončilo úspěšně Call: member([_2941,green_bay_packers,_2945,_2947],[[_2896,_2898,_2900,zluty],[_2905,_2907,_2909,modry],[_2914,_2916,_2918,cerveny], [_2923,_2925,_2927,cerny],[_2932,_2934,_2936,fialovy]]) %zjišťování zda může být [_2941,green_bay_packers,_2945,_2947] prvkem struktury, probíhá rekurzivně Exit: member([_2896,green_bay_packers,_2900,zluty],[[_2896,green_bay_packers,_2900,zluty],[_2905,_2907,_2909,modry],[_2914,_2916,_2918,cerveny], [_2923,_2925,_2927,cerny],[_2932,_2934,_2936,fialovy]]) %ukonceni zjišťování, přičlenění green_bay_packers do prního prvku struktury [_2896,green_bay_packers,_2900,zluty] 7
8 Call: member([_2950,_2952,zadni_utocnik,_2956],[[_2896,green_bay_packers,_2900,zluty],[_2905,_2907,_2909,modry],[_2914,_2916,_2918,cerveny], [_2923,_2925,_2927,cerny],[_2932,_2934,_2936,fialovy]]) Exit: member([_2896,green_bay_packers,zadni_utocnik,zluty],[[_2896,green_bay_packers,zadni_utocnik,zluty],[_2905,_2907,_2909,modry], [_2914,_2916,_2918,cerveny],[_2923,_2925,_2927,cerny],[_2932,_2934,_2936,fialovy]]) Call: member([_2959,_2961,_2963,modry],[[_2896,green_bay_packers,zadni_utocnik,zluty],[_2905,_2907,_2909,modry],[_2914,_2916,_2918,cerveny], [_2923,_2925,_2927,cerny],[_2932,_2934,_2936,fialovy]]) Call: member([_2959,_2961,_2963,modry],[[_2905,_2907,_2909,modry],[_2914,_2916,_2918,cerveny],[_2923,_2925,_2927,cerny],[_2932,_2934,_2936,fialovy]]) Exit: member([_2905,_2907,_2909,modry],[[_2905,_2907,_2909,modry],[_2914,_2916,_2918,cerveny],[_2923,_2925,_2927,cerny],[_2932,_2934,_2936,fialovy]]) Exit: member([_2905,_2907,_2909,modry],[[_2896,green_bay_packers,zadni_utocnik,zluty],[_2905,_2907,_2909,modry],[_2914,_2916,_2918,cerveny], [_2923,_2925,_2927,cerny],[_2932,_2934,_2936,fialovy]]) Call: member([_2968,carolina_panthers,_2972,fialovy],[[_2896,green_bay_packers,zadni_utocnik,zluty],[_2905,_2907,_2909,modry],[_2914,_2916,_2918,cerveny], [_2923,_2925,_2927,cerny],[_2932,_2934,_2936,fialovy]]) Call: member([_2968,carolina_panthers,_2972,fialovy],[[_2905,_2907,_2909,modry],[_2914,_2916,_2918,cerveny],[_2923,_2925,_2927,cerny], [_2932,_2934,_2936,fialovy]]) Call: member([_2968,carolina_panthers,_2972,fialovy],[[_2914,_2916,_2918,cerveny],[_2923,_2925,_2927,cerny],[_2932,_2934,_2936,fialovy]]) Call: member([_2968,carolina_panthers,_2972,fialovy],[[_2923,_2925,_2927,cerny],[_2932,_2934,_2936,fialovy]]) Call: member([_2968,carolina_panthers,_2972,fialovy],[[_2932,_2934,_2936,fialovy]]) Exit: member([_2932,carolina_panthers,_2936,fialovy],[[_2932,carolina_panthers,_2936,fialovy]]) %splněna podmínka, že [_2932,carolina_panthers,_2936,fialovy] je prvkem struktury, ukončení testování Exit: member([_2932,carolina_panthers,_2936,fialovy],[[_2923,_2925,_2927,cerny],[_2932,carolina_panthers,_2936,fialovy]]) Exit: member([_2932,carolina_panthers,_2936,fialovy],[[_2914,_2916,_2918,cerveny],[_2923,_2925,_2927,cerny],[_2932,carolina_panthers,_2936,fialovy]]) Exit: member([_2932,carolina_panthers,_2936,fialovy],[[_2905,_2907,_2909,modry],[_2914,_2916,_2918,cerveny],[_2923,_2925,_2927,cerny], [_2932,carolina_panthers,_2936,fialovy]]) Exit: member([_2932,carolina_panthers,_2936,fialovy],[[_2896,green_bay_packers,zadni_utocnik,zluty],[_2905,_2907,_2909,modry],[_2914,_2916,_2918,cerveny], [_2923,_2925,_2927,cerny],[_2932,carolina_panthers,_2936,fialovy]]) Call: member([samuel,_2979,_2845,_2983],[[_2896,green_bay_packers,zadni_utocnik,zluty],[_2905,_2907,_2909,modry],[_2914,_2916,_2918,cerveny], [_2923,_2925,_2927,cerny],[_2932,carolina_panthers,_2936,fialovy]]) Prolog nejprve dosadí do prvků struktury libovolné hodnoty. Poté postupně dosazuje do prvků struktury jednotlivé hodnoty a vyhodnocuje části podmínky, které musí být splněny. 8
9 Další část výpisu trasování. Call: member([_2995,_2997,obrance,zluty],[[_2896,green_bay_packers,zadni_utocnik,zluty],[_2905,_2907,_2909,modry], [_2914,dallas_cowboys,krajni_utocnik,cerveny],[samuel,_2925,_2845,cerny],[_2932,carolina_panthers,_2936,fialovy]]) %zjišťování, zda [_2995,_2997,obrance,zluty] může být prvkem struktury, zjišťování probíhá pomocí predikátu member, který využívá rekurze Call: member([_2995,_2997,obrance,zluty],[[_2905,_2907,_2909,modry],[_2914,dallas_cowboys,krajni_utocnik,cerveny],[samuel,_2925,_2845,cerny], [_2932,carolina_panthers,_2936,fialovy]]) Call: member([_2995,_2997,obrance,zluty],[[_2914,dallas_cowboys,krajni_utocnik,cerveny],[samuel,_2925,_2845,cerny],[_2932,carolina_panthers,_2936,fialovy]]) Call: member([_2995,_2997,obrance,zluty],[[samuel,_2925,_2845,cerny],[_2932,carolina_panthers,_2936,fialovy]]) Call: member([_2995,_2997,obrance,zluty],[[_2932,carolina_panthers,_2936,fialovy]]) Call: member([_2995,_2997,obrance,zluty],[]) %poslední volání predikátu member v rámci rekurze Fail: member([_2995,_2997,obrance,zluty],[]) %predikát selhal, prvek [_2995,_2997,obrance,zluty] není prvkem struktury, která bude na konci řešením úlohy Fail: member([_2995,_2997,obrance,zluty],[[_2932,carolina_panthers,_2936,fialovy]]) Fail: member([_2995,_2997,obrance,zluty],[[samuel,_2925,_2845,cerny],[_2932,carolina_panthers,_2936,fialovy]]) Fail: member([_2995,_2997,obrance,zluty],[[_2914,dallas_cowboys,krajni_utocnik,cerveny],[samuel,_2925,_2845,cerny],[_2932,carolina_panthers,_2936,fialovy]]) Fail: member([_2995,_2997,obrance,zluty],[[_2905,_2907,_2909,modry],[_2914,dallas_cowboys,krajni_utocnik,cerveny],[samuel,_2925,_2845,cerny], [_2932,carolina_panthers,_2936,fialovy]]) %konec testování zda [_2995,_2997,obrance,zluty] je prvkem sktury, testování zkončilo neúspěšně 7 Zdroje informací [1] Prolog (programovací jazyk) - Wikipedie, otevřená encyklopedie [online] [cit ] < %C3%AD_jazyk%29> 9
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
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
Logické programování I
Logické programování I PROLOG Program popisuje "svět" Prologu = databáze faktů a pravidel (tzv. klauzulí). fakta: predikát(arg1, arg2,...argn). cíle:?- predikát(arg1, arg2,...argn). pravidla: hlava :-
Programovací jazyk Prolog
Programovací jazyk Prolog Logické programování Šárka Vavrečková Ústav informatiky, Filozoficko-přírodovědecká fakulta Slezské univerzity v Opavě sarka.vavreckova@fpf.slu.cz 1. prosince 2008 Prolog Co je
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
Prolog 1-1. Rodinné vztahy pomocí Prologu:
Prolog 1-1 - Prolog znamená programování v logice - namísto otázky jak se má získat určitá hodta se ptáme co platí mezi objekty - vhodný jazyk pro úlohy kde nás zajímají vztahy mezi objekty - namísto definic
Domény. Petr Štěpánek. S využitím materialu Krysztofa R. Apta
Domény Petr Štěpánek S využitím materialu Krysztofa R. Apta 2006 Logické programování 10 1 Typy programů v čistém Prologu je možné uspořádat podle různých pohledů. Zajímavá je charakteristika podle domén,
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ý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ý
Funkcionální programování. Kristýna Kaslová
Funkcionální programování Kristýna Kaslová Historie Alonzo Church (30. léta) Netypovaný lambda kalkul Základ prvních funkcionálních jazyků Jeho konstrukce i v mnoha současných programovacích jazycích (Python)
1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:
1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.
1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:
1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.
Programování v čistém Prologu
Programování v čistém Prologu Petr Štěpánek S využitím materiálu Krysztofa R. Apta 2006 Logické programování 9 1 Ukázali jsme, že logické programy mohou sloužit k výpočtům. Volně řečeno, logiské programz
IB015 Neimperativní programování. Neimperativní programování v Prologu. Jiří Barnat
IB015 Neimperativní programování Neimperativní programování v Prologu Jiří Barnat Logické programování a Prolog IB015 Neimperativní programování 09 str. 2/35 Logické programování Deklarativní programovací
Základní pojmy matematické logiky
KAPITOLA 1 Základní pojmy matematické logiky Matematická logika se zabývá studiem výroků, jejich vytváření a jejich pravdivostí. Základním kamenem výrokové logiky jsou výroky. 1. Výroková logika Co je
Negativní informace. Petr Štěpánek. S použitím materiálu M.Gelfonda a V. Lifschitze. Logické programování 15 1
Negativní informace Petr Štěpánek S použitím materiálu M.Gelfonda a V. Lifschitze 2009 Logické programování 15 1 Negace jako neúspěch Motivace: Tvrzení p (atomická formule) neplatí, jestliže nelze odvodit
4.2 Syntaxe predikátové logiky
36 [070507-1501 ] 4.2 Syntaxe predikátové logiky V tomto oddíle zavedeme syntaxi predikátové logiky, tj. uvedeme pravidla, podle nichž se tvoří syntakticky správné formule predikátové logiky. Význam a
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ÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu
VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632
Místo pojmu výroková formule budeme používat zkráceně jen formule. Při jejich zápisu
VÝROKOVÁ LOGIKA Matematická logika se zabývá studiem výroků, jejich vytváření a jejich pravdivostí. Základním kamenem výrokové logiky jsou výroky. Co je výrok nedefinujejme, pouze si řekneme, co si pod
Výroková a predikátová logika - III
Výroková a predikátová logika - III Petr Gregor KTIML MFF UK ZS 2014/2015 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - III ZS 2014/2015 1 / 21 Výroková logika Horn-SAT Horn-SAT Jednotková
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ý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
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é
Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:
Čtvrtek 8 prosince Pascal - opakování základů Struktura programu: 1 hlavička obsahuje název programu, použité programové jednotky (knihovny), definice konstant, deklarace proměnných, všechny použité procedury
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ý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
1. Matematická logika
Moderní technologie ve studiu aplikované fyziky CZ.1.07/2.2.00/07.0018 1. Matematická logika Základem každé vědy (tedy i matematiky i fyziky) je soubor jistých znalostí. To, co z těchto izolovaných poznatků
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
Výroková a predikátová logika - II
Výroková a predikátová logika - II Petr Gregor KTIML MFF UK ZS 2017/2018 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - II ZS 2017/2018 1 / 17 Předběžnosti Základní pojmy n-ární relace a funkce
Matematická logika. Rostislav Horčík. horcik
Matematická logika Rostislav Horčík horcik@math.feld.cvut.cz horcik@cs.cas.cz www.cs.cas.cz/ horcik Rostislav Horčík (ČVUT FEL) Y01MLO Letní semestr 2007/2008 1 / 20 Predikátová logika Motivace Výroková
Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky
Vyučovací hodina 1vyučovací hodina: Opakování z minulé hodiny Nová látka Procvičení nové látky Shrnutí 5 min 20 min 15 min 5 min 2vyučovací hodiny: Opakování z minulé hodiny Nová látka Procvičení nové
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ý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
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í
24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1
24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE AUTOR DOKUMENTU: MGR. MARTINA SUKOVÁ DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 UČIVO: STUDIJNÍ OBOR: PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) INFORMAČNÍ TECHNOLOGIE
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
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
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.
Logické programování
30. října 2012 Osnova Principy logického programování 1 Principy logického programování 2 3 1 Principy logického programování 2 3 Paradigmata programování Strukturované programování Procedurální programování
Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)
Programovací jazyky Programovací jazyky nižší assembler (jazyk symbolických instrukcí) vyšší imperativní (procedurální) Pascal, C/C++, Java, Basic, Python, php neimperativní (neprocedurální) Lisp, Prolog
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
- speciální symboly + - * / =., < > <> <= >= a další. Klíčová slova jsou chráněnými útvary, které nelze použít ve významu identifikátorů.
Základní symboly - písmena A B C Y Z a b c y z - číslice 0 1 2 9 - speciální symboly + - * / =., < > = a další - klíčová slova and array begin case const a další Klíčová slova jsou chráněnými útvary,
Modely Herbrandovské interpretace
Modely Herbrandovské interpretace Petr Štěpánek S využitím materialu Krysztofa R. Apta 2006 Logické programování 8 1 Uvedli jsme termové interpretace a termové modely pro logické programy a také nejmenší
Od Aristotela k Prologu
JIHOČESKÁ UNIVERZITA v ČESKÝCH BUDĚJOVICÍCH PEDAGOGICKÁ FAKULTA KATEDRA INFORMATIKY Od Aristotela k Prologu František Sedláček 2010 František Sedláček, Pedagogická fakulta Jihočeská Univerzita v Č.Budějovicích
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
Operátory. Základy programování 1 Martin Kauer (Tomáš Kühr)
Operátory Základy programování 1 Martin Kauer (Tomáš Kühr) Organizační poznámky Formátujte kód přehledně! Pomůžete sobě i mně. Spusťte si vaše programy a zkuste různé vstupy! Pokud program nedává správné
Algoritmizace a programování
Algoritmizace a programování Řídicí struktury jazyka Java Struktura programu Příkazy jazyka Blok příkazů Logické příkazy Ternární logický operátor Verze pro akademický rok 2012/2013 1 Struktura programu
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)
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
Sémantika výrokové logiky. Alena Gollová Výroková logika 1/23
Výroková logika Alena Gollová Výroková logika 1/23 Obsah 1 Formule výrokové logiky 2 Alena Gollová Výroková logika 2/23 Formule výrokové logiky Výrok je oznamovací věta, o jejíž pravdivosti lze rozhodnout.
Zadání soutěžních úloh
Zadání soutěžních úloh Kategorie žáci Soutěž v programování 24. ročník Krajské kolo 2009/2010 15. až 17. dubna 2010 Úlohy můžete řešit v libovolném pořadí a samozřejmě je nemusíte vyřešit všechny. Za každou
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)
klauzulí deklarativní (specifikace programu je přímo programem) popel, glum & nepil 1/18
IB101, log programování, Prolog Logické programování logický program: libovolná konečná množina programových Hornových klauzulí odvozování (dokazování) cílů založeno na SLD-rezoluci deklarativní (specifikace
Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)
Programovací jazyky Programovací jazyky nižší assembler (jazyk symbolických instrukcí) vyšší imperativní (procedurální) Pascal, C/C++, Java, Basic, Python, php neimperativní (neprocedurální) Lisp, Prolog
Logické programování
Logické programování Petr Štěpánek S využitím materialu Krysztofa R. Apta 2006 Logické programování 1 1 Prolog a Logické programování Prolog vznikl jako programovací jazyk v Marseille 1970, jeho autorem
1. Matematická logika
MATEMATICKÝ JAZYK Jazyk slouží člověku k vyjádření soudů a myšlenek. Jeho psaná forma má tvar vět. Každá vědní disciplína si vytváří svůj specifický jazyk v úzké návaznosti na jazyk živý. I matematika
Úvod. Programovací paradigmata
.. Úvod. Programovací paradigmata Programovací techniky doc. Ing. Jiří Rybička, Dr. ústav informatiky PEF MENDELU v Brně rybicka@mendelu.cz Cíl: programování efektivně a bezpečně Programovací techniky
1 Prolog. 1.1 Histroie. 1.2 Základní rysy Prologu. 1.3 Databáze Prologu
1 Prolog Název jazyka je odvozen ze dvou slov: PROgramování v LOGice. Tím současně říkáme, z jakých principů jazyk vychází. Jeho úspěšné používání v praxi dalo základ nové disciplíně matematické informatiky-
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
Stefan Ratschan. Fakulta informačních technologíı. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
Logika pro každodenní přežití Stefan Ratschan Katedra číslicového návrhu Fakulta informačních technologíı České vysoké učení technické v Praze Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
Využití principů, ale vlastní naprogramování řešících
Programování Cvičení 1 s omezujícími podmínkami Roman Barták Katedra teoretické informatiky a matematické logiky roman.bartak@mff.cuni.cz http://ktiml.mff.cuni.cz/~bartak Využití CSP Využití principů,
DSL manuál. Ing. Jan Hranáč. 27. října 2010. V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v
DSL manuál Ing. Jan Hranáč 27. října 2010 V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v současné době krátký) seznam vestavěných funkcí systému. 1 Vytvoření nového dobrodružství Nejprve
Operátory. Základy programování 1 Tomáš Kühr
Operátory Základy programování 1 Tomáš Kühr Operátory a jejich vlastnosti Základní konstrukce (skoro) každého jazyka Z daných operandů vytvoří výsledek, který je možné dále využívat Arita udává počet operandů
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 Algoritmus Daniela Szturcová Tento
Sekvenční a podmíněné provádění
Programování v Bourne shellu Sekvenční a podmíněné provádění Sekvenční provádění znamená vykonávání jednoho příkazu za druhým bez ohledu na okolnosti. Pro oddělení příkazů při sekvenčním provádění se používá
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á
7 Jemný úvod do Logiky
7 Jemný úvod do Logiky Základem přesného matematického vyjadřování je správné používání (matematické) logiky a logických úsudků. Logika jako filozofická discipĺına se intenzivně vyvíjí už od dob antiky,
Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Podmíněný příkaz
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 Podmíněný příkaz
PHP - úvod. Kapitola seznamuje se základy jazyka PHP a jeho začleněním do HTML stránky.
PHP - úvod Kapitola seznamuje se základy jazyka PHP a jeho začleněním do HTML stránky. Klíčové pojmy: PHP, webový prohlížeč, HTTP, FTP Základní pojmy služba WWW = 1990 první prototyp serveru, od roku 1994
PROGRAMOVÁNÍ V SHELLU
PROGRAMOVÁNÍ V SHELLU Prostředí, jazyk, zdrojový kód chceme-li posloupnost jistých příkazů používat opakovaně, případně z různých míst adresářové struktury, můžeme tuto posloupnost uložit souboru, který
Algoritmizace, základy programování, VY_32_INOVACE_PRG_ALGO_01
Anotace sady: Algoritmizace, základy programování, VY_32_INOVACE_PRG_ALGO_01 Autor: Blanka Sadovská Klíčová slova: Algoritmus, proměnná, diagram Stupeň a typ vzdělávání: gymnaziální vzdělávání, 3. ročník
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
Sada 1 - PHP. 03. Proměnné, konstanty
S třední škola stavební Jihlava Sada 1 - PHP 03. Proměnné, konstanty Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284 Šablona: III/2 - inovace a
PSK3-9. Základy skriptování. Hlavička
PSK3-9 Název školy: Autor: Anotace: Vyšší odborná škola a Střední průmyslová škola, Božetěchova 3 Ing. Marek Nožka Základy skriptování v unixovém shellu Vzdělávací oblast: Informační a komunikační technologie
Kódy pro formát čísla
Kódy pro formát čísla y pro formát čísel se mohou skládat až z tří částí oddělených středníkem (;). Pokud formátovací kód obsahuje dvě části, první část se použije pro kladné hodnoty a nulu, druhá část
Tableaux metody. Jiří Vyskočil 2011
Tableaux metody Jiří Vyskočil 2011 Tableau [tabló] metoda Tableau metoda je další oblíbená metoda užívaná pro automatické dokazování vět v predikátové logice, ale i v dalších (modálních, temporálních,
Ú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
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,
Tabulkový procesor. Základní rysy
Tabulkový procesor Tabulkový procesor je počítačový program zpracovávající data uložená v buňkách tabulky. Program umožňuje použití vzorců pro práci s daty a zobrazuje výsledné hodnoty podle vstupních
Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace
Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace Číslo projektu Číslo materiálu Autor Průřezové téma Předmět CZ.1.07/1.5.00/34.0565 VY_32_INOVACE_284_Programovací_jazyky
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
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
VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu
VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632
PODPROGRAMY PROCEDURY A FUNKCE
PODPROGRAMY PROCEDURY A FUNKCE Programy bez podprogramů Příklady: a) Napište program, který na obrazovku nakreslí čáru složenou ze znaků pomlčka. program Cara; b) Napište program, který na obrazovku nakreslí
u odpovědí typu A, B, C, D, E: Obsah: jako 0) CLP Constraint Logic Programming
Průběžná písemná práce Průběžná písemná práce Obsah: Průběžná písemná práce Aleš Horák E-mail: hales@fi.muni.cz http://nlp.fi.muni.cz/uui/ délka pro vypracování: 25 minut nejsou povoleny žádné materiály
VISUAL BASIC. Práce se soubory
VISUAL BASIC Práce se soubory Práce se soubory 1/2 2 Vstupní data pro programy bývají uloženy do souborů Vstupy pro výpočet, nastavení vzhledu aplikace Výsledky práce programu je potřeba uchovat uložit
2 Datové typy v jazyce C
1 Procedurální programování a strukturované programování Charakteristické pro procedurální programování je organizace programu, který řeší daný problém, do bloků (procedur, funkcí, subrutin). Původně jednolitý,
Objektově orientované programování v jazyce Python
Objektově orientované programování v jazyce Python Základní pojmy objektově orientovaného programování Objekt vychází z reálného světa. Má dva charakteristické rysy. Všechny objekty mají stav Všechny objekty
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
ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA PROVOZNĚ EKONOMICKÁ FAKULTA KATEDRA INFORMAČNÍHO INŽENÝRSTVÍ
ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA PROVOZNĚ EKONOMICKÁ FAKULTA KATEDRA INFORMAČNÍHO INŽENÝRSTVÍ Teorie ICT Zápočtová práce Jídelní lístek Zdeněk Styblík 1. ročník INFONK Obsah Obsah...2 Popis zvoleného problému...3
1/1 ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA V PRAZE PROVOZNĚ EKONOMICKÁ FAKULTA PŘIJÍMACÍ ŘÍZENÍ 2017/2018
ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA V PRAZE PROVOZNĚ EKONOMICKÁ FAKULTA PŘIJÍMACÍ ŘÍZENÍ 2017/2018 Informační technologie 1 - Doporučená doba zpracování: 40 minut 1) Termín DCL v relačně databázové technologii
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á,
Vlastnosti algoritmu. elementárnost. determinovanost. rezultativnost. konečnost. hromadnost. efektivnost
Programování Algoritmus návod na vykonání činnosti, který nás od (měnitelných) vstupních dat přivede v konečném čase k výsledku přesně definovaná konečná posloupnost činností vedoucích k výsledku (postup,
IB015 Neimperativní programování. Seznamy, Typy a Rekurze. Jiří Barnat Libor Škarvada
IB015 Neimperativní programování Seznamy, Typy a Rekurze Jiří Barnat Libor Škarvada Sekce IB015 Neimperativní programování 02 str. 2/36 Uspořádané n-tice a seznamy Programování a data IB015 Neimperativní
Základy logiky a teorie množin
Pracovní text k přednášce Logika a teorie množin (I/2007) 1 1 Struktura přednášky Matematická logika 2 Výroková logika Základy logiky a teorie množin Petr Pajas pajas@matfyz.cz Predikátová logika 1. řádu
Stručný návod k programu Octave
Stručný návod k programu Octave Octave je interaktivní program vhodný pro technické výpočty. Je nápadně podobný programu MATLAB, na rozdíl od něho je zcela zadarmo. Jeho domovská vebová stránka je http://www.octave.org/,
Matematická indukce, sumy a produkty, matematická logika
Matematická indukce, sumy a produkty, matematická logika 8.9. -.0.009 Matematická indukce Jde o následující vlastnost přirozených čísel: Předpokládejme:. Nějaké tvrzení platí pro.. Platí-li tvrzení pro
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 Algoritmus Daniela Szturcová Tento
Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false
Logické operace Datový typ bool může nabýt hodnot: o true o false Relační operátory pravda, 1, nepravda, 0, hodnoty všech primitivních datových typů (int, double ) jsou uspořádané lze je porovnávat binární