Semestrální práce KIV/PC
|
|
- Luděk Beran
- před 8 lety
- Počet zobrazení:
Transkript
1 Semestrální práce KIV/PC Václav Löffelmann
2 1 Zadání Naprogramujte v ANSI C přenositelnou konzolovou aplikaci, která jako vstup obdrží soubor obsahující obrázek ručně psané číslice a soubor s váhami a topologií již natrénované dopředné neuronové sítě, na jejich základě vytvoří odpovídající neuronovou sít a následně provede klasifikaci obsahu zadaného obrázku. Výstupem aplikace je třída obrázku po klasifikaci. Plné znění zadání je k dispozici zde[1]. Analýza úlohy Naším úkolem je vytvořit program, který bude simulovat vzruchy umělé neuronové sítě. Množina vstupních dat je již vytvořená a síť je naučená. Nebudeme tedy vytvářet tu nejzajímavější část - učení. Pokud bychom se dostali k takovému problému v praxi, určitě by prvním krokem mělo být prozkoumání možností současného softwaru. Aneb jak jedno staré pořekadlo praví Poslední věc, co by programátor měl dělat je programování., měli bychom se nejdříve kouknout po hotových řešeních. Po krátkém hledání zjistíme, že v oblasti umělých neuronových sítí již existuje mnoho projektů. Bez problémů lze najít nespočet knihoven, v libovolných jazycích [2, 3, 4, 5, 6, 7, 8,?]. Většina z nich má svobodnou licenci a lze je tedy bezplatně využít. Jelikož se ale nenacházíme v praxi, ale ve škole, kde děláme cvičné příklady, musíme se uchýlit k vlastní implementaci. Před začátkem prací na implementaci je nanejvýš vhodné zvážit nástroje, které v projektu použijeme. Důležité je zejména vybrat vhodný programovací jazyk. Zvolit knihovny, jež nám ušetří práci. Dále pak, jestli-že se jedná o týmovou práci, vybrat nástroje pro synchronizaci a verzování zdrojových kódů, metodiku vývoje, software pro kolaboraci, databázi (nebo formu) pro ukládání znalostí. Nástroj pro verzování zdrojových kódů se hodí i při práci v jednom člověku. Zde máme na výběr z několika známých a ověřených projektů. Jako prvním bych uvedl Git[9]. Git je pokročilý verzovací systém s podporou všech funkcí, které jsou pro vývoj potřeba. Jedná se o distribuovaný systém, který používají i ty největší projekty na světě. Příkladem budiž Linuxové jádro[10]. Dalšími zástupci softwaru pro verzování jsou Mercurial[11] a SVN[12]. Jelikož s Gitem mám největší zkušenosti, rozhodl jsem se pro svojí práci použít právě Git. Vzhledem k tomu, že je vhodné mít gitový repozitář někde hostovaný - hodí se zejména pro zálohy a kolaboraci. Rozhodl jsem se využít služeb od poskytovatele GitHub Inc[13]. Tato renomovaná společnost nabízí hostování veřejně přístupných repozitářů zadarmo. Pro studenty nabízí hostování až 5 privátních repozitářů také zadarmo. Za tuto starost o studenty bych této společnosti rád poděkoval přidáním odkazu na jejich vzdělávací projekt[14].
3 2 Obrázek 0.0.1: Biologický neuron. Zdroj[18] Výběr jazyka I přes to, že byl jazyk implementace zadaný, pojďme si situaci trochu zanalyzovat. V zadání máme jasně řečeno, že máme vytvořit jednoduchou aplikaci, která bude fungovat sama o sobě. Nejedná se tedy o žádnou knihovnu, driver ani framework. Tato podmínka sama o sobě nepřináší žádné omezení. Pojďme tedy prozkoumat další aspekt, tedy doménu problému. Tato doména se vyznačuje náročností zejména na matematické výpočty, jelikož simulujeme určité množství neuronů, resp. jejich excitací, které reprezentujeme hyperbolickým tangensem součinů všech vstupů a jejich vah. Shrnuli jsme tedy, že budeme potřebovat výkonnou aplikaci, jelikož zadání hovoří o obecném fungování řešení, tedy libovolnou velikostí sítě. Odtud můžeme předpokládat, že některé použití mají rozsáhlé sítě a velké množství neuronů. Pokud budeme uvažovat malou síť na vstupu, zajisté oceníme i ekvivalentní paměťové nároky, odpovídající malému množství vstupních dat. V předchozích odstavcích jsme z výběru diskvalifikovali jazyky s tristním výkonem, nicméně pojďme se podívat na vyšší vyspělé programovací jazyky. Reprezentanty této skupiny mohou být třeba Java, Python, Node.js. Minimálně první dva zmíněné mají velice dobrou podporu napříč operačními systémy a přenositelnost, což byl také jeden z aspektů zadání. Node.js jako poměrně nová technologie má podporu u běžných operačních systémů, jež byly v zadání vyjmenované. Co se výkonu, který pro naši úlohu požadujeme, těchto programovacích jazyků týká, dá se říci, že uspokojují naše potřeby. Java se svou HotSpot[15] optimalizací, která kompiluje kód do nativního kódu platformy má velice dobré výsledky. U Node.js máme v zásadě dvě možnosti. Buď použijeme kompilátor a interpret V8[16], který Google vyladil pro vysoký výkon, a nebo použijeme novinku z Javy verze 8 a budeme ho spouštět nad JVM a jsme na tom stejně
4 3 jako v případě Javy. V případě Pythonu máme také možnosti kompilace do C kódu, takže o samotný výkon máme postaráno. Vzhledem k výše uvedenému je jasné, že při výběru jazyka nemůžeme jednoduše opomenout vyšší programovací jazyky. Já osobně bych se klonil k použití vyššího programovacího jazyka, jelikož nám přináší přenositelnost nativně a další výhody, jako jsou například automatický garbage collector, vyšší úroveň abstrakce a nebo netypovost. Upřímně se domnívám, že vývoj ve vyšším programovacím jazyku, nebo dokonce ještě vyšším transkompileru, uvažujme třeba CoffeeScript[17], by byl o poznání rychlejší. Dalším zajímavým pohledem by mohl být pohled řešení úlohy ve funkcionálním programovacím jazyku. Uveďme zde čistý funkcionální jazyk, implementující lambda kalkulus - Haskell. Konkrétně tento jazyk má veliké možnosti a splnění takovéto úlohy by nebyl problém. Pokud se podíváme na řešení, která se vyskytují při řešení problematiky neuronových sítí, narazíme nutně na zpracování na grafických kartách. Výpočet na grafických kartách je vhodný zejména díky paralelnímu zpracování. Excitace jednotlivých neuronů v rámci jedné vrstvy lze totiž vypočítat současně. Jestliže zajdeme v problematice neuronových sítí ještě dál, zjistíme, že pro tuto doménu úloh se vytváří i specializovaná hardwarová řešení. Jejich použití je tedy nasnadě. Jazyk je, nicméně, daný a proto práce bude implementována v C kvůli edukačním účelům. Avšak v reálném světě by tento jazyk pravděpodobně nevyhrál. Dekompozice problému Problém není nikterak složitý a proto můžeme při analýze problém rozebrat tak, jak půjde běh programu. Vstupem jsou dva soubory, jeden s neuronovou sítí a druhý se vstupem do této sítě. Rozeberme tedy zpracování souboru s naučenou neuronovou sítí. Soubor je potřeba naparsovat a následně reprezentovat pomocí vhodné datové struktury. Parsování je v celku jasné, jelikož se jedná o textový soubor, kde jsou jednotlivé sekce uvedeny speciálním řádkem. O trochu složitější jsou datové struktury, jenž mají vzniknout. Nechť budeme uvažovat neuronovou síť jako množinu neuronů, jakožto samostatných entit sdruženým po vrstvách. Jelikož je při výpočtu excitace neuronu z vyšší vrstvy potřeba zjistit excitace propojených neuronů z předchozí vrstvy, máme zde vcelku jasný požadavek na rychlý náhodný přístup k neuronům z určité vrstvy. Tento požadavek uspokojuje pole, hash nebo při velkých objemech dat strom. Abstrakce neuronu by měla obsahovat propojení a jejich váhy s ostatními neurony, dále pak bias a výslednou hodnotu excitace při průchodu vzruchu. Propojení neuronu se budou vždy procházet sekvenčně a vzhledem k dynamickému množství propojení se zde nabízí k použití spojový seznam. Datový typ této entity by tedy měl zapouzdřovat všechny výše zmíněné vlastnosti. Co se týká druhého souboru, tedy vstupu pro neuronovou síť, máme pro tato data stejné nároky jako na kteroukoliv jinou vrstvu - určitě budeme potřebovat
5 4 rychlý přístup k náhodnému vstupu. Parsování bude velice přímé, jelikož soubor obsahuje pouze užitečná binární data. Následně můžeme analyzovat vlastní algoritmus. Běh by se dal rozdělit do tří hlavních částí. První část naplní první vrstvu vstupy ze vstupní vrstvy a vypočte excitace neuronů v první vrstvě. Druhá část vezme všechny následující vrstvy (pokud nějaké jsou) a postupně, po vrstvách, vypočítává jednotlivé excitace. Poslední částí je výpočet maxima z excitací neuronů z výstupní vrstvy. Popis implementace Implementace se skládá z parsování vstupních souboru a následné vytváření vhodných datových struktur. Jako datovou strukturu pro reprezentaci neuronů v rámci jedné vrstvy jsem použil pole, jelikož se jednoduše implementuje a poskytuje rychlý náhodný přístup. Abstrakce nad vrstvou, struktura layer, je pouze obalem nad tímto polem neuronů, což jsou samy o sobě také struktury, které mají vlastnosti vyjmenované výše v analýze. Pro snadný přístup k vrstvám jsem použil reprezentaci jako pole vrstev. Další struktura, kterou jsem vytvořil je zapouzdření pro neuronové spojení. Toto spojení obsahuje informaci o tom, s kterým neuronem z předchozí vrstvy je vytvořené, dále pak váhu tohoto spojení a následně i odkaz na další spojení. Jedná se tedy o zřetězený seznam. Každý neuron si uchovává odkaz na začátek toho seznamu. Struktura programu je dekomponována logicky po funkcích. Program samozřejmě validuje všechny vstupy a dělá správu paměti. Uživatelská příručka Program má ovládání pomocí parametrů z příkazové řádky. Po spuštění již neobsahuje žádné uživatelské rozhraní. Překlad programu je zajištěn utilitou make. Program se spouští binárním souborem neural_net.exe. Tento příkaz očekává dva argumenty. Prvním je soubor s definicí neuronové sítě a druhý je cesta k souboru se vstupem sítě. Očekávaný formát těchto souborů je definovaný v zadání.
6 5 Závěr Závěrem bych chtěl předně poděkovat jednak za možnost výběru zadání a jednak za zajímavé téma. Problematika neuronových sítí je dle mého názoru velice zajímavá, škoda jen, že byla vynechána nejzajímavější část a to učení. Nicméně to je pochopitelné, vzhledem k tomu, že se jedná pouze o semestrální práci. S výsledným programem jsem spokojen. Doba běhu a paměťové nároky odpovídají nezbytně nutným výpočtům. Při implementaci jsem se snažil vyvarovat zbytečným iteracím nebo používáním neefektivních datových struktur. Jako možnost dalšího rozšiřování bych viděl jednoznačně v implementaci některého učícího algoritmu, jelikož klasifikace je v tomto případě pouze špička ledovce.
7 Literatura [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] 6
Matematika 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íceVzdělávací oblast: Informatika a informační a komunikační technologie Vzdělávací obor: Programování. Předmět: Programování
Vzdělávací oblast: Informatika a informační a komunikační technologie Vzdělávací obor: Programování Vzdělávací oblast Informatika a informační a komunikační technologie pro vzdělávací obor Programování
VíceIB111 Programování a algoritmizace. Programovací jazyky
IB111 Programování a algoritmizace Programovací jazyky Programovací jazyky Programovací jazyk Prostředek pro zápis algoritmů, jež mohou být provedeny na počítači Program Zápis algoritmu v programovacím
Více11. Přehled prog. jazyků
Jiří Vokřínek, 2016 B6B36ZAL - Přednáška 11 1 Základy algoritmizace 11. Přehled prog. jazyků doc. Ing. Jiří Vokřínek, Ph.D. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze
VíceProgramovací 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
VíceVzdělávací oblast: Informatika a informační a komunikační technologie Vzdělávací obor: Programování Předmět: Programování
Vzdělávací oblast: Informatika a informační a komunikační technologie Vzdělávací obor: Programování Předmět: Programování Charakteristika vyučovacího předmětu Cílem předmětu je poskytnout žákům ucelený
VíceMaturitní témata. IKT, školní rok 2017/18. 1 Struktura osobního počítače. 2 Operační systém. 3 Uživatelský software.
Maturitní témata IKT, školní rok 2017/18 1 Struktura osobního počítače Von Neumannova architektura: zakreslete, vysvětlete její smysl a popište, jakým způsobem se od ní běžné počítače odchylují. Osobní
VíceProgramovací 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
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íceAlgoritmizace- úvod. Ing. Tomáš Otáhal
Algoritmizace- úvod Ing. Tomáš táhal Historie 9. století perský matematik a astronom Mohammed Al-Chorezím v latinském přepise příjmení= algoritmus Nejstarší algoritmus Euklides řecký matematik, 4. století
VíceMATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ
MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ 1) PROGRAM, ZDROJOVÝ KÓD, PŘEKLAD PROGRAMU 3 2) HISTORIE TVORBY PROGRAMŮ 3 3) SYNTAXE A SÉMANTIKA 3 4) SPECIFIKACE
VíceIB111 Úvod do programování skrze Python Přednáška 13
IB111 Úvod do programování skrze Python Přednáška 13 Programovací jazyky Nikola Beneš 14. prosinec 2016 IB111 přednáška 13: programovací jazyky 14. prosinec 2016 1 / 21 Osnova dnešní přednášky Programovací
Více1 Úvod 1.1 Vlastnosti programového vybavení (SW)
1 Úvod 1.1 Vlastnosti programového vybavení (SW) - dávkové zpracování - omezená distribuce - zakázkový SW - distribuované systémy - vestavěná inteligence - laciný HW - vliv zákazníka 1950 1960 1970 1980
VíceÚvod Seznámení s předmětem Co je.net Vlastnosti.NET Konec. Programování v C# Úvodní slovo 1 / 25
Programování v C# Úvodní slovo 1 / 25 Obsah přednášky Seznámení s předmětem Co je.net Vlastnosti.NET 2 / 25 Kdo je kdo Petr Vaněček vanecek@pf.jcu.cz J 502 Václav Novák vacnovak@pf.jcu.cz?? Při komunikaci
VíceArchitektura rodiny operačních systémů Windows NT Mgr. Josef Horálek
Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek = Velmi malé jádro = implementuje jen vybrané základní mechanismy: = virtuální paměť; = plánování vláken; = obsluha výjimek; = zasílání
VíceHospodářská informatika
Hospodářská informatika HINFL, HINFK Vytvořeno s podporou projektu Průřezová inovace studijních programů Lesnické a dřevařské fakulty MENDELU v Brně (LDF) s ohledem na disciplíny společného základu reg.
VíceFunkcioná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)
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í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íceProces vývoje HRIS Vema (Human Resources Information System) Jaroslav Šmarda
Proces vývoje HRIS Vema (Human Resources Information System) Jaroslav Šmarda Proces vývoje HRIS Vema Vlastnosti HRIS (Human Resources Information System) HRIS Vema Proces vývoje HRIS Vema Vema, a. s. Přední
VíceObsah. Zpracoval:
Zpracoval: houzvjir@fel.cvut.cz 03. Modelem řízený vývoj. Doménový (business), konceptuální (analytický) a logický (návrhový) model. Vize projektu. (A7B36SIN) Obsah Modelem řízený vývoj... 2 Cíl MDD, proč
Více5.15 INFORMATIKA A VÝPOČETNÍ TECHNIKA
5.15 INFORMATIKA A VÝPOČETNÍ TECHNIKA 5. 15. 1 Charakteristika předmětu A. Obsahové vymezení: IVT se na naší škole vyučuje od tercie, kdy je cílem zvládnutí základů hardwaru, softwaru a operačního systému,
VíceC2115 Praktický úvod do superpočítání
C2115 Praktický úvod do superpočítání IX. lekce Petr Kulhánek, Tomáš Bouchal kulhanek@chemi.muni.cz Národní centrum pro výzkum biomolekul, Přírodovědecká fakulta, Masarykova univerzita, Kotlářská 2, CZ-61137
Více10 Balíčky, grafické znázornění tříd, základy zapozdření
10 Balíčky, grafické znázornění tříd, základy zapozdření Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost příkazům balíčkům, grafickému
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í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ícePředměty. Algoritmizace a programování Seminář z programování. Verze pro akademický rok 2012/2013. Verze pro akademický rok 2012/2013
Předměty Algoritmizace a programování Seminář z programování Verze pro akademický rok 2012/2013 Verze pro akademický rok 2012/2013 1 Přednášky Jiřina Královcová MTI, přízemí budovy A Tel: 48 53 53 521
VíceVÝ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
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íceProgram a životní cyklus programu
Program a životní cyklus programu Program algoritmus zapsaný formálně, srozumitelně pro počítač program se skládá z elementárních kroků Elementární kroky mohou být: instrukce operačního kódu počítače příkazy
VíceVyřešené teoretické otázky do OOP ( )
Vyřešené teoretické otázky do OOP (16. 1. 2013) 1) Vyjmenujte v historickém pořadí hlavní programovací paradigmata a stručně charakterizujte každé paradigma. a) Naivní chaotičnost, špatná syntaxe a sémantika
Více3. Je defenzivní programování technikou skrývání implementace? Vyberte jednu z nabízených možností: Pravda Nepravda
1. Lze vždy z tzv. instanční třídy vytvořit objekt? 2. Co je nejčastější příčinou vzniku chyb? A. Specifikace B. Testování C. Návrh D. Analýza E. Kódování 3. Je defenzivní programování technikou skrývání
VíceTÉMATICKÝ OKRUH Softwarové inženýrství
TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 24. Otázka : Implementační fáze. Postupy při specifikaci organizace softwarových komponent pomocí UML. Mapování modelů na struktury programovacího
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íce2 Postup při programování, úvod do programovacího jazyka Java
2 Postup při programování, úvod do programovacího jazyka Java Studijní cíl V tomto bloku bude věnována pozornost správnému postupu při programování, budou detailně vysvětleny jednotlivé etapy programování
VíceSpecifikace projektu Ocerus
Specifikace projektu Ocerus Tým Vedoucí: Ondřej Sýkora (ondrasej@centrum.cz) Členové: Michal Čevora (macjariel@gmail.com) Lukáš Hermann (lukas.hermann@seznam.cz) Ondřej Mocný (hardwire@volny.cz) Tomáš
VíceParalelní výpočty ve finančnictví
Paralelní výpočty ve finančnictví Jan Houška HUMUSOFT s.r.o. houska@humusoft.cz Výpočetně náročné úlohy distribuované úlohy mnoho relativně nezávislých úloh snížení zatížení klientské pracovní stanice
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íceMasarykova 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
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íceSoučasný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita
Aktivní webové stránky Úvod: - statické webové stránky: pevně vytvořený kód HTML uložený na serveru, ke kterému se přistupuje obvykle pomocí protokolu HTTP (HTTPS - zabezpečený). Je možno používat i různé
VíceObjektově orientovaný přístup
Objektově orientovaný přístup 1 Historie programovacích jazyků 1945: John von Neumann článek o nové metodě pro ukládání programů 1945: Grace Hopper poprvé termín "bug" 1946: Konrad Zuse Plankalkul - první
VíceVývoj programů. ÚVOD DO OPERAČNÍCH SYSTÉMŮ
ÚVOD DO OPERAČNÍCH SYSTÉMŮ Vývoj programů. Programovací nástroje. Aplikační programové rozhraní API. Standard POSIX. Vytvoření spustitelného souboru, použití kompilátoru a linkeru. Statické a dynamické
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ícePHP framework Nette. Kapitola 1. 1.1 Úvod. 1.2 Architektura Nette
Kapitola 1 PHP framework Nette 1.1 Úvod Zkratka PHP (z anglického PHP: Hypertext Preprocessor) označuje populární skriptovací jazyk primárně navržený pro vývoj webových aplikací. Jeho oblíbenost vyplývá
VíceTEORIE ZPRACOVÁNÍ DAT
Vysoká škola báňská - Technická univerzita Ostrava Fakulta elektrotechniky a informatiky TEORIE ZPRACOVÁNÍ DAT pro kombinované a distanční studium Jana Šarmanová Ostrava 2003 Jana Šarmanová, 2003 Fakulta
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ícePřipravil: Ing. Jiří Lýsek, Ph.D. Verze: AVTK. Úvod. strana 1
Připravil: Ing. Jiří Lýsek, Ph.D. Verze: 12.3.2018 AVTK Úvod strana 1 strana 2 Program přednášek Úvod do AVT Metodiky Git a SVN Softwarové repozitáře Testování aplikací Prezentace projektů strana 3 Metodiky
VíceProcesy a vlákna (Processes and Threads)
ÚVOD DO OPERAČNÍCH SYSTÉMŮ Ver.1.00 Procesy a vlákna (Processes and Threads) Správa procesů a vláken České vysoké učení technické Fakulta elektrotechnická 2012 Použitá literatura [1] Stallings, W.: Operating
VíceObjektově orientované technologie Diagram komponent Implementační náhled (Diagram rozmístění) Pavel Děrgel, Daniela Szturcová
Objektově orientované technologie Diagram komponent Implementační náhled (Diagram rozmístění) Pavel Děrgel, Daniela Szturcová Osnova K čemu slouží diagram komponent obsah komponent závislosti rozhraní
VíceProgramování II. Modularita 2017/18
Programování II Modularita 2017/18 Modul? Osnova přednášky Vývoj programování Modularita Příklad Vývoj programování Paradigmata programování Jak a proč se jazyky vyvíjejí? V čem se OOP liší od předchozích
VíceČESKÉ VYSOKÉ UČENÍ TECHNIKÉ Fakulta elektrotechnická. Microsoft Sharepoint 2007 Workflows Průmyslové informační systémy
ČESKÉ VYSOKÉ UČENÍ TECHNIKÉ Fakulta elektrotechnická Microsoft Sharepoint 2007 Workflows Průmyslové informační systémy Bc. Petr Pokorný Letní semestr 2009/2010 1 Obsah 1 Úvod... 3 2 Workflow... 3 3 Workflow
VíceVlákno (anglicky: thread) v informatice označuje vlákno výpočtu neboli samostatný výpočetní tok, tedy posloupnost po sobě jdoucích operací.
Trochu teorie Vlákno (anglicky: thread) v informatice označuje vlákno výpočtu neboli samostatný výpočetní tok, tedy posloupnost po sobě jdoucích operací. Každá spuštěná aplikace má alespoň jeden proces
Více12. Globální metody MI-PAA
Jan Schmidt 2011 Katedra číslicového návrhu Fakulta informačních technologií České vysoké učení technické v Praze Zimní semestr 2011/12 MI-PAA EVROPSKÝ SOCIÁLNÍ FOND PRAHA & EU: INVESTUJENE DO VAŠÍ BUDOUCNOSTI
VíceNové jazykové brány do Caché. Daniel Kutáč
Nové jazykové brány do Caché Daniel Kutáč O čem budeme mluvit.net T/SQL Perl Python MultiValue Basic Téma.NET provider .NET Provider Co lze již dnes Factory / VisM ODBC.NET Web Services Factory a VisM
VíceJava/QE Akademie - Osnova
Java/QE Akademie - Osnova Lekce 1 1. Co je to Java? 1.1. Struktura Java kódu 2. Potřebné nástroje pro vývoj 2.1. JVM 2.2. JRE 2.3. JDK 3. Co je to proměnná a její zápis v Javě 3.1. Klasické proměnné 3.2.
VícePrincipy OOP při tvorbě aplikací v JEE. Michal Čejchan
Principy OOP při tvorbě aplikací v JEE Michal Čejchan Témata přednášky Principy OOP - připomenutí Úvod - co nás vede k používání OOP Reálný svět - jak (ne)používáme OOP Nedostatky na úrovni programovacích
VíceKoncepce (větších) programů. Základy programování 2 Tomáš Kühr
Koncepce (větších) programů Základy programování 2 Tomáš Kühr Parametry a návratová hodnota main Již víme, že main je funkce A také tušíme, že je trochu jiná než ostatní funkce v programu Funkce main je
VíceGymnázium a Střední odborná škola, Rokycany, Mládežníků 1115
Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115 Číslo projektu: CZ.1.07/1.5.00/34.0410 Číslo šablony: 17 Název materiálu: Ročník: Identifikace materiálu: Jméno autora: Předmět: Tématický celek:
VíceNeuropočítače. podnět. vnímání (senzory)
Neuropočítače Princip inteligentního systému vnímání (senzory) podnět akce (efektory) poznání plánování usuzování komunikace Typické vlastnosti inteligentního systému: schopnost vnímat podněty z okolního
VíceAplikace. vliv na to, jakou mají strukturu i na to, jak pracné je je vyvinout. Bylo vypozorováno, že aplikace je možné rozdělit do skupin
Aplikace Aplikace se liší tím, k jakému účelu jsou tvořeny. To má vliv na to, jakou mají strukturu i na to, jak pracné je je vyvinout. Bylo vypozorováno, že aplikace je možné rozdělit do skupin s podobnou
VíceDiplomová práce Prostředí pro programování pohybu manipulátorů
Diplomová práce Prostředí pro programování pohybu manipulátorů Štěpán Ulman 1 Úvod Motivace: Potřeba plánovače prostorové trajektorie pro výukové účely - TeachRobot Vstup: Zadávání geometrických a kinematických
VíceParalení programování pro vícejádrové stroje s použitím OpenMP. B4B36PDV Paralelní a distribuované výpočty
Paralení programování pro vícejádrové stroje s použitím OpenMP B4B36PDV Paralelní a distribuované výpočty Minulé cvičení: Vlákna a jejich synchronizace v C++ 11... 1 Minulé cvičení: Vlákna a jejich synchronizace
Více1 Strukturované programování
Projekt OP VK Inovace studijních oborů zajišťovaných katedrami PřF UHK Registrační číslo: CZ.1.07/2.2.00/28.0118 1 Cíl Seznámení s principy strukturovaného programování, s blokovou strukturou programů,
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íceObsah. 1) Rozšířené zadání 2) Teorie zásuvných modulů a) Druhy aplikací používajících zásuvné moduly b) Knihovny c) Architektura aplikace d) Výhody
Obsah 1) Rozšířené zadání 2) Teorie zásuvných modulů a) Druhy aplikací používajících zásuvné moduly b) Knihovny c) Architektura aplikace d) Výhody 3) 4) Mantichora Mantichora je moderní aplikace, který
VíceProgramování v C++ Úplnej úvod. Peta (maj@arcig.cz, SPR AG 2008-9)
Programování v C++ Úplnej úvod Co se naučíte? tak samozřejmě C++, s důrazem na: dynamické datové struktury Objektově Orientované Programování STL (standardní knihovna šablon) vytváření vlastních šablon
VíceProgramování a algoritmizace: úvod
Programování a algoritmizace: úvod 2010 Dnešní přednáška o předmětu, administrativa motivace Cíle předmětu Úvod do programátorského a algoritmického stylu myšlení Obecné principy použitelné v řadě programovacích
VíceÚ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
VíceZobrazte si svazy a uspořádané množiny! Jan Outrata
LatVis Zobrazte si svazy a uspořádané množiny! Jan Outrata Motivace potřeba visualizovat matematické (algebraické) struktury rychle, přehledně a automaticky počítačovými prostředky ruční kreslení je zdlouhavé
Vícexrays optimalizační nástroj
xrays optimalizační nástroj Optimalizační nástroj xoptimizer je součástí webového spedičního systému a využívá mnoho z jeho stavebních bloků. xoptimizer lze nicméně provozovat i samostatně. Cílem tohoto
VícePříprava dat v softwaru Statistica
Příprava dat v softwaru Statistica Software Statistica obsahuje pokročilé nástroje pro přípravu dat a tvorbu nových proměnných. Tyto funkcionality přinášejí značnou úsporu času při přípravě datového souboru,
VíceRozklad na prvočinitele. 3. prosince 2010
Rozklad na prvočinitele Ondřej Slavíček 3. prosince 2010 1 Obsah 1 Příručka k programu 3 1.1 funkce main()............................. 3 1.2 funkce hlavnifunkce()........................ 3 1.3 funkce
VíceMaturitní otázky z předmětu PROGRAMOVÁNÍ
Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu PROGRAMOVÁNÍ 1. Algoritmus a jeho vlastnosti algoritmus a jeho vlastnosti, formy zápisu algoritmu ověřování správnosti
VíceDatová věda (Data Science) akademický navazující magisterský program
Datová věda () akademický navazující magisterský program Reaguje na potřebu, kterou vyvolala rychle rostoucí produkce komplexních, obvykle rozsáhlých dat ve vědě, v průmyslu a obecně v hospodářských činnostech.
VíceUklízení odpadků a analýza úniku
Uklízení odpadků a analýza úniku Jiří Vokřínek Katedra počítačů Fakulta elektrotechnická Ceské vysoké ucení technické v Praze Prednáška 11 B0B36PJV Programování v JAVA Uklízení odpadků a analýza úniku
VíceZákladní informace. Operační systém (OS)
Základní informace Operační systém (OS) OS je základní program, který oživuje technické díly počítače (hardware) a poskytuje prostředí pro práci všech ostatních programů. Operační systém musí být naistalován
VíceProgramové vybavení počítačů operační systémy
Programové vybavení počítačů operační systémy Operační systém Základní program, který oživuje hardware a poskytuje prostředí pro ostatní programy Řídí využití procesoru, síťovou komunikaci, tisk, ovládá
VíceVývoj informačních systémů. Přehled témat a úkolů
Vývoj informačních systémů Přehled témat a úkolů Organizace výuky doc. Mgr. Miloš Kudělka, Ph.D. EA 439, +420 597 325 877 homel.vsb.cz/~kud007 milos.kudelka@vsb.cz Přednáška Znalosti Schopnosti Cvičení
VíceVlastnosti 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,
VíceKontingenční tabulky v MS Excel 2010
Kontingenční tabulky v MS Excel 2010 Autor: RNDr. Milan Myšák e-mail: milan.mysak@konero.cz Obsah 1 Vytvoření KT... 3 1.1 Data pro KT... 3 1.2 Tvorba KT... 3 2 Tvorba KT z dalších zdrojů dat... 5 2.1 Data
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íceZkušenosti nejen z provozu Portálu občana. Jan Vlasák NAKIT Miroslav Vacula Jihomoravský kraj Václav Koudele - Microsoft
Zkušenosti nejen z provozu Portálu občana Jan Vlasák NAKIT Miroslav Vacula Jihomoravský kraj Václav Koudele - Microsoft Digitální transformace ve veřejném sektoru Zapojení občanů Větší participace a spokojenost
VíceS ICT ve výuce to umíme_dodávka dodatečného software
TECHNICKÉ PODMÍNKY NABÍDKY pro nabídku na veřejnou zakázku S ICT ve výuce to umíme_dodávka dodatečného software Druh zadávacího řízení: Otevřené nadlimitní řízení na dodávky dle 27 zákona č.137/2006 Sb.,
Více5. Umělé neuronové sítě. Neuronové sítě
Neuronové sítě Přesný algoritmus práce přírodních neuronových systémů není doposud znám. Přesto experimentální výsledky na modelech těchto systémů dávají dnes velmi slibné výsledky. Tyto systémy, včetně
VíceAplikace je program určený pro uživatele. Aplikaci je možné rozdělit na části:
Aplikace Aplikace je program určený pro uživatele. Aplikaci je možné rozdělit na části: prezentační vrstva vstup dat, zobrazení výsledků, uživatelské rozhraní, logika uživatelského rozhraní aplikační vrstva
VícePV021 Vícevrstvá neuronová síť pro rozeznávání mikroteček. Matúš Goljer, Maroš Kucbel, Michal Novotný, Karel Štěpka 2011
PV021 Vícevrstvá neuronová síť pro rozeznávání mikroteček Matúš Goljer, Maroš Kucbel, Michal Novotný, Karel Štěpka 2011 Úkol sítě Rozeznávat obrázky obsahující fluorescenční mikrotečky od obrázků s nespecifickým
VíceMaturitní témata Školní rok: 2015/2016
Maturitní témata Školní rok: 2015/2016 Ředitel školy: Předmětová komise: Předseda předmětové komise: Předmět: PhDr. Karel Goš Informatika a výpočetní technika Mgr. Ivan Studnička Informatika a výpočetní
VícePráce v textovém editoru
Práce v textovém editoru 0) Otevřete NOTEPAD a okopírujte celý tento článek do NOTEPADu. [Můžete použít zkratky Ctrl-A (označit vše) Ctrl+C(kopírovat), Ctrl+V (vložit)] 1) Najděte v tomto textu slovo "myš"
Více28.z-8.pc ZS 2015/2016
Ústav technologie, mechanizace a řízení staveb Teorie měření a regulace počítačové řízení 5 28.z-8.pc ZS 2015/2016 2015 - Ing. Václav Rada, CSc. Další hlavní téma předmětu se dotýká obsáhlé oblasti logického
VíceZÁPOČTOVÁ PRÁCE z UIR
ZÁPOČTOVÁ PRÁCE z UIR Jméno a příjmení: Jan Tichava Osobní číslo: Studijní skupina: pondělí, 4 5 Obor: INIB INF E-mail: jtichava@students.zcu.cz Datum odevzdání: 1.5.2006 Zadání Označení zadání: 2004KT01
VícePŘÍLOHA C Požadavky na Dokumentaci
PŘÍLOHA C Požadavky na Dokumentaci Příloha C Požadavky na Dokumentaci Stránka 1 z 5 1. Obecné požadavky Dodavatel dokumentaci zpracuje a bude dokumentaci v celém rozsahu průběžně aktualizovat při každé
VícePOČÍTAČE A PROGRAMOVÁNÍ
POČÍTAČE A PROGRAMOVÁNÍ Moderní metody vývoje softwaru, Demontrační příklad piškvorky Miroslav Vavroušek PPI 09 V1.0 Opakovaní z minulé přednášky Vícerozměrná statická a dynamická pole Pole polí Datový
VíceVY_32_INOVACE_INF.19. Inkscape, GIMP, Blender
VY_32_INOVACE_INF.19 Inkscape, GIMP, Blender Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Jiří Kalous Základní a mateřská škola Bělá nad Radbuzou, 2011 INKSCAPE Inkscape je open source
Více8 Třídy, objekty, metody, předávání argumentů metod
8 Třídy, objekty, metody, předávání argumentů metod Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost třídám a objektům, instančním
VíceProgramování II. Třídy a objekty (objektová orientovanost) 2018/19
Programování II Třídy a objekty (objektová orientovanost) 2018/19 Osnova přednášky Objektový přístup (proč potřebujeme objekty). Třídy, objekty,... Příklad. Proč potřebujeme objekty? Udržovatelnost softwaru
VíceAlgoritmus pro hledání nejkratší cesty orientovaným grafem
1.1 Úvod Algoritmus pro hledání nejkratší cesty orientovaným grafem Naprogramoval jsem v Matlabu funkci, která dokáže určit nejkratší cestu v orientovaném grafu mezi libovolnými dvěma vrcholy. Nastudoval
VíceSimluátor Trilobota. (projekt do předmětu ROB)
Simluátor Trilobota (projekt do předmětu ROB) Kamil Dudka Jakub Filák xdudka00 xfilak01 BRNO 2008 1 Úvod Jako školní týmový projekt jsme si zvolili simulátor trilobota 1 a jeho prostředí. Simulátor komunikuje
VíceZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ 2014 5.3-5.8 9/14
ZÁKLADY PROGRAMOVÁNÍ Mgr. Vladislav BEDNÁŘ 2014 5.3-5.8 9/14 Co je vhodné vědět, než si vybereme programovací jazyk a začneme programovat roboty. 1 / 12 0:40 UML unifikovaný modelovací jazyk Zkratka tohoto
Více