4 Flashcards

(14 cards)

1
Q

Co je to algoritmus

A

Přesný návod nebo postup, kterým můžeme vyřešit určitý typ úlohy. Algoritmus musí být konečný, výpočetní metoda nemusí být

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Jaké má vlastnosti algoritmus

A

Konečnost - každý algoritmus musí skončit pro každý vstup
Obecnost — algoritmus musí být co nejvíce obecný
Determinovanost — každý krok algoritmu musí být pevně definován( když algoritmus pustíme 1000x se stejnýma vstupními daty dostaneme stejný výsledek
Výstup — musí mít aspoň jeden výstup

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Co je to rekurzivní algoritmus

A

Algoritmus který volá sám sebe ale ne do nekonečna. Je tam nějaká podmínka kdy se má ukončit. Každý rekurzivní algoritmus lze přepsat bez rekurze

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Jak se dělí rekurze

A

Na přímou/nepřímou a lineární/stromovou
Přímá podprogram vola sám sebe
Nepřímá podprogram vola jinou metodu a ta pak vola zase ten podprogram (kruh)
Lineární podprogram volá sám sebe jen jednou
Stromová - s každým dalším voláním sama sebe se podprogram vola víckrát

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Co je to hladový algoritmus

A

Řeší problém obchodního cestujícího.
Algoritmus nahodnoti prvky a vybere vždy ten nejlepší prvek pak jde dal a opakuje dokud nedojde nakonec. Jakmile je jedno rozhodnutí učiněno uz se nevezme zpátky. (Algoritmus nekontroluje jestli sel správnou cestou )

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Co je to algoritmus typu rozděl a panuj

A

Algoritmus rozdělí problém na menší podproblemy a ty pak řeší rekurzivně nebo iterativně nakonec se často sloučí ( používá se třeba pro quicksort)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Co je to pravděpodobnostní algoritmus

A

Provádí některá rozhodnutí náhodně snaží se najít řešení co nejrychleji .
Pros hejny vstup má rozdílné výsledky , musí se pustit vícekrát abychom došli k nějakému rozumnému řešení .muze to byt ale kratší než deterministicky

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Co je to algoritmus dynamického programování

A

Rozdělí problémy na složité a jednoduché. Složité pak využívají výsledku těch jednoduchých a řeší se tak lépe.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Co je to heuristický algoritmus

A

Nema za cíl najít přesné řešení, jen co nejbližší . Používá se kdyz máme nedostatek zdrojů pro přesné algoritmy

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Jaké máme metody zrychlování algoritmů

A

Předzpracování dat
Odstranění rekurze
Optimalizace výpočtu pro hardware ( dobrá práce s paměti )
Odstranění duplicitního kódu
Optimalizace zdrojového kódu

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Co je verifikace algoritmu jaky je rozdíl oproti testování

A

Princip je že máme nějaký program a popis jeho předpokládaného chování
Verifikace pak ma dokázat že je program správný vzhledem k zadaným predikátům .
Oproti Testivani dokazujeme nepřítomnost chyby ne přítomnost

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Jaké máme predikáty

A

Vstupní - vstupní filtr (omezuje jaká data a Va jaké formě jsou aby mohli do programu )
Výstupní říká jak vypadá vnitřek programu po ukončení, proměnné a cykly

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Jaké máme vektory

A

Vstupní vektor - vstupní proměnné
Vektor programu - vnitřní pomocné proměnné , mezivýsledky
Výstupní vektor - výstupní data v momentě ukončení

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Jaké máme korektnosti

A

Parciální dochází k verifikaci programu vzhledem k predikátům rozděleného do menších částí
Totální dochází k verifikaci celého programu vzhledem k predikátům

How well did you know this?
1
Not at all
2
3
4
5
Perfectly