Předávání parametrů z příkazové řádky OS (1)

Slides:



Advertisements
Podobné prezentace
LOGISTICKÉ SYSTÉMY 14/15.
Advertisements

NEJKRATŠÍ CESTY MEZI VŠEMI UZLY
Stavový prostor. • Existují úlohy, pro které není k dispozici univerzální algoritmus řešení • různé hry • problém batohu, problém obchodního cestujícího.
Dualita úloh lineárního programování a analýza citlivosti
Aplikace teorie grafů Základní pojmy teorie grafů
ALGO – Algoritmizace 1. cvičení
Teorie čísel Nekonečno
Základy informatiky přednášky Kódování.
Programování v C++ Cvičení.
Medians and Order Statistics Nechť A je množina obsahující n různých prvků: Definice: Statistika i-tého řádu je i-tý nejmenší prvek, tj., minimum = statistika.
FORMALIZACE PROJEKTU DO SÍŤOVÉHO GRAFU
Binární stromy, AVL stromy
Informatika pro ekonomy II přednáška 4
LOGISTICKÉ SYSTÉMY 7/14.
LOGISTICKÉ SYSTÉMY 8/14.
Funkce.
Základní číselné množiny
LINEÁRNÍ OPTIMALIZAČNÍ MODEL
SÍŤOVÁ ANALÝZA.
Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
Řadicí algoritmy autor: Tadeáš Berkman.
Vyučovací hodina 1 vyučovací hodina: Opakování z minulé hodiny 5 min Nová látka 20 min Procvičení nové látky 15 min Shrnutí 5 min 2 vyučovací hodiny: Opakování.
BRVKA Leonard Paul Euler (1707 – 1783). Pod označením INVERZNÍ proces chápeme opačný děj, takový, který probíhá opačným směrem, např. tání a tuhnutí.
TI 7.1 NEJKRATŠÍ CESTY Nejkratší cesty - kap. 6. TI 7.2 Nejkratší cesty z jednoho uzlu Seznámíme se s následujícími pojmy: w-vzdálenost (vzdálenost na.
ORIENTOVANÉ GRAFY V této části se seznámíme s následujícími pojmy:
F U N K C E.
Složitost.
Tato prezentace byla vytvořena
Matice.
Časová složitost algoritmů, řazení a vyhledávání
Časová složitost algoritmů
Teorie složitosti I když je problém rozhodnutelný (řešitelný algoritmicky), může mít příliš velké nároky na čas výpočtu nebo paměť, a může se tedy.
Cvičení.
CW – 05 TEORIE ROZHODOVACÍCH PROCESŮ Ústav technologie, mechanizace a řízení staveb Fakulta stavební VUT v Brně © Ing. Václav Rada, CSc. 15. PŘEDNÁŠKA.
VLASTNOSTI GRAFŮ Vlastnosti grafů - kap. 3.
Formální modely výpočtu Tomáš Vaníček Katedra inženýrské informatiky Stavební fakulta ČVUT Thákurova 7, Praha 6 Dejvice, b407
ALGO – Algoritmizace 4. cvičení 1.ročník, ZS Ing. Zdena DOBEŠOVÁ, Ph.D.
Turingův stroj.
Výpočetní složitost Odhlédneme-li od realizace algoritmu na konkrétním hardwaru a v konkrétním prostředí informačního systému, lze časovou složitost hodnotit.
Základy ALgoritmizace 6. cvičení. Program cvičení Kontrolní bod 1 zakončení grafického zápisu algoritmů - vývojových diagramů –identifikátory a proměnné.
Automaty a gramatiky.
Číselné posloupnosti.
Nelinearity s hysterezí Přerušení platnosti relace vytváří dvě různé charakteristiky, jejichž platnost je podmíněna směrem pohybu Hystereze přepínače x.
Graf nepřímé úměrnosti
Mlhavost Fuzzy logika, fuzzy množiny, fuzzy čísla
Počítače a programování 1 7.přednáška. Základy Pole ve třídách a metodách Pole Arrays.
Kanonické indexování vrcholů molekulového grafu Molekulový graf: G = (V, E, L, ,  ) Indexování vrcholů molekulového grafu G: bijekce  : V  I I je indexová.
Monte Carlo simulace Experimentální fyzika I/3. Princip metody Problémy které nelze řešit analyticky je možné modelovat na základě statistického chování.
NP-úplné problémy v grafech
Sylabus V rámci PNV budeme řešit konkrétní úlohy a to z následujících oblastí: Nelineární úlohy Řešení nelineárních rovnic Numerická integrace Lineární.
Teorie čísel Prvočíslo Generování prvočísel: Erathosenovo síto
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 1 / 15Doc. Josef Kolář (ČVUT)NP-úplné problémyGRA, LS 2012/13, Lekce 13 1 / 14 NP-ÚPLNÉ.
Stromy a kostry. Definice stromu Souvislý (neorientovaný) graf – mezi každými dvěma vrcholy existuje (alespoň jedna) cesta Strom je souvislý graf, který.
McEllisova šifra.
Neuronové sítě.
Problém obchodního cestujícího Zpracoval Ing. Jan Weiser.
Vypracoval / Roman Málek
Funkce Funkce je zobrazení z jedné číselné množiny do druhé, nejčastěji Buď A a B množiny, f zobrazení. Potom definiční obor a obor hodnot nazveme množiny:
Vícerozměrná pole (1) Jazyk C povoluje, aby pole mělo více rozměrů (dimenzí) než jeden Z vícerozměrných polí bývá nejčastěji použí-váno pole dvourozměrné.
Znázornění dopravní sítě grafem a kostra grafu Předmět: Teorie dopravy - cvičení Ing. František Lachnit, Ph.D.
Mgr. Radka Pospíchalová
Příkazy cyklu (1) Umožňují vícekrát (nebo ani jednou) pro-vést určitý příkaz Jazyk C rozlišuje příkaz cyklu: s podmínkou na začátku: obecný tvar: while.
1 Lineární (vektorová) algebra
Oblast platnosti identifikátoru (1)
Výpočetní složitost algoritmů
Dynamické proměnné (1) Proměnné, jejichž počet a (nebo) velikost pa-měti využívané těmito proměnnými se v prů-běhu programu mění Dynamické proměnné lze.
Různé algoritmy mají různou složitost
Jiří Vyskočil, Marko Genyg-Berezovskyj 2010
Toky v sítích.
Logické programování Prezentace číslo 5.
Transkript prezentace:

Předávání parametrů z příkazové řádky OS (1) Spustitelnému programu mohou být z příka-zové řádky OS předány vstupní parametry Každý parametr musí být oddělen mezerou nebo tabulátorem Např. Prumer /g 10 20 1 15 4 8 5 Prumer značí spustitelný program: odkaz na soubor Prumer.exe 01/06/2018

Předávání parametrů z příkazové řádky OS (2) Zbývající část potom tvoří jednotlivé vstup-ní parametry Parametry zapsané na příkazové řádce OS jsou předávány funkci main Hlavička funkce main musí být zapsána ve tvaru: int main(int argc, char *argv[]) 01/06/2018

Předávání parametrů z příkazové řádky OS (3) argc: udává celkový počet řetězců (ukazatelů), které jsou obsaženy v poli argv (počet předávaných paramet-rů plus jedna) argv: představuje pole řetězců, v němž: argv[0]: obsahuje jméno spouštěného programu argv[1] až argv[argc-1]: obsahují jednotlivé předávané parametry 01/06/2018

Složitost algoritmů (1) Na začátku minulého století vzniká pochyb-nost o tom, zda některé algoritmy vůbec existují V této době totiž vznikla také potřeba najít matematický ekvivalent doposud intuitivně chápaného pojmu algoritmus Tato formalizace se uskutečnila kolem roku 1936 a přinesla důkaz, že existují nerozhod-nutelné (neřešitelné) algoritmické problémy 01/06/2018

Složitost algoritmů (2) Teorie, která vznikla formalizací pojmu algo-ritmus a které se často říká teorie algoritmů je v podstatě teorií vyčíslitelnosti, teorií existen-ce algoritmů a teorií nerozhodnutelných prob-lémů Existence rychlých počítačů vytvořila podmín-ky a potřebu pro vznik teorie, která věnuje po-zornost problematice: analýzy a efektivity algoritmů (programů) složitosti algoritmů hledání optimálních algoritmů 01/06/2018

Složitost algoritmů (3) Má to následující důvody: nalezení efektivnějšího algoritmu často umožňu-je řešit předtím prakticky neřešitelné problémy nalezení efektivnějšího algoritmu může přinést více než realizovatelné zrychlení počítačů i malé zefektivnění velmi často prováděných algoritmů (programů) může přinést výrazný ča-sový a ekonomický efekt. Toto je zvláště důležité při: tvorbě základního programového vybavení (firmwa-re, OS, ovladače zařízení) při práci s velkým množstvím dat 01/06/2018

Asymptotická složitost alg. (1) Při konstrukci algoritmu se snažíme obvykle najít co nejlepší algoritmus a k tomu potře-bujeme kritérium, které by dovolilo vzájem-né porovnání algoritmů Z praktického i teoretického hlediska má v tomto směru velký význam složitost: časová: udává jak roste čas, který algoritmus potřebuje ke své činnosti v závislosti na rozsahu problému (veli-kosti vstupních dat) 01/06/2018

Asymptotická složitost alg. (2) paměťová: udává jak roste kapacita paměti, kterou algoritmus potřebuje ke své činnosti v závislosti na rozsahu problému (velikosti vstupních dat) Detailní vyjádření těchto závislostí je větši-nou velmi komplikované, těžko určitelné a také velmi nepřehledné Proto je užitečné zaměřit se na vyjádření tzv. asymptotické složitosti algoritmu 01/06/2018

Asymptotická složitost alg. (3) Nás bude především zajímat časová asymp-totická složitost Vstupní údaje problému charakterizujeme jediným přirozeným číslem n: tzv. rozsah problému jistým způsobem reprezentuje rozsah (velikost) vstupních dat – např. délku posloupnosti, počet uzlů grafu, rozměr matice atd. 01/06/2018

Asymptotická složitost alg. (4) Je-li A algoritmus řešení daného problému, označme fA(n) funkci udávající maximální počet základních operací charakteristických pro daný problém, např. srovnání pro třídící algoritmy násobení u násobení matic které algoritmus provede při řešení problé-mu rozsahu n 01/06/2018

Asymptotická složitost alg. (5) Jsou-li f(n) a g(n) dvě funkce (které přiřazují přirozeným číslům reálná čísla), píšeme: f (n) = O (g (n)) jestliže existují přirozená čísla n0 a k tak, že pro každé n ł n0 platí: f (n) Ł k.g (n) Je-li fA (n) = O (g (n)), říkáme, že funkce fA (n) (až na multiplikativní konstantu) z asymptotic-kého hlediska neroste rychleji než g (n) 01/06/2018

Asymptotická složitost alg. (6) Funkci g (n) nazýváme časovou asymptotic-kou složitostí algoritmu A O algoritmu A řekneme, že jeho časová slo-žitost je: polynomiální: jestliže fA (n) = O (Pm (n)), kde Pm(n) je polynom nějakého pevného stupně m exponenciální: v opačném případě 01/06/2018

Polynomiální algoritmy Čas, který potřebují ke zpracování vstupních dat algoritmy považované za rychlé bývá zpravidla shora omezen funkcemi typu n, n.log (n), n2 a n3 Jako horní hranici lze vždy použít polynom Proto se těmto algoritmům říká polynomiál-ní nebo také prakticky použitelné 01/06/2018

Exponenciální algoritmy (1) Pomalé (prakticky nepoužitelné) algoritmy užívají metodu „hrubé síly“, kterou probírají všechny možnosti Je-li dána n prvková množina a probírají-li se všechny její: podmnožiny: je potřeba alespoň 2n kroků permutace: je potřeba alespoň n! kroků zobrazení do sebe: je potřeba alespoň nn kroků Odhad počtu kroků je alespoň exponenciální 01/06/2018

Exponenciální algoritmy (2) Příklad: Problém obchodního cestujícího je dán seznam n měst a pro každou dvojici měst je známa jejich vzdálenost (výše jízdného). Určete nejkratší (nejlevnější) cestu procházející všemi městy daného seznamu Algoritmus, který systematicky vyčísluje všechny permutace je exponenciální, jeho časová složitost je O (n!) 01/06/2018

Srovnání algoritmů (1) Následující tabulka uvádí maximální rozsah problému, který je možné řešit jednotlivými algoritmy v čase 1sekunda, 1 minuta a 1 hodina Základní časová jednotka, tj. délka trvání základní operace je jedna milisekunda 01/06/2018

Srovnání algoritmů (2) Max. rozsah problému 1 sec. 1 min. 1 hod. A1 n 1000 60 000 3 600 000 A2 n + log (n) 990 59 984 3 599 978 A3 n.log (n) 140 4 893 200 000 A4 10n 100 6 000 360 000 A5 n2 31 244 1 897 A6 100n2 3 24 189 A7 n3 10 39 153 A8 n3 + n2 + 10n 3 9 38 153 2 A9 2n 9 15 21 01/06/2018

Srovnání algoritmů (3) V následující tabulce je uveden čas potřeb-ný ke zpracování vstupních dat rozsahu n, jestliže počet operací, které je nutné provést, je dán funkcí f (n) Provedení jedné operace trvá jednu mikrosekundu 01/06/2018

Srovnání algoritmů (4) n f(n) 20 40 60 80 100 200 500 1 000 n 20 ms n.log (n) 86 ms 0,2 ms 0,35 ms 0,5 ms 0.7 ms 1,5 ms 4,5 ms 10 ms n2 0,4 ms 1,6 ms 3,6 ms 6,4 ms 10,0 ms 40 ms 0,25 s 1 s n3 8,0 ms 64 ms 0,22 s 0,5 s 1 s 8 s 125 s 17 min n4 0,16 s 2,56 s 13 s 41 s 100 s 27 min 17 h 11,6 dní 2n 1,00 s 11,7 dní 36 600 let 3,6.109 let n! 77 000 let 01/06/2018

Srovnání algoritmů (5) Následující tabulka ukazuje zvětšení rozsa-hu zpracovatelných úloh, které odpovídá zvětšení výpočetní rychlosti použitého počítače 10 x, 100 x a 1 000 x Hodnoty v tabulce vychází z předpokladu, že původně bylo možno v daném časovém limitu zpracovat vstupní data o rozsahu n = 100 01/06/2018

Srovnání algoritmů (6) f(n) 1 x 10 x 100 x 1000 x n 100 1 000 10 000 100 000 n.log (n) 100 702 5 362 43 150 n2 100 316 1 000 3 162 n3 100 215 464 1 000 n4 100 177 316 562 2n 100 103 106 109 n! 100 100 100 101 01/06/2018