Co jsou počítačové algoritmy a jak fungují?
Pokud nejste v matematice nebo programování, slovo "algoritmus" by vám mohlo být řecké, ale je to jeden ze stavebních bloků všeho, co používáte k přečtení tohoto článku. Zde je rychlé vysvětlení toho, čím jsou, a jak fungují.
Odmítnutí odpovědnosti: Nejsem učitel matematiky ani počítačové vědy, takže všechny termíny, které používám, nejsou technické. To je proto, že se snažím vysvětlit vše v obyčejné angličtině, protože lidé nejsou s matematikou příliš spokojeni. To je řečeno, existuje nějaká matematika, a to je nevyhnutelné. Math geeks, neváhejte opravit nebo lépe vysvětlit v komentářích, ale prosím, držte to jednoduché pro matematicky neospravedlnitelné mezi námi.
Obrázek o Ian Ruotsala
Co je to algoritmus?
Slovo "algoritmus" má etymologii podobnou "algebru", kromě toho, že se jedná o arabského matematika samotného, al-Khwarizmiho (jen zajímavý tidbit). Algoritmem pro neprogramátory mezi námi je soubor instrukcí, které mají vstup A, a poskytují výstup, B, který nějakým způsobem mění data. Algoritmy mají širokou škálu aplikací. V matematice mohou pomáhat při výpočtu funkcí z bodů v datovém souboru, v mnohem pokročilejších věcech. Kromě jejich použití v programování sám, oni hrají hlavní role ve věcech, jako je komprese souborů a šifrování dat.
Základní sada pokynů
Řekněme, že se váš přítel setkává s vámi v obchodě s potravinami a vede ho k vám. Říkáte věci jako "přijít přes pravé dveře", "projít část ryby vlevo", "a" jestliže uvidíte mlékárnu, prošel jste mě. "Algoritmy fungují takto. Můžeme použít vývojový diagram, abychom ilustrovali pokyny založené na kritériích, které známe předem nebo v průběhu procesu zjistíme.
(obrázek s názvem "Rukopisná rutina" EDIT: s laskavým svolením Trigger a Freewheel)
Od START byste šli dolů po cestě a v závislosti na tom, co se děje, postupujte podle "toku" na konečný výsledek. Vývojové diagramy jsou vizuální nástroje, které mohou pochopitelně představovat soubor instrukcí používaných počítači. Podobně algoritmy pomáhají dělat totéž s více matematickými modely.
Grafy
Použijeme graf k ilustraci různých způsobů, jak můžeme dát pokyny.
Tento graf můžeme vyjádřit jako spojení mezi všemi jeho body. Abychom reprodukovali tento obrázek, můžeme dát jiným instruktorem řadu instrukcí.
Metoda 1
Můžeme to reprezentovat jako sérii bodů a informace by odpovídaly standardní formě grafu = (x1, y1), (x2, y2), ..., (xn, yn).
graf = (0,0), (3,0), (3,3), (5,5), 7,10, 8,7, 9,4,
Je velmi snadné vykreslovat každý bod, jeden po druhém, a připojit je k předchozímu bodu. Představte si však, že graf s tisíci body nebo více segmentů se bude každou cestou. Ten seznam by měl hodně dat, ne? A pak se muset připojit každý jeden, jeden po druhém, může být bolest.
Metoda 2
Další věc, kterou můžeme udělat, je poskytnout počáteční bod, sklon linky mezi ním a dalším bodem a naznačit, kde lze očekávat další bod použitím standardní formy grafu = (počáteční bod, [m1, x1, h1 ], ..., [mn, xn, hn] Zde proměnná "m" představuje sklon linky, "x" představuje směr, do kterého se počítá (ať už x nebo y) mnozí se počítá ve zmíněném směru. Také si můžete zapamatovat, že vykreslíte bod po každém pohybu.
1, x, 2], [2, x, 2], [3, x, 1], [0, x, [-3, x, 1], [-3, x, 1]
Nakonec skončíte stejným grafem. Můžete vidět, že poslední tři výrazy v tomto výrazu jsou stejné, takže můžeme být schopni oříznout to jen tím, že říká "opakovat to třikrát" nějakým způsobem. Řekněme, že kdykoli uvidíte proměnnou 'R', znamená to opakovat poslední věc. Zvládneme to:
1, x, 2], [2, x, 2], [3, x, 1], [0, x, [R = 2]
Co když jednotlivé body nezáleží na tom, a pouze vlastní graf? Tyto poslední tři části můžeme konsolidovat takto:
2, 3, x, 3], [1, x, 2], [3, x, 3]
To zkracuje věci trochu od místa, kde byly předtím.
Metoda 3
Zkusme to udělat jiným způsobem.
y = 0, 0≤x≤3
x = 0, 0≤y≤3
y = x, 3≤x≤5
y = 2,5x-7,5, 5≤x≤7
y = -3x + 29, 7y = -3x + 29, 8 y = -3x + 29, 9
Tady je máme v čistě algebraických termínech. Opět platí, že pokud body samy nezáleží a jen graf dělá, můžeme konsolidovat poslední tři položky.
y = 0, 0≤x≤3
x = 0, 0≤y≤3
y = x, 3≤x≤5
y = 2,5x-7,5, 5≤x≤7
y = -3x + 29, 7
Jakou metodu si vyberete, závisí na vašich schopnostech. Možná jste skvělí s matematikou a grafováním, takže si vyberete poslední možnost. Možná jste v navigaci dobře, takže si vyberete druhou možnost. V oblasti počítačů však děláte mnoho různých druhů úkolů a schopnost počítače se opravdu nemění. Proto jsou algoritmy optimalizovány pro úkoly, které dokončí.
Dalším důležitým bodem je, že každá metoda se spoléhá na klíč. Každá sada pokynů je k ničemu, pokud nevíte, co s nimi dělat. Pokud nevíte, že byste měli vykreslovat každý bod a připojit tečky, první sada bodů neznamená nic. Pokud nevíte, co každá proměnná znamená ve druhé metodě, nebudete vědět, jak je aplikovat, podobně jako klíč k šifře. Tento klíč je také nedílnou součástí používání algoritmů a často se tento klíč nachází v komunitě nebo prostřednictvím "standardu".
Komprese souborů
Když stáhnete soubor ZIP, extrahujete obsah tak, abyste mohli používat vše, co je uvnitř. Většina operačních systémů se dnes může ponořit do souborů ZIP, jako by byly normální složky, dělat všechno na pozadí. Na mém počítači se systémem Windows 95 před více než deseti lety jsem musel vše extrahovat ručně, než jsem viděl něco víc než názvy souborů uvnitř. To proto, že to, co bylo uloženo na disku jako soubor ZIP, nebylo v použitelném tvaru. Přemýšlejte o rozkládací gauč. Když jej chcete použít jako postel, musíte odstranit polštáře a rozvinout, což zabere více místa. Když ji nepotřebujete nebo jej chcete dopravit, můžete jej vrátit zpět.
Kompresní algoritmy jsou upraveny a optimalizovány speciálně pro typy souborů, na které jsou cíleny. Zvukové formáty například používají jiný způsob ukládání dat, které při dekódování zvukovým kodekem poskytují zvukový soubor podobný původnímu tvaru vlny. Další informace o těchto rozdílech naleznete v našem předchozím článku, Jaké jsou rozdíly mezi všemi těmito formáty zvuku? Lossless audio formáty a .zip soubory mají jednu společnou věc: oba poskytují originální data ve své přesnou podobě po procesu dekomprese. Ztráty audio kodeky využívají jiné prostředky k šetření místa na disku, jako jsou ořezávací frekvence, které nemohou být slyšeny lidskými ušima a vyhlazovat průběh v sekcích, aby se zbavili některých detailů. Nakonec, i když možná nebudeme schopni skutečně slyšet rozdíl mezi MP3 a CD stopou, je zde určitě nedostatek informací v bývalém.
Šifrování dat
Algoritmy se používají také při zabezpečení datových a komunikačních linek. Namísto ukládání dat tak, že používá méně místa na disku, je uloženo způsobem, který je jinými programy nedetekovatelný. Pokud někdo ukradne váš pevný disk a začne jej skenovat, může zvednout data i po odstranění souborů, protože data jsou sama o sobě stále, přestože místo pro přesměrování je pryč. Když jsou data zašifrována, vše, co je uloženo, nevypadá jako to, co je. Obvykle vypadá náhodně, jako kdyby v průběhu času vznikla fragmentace. Můžete také ukládat data a ukládat je jako jiný typ souboru. Obrazové soubory a hudební soubory jsou pro to dobré, protože mohou být poměrně velké, aniž by to například znamenalo podezření. To vše se provádí pomocí matematických algoritmů, které vezmou nějaký druh vstupů a přeměňují je na jiný, velmi specifický typ výstupu. Další informace o tom, jak šifrování funguje, naleznete v dokumentu HTG Vysvětluje: Co je šifrování a jak funguje?
Algoritmy jsou matematické nástroje, které poskytují různé využití v informatice. Usilují o konzistentní cestu mezi počátečním bodem a koncovým bodem a poskytují pokyny, aby je následovali. Víte víc než to, co jsme zdůraznili? Sdělte své vysvětlení v komentářích!