
- •Informatika
- •Příprava na teoretický test
- •Xkass00
- •Historie počítačů
- •Nultá generace (do roku 1945)
- •První generace (1945-1951)
- •Druhá generace (1951-1965)
- •Třetí generace (1965-1980)
- •Čtvrtá generace ( 1981- současnost)
- •Shrnutí
- •Mooreův zákon
- •Hardware Procesor
- •Základní deska
- •Grafická karta
- •Pevný disk
- •Počítačová sestava
- •Mobilní zařízení
- •Algoritmy
- •Algoritmy V matematice
- •Kategorie problémů
- •Složitost algoritmů
- •Závislost na formě zápisu
- •Vlastnosti algoritmů
- •Způsob zápisu
- •Programování
- •Algoritmy V praxi
- •Software
- •Základní software
- •Aplikační software
- •Právní aspekty používání sw
- •Způsoby pořízení sw
- •Komerční program
- •Zakázkový program
- •Databázové systémy
- •Internet
- •1987 Vzniká pojem Internet, propojeno cca 27000 počítačů
- •Intranet
- •Virtuální privátní sítě
- •Vyhledavače
- •Využívají výpočetní výkon (procesor)
- •Digitalizace
- •Sociální sítě
- •V oblasti webu 2.0 je sociální síť systém, který umožňuje vytvářet a udržovat seznam vzájemně propojených kontaktů, přátel
- •Internetové sociální sítě přenášejí do digitálního prostředí vazby z reálného světa
- •Cloud computing
- •SaaS- software as a service
- •Paas- platform as a service
- •IaaS- infrastructre as a service
- •Caas- communication as a service
- •Bezpečnost V prostředí it
- •Blokové
- •EGovernement
- •Czech point
- •Datové schránky
Algoritmy
Od perského matematika a astronoma Chórezmího- autor díla, které seznámilo Evropu s indickou poziční soustavou výpočtu a číslem 0.
Algoritmus v obecném pojetí označuje návod pro postup k nějaké činnosti
Algoritmy V matematice
Pojem algoritmus je v matematice chápán intuitivně a není pro něj definice
Z matematického hlediska je to návod, který má tyto vlastnosti:
Je složen z konečného počtu přesně definovaných instrukcí, zapsaných konečným počtem symbolů
Řeší většinou problémy v závislosti na vstupních podmínkách (datech)
Může být prováděn i člověkem
Není třeba lidské inteligence, pouze k pochopení instrukcí
Alan Turing- definoval matematický model algoritmu- „Turingův stoj“-> pro každý algoritmus, chápaný intuitivně, existuje ekvivalentní Turingův stroj a obráceně
Dnešní Teorie algoritmů-> Teorie algoritmů a Teorie vyčíslitelnosti
3 základní otázky: Co všechno lze pomocí algoritmu vyřešit; jak složitý musí být algoritmus pro vyřešení daného problému; je algoritmus závislý na způsobu zápisu
Kategorie problémů
Algoritmicky rozhodnutelné- spočetné, rekurzivní
Výsledek bez ohledu na počáteční podmínky (vstup)
Praktické problémy
Algoritmy částečně rozhodnutelné- rekurzivně spočetné, vyčíslitelné
Algoritmus existuje, ale skončí a vydá výsledek jen někdy-> nemáme jistotu, zda skončí
Schopnost rozhodnout, zda jiný algoritmus za daných podmínek skončí nebo ne (halting problem)
Algoritmicky nerozhodnutelné- nerekurzivní, nespočetné
Nejsou algoritmicky rozhodnutelné
Např. problém rozhodnout, zda dva algoritmy dělají totéž
Problémy z oblasti společenských věd- ekonomie, psychologie, sociologie...
Složitost algoritmů
Závisí na množství času a prostředků (např. paměti) které algoritmus ke svému provedení potřebuje
Polynomiální složitosti- množství času a prostředků lze v závislosti na vstupních podmínkách vyjádřit polynomem
Ne-polynomiální složitosti-nelze v záv. na vstupních podmínkách vyjádřit polynomem
Závislost na formě zápisu
To, co lze zapsat jednou formou, lze ekvivalentně vyjádřit jinou formou=> forma zápisu nemá vliv na vlastnosti algoritmu=> je jedno, jaký programovací jazyk pro zápis zvolíme
Ne-polynomiální úlohy
Problém batohu- daná množina předmětu předem definované velikosti a batoh-> jak vybrat předměty aby se tam vešly a zároveň měly maximálně možný objem
Nepolynomiální problém-> s množství předmětu roste složitost řešení minimálně exponenciálně=> velmi složité
Lze u předem připraveného seznamu posoudit, zda se tam vejde nebo ne
Lze porovnat dva seznam a zjistit, který je výhodnější
Problém dělení lupu- jak rozdělit lup napůl, když každý předmět je nedělitelný-> je jednodušší posuzovat navržené řešení, než ho tvořit (postup, který by problém řešil a navrhl řešení, popř. zjistil, že neexistuje není polynomiální)
Je jednoduší a rychlejší ověřit, zda je navržené řešení opravdu řešením problému, než řešení nalézt-> stejné jako zkoušející x zkoušený
Nepolynomiální algoritmy se využívají především pro šifrování (certifikát pro elektronickou komunikaci s bankou, tvorba elektrických podpisů)