Klasifikace textu do kategorií spam/ne-spam
|
|
- Natálie Musilová
- před 8 lety
- Počet zobrazení:
Transkript
1 Západočeská univerzita v Plzni Fakulta aplikovaných věd Klasifikace textu do kategorií spam/ne-spam KIV/PC 2. ledna 2015 Marek Zimmermann A12B0215P zimmma@students.zcu.cz
2 Obsah 1 Zadání 2 2 Analýza úlohy Klasifikační algoritmy Datové struktury Popis implementace Dictionary Item Fungování programu Uživatelská příručka Překlad programu Spuštění programu Závěr 12
3 1 Zadání Naprogramujte v ANSI C přenositelnou konzolovou aplikaci, která bude rozhodovat, zda úsek textu (textový soubor) je nebo není spam. Aplikace bude přijímat z příkazové řádky sedm parametrů: První dva parametry budou vzor jména a počet trénovacích souborů obsahujících nevyžádané zprávy (tzv. spam). Třetí a čtvrtý parametr budou vzor jména a počet trénovacích souborů obsahujících vyžádané zprávy (tzv. ham). Pátý a šestý parametr budou vzor jména a počet testovacích souborů. Sedmý parametr představuje jméno výstupního textového souboru, který bude po dokončení činnosti Vaší aplikace obsahovat výsledky klasifikace testovacích souborů. Program se bude spouštět příkazem: classify.exe spam spam-cnt ham ham-cnt test test-cnt out-file Symboly spam, ham a test představují vzory jména vstupních souborů. Symboly spam-cnt, ham-cnt a test-cnt představují počty vstupních souborů. Vstupní soubory mají následující pojmenování: vzorn, kde N je celé číslo z intervalu 1; N. Přípona všech vstupních souborů je.txt, přípona není součástí vzoru. Váš program tedy může být během testování spuštěn například takto:...\>classify.exe spam 10 ham 20 test 50 result.txt Výsledkem činnosti programu bude textový soubor, který bude obsahovat seznam testovaných souborů a jejich klasifikaci. Pokud nebude na příkazové řádce uvedeno právě sedm argumentů, vypište chybové hlášení a stručný návod k použití programu v angličtině podle běžných zvyklostí (viz např. ukázková semestrální práce na webu předmětu Programování v jazyce C). Vstupem programu jsou pouze argumenty na příkazové řádce interakce s uživatelem pomocí klávesnice či myši v průběhu práce programu se neočekává. Hotovou práci odevzdejte v jediném archivu typu ZIP prostřednictvím automatického odevzdávacího a validačního systému. Archiv necht obsahuje všechny zdrojové soubory potřebné k přeložení programu, makefile pro Windows i Linux (pro překlad v Linuxu připravte soubor pojmenovaný makefile a pro Windows makefile.win) a dokumentaci ve formátu PDF vytvořenou v typografickém systému TEX, resp. L A TEX. Bude-li některá z částí chybět, kontrolní skript Vaši práci odmítne 1. 1 Úplné znění zadání dostupné na webové adrese předmětu KIV/PC: 2
4 2 Analýza úlohy Cílem programu je klasifikovat danou množinu e mailů. Klasifikovat budeme do 2 kategorií: ham (vyžádaná pošta) nebo spam (nevyžádaná pošta). Požadovaná přesnost klasifikace je alespoň 90% 2. Při analýze úlohy pak bude důležitá volba klasifikačního algoritmu a struktury, kterou budeme využívat pro trénování a posléze klasifikaci. 2.1 Klasifikační algoritmy Pro klasifikaci e mailů lze využít několika klasifikátorů: Support Vector Machine, naivní Bayesův klasifikátor, klasifikátor Maximální entropie a další. Support Vector Machines (SVM) je metoda strojového učení, která v úloze klasifikace hledá nadrovinu, která v prostoru příznaků rozděluje data od sebe tak, aby minimální vzdálenost bodů z n množin byla maximální (viz obrázek 1). Toto platí v případě, kdy jsou od sebe množiny lineárně separovatelné. Pokud tomu tak není, využívá se tzv. jádrová funkce (kernel function, nebo také kernel transformation), která převede lineárně neseparovatelnou úlohu na lineárně separovatelnou pomocí projekcí do vyšší dimenze, než jsou vstupní data [1]). Obrázek 1: Binární SVM klasifikátor, Zdroj: ml/introduction_to_svm/introduction_to_svm.html Naivní Bayesův klasifikátor (NBC) je pravděpodobnostní klasifikátor, založený na aplikaci tzv. Bayesovy věty a předpokladu nezávislosti mezi danými příznaky (což v realitě většinou neplatí proto naivní ). Mezi jeho klady patří schopnost inkrementálního učení (je možné ho po testování dotrénovat pomocí nových dat) a také je vhodný pro klasifikaci velkého souboru dat díky předpokladu nezávislosti mezi danými příznaky tato vlastnost totiž zjednodušuje vzorec potřebný pro výpočet pravděpodobnosti. Jeho klasifikační úspěšnost je výrazně závislá na kvalitě trénovací množiny. Grafická ukázka klasifikace bodu podle jeho polohy je zachycena v obrázku 2. Z těchto dvou algoritmů, které patří mezi nejpoužívanější v oblasti klasifikace e mailů, jsem se rozhodl zvolit NBC, nebot s ním lze dosáhnout požadované úspěšnosti, byl doporučen v zadání práce a přišel mi jednodušší na implementaci. 2 Tedy například ze 100 klasifikovaných dokumentů jich musí být správně klasifikováno nejméně 90. 3
5 Obrázek 2: NBC klasifikace bílého bodu na základě polohy, Zdroj: Datové struktury Pro daný klasifikátor je pak třeba navrhnout vhodnou datovou strukturu, která bude uchovávat výsledky trénování a posléze bude využita pro klasifikaci testovacích e mailů. První strukturou, která by mohla být použita, je binární vyhledávací strom (BST Binary search tree). Ten se skládá z binárního stromu, tj. orientovaného grafu s jedním bodem jakožto počátkem (tzv. kořen), z něhož lze najít cestu do jakéhokoliv vrcholu, přičemž každý vrchol má maximálně dva potomky a právě jednoho předka (pouze kořen žádného nemá). Binární vyhledávací strom se od binárního stromu liší tak, že klíče, přiřazené každému uzlu, jsou uspořádány tak, že hodnota levého podstromu uzlu je menší než hodnota uzlu a hodnota pravého podstromu je naopak vyšší než hodnota uzlu (viz obrázek 3). Obrázek 3: Ukázka jednoduchého BST, Zdroj: http: //cs.wikipedia.org/wiki/bin%c3%a1rn%c3%ad_vyhled%c3%a1vac%c3%ad_strom Druhou strukturou vhodnou k použití je hashovací tabulka (hash table). Její princip spočívá v tom, že pro data, která chceme uložit, získáme klíč pomocí tzv. hashovací funkce a data pak podle klíče uložíme. Klíč poté rovněž slouží k nalezení dat v dané tabulce. Jako struktura pro uložení tabulky se nejčastěji používá pole. Při vkládání dat může díky přiřazení stejného klíče různým datům nastat kolize, kterou lze řešit několika způsoby. Nejjednodušším řešením je tzv. zřetězení záznamů (separate chaining), kdy každá položka tabulky je seznamem prvků se stejným klíčem. Dalším způsobem pak může být otevřená adresace (nebo také otevřené rozptylování, anglicky open addressing), kde data, která by měla být umístěna na již obsazené místo, jsou umístěna na jiné volné místo, které určí zvolený algoritmus. Rozdíl je zobrazen na obrázku 4. Další strukturou, která by mohla být vhodná pro uchovávání dat, je trie. Strukturou je velmi podobná BVS, avšak vrchol zde nemusí mít nejvýše dva potomky (může jich mít tolik, kolik potřebujeme) a jako klíč se zde hojně využívají řetězce (popř. znaky z jednotlivých 4
6 Obrázek 4: Zřetězení záznamů (vlevo) a otevřená adresace (vpravo) u hashovací tabulky, Zdroj: řetězců). Všichni následníci uzlu mají společný prefix, který je shodný s řetězcem přiřazeným k danému uzlu. Kořen je asociovaný s prázdným řetězcem. Každý uzel si s sebou nese informaci, zda je nebo není koncovým písmenem nějakého slova. Trie bývá velmi často používána pro uložení slovníků, kde vyniká kromě rychlosti i v příznivých nárocích na pamět, a to tím více, čím více je ve slovníku slov se stejným prefixem. Na obrázku 5 můžeme vidět uložení daných slov ze slovníku tak, že pro slova s celkovým součtem osmnácti znaků stačí v trie pouze jedenáct uzlů. Obrázek 5: Trie pro slova A, to, tea, ted, ten, i, in a inn, Zdroj: U námi zvolené struktury klademe důraz zejména na operace vložení a hledání prvku, nebot při trénování budeme do struktury pouze vkládat, nebo ji hledat (abychom jí upravili) a při klasifikaci již pouze hledat (pro čtení uložených informací). V tabulce 1 lze vidět, že dobré výsledky v těchto operacích by měla podávat zejména hashtable[2] a trie. V nejhorším případě má u operací vkládání a hledání BVS a hashtable složitost O(n), kde n je počet prvků ve stromu či tabulce a trie O(m), kde m je počet uzlů vedoucí k prvku (tedy počet písmen ve slově). Zde by tedy měla být vítězem trie[3]. Ze dvou vhodných kandidátů jsem se nakonec rozhodl zvolit hashovací tabulku se zřetě- 5
7 Operace BVS Hashtable Trie Hledání O(log n) O(1) O(m) Vkládání O(log n) O(n) O(m) Tabulka 1: Průměrná asymptotická složitost operací u BVS, hashtable a trie zením záznamů jakožto dobrý kompromis mezi pamět ovou a výpočetní náročností a jednoduchostí implementace. 6
8 3 Popis implementace 3.1 Dictionary Struktura Dictionary (viz zdrojový kód 1) v sobě uchovává slova ve formě hashtabulky (pole ukazatelů na strukturu Item o velikosti DICT ARRAY SIZE 3 ), počet zpracovaných slov ze spamových (spam words) a hamových (ham words) souborů včetně duplicit, počet unikátních zpracovaných slov z obou kategorií (unique words) a počet zpracovaných spamových a hamových souborů (spam files a ham files). Zdrojový kód 1: Struktura Dictionary typedef struct { Item words [ DICT ARRAY SIZE ] ; int spam words ; int ham words ; int unique words ; int s p a m f i l e s ; int h a m f i l e s ; } Dictionary ; 3.2 Item Struktura Item (viz zdrojový kód 2) uchovává dané slovo (word), informace o počtu výskytů daného slova ve spamu (spam occur) a v hamu (ham occur), hodnoty pravděpodobnosti výskytu slova v dané kategorii (spam prob a ham prob), a protože je tato struktura koncipována zároveň jako položka spojového seznamu, uchovává i ukazatel na další prvek (next). typedef struct ITEM { char word ; Zdrojový kód 2: Struktura Item int spam occur ; int ham occur ; double spam prob ; double ham prob ; } Item ; struct ITEM next ; 3 Konkrétní velikost pole popsána v sekci 5 7
9 3.3 Fungování programu Program nejprve zkontroluje vstupní parametry programu jejich správný počet (musí jich být přesně sedm) a zda je druhý, čtvrtý a šestý parametr celé číslo. V případě, že některá z kontrol selže, program vypíše chybu, nápovědu a ukončí se. Pokud kontrola proběhla v pořádku, program se pokusí alokovat místo pro slovník (strukturu Dictionary). V případě neúspěšného pokusu se zobrazí výpis chyby a program se ukončí. Pokud do této chvíle proběhlo vše v pořádku, začíná trénování. E maily jsou předzpracovány do souborů s příponou.txt tak, že jeden soubor je roven jednomu e mailu. Soubor se pak skládá ze slov oddělených mezerou. Všechna slova jsou na jedné řádce, konec řádky je tedy i koncem souboru 4. Program postupně otevře každý soubor, načte jeho obsah do bufferu a postupně z něj zpracuje každé slovo. Právě zpracovávané slovo zkusí najít ve slovníku. V případě jeho nalezení zvýší o jedna potřebné čítače. Pokud slovo nenajde, pokusí se ho vytvořit a uložit do slovníku. Pokud dojde k chybě u zpracování souboru, program vypíše chybu a její stručný popis a ukončí se. Tento postup byl zvolen, protože pokud by došlo k chybnému natrénování díky chybějícím datům, mohlo by nastat výrazné ovlivnění klasifikace testovacích souborů. Jako hashovací funkce bylo zvoleno sečtení ASCII hodnot písmen daného slova modulo velikostí slovníku. Protože program pracuje ve stylu načti, natrénuj, klasifikuj, ukonči se a nevyužívá tedy jednu z vlastností NBC (viz sekce 2) schopnost inkrementálního učení můžeme ještě před samotnou klasifikací provést malou optimalizaci. Aby program nemusel pro každé slovo opakovaně počítat hodnotu pravděpodobnosti v dané kategorii, můžeme si tyto hodnoty předem vypočítat a uložit do samotné struktury daného slova 5 (viz spam prob a ham prob v podsekci 3.2). V tuto chvíli může začít klasifikace testovacích souborů. Každý testovací soubor je otevřen, jeho obsah je načten a zpracován. Standardně by se pro výpočet pravděpodobnosti, že daný soubor patří do dané kategorie, použil vzorec 1, kde P C je pravděpodobnost výskytu dané kategorie (zpracované soubory podělené všemi soubory) a P (word i C) je pravděpodobnost výskytu slova v dané kategorii. n P S = P C P (word i C) (1) i=0 Protože by zde však došlo k tzv. podtečení (ztráta přesnosti, zde díky násobení velmi malých hodnot mezi sebou), pravděpodobnosti zlogaritmujeme a sečteme (viz vzorec 2), čímž docílíme správného výsledku, nebot malé hodnoty se zde sčítají a k podtečení tak nedojde. n P s = log (P C ) + log (P (word i C)) (2) i=0 Pravděpodobnost výskytu slova v dané kategorii se spočte dle vzorce 3, kde n i je počet výskytů slova v dané kategorii zvýšený o jedna (aby v logaritmu nebyla nula), D C je celkový počet slov zpracovaný slovníkem v dané kategorii a D U je celkový počet unikátních slov zpracovaný slovníkem. P (word i C) = n i + 1 D C + D U (3) 4 Přesněji: soubory neobsahují žádný znak pro ukončení řádky, obsahují pouze znak konce souboru. 5 Výsledky provedené optimalizace viz sekce 5 8
10 Po výpočtu pravděpodobnosti souboru v obou kategoriích se dle vyšší hodnoty jedné z nich rozhodne, zda jde o spam nebo ham. Výsledky se pak zapisují do souboru, jehož název byl zadán jako sedmý parametr při spuštění. Na každý řádek souboru je zapsán jeden výsledek ve formátu: název souboru, tabulátor, H (signalizující ham) nebo S (signalizující spam) a konec řádky. Pokud se některá z částí programu nevykoná správně a program je nucen ukončit svou činnost, kromě stručného výpisu chyby získáme i návratový kód chyby. Kódy jsou rozděleny následovně: 0 program proběhl správně (bez chyb), 1 špatně zadané nebo žádné vstupní parametry, 2 problém s alokací paměti při vytváření struktury Dictionary, 3 I/O chyba (nezdařilo se otevření souboru, zápis do souboru, soubor neexistuje...), 4 jiné problémy s alokací paměti (např. struktury Item pro nové slovo) 9
11 4 Uživatelská příručka 4.1 Překlad programu Program musí být před použitím přeložen. Pro zjednodušení jsou připraveny dva makefile soubory (makefile pro Linux a makefile.win pro Windows). Oba dva vyžadují mít na daném systému zprovozněný make a gcc překladač. V Linuxu se tohoto stavu dá docílit prostým nainstalováním balíčků make a gcc 6. Ve Windows bude potřeba nainstalovat MinGW 7 nebo CygWin a (pokud to bude nutné) přidat umístění daného programu do systémové proměnné PATH. Na Linuxu můžeme program přeložit v daném adresáři příkazem: make Pokud překlad probíhá na Windows, přeložíme program pomocí: make f m a k e f i l e. win 4.2 Spuštění programu Po překladu se ve stejném adresáři objeví soubor classify.exe. Program se pouští přes konzoli v následujícím formátu: classify.exe spam spam-cnt ham ham-cnt test test-cnt out-file Prvním parametrem je vzorové jméno trénovacích spamových souborů (např pro vzor spam může být jeden ze souborů spam3.txt ). Druhým parametrem je pak počet těchto souborů. Třetím parametrem je vzorové jméno trénovacích hamových souborů, čtvrtým pak jejich počet. Pátým je vzorové jméno souborů, které mají být klasifikovány, šestým parametrem je pak jejich počet. Posledním (sedmým) parametrem je pak název souboru, do kterého se budou zapisovat výsledky klasifikace jednotlivých testovaných souborů. Na obrázku 6 lze vidět chování při spuštění s korektními parametry. Obrázek 6: Ukázka výstupu správného běhu programu Pokud jsou vstupní parametry špatné nebo při běhu nastane chyba, program stručně vypíše kde nastala chyba a ukončí svůj běh. Pokud jsou zadány chybné parametry, program 6 Překlad otestován na gcc ve verzi na operačním systému Debian GNU/Linux 8.0 (64 bit). 7 Překlad otestován za pomocí MinGW verze na operačním systému Windows 7 Professional 64 bit. 10
12 kromě výpisu problému s parametry zobrazí i nápovědu. Pro ukázku běhu programu při chybějícím trénovacím souboru viz obrázek 7. Obrázek 7: Ukázka výstupu programu, pokud chybí testovací soubor 11
13 5 Závěr Program splnil zadání, jeho úspěšnost klasifikace byla 98 % (z dodaných 200 testovaných souborů 3 ham soubory klasifikoval jako spamy a 1 spam jako ham). Časy běhu programu na Linuxu (tabulka 2) ukazují přibližně 4 až 5 % zrychlení programu vlivem optimalizace (viz sekce 3.3) a mírné urychlování běhu při zvyšování velikosti hashovací tabulky, kromě poslední hodnoty 5000, která se téměř rovnala výsledkům u velikosti Pokud se podíváme na časy běhu programu ve Windows (tabulka 3), ukazují víceméně podobný trend, pouze hodnoty u velikosti 1500 jsou neočekávaně vysoké. Pravděpodobně se na jejich výsledcích projevily služby běžící na pozadí (a to i přes to, že každá výsledná hodnota představuje průměr z 10 měření). Bohužel, hodnoty pro porovnání běhu se stejným nastavením v Linuxu a ve Windows nejsou porovnatelné, nebot při měření běhu na Windows byl omylem zapnutý debug režim (zajišt ující detailnější výpisy běhu programu), což pravděpodobně ovlivnilo výsledný čas. Časy jsou tak vzájemně porovnatelné pouze v rámci stejného systému. Dle mého názoru však nebylo ovlivnění natolik velké, aby se nedalo konstatovat, že program běžel rychleji na Linuxu. Čas běhu programu v závislosti na optimalizaci a velikosti hash tabulky Velikost hashovací tabulky Bez optimalizace 0,138 s 0,126 s 0,122 s 0,123 s S optimalizací 0,131 s 0,122 s 0,116 s 0,117 s Tabulka 2: Měření času běhu programu Linux Čas běhu programu v závislosti na optimalizaci a velikosti hash tabulky Velikost hashovací tabulky Bez optimalizace 0,280 s 0,268 s 0,274 s 0,271 s S optimalizací 0,275 s 0,271 s 0,270 s 0,270 s Tabulka 3: Měření času běhu programu Windows Program by samozřejmě mohl být ještě vylepšen. Ke kontrole parametrů by šlo přidat i kontrolu existence samotných souborů potřebných pro běh programu (tak, aby program nebyl přerušen kvůli tomuto problému uprostřed učení či klasifikace). Urychlení by mohlo přinést implementování datové struktury jakožto trie za cenu zvýšené pamět ové náročnosti, což dnes není žádný problém, nebot paměti bývá obecně více než procesorového výkonu. Pokud zůstaneme u hashovací tabulky, bylo by vhodné vymyslet algoritmus, který by její velikost vypočítal v závislosti na vstupních datech a pak ji dynamicky vytvářel. Nyní je vytvářena staticky s velikostí, která byla optimalizována pro testovací data, ale nemusí být stejně efektivní pro jiný (jinak velký) soubor dat. Zrychlení programu by také mohla přinést lepší hashovací funkce, která by rovnoměrněji zaplňovala tabulku (méně prázdných řádků a méně nebo žádné kolize na některých řádcích). Program úspěšně prošel testováním pomocí Valgrindu (nebyly detekovány žádné úniky paměti) a kontrolou pomocí Splint, který nakonec nahlásil pouze jedno varování ohledně používání funkce sprintf a radil nahrazení bezpečnější funkcí snprintf. Tuto chybu bohužel nebylo možné opravit, nebot snprintf není součástí standardu ANSI C. Program byl však konstruován tak, že by k přetečení u funkce sprintf nikdy nemělo dojít. 12
14 Reference [1] Autor: Michal Hrala, Název publikace: Automatická klasifikace dokumentů s podobným obsahem. Vydavatel: Západočeská univerzita v Plzni, Rok: 2012, URI: [2] URL: Rok: 2014, Poznámka: poslední přístup [3] URL: Rok: 2014, Poznámka: poslední přístup
Semestrální práce KIV/PC Řešení kolizí frekvencí sítě vysílačů Zdeněk Bečvář A14B0466P 10. ledna 2016
Semestrální práce KIV/PC Řešení kolizí frekvencí sítě vysílačů Zdeněk Bečvář A14B0466P 10. ledna 2016 Obsah 1 Zadání 1 2 Analýza úlohy 2 2.1 Uložení dat ze vstupního souboru................ 2 2.2 Graf
VícePokud nebude na příkazové řádce uveden právě jeden argument, vypište chybové hlášení a stručný
KIV/PC ZS 2015/2016 Zadání ZADÁNÍ SEMESTRÁLNÍ PRÁCE ŘEŠENÍ KOLIZÍ FREKVENCÍ SÍTĚ VYSÍLAČŮ VARIANTA 2 (REx) Naprogramujte v ANSI C přenositelnou 1 konzolovou aplikaci, která jako vstup načte z parametru
VíceSemestální práce z předmětu PC
A05450 ZCU ZS2006 Martin Lipinský martin@lipinsky.cz Semestální práce z předmětu PC Přebarvování souvislých oblastí 1. Zadání Naprogramujte v ANSI C přenositelnou konzolovou aplikaci, která provede v binárním
VíceSemestrální práce 2 znakový strom
Semestrální práce 2 znakový strom Ondřej Petržilka Datový model BlockFileRecord Bázová abstraktní třída pro záznam ukládaný do blokového souboru RhymeRecord Konkrétní třída záznamu ukládaného do blokového
VíceSemestrální práce z KIV/PC. Kolja Matuševský (A14B0310P)
Semestrální práce z KIV/PC Řešení kolizí frekvencí sítě vysílačů Kolja Matuševský (A14B0310P) mkolja@students.zcu.cz 10. ledna 2016 Obsah 1 Zadání 2 2 Analýza úlohy 3 2.1 Vytvoření grafu..........................
VíceDatové struktury 2: Rozptylovací tabulky
Datové struktury 2: Rozptylovací tabulky prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy
VíceAdresní vyhledávání (přímý přístup, zřetězené a otevřené rozptylování, rozptylovací funkce)
13. Metody vyhledávání. Adresní vyhledávání (přímý přístup, zřetězené a otevřené rozptylování, rozptylovací funkce). Asociativní vyhledávání (sekvenční, binárním půlením, interpolační, binární vyhledávací
VíceAlgoritmy a struktury neuropočítačů ASN P9 SVM Support vector machines Support vector networks (Algoritmus podpůrných vektorů)
Algoritmy a struktury neuropočítačů ASN P9 SVM Support vector machines Support vector networks (Algoritmus podpůrných vektorů) Autor: Vladimir Vapnik Vapnik, V. The Nature of Statistical Learning Theory.
VíceZadání druhého zápočtového projektu Základy algoritmizace, 2005
Zadání druhého zápočtového projektu Základy algoritmizace, 2005 Jiří Dvorský 2 května 2006 Obecné pokyny Celkem je k dispozici 8 zadání příkladů Každý student obdrží jedno zadání Vzhledem k tomu, že odpadly
VíceIterační výpočty. Dokumentace k projektu č. 2 do IZP. 24. listopadu 2004
Dokumentace k projektu č. 2 do IZP Iterační výpočty 24. listopadu 2004 Autor: Kamil Dudka, xdudka00@stud.fit.vutbr.cz Fakulta Informačních Technologií Vysoké Učení Technické v Brně Obsah 1. Úvod...3 2.
VíceAlgoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010
Dynamické programování Jiří Vyskočil, Marko Genyg-Berezovskyj 2010 Rozděl a panuj (divide-and-conquer) Rozděl (Divide): Rozděl problém na několik podproblémů tak, aby tyto podproblémy odpovídaly původnímu
VíceAlgoritmy a datové struktury
Algoritmy a datové struktury Stromy 1 / 32 Obsah přednášky Pole a seznamy Stromy Procházení stromů Binární stromy Procházení BS Binární vyhledávací stromy 2 / 32 Pole Hledání v poli metodou půlení intervalu
VíceAlgoritmy I, složitost
A0B36PRI - PROGRAMOVÁNÍ Algoritmy I, složitost České vysoké učení technické Fakulta elektrotechnická v 1.01 Rychlost... Jeden algoritmus (program, postup, metoda ) je rychlejší než druhý. Co ta věta znamená??
VíceTypy souborů ve STATISTICA. Tento článek poslouží jako přehled hlavních typů souborů v programu
StatSoft Typy souborů ve STATISTICA Tento článek poslouží jako přehled hlavních typů souborů v programu STATISTICA, ukáže Vám jejich možnosti a tím Vám dovolí využívat program efektivněji. Jistě jste již
Vícebin arn ı vyhled av an ı a bst Karel Hor ak, Petr Ryˇsav y 23. bˇrezna 2016 Katedra poˇ c ıtaˇ c u, FEL, ˇ CVUT
binární vyhledávání a bst Karel Horák, Petr Ryšavý 23. března 2016 Katedra počítačů, FEL, ČVUT Příklad 1 Naimplementujte binární vyhledávání. Upravte metodu BinarySearch::binarySearch. 1 Příklad 2 Mysĺım
VíceBinární vyhledávací stromy pokročilé partie
Binární vyhledávací stromy pokročilé partie KMI/ALS lekce Jan Konečný 30.9.204 Literatura Cormen Thomas H., Introduction to Algorithms, 2nd edition MIT Press, 200. ISBN 0-262-5396-8 6, 3, A Knuth Donald
VíceAVL stromy. pro každý uzel u stromu platí, že rozdíl mezi výškou jeho levého a pravého podstromu je nejvýše 1 stromy jsou samovyvažující
Stromy 2 AVL AVL stromy jména tvůrců stromů: dva Rusové Adelson-Velskii, Landis vyvážené binární stromy pro každý uzel u stromu platí, že rozdíl mezi výškou jeho levého a pravého podstromu je nejvýše 1
VíceImplementace numerických metod v jazyce C a Python
Fakulta elektrotechnická Katedra matematiky Dokumentace k semestrální práci Implementace numerických metod v jazyce C a Python 2013/14 Michal Horáček a Petr Zemek Vyučující: Mgr. Zbyněk Vastl Předmět:
VíceStromy. Strom: souvislý graf bez kružnic využití: počítačová grafika seznam objektů efektivní vyhledávání výpočetní stromy rozhodovací stromy
Stromy úvod Stromy Strom: souvislý graf bez kružnic využití: počítačová grafika seznam objektů efektivní vyhledávání výpočetní stromy rozhodovací stromy Neorientovaný strom Orientovaný strom Kořenový orientovaný
VíceB3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11
333LP - lgoritmy a programování - Zkouška z předmětu 333LP Jméno Příjmení Už. jméno Marek oháč bohacm11 Zkouškový test Otázka 1 Jaká je hodnota proměnné count po vykonání následujícího kódu: data=[4,4,5,5,6,6,6,7,7,7,7,8,8]
Více1. 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.
VíceÚloha - rozpoznávání číslic
Úloha - rozpoznávání číslic Vojtěch Franc, Tomáš Pajdla a Tomáš Svoboda http://cmp.felk.cvut.cz 27. listopadu 26 Abstrakt Podpůrný text pro cvičení předmětu X33KUI. Vysvětluje tři způsoby rozpoznávání
Více2 Datové struktury. Pole Seznam Zásobník Fronty FIFO Haldy a prioritní fronty Stromy Hash tabulky Slovníky
Pole Seznam Zásobník Fronty FIFO Haldy a prioritní fronty Stromy Hash tabulky Slovníky 25 Pole Datová struktura kolekce elementů (hodnot či proměnných), identifikovaných jedním nebo více indexy, ze kterých
VíceDatový typ prioritní fronta Semestrální práce z předmětu 36PT
Datový typ prioritní fronta Semestrální práce z předmětu 36PT Martin Tůma Cvičení 113, Út 18:00 22. května 2004 Specifikace problému Často potřebujeme přístup k informacím, tak aby tyto byly seřazeny podle
VíceSystém adresace paměti
Systém adresace paměti Základní pojmy Adresa fyzická - adresa, která je přenesena na adresní sběrnici a fyzicky adresuje hlavní paměť logická - adresa, kterou má k dispozici proces k adresaci přiděleného
VíceStromy, haldy, prioritní fronty
Stromy, haldy, prioritní fronty prof. Ing. Pavel Tvrdík CSc. Katedra počítačů FEL České vysoké učení technické DSA, ZS 2008/9, Přednáška 6 http://service.felk.cvut.cz/courses/x36dsa/ prof. Pavel Tvrdík
VíceProfilová část maturitní zkoušky 2017/2018
Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2017/2018 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 78-42-M/01 Technické lyceum Předmět: TECHNIKA
VíceB3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11
Jméno Příjmení Už. jméno Marek oháč bohacm11 Zkouškový test Otázka 1 Jaká je hodnota proměnné count po vykonání následujícího kódu: data=[4,4,5,5,6,6,6,7,7,7,7,8,8] count=0 for i in range(1,len(data)):
VíceBinární vyhledávací strom pomocí směrníků Miroslav Hostaša L06620
Binární vyhledávací strom pomocí směrníků Miroslav Hostaša L06620 1. Vymezení pojmů Strom: Strom je takové uspořádání prvků - vrcholů, ve kterém lze rozeznat předchůdce - rodiče a následovníky - syny.
VíceZadání soutěžních úloh
16. až 18. dubna 2015 Krajské kolo 2014/2015 Úlohy můžete řešit v libovolném pořadí a samozřejmě je nemusíte vyřešit všechny. Za každou úlohu můžete dostat maximálně 10 bodů, z nichž je většinou 9 bodů
VíceZáklady programování (IZP)
Základy programování (IZP) Jedenácté počítačové cvičení Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole Gabriela Nečasová, inecasova@fit.vutbr.cz
VíceZáklady programování. Úloha: Eratosthenovo síto. Autor: Josef Hrabal Číslo: HRA0031 Datum: 28.11.2009 Předmět: ZAP
Základy programování Úloha: Eratosthenovo síto Autor: Josef Hrabal Číslo: HRA0031 Datum: 28.11.2009 Předmět: ZAP Obsah 1 Zadání úkolu: 3 1.1 Zadání:............................... 3 1.2 Neformální zápis:.........................
VíceSpojová implementace lineárních datových struktur
Spojová implementace lineárních datových struktur doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 13. března 2017 Jiří Dvorský (VŠB
VíceProfilová část maturitní zkoušky 2013/2014
Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2013/2014 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 78-42-M/01 Technické lyceum Předmět: TECHNIKA
VíceUživatelský manuál. Aplikace GraphViewer. Vytvořil: Viktor Dlouhý
Uživatelský manuál Aplikace GraphViewer Vytvořil: Viktor Dlouhý Obsah 1. Obecně... 3 2. Co aplikace umí... 3 3. Struktura aplikace... 4 4. Mobilní verze aplikace... 5 5. Vytvoření projektu... 6 6. Části
VíceNávrh designu: Radek Mařík
Návrh designu: Radek Mařík 1. Hashovací (=rozptylovací) funkce a) převádí adresu daného prvku na jemu příslušný klíč b) vrací pro každý klíč jedinečnou hodnotu c) pro daný klíč vypočte adresu d) vrací
VíceTrénování sítě pomocí učení s učitelem
Trénování sítě pomocí učení s učitelem! předpokládá se, že máme k dispozici trénovací množinu, tj. množinu P dvojic [vstup x p, požadovaný výstup u p ]! chceme nastavit váhy a prahy sítě tak, aby výstup
VíceKRY. Projekt č. 2. Kamil Dudka xdudka00
KRY Projekt č. 2 Kamil Dudka xdudka00 1 Úvod Úkolem bylo vytvořit program, který do určeného obrázku umí schovat text a tento text z obrázku později vytáhnout. Schovaný text měl být zabezpečený pomocí
Více1. 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.
VíceTento dokument popisuje instalaci a používání elektronické cvičebnice Styx.
Kapitola 1 Uživatelská příručka Tento dokument popisuje instalaci a používání elektronické cvičebnice Styx. 1.1 Systémové požadavky Cvičebnice je napsána v jazyce Java, uživatel proto musí mít nainstalováno
VíceTřetí skupina zadání projektů do předmětu Algoritmy II, letní semestr 2017/2018
Třetí skupina zadání projektů do předmětu Algoritmy II, letní semestr 2017/2018 doc. Mgr. Jiří Dvorský, Ph.D. 24. dubna 2018 Verze zadání 24. dubna 2018 První verze 1 1 Hašovací tabulka V tomto zadání
VíceProgram pro tvorbu technických výpočtů. VIKLAN - Výpočty. Uživatelská příručka. pro seznámení se základními možnostmi programu. Ing.
Program pro tvorbu technických výpočtů VIKLAN - Výpočty Uživatelská příručka pro seznámení se základními možnostmi programu Ing. Josef Spilka VIKLAN - Výpočty Verse 1.10.5.1 Copyright 2010 Ing. Josef Spilka.
VíceMatematika v programovacích
Matematika v programovacích jazycích Pavla Kabelíková am.vsb.cz/kabelikova pavla.kabelikova@vsb.cz Úvodní diskuze Otázky: Jaké programovací jazyky znáte? S jakými programovacími jazyky jste již pracovali?
VíceReprezentace aritmetického výrazu - binární strom reprezentující aritmetický výraz
Reprezentace aritmetického výrazu - binární strom reprezentující aritmetický výraz (2 + 5) * (13-4) * + - 2 5 13 4 - listy stromu obsahují operandy (čísla) - vnitřní uzly obsahují operátory (znaménka)
VíceZáklady programování (IZP)
Základy programování (IZP) Deváté počítačové cvičení Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole Petr Veigend, iveigend@fit.vutbr.cz 27.11.2017,
VíceZáklady algoritmizace. Pattern matching
Základy algoritmizace Pattern matching 1 Pattern matching Úloha nalézt v nějakém textu výskyty zadaných textových vzorků patří v počítačové praxi k nejfrekventovanějším. Algoritmy, které ji řeší se používají
VíceNOVINKY v PROGRAMU DOCHÁZKA ADS
NOVINKY v PROGRAMU DOCHÁZKA ADS 4 1.2.2010 Uživatelské prostředí nové grafické prostředí programu rychlé menu ve dvou režimech - pouze ikony, ikony s popisem implementace Drag & Drop při přiřazování kalendáře,
VíceČasová a prostorová složitost algoritmů
.. Časová a prostorová složitost algoritmů Programovací techniky doc. Ing. Jiří Rybička, Dr. ústav informatiky PEF MENDELU v Brně rybicka@mendelu.cz Hodnocení algoritmů Programovací techniky Časová a prostorová
VíceData 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)
VícePopis programu EnicomD
Popis programu EnicomD Pomocí programu ENICOM D lze konfigurovat výstup RS 232 přijímačů Rx1 DIN/DATA a Rx1 DATA (přidělovat textové řetězce k jednotlivým vysílačům resp. tlačítkům a nastavovat parametry
VíceZadá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
VícePřekladač a jeho struktura
Překladač a jeho struktura Překladače, přednáška č. 1 Šárka Vavrečková Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz http://fpf.slu.cz/ vav10ui Poslední aktualizace: 23. září 2008 Definice
VíceŠ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íce1 Nejkratší cesta grafem
Bakalářské zkoušky (příklady otázek) podzim 2014 1 Nejkratší cesta grafem 1. Uvažujte graf s kladným ohodnocením hran (délka). Definujte formálně problém hledání nejkratší cesty mezi dvěma uzly tohoto
VíceTestování prvočíselnosti
Dokumentace zápočtového programu z Programování II (NPRG031) Testování prvočíselnosti David Pěgřímek http://davpe.net Úvodem V různých oborech (například v kryptografii) je potřeba zjistit, zda je číslo
Více1. Převeďte dané číslo do dvojkové, osmičkové a šestnáctkové soustavy: a) 759 10 b) 2578 10
Úlohy- 2.cvičení 1. Převeďte dané číslo do dvojkové, osmičkové a šestnáctkové soustavy: a) 759 10 b) 2578 10 2. Převeďte dané desetinné číslo do dvojkové soustavy (DEC -> BIN): a) 0,8125 10 b) 0,35 10
VíceGeometrické algoritmy pro počítačovou grafiku
České vysoké učení technické v Praze Fakulta jaderná a fyzikálně inženýrská Katedra fyzikální elektroniky Informatická fyzika Geometrické algoritmy pro počítačovou grafiku Semestrální práce Autor práce:
VíceZpracování deklarací a přidělování paměti
Zpracování deklarací a přidělování paměti Účel deklarací -pojmenování objektů -umístění objektů v paměti Tabulka symbolů -uchovává informace o objektech -umožňuje kontextové kontroly -umožňuje operace
VíceOvládání Open Office.org Calc Ukládání dokumentu : Levým tlačítkem myši kliknete v menu na Soubor a pak na Uložit jako.
Ukládání dokumentu : Levým tlačítkem myši kliknete v menu na Soubor a pak na Uložit jako. Otevře se tabulka, v které si najdete místo adresář, pomocí malé šedočerné šipky (jako na obrázku), do kterého
VíceKatedra informatiky a výpočetní techniky. 10. prosince Ing. Tomáš Zahradnický doc. Ing. Róbert Lórencz, CSc.
Katedra informatiky a výpočetní techniky České vysoké učení technické, fakulta elektrotechnická Ing. Tomáš Zahradnický doc. Ing. Róbert Lórencz, CSc. 10. prosince 2007 Pamět ové banky S výhodou používáme
VíceOperační systémy. Cvičení 3: Programování v C pod Unixem
Operační systémy Cvičení 3: Programování v C pod Unixem 1 Obsah cvičení Editace zdrojového kódu Překlad zdrojového kódu Základní datové typy, struktura, ukazatel, pole Načtení vstupních dat Poznámka: uvedené
Víceb) červená, zelená, modrá, c) černá, bílá, d) černá, bílá, šedá. 5. PNG je formát: a) textový,
Opravil: Kontroloval: Přijímací zkouška xx_xx_xxxx_v1 (INF komb. st.) Identifikační údaje: 1. Mezi znakové sady nepatří: a) Windows CP 1250, b) ISO 8859-14, c) Unicode, UTF-13. 2. Unicode používá k reprezentaci
VíceSystém souborů (file system, FS)
UNIX systém souborů (file system) 1 Systém souborů (file system, FS)! slouží k uchování dat na vnějším paměťovém médiu a zajišťuje přístup ke struktuře dat! pro uživatele možnost ukládat data a opět je
VíceVÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Čí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
VíceFORTANNS. havlicekv@fzp.czu.cz 22. února 2010
FORTANNS manuál Vojtěch Havlíček havlicekv@fzp.czu.cz 22. února 2010 1 Úvod Program FORTANNS je software určený k modelování časových řad. Kód programu má 1800 řádek a je napsán v programovacím jazyku
Více3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem
ČVUT FEL X36PAA - Problémy a algoritmy 3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem Jméno: Marek Handl Datum: 1. 1. 2009 Cvičení: Pondělí 9:00 Zadání Naprogramujte
VíceRecognoil RRW Manager rychlý návod k obsluze
Recognoil RRW Manager rychlý návod k obsluze Obsah: 1) Úvod charakteristika funkcí 2) Instalace 3) První spuštění - menu 4) Selektivní vyhodnocení plochy + uložení 5) Práce s projektem a exporty 6) Poznámky
VíceAlgoritmizace 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íceZákladní datové struktury III: Stromy, haldy
Základní datové struktury III: Stromy, haldy prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní
VíceSemestrální úloha 1 z předmětu Programovací jazyk C. Textový merge. Student:
Semestrální úloha 1 z předmětu Programovací jazyk C Textový merge Napište program, který spojí dva textové soubory. První soubor je datový, obsahuje databázi, tj. první řádek představuje seznam sloupců
VíceKomprese dat (Komprimace dat)
Komprese dat (Komprimace dat) Př.: zakódovat slovo ARARAUNA K K 2 četnost absolutní relativní A 4,5 N,25 R 2,25 U,25 kód K : kód K 2 :... 6 bitů... 4 bitů prefixový kód: žádné kódové slovo není prefixem
VíceZáklady programování (IZP)
Základy programování (IZP) Osmé počítačové cvičení Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole Petr Veigend, iveigend@fit.vutbr.cz 20.11.2017,
Více1 Uživatelská dokumentace
1 Uživatelská dokumentace Systém pro závodění aut řízených umělou inteligencí je zaměřen na závodění aut v prostředí internetu. Kromě toho umožňuje testovat jednotlivé řidiče bez nutnosti vytvářet závod
VíceČÁST 1. Základy 32bitového programování ve Windows
Obsah Úvod 13 ČÁST 1 Základy 32bitového programování ve Windows Kapitola 1 Nástroje pro programování ve Windows 19 První program v Assembleru a jeho kompilace 19 Objektové soubory 23 Direktiva INVOKE 25
VíceNápověda k aplikaci EA Script Engine
Nápověda k aplikaci EA Script Engine Object Consulting s.r.o. 2006 Obsah Nápověda k aplikaci EA Script Engine...1 1. Co je EA Script Engine...2 2. Důležité upozornění pro uživatele aplikace EA Script Engine...3
VíceFormulář pro křížový filtr
Formulář pro křížový filtr Formulář pro křížový filtr je určen zejména autorům křížovek a má sloužit jako pomůcka při jejich tvorbě. Levé části formuláře dominuje tzv. šablona, což je síť 20 krát 20 políček
VíceSRSW4IT Inventarizační SW. Prezentace aplikace. Vedoucí DP: ing. Lukáš Macura Autor: Bc. Petr Mrůzek
Prezentace aplikace Vedoucí DP: ing. Lukáš Macura Autor: Bc. Petr Mrůzek Osnova Úvod Programovací jazyk - PHP Etapy vývoje Funkce aplikace Co SW umí Na čem se pracuje Vize do budoucna Úvod Úvod Inspirováno
VíceDílčí projekt: Systém projektování textilních struktur 1.etapa: tvorba systému projektování vlákno - příze - tkanina
Program LibTex Uživatelská příručka 1 Obsah Program Textilní Design... 1 Uživatelská příručka... 1 1 Obsah... 2 2 Rejstřík obrázků... 2 3 Technické požadavky... 3 3.1 Hardware... 3 3.1.1 Procesor... 3
VíceSEMESTRÁLNÍ PROJEKT Y38PRO
SEMESTRÁLNÍ PROJEKT Y38PRO Závěrečná zpráva Jiří Pomije Cíl projektu Propojení regulátoru s PC a vytvoření knihovny funkcí pro práci s regulátorem TLK43. Regulátor TLK43 je mikroprocesorový regulátor s
VíceAlgoritmizace 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íceRozdělování dat do trénovacích a testovacích množin
Rozdělování dat do trénovacích a testovacích množin Marcel Jiřina Rozpoznávání je důležitou metodou při zpracování reálných úloh. Rozpoznávání je definováno dvěma kroky a to pořízením dat o reálném rozpoznávaném
VíceRekurzivní algoritmy
Rekurzivní algoritmy prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy (BI-EFA) ZS
VíceInterpret 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íceAutomatické vyhledávání informace a znalosti v elektronických textových datech
Automatické vyhledávání informace a znalosti v elektronických textových datech Jan Žižka Ústav informatiky & SoNet RC PEF, Mendelova universita Brno (Text Mining) Data, informace, znalost Elektronická
VíceProgramování 3. hodina. RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015
Programování 3. hodina RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015 Umíme z minulé hodiny Implementace zásobníku a fronty pomocí
VíceDATABÁZE MS ACCESS 2010
DATABÁZE MS ACCESS 2010 KAPITOLA 5 PRAKTICKÁ ČÁST TABULKY POPIS PROSTŘEDÍ Spuštění MS Access nadefinovat název databáze a cestu k uložení databáze POPIS PROSTŘEDÍ Nahoře záložky: Soubor (k uložení souboru,
VíceObsah přednášky Jaká asi bude chyba modelu na nových datech?
Obsah přednášky Jaká asi bude chyba modelu na nových datech? Chyba modelu Bootstrap Cross Validation Vapnik-Chervonenkisova dimenze 2 Chyba skutečná a trénovací Máme 30 záznamů, rozhodli jsme se na jejich
VícePA152. Implementace databázových systémů
PA152 Implementace databázových systémů RAID level 1 zrcadlení disku výpočet MTTF 2 stejné disky, MTTF 3 roky výměna vadného 3,5 dne výpadek oba disky během 3,5 dne p(výpadku disku za rok) = 1/6 p(výp.
VícePráce se soubory. Základy programování 2 Tomáš Kühr
Práce se soubory Základy programování 2 Tomáš Kühr Soubory z pohledu C Soubor zjednodušeně chápeme jako posloupnost bytů uložených někde na disku Datový proud (anglicky stream) Ještě obecnější přístup
VíceVyvažování a rotace v BVS, všude se předpokládá AVL strom
Vyvažování a rotace v BVS, všude se předpokládá AVL strom 1. Jednoduchá levá rotace v uzlu u má operační složitost a) závislou na výšce levého podstromu uzlu u b) mezi O(1) a Θ(n) c) závislou na hloubce
VíceZásadní dovednosti Indesign. Stručné otázky a odpovědi
Zásadní dovednosti Indesign Import a úprava textu Stručné otázky a odpovědi Otázky 1,2 12 Co se stane, když v ID otevřete dokument, který obsahuje písmo, které v systému nemáte? Jak lze situaci řešit?
VíceZáklady algoritmizace. Hašování
Základy algoritmizace Hašování Problematika hašování Hašování - nástroj na jednoduchý způsob "zakódování vstupních dat. Vstupní data jsou zpracována hašovací funkcí jsou jistým způsobem komprimována. Relativně
VíceFrantišek Hudek. duben ročník
VY_32_INOVACE_FH09_WIN Jméno autora výukového materiálu Datum (období), ve kterém byl VM vytvořen Ročník, pro který je VM určen Vzdělávací oblast, obor, okruh, téma Anotace František Hudek duben 2013 6.
VíceNápověda pro vyplnění elektronického formuláře Oznámení o provedení asanace vytěženého jehličnatého dříví
Nápověda pro vyplnění elektronického formuláře Oznámení o provedení asanace vytěženého jehličnatého dříví Nápověda pro vyplnění elektronického formuláře Oznámení o provedení asanace vytěženého jehličnatého
VíceAPS mini.ed programová nadstavba pro základní vyhodnocení docházky. Příručka uživatele verze 2.2.0.6
APS mini.ed programová nadstavba pro základní vyhodnocení docházky Příručka uživatele verze 2.2.0.6 APS mini.ed Příručka uživatele Obsah Obsah... 2 Instalace a konfigurace programu... 3 Popis programu...
VíceDynamicky vázané metody. Pozdní vazba, virtuální metody
Dynamicky vázané metody Pozdní vazba, virtuální metody Motivace... class TBod protected: float x,y; public: int vrat_pocet_bodu() return 1; ; od třídy TBod odvodíme: class TUsecka: public TBod protected:
VíceDatové struktury Úvod
Datové struktury Úvod Navrhněte co nejjednodušší datovou strukturu, která podporuje následující operace: 1. Insert a Delete v O(n), Search v O(log n); Datové struktury Úvod Navrhněte co nejjednodušší datovou
VíceGymnázium Jiřího Ortena, Kutná Hora
Předmět: Náplň: Třída: Počet hodin: Pomůcky: Informatika a výpočetní technika (IVT) Úvod do předmětu, základní pojmy IVT, operační systém MS Windows, Internet, netiketa, číselné soustavy a uložení dat
Více