C2142 Návrh algoritmů pro přírodovědce

Podobné dokumenty
10. Techniky formální verifikace a validace

Algoritmy na ohodnoceném grafu

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

ALGORITMY A DATOVÉ STRUKTURY

07 Základní pojmy teorie grafů

Cvičení MI-PRC I. Šimeček

IB111 Úvod do programování skrze Python Přednáška 13

Stromy, haldy, prioritní fronty

Graf. Uzly Lokality, servery Osoby fyzické i právní Informatické objekty... atd. Hrany Cesty, propojení Vztahy Informatické závislosti... atd.

Grafové algoritmy. Programovací techniky

Dynamické datové struktury III.

3. Třídy P a NP. Model výpočtu: Turingův stroj Rozhodovací problémy: třídy P a NP Optimalizační problémy: třídy PO a NPO MI-PAA

Základní datové struktury III: Stromy, haldy

Algoritmy. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 15. dubna / 39

1 Nejkratší cesta grafem

10. Složitost a výkon

Maturitní témata. IKT, školní rok 2017/18. 1 Struktura osobního počítače. 2 Operační systém. 3 Uživatelský software.

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem.

Úvod do teorie grafů

bfs, dfs, fronta, zásobník, prioritní fronta, halda

Třídy složitosti P a NP, NP-úplnost

1. Převeďte dané číslo do dvojkové, osmičkové a šestnáctkové soustavy: a) b)

Algoritmus pro hledání nejkratší cesty orientovaným grafem

Základy algoritmizace

Úvod. Programovací paradigmata

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12.

Profilová část maturitní zkoušky 2017/2018

Dynamické programování UIN009 Efektivní algoritmy 1

Dynamické programování

Michal Krátký. Úvod do programování. Cíl kurzu. Podmínky získání zápočtu III/III

Použití dalších heuristik

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Algoritmy a datové struktury

VeriFIT Automatizovaná analýza a verifikace

bfs, dfs, fronta, zásobník, prioritní fronta, halda

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

Dynamické programování

Profilová část maturitní zkoušky 2013/2014

Testování a verifikace softwaru

Algoritmizace. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

NPRG030 Programování I, 2018/19 1 / :03:07

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

Paralelní programování

TGH06 - Hledání nejkratší cesty

TGH06 - Hledání nejkratší cesty

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

4. Úvod do paralelismu, metody paralelizace

Obsah prezentace. Základní pojmy v teorii o grafech Úlohy a prohledávání grafů Hledání nejkratších cest

Vzdělávací oblast: Informatika a informační a komunikační technologie Vzdělávací obor: Programování. Předmět: Programování

NP-ÚPLNÉ PROBLÉMY. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace

Třída PTIME a třída NPTIME. NP-úplnost.

3 Co je algoritmus? Trocha historie Definice algoritmu Vlastnosti algoritmu... 3

Vzdělávací oblast: Informatika a informační a komunikační technologie Vzdělávací obor: Programování Předmět: Programování

NMIN101 Programování 1 2/2 Z --- NMIN102 Programování /2 Z, Zk

Úvod do teoretické informatiky

Paralelní programování

TEORETICKÁ INFORMATIKA

Unbounded Model Checking

IB111 Úvod do programování skrze Python

Algoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

2 Životní cyklus programového díla

Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program

Programování II. Modularita 2017/18

Algoritmizace prostorových úloh

Formální Metody a Specifikace (LS 2011) Formální metody pro kyber-fyzikální systémy

Složitost. Teoretická informatika Tomáš Foltýnek

Grafové algoritmy. Programovací techniky

Zpráva o průběhu přijímacího řízení na vysokých školách dle Vyhlášky MŠMT č. 343/2002 a její změně 276/2004 Sb.

Informatika pro záchranu života

Základy algoritmizace, návrh algoritmu

NEJKRATŠÍ CESTY I. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

Vzdálenost uzlů v neorientovaném grafu

Václav Matoušek KIV. Umělá inteligence a rozpoznávání. Václav Matoušek / KIV

Metody návrhu algoritmů, příklady. IB111 Programování a algoritmizace

IV113 Validace a verifikace. Formální verifikace algoritmů. Jiří Barnat

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

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

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

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

Matematika v programovacích

Informatika a výpočetní technika 1. roč./1. sem. 1. roč./2. sem. 2. roč./3. sem. 1 kr. Povinné předměty pro obor IVT

NMIN101 Programování 1 2/2 Z --- NMIN102 Programování /2 Z, Zk

Úvod do informatiky. Miroslav Kolařík

Bonn, Rheinischen Friedrich-Wilhelms-Universität

Datové struktury 2: Rozptylovací tabulky

Semestrální úloha 1 z předmětu Programovací jazyk C. Textový merge. Student:

ALGORITMIZACE A PROGRAMOVÁNÍ

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

Složitost algoritmů. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava

Třída PTIME a třída NPTIME. NP-úplnost.

Základy umělé inteligence

InformatikaaVT(1) Cílem předmětu je: Žáci:

Regulární výrazy. Definice Množina regulárních výrazů nad abecedou Σ, označovaná RE(Σ), je definována induktivně takto:

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

Program a životní cyklus programu

Rekurze. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12.

Umělá inteligence a rozpoznávání

Základní datové struktury

Diplomová práce Prostředí pro programování pohybu manipulátorů

Transkript:

C2142 Návrh algoritmů pro přírodovědce 1. Od problému k algoritmu Tomáš Raček Jaro 2014

Organizace předmětu Rozsah: 1/2/0 Přednáška: Po 16:00-16:50 Cvičení: nepovinná, 3 seminární skupiny Ukončení: písemná zkouška alespoň 60 % bodů pro ukončení zkouškou (zk), 40 % pro ukončení zápočtem (z) Webová stránka: www.fi.muni.cz/ xracek/c2142_spring2014/ Konzultace: po domluvě emailem

Sylabus I Od problému k algoritmu. Specifikace, korektnost. Úvod do složitosti. Základní datové struktury (spojový seznam, fronta, zásobník). Motivace k vyhledávání dat, řadicí algoritmy (binární půlení, Selection sort, Merge sort). Vyhledávací stromy, haldy (BST, Heap sort). Hashování, indexy.

Sylabus II Základní pojmy teorie grafů, jejich reprezentace, metody prohledávání (BFS, DFS). Nejkratší vzdálenosti (Dijkstra, Bellman-Ford, Floyd-Warshall). Kostry (Prim, Kruskal). Přístupy k řešení problémů (hrubá síla, hladové algoritmy, rozděl a panuj). Těžké problémy (TSP, SAT, P vs. NP). Pokročilé datové struktury (AVL, B+ stromy, Union-Find).

O čem to bude pochopení základních principů návrhu algoritmů a datových struktur prezentace nejpoužívanějších generických algoritmů důraz na aplikovatelnost snaha dorozumět se s informatiky

O čem to nebude výuka programování v konkrétním jazyce formální odvozování korektnosti, složitosti FI:IB001 Algoritmy a datové struktury I numerické výpočty, řešení rovnic FI:PA081 Programování numerických výpočtů optimalizace pro konkrétní architektury (např. CUDA) FI:PV197 GPU Programming

Problém, program, algoritmus Příklady problémů: Co je odmocnina z 27? Bude zítra pršet? Co si vzít na sebe do divadla? Algoritmus funkce mezi vstupem a výstupem reprezentována konečným způsobem v nějakém formalismu, typicky programovacím jazyce Ne každý problém lze algoritmicky řešit. Program implementace algoritmu balík algoritmů

Výpočetní paradigmata Paradigma (vzor, pojetí) udává způsob vyjádření algoritmu. imperativní program vyjádřen jako posloupnost kroků deklarativní co se má vykonat, ne jak př. funkcionální, logické strukturované kód rozdělen do funkcí, procedur objektové svět modelován jako systém komunikujících objektů sekvenční paralelní

Imperativní paradigma výpočet je posloupnost jednoduchých příkazů v proměnných je udržován stav výpočtu formální definice např. přes Turingův stroj int factorial(int n) { int fact = 1; for(int i = 1; i <= n; i++) fact *= i; return fact; }

Funkcionální paradigma výpočet je posloupnost redukčních kroků (= elementárních úprav) výsledek je výraz, který nelze zjednodušit nemá proměnné v klasickém pojetí fact 0 = 1 fact n = n * fact(n - 1) Příklad: fact(2) 2 * fact(1) 2 * 1 * fact(0) 2 * 1 * 1 2 * 1 2

Logické paradigma automatické uvažování nad znalostmi aplikace odvozovacích pravidel na fakta % fakty otec(milan,dana). otec(milan,petr). matka(pavla,dana). matka(pavla,petr). % pravidlo sourozenci(x,y):- otec(o,x), otec(o,y),\ X\=Y, matka(m,x), matka(m,y).

Algoritmus z praxe

Kde se pohybujeme jednoduchý model vývoje SW vodopád

Specifikace, korektnost Specifikace představuje zadání funkční nefunkční požadavky Příklady: přirozený jazyk možnost dezinterpretace strukturovaná angličtina formální specifikace vstupní podmínka φ, výstupní podmínka ψ umožňuje provádět matematické důkazy příklad: φ(x, y) x, y N, ψ(x, y, z) z = x y, z N Korektnost: ověření, že algoritmus odpovídá specifikaci nerozhodnutelný problém

Chyby v běžném SW

Ariane 5 (1996) I nosná raketa ESA (European Space Agency) software z Ariane 4 5krát vyšší zrychlení při startu než předchůdce

Ariane 5 (1996) II

Ariane 5 (1996) II hodnoty se dostaly mimo očekávaný rozsah exploze 40 sekund po startu

Mars Climate Orbiter (1999) I I I průzkum atmosféry Marsu měl obíhat ve výšce 150 km nad povrchem klesl ale do výšky 57 km, kde byl zničen

Mars Climate Orbiter (1999) I I I I průzkum atmosféry Marsu měl obíhat ve výšce 150 km nad povrchem klesl ale do výšky 57 km, kde byl zničen software v sondě používal metrický systém, řídicí software na Zemi jednotky imperiální

Therac-25 (1985) přístroj pro léčbu ozařováním dva režimy: slabý výboj po několik sekund násobný výboj o velké intenzitě

Therac-25 (1985) přístroj pro léčbu ozařováním dva režimy: slabý výboj po několik sekund násobný výboj o velké intenzitě při rychlém zadávání příkazů z klávesnice došlo k souběhu 5 lidí po léčbě zemřelo, protože bylo ozářeno silnou dávkou po několik sekund

Testování levné rychlé často používané Co testovat?

Testování levné rychlé často používané Co testovat? obvyklý běh krajní hodnoty zakázané hodnoty Nedostatky: nelze otestovat každou konfiguraci pokud se chyba neprojeví, neznamená to, že neexistuje

Souběh bankovní účet Zadání: jeden účet, dva bankéři, kteří jsou schopni s ním manipulovat počáteční stav účtu: 1 000 Kč potřeba zaplatit nájem: 2 000 Kč výplata: 10 000 Kč

Souběh bankovní účet Zadání: jeden účet, dva bankéři, kteří jsou schopni s ním manipulovat počáteční stav účtu: 1 000 Kč potřeba zaplatit nájem: 2 000 Kč výplata: 10 000 Kč Problém: bankéř A vezme současnou hodnotu 1 000 Kč a přičte k ní 10 000 Kč bankéř B vezme současnou hodnotu 1 000 Kč a odečte od ní 2 000 Kč bankéř A uloží výsledek operace 11 000 Kč bankéř B uloží výsledek operace 1 000 Kč Koncový stav účtu: 1 000 Kč.

Uváznutí večeřící filozofové aby filozof mohl začít jíst, potřebuje mít obě vidličky pokud alespoň jednu nemá, musí čekat

Uváznutí večeřící filozofové aby filozof mohl začít jíst, potřebuje mít obě vidličky pokud alespoň jednu nemá, musí čekat Patologický stav v jednu chvíli uchopí každý filozof pravou vidličku dochází k uváznutí (deadlock)

Formální verifikace I existují situace, kdy testování není dostatečné např. souběh, uváznutí se nemusí vždy projevit

Formální verifikace I existují situace, kdy testování není dostatečné např. souběh, uváznutí se nemusí vždy projevit poskytuje stejnou míru jistoty jako matematický důkaz použitelné pouze pro velmi malé systémy garance vlastností kreditní karty, letecké systémy,...

Formální verifikace II ověřujeme, zda systém splňuje danou vlastnost poskytuje protipříklad Model systému: konečněstavový automat uzly - stavy systému hrany - přípustné přechody mezi stavy Vlastnost systému: vyjádřena jako formule temporální logiky

Zdroje FI:IB002 Návrh algoritmů I, jaro 2009 FI:PB007 Analýza a návrh systémů, podzim 2010 FI:IV113 Úvod do validace a verifikace, podzim 2011