Klepněte na obrazovku. Zobrazí se obsah. Neviděli jste to, ale někdo nebo něco rozhodlo, co vám má ukázat.
Algoritmy jsou neviditelnými architekty moderního internetu. Určují hodnocení ve vyhledávání, vytvářejí zdroje sociálních médií a řídí vaši návštěvnost. Ale co je to algoritmus v reálném světě, mimo technické termíny?
Jednoduše řečeno, algoritmus je recept krok za krokem. Je to soubor instrukcí k vyřešení problému nebo dokončení úkolu. Může to být tak jednoduché jako sečtení dvou čísel nebo tak složité jako neuronová síť rozpoznávající vaši tvář. Tato pravidla jsou základem jakéhokoli softwaru a zajišťují efektivní plnění úkolů. Odpovídají na otázku „jak“ za akcí „co“.
Abyste pochopili, proč je to důležité, musíte se podívat na to, jak počítače skutečně fungují.
Logika kódu krok za krokem
Počítače jsou poslušné, ale doslovné. Nemají tušení. Pokud chcete, aby počítač něco dělal, musíte napsat program, který mu krok za krokem přesně řekne, co má dělat. Počítač tyto pokyny provádí mechanicky.
Když píšete tento program, musíte zvolit metodu. Tato metoda je algoritmus. Je to technika používaná k dokončení úkolu.
Přemýšlejte o tom: přítel dorazí na letiště. Musí se dostat k vám domů. Máte na to čtyři různé algoritmy. Každá ho dovede ke stejnému cíli, ale cesta bude úplně jiná.
Algoritmus taxi
*Jděte na stanoviště taxíků.
* Nastupte do auta.
* Sdělte řidiči svou adresu.
Algoritmus Call Me
* Zavolejte na svůj mobilní telefon, když letadlo přistane.
* Seznamte se s výdejem zavazadel.
Algoritmus „Rent a car“
*Jeďte raketoplánem k přepážce půjčovny.
* Půjčte si auto.
* Navigujte k domu pomocí GPS.
Algoritmus “Bus”
*Jeďte autobusem číslo 70 mimo oblast výdeje zavazadel.
* Přestup na autobus číslo 14 na hlavní ulici.
* Výstup na Elm Street.
* Jděte dva bloky na sever.
Všechny čtyři možnosti fungují. Žádný z nich není “špatný”. Ale velmi se liší v nákladech a čase. Taxi je rychlé, ale drahé. Autobus je levný, ale pomalý. Algoritmus si zvolíte v závislosti na okolnostech.
Ve vývoji softwaru děláme to samé. Vybíráme techniku, která nejlépe vyhovuje datům, času a rozpočtu.
Proč je třídění důležitější, než si myslíte
V programování často existuje mnoho způsobů, jak vyřešit stejný problém. Každá metoda má své kompromisy. Nikde to není patrnější než u třídění.
Počítače tráví obrovské množství času tříděním seznamů. Jména. Ceny. Termíny. Výsledky vyhledávání. Pokud je třídění neúčinné, celý systém se zpomalí.
Výzkumníci studují třídicí algoritmy po celá desetiletí. Zde je pět běžných přístupů:
** Bin sort
** ** Sloučit řazení
* Třídění podle bublin
** Třídění mušlí
Quicksort**
Který z nich používáte?
Pokud máte milion celých čísel v rozmezí od 1 do 10, vítězem je blokové řazení. Je to rychlé a jednoduché pro malé rozsahy. Pokud máte milion knižních titulů, rychlé třídění je pravděpodobně vaší nejlepší volbou. Lépe si poradí s nestrukturovanými daty. Znalost silných a slabých stránek umožňuje vývojářům vybrat ten správný nástroj. Pokud vyberete špatnou, aplikace poběží pomalu.
Hlavní typy algoritmů
Algoritmy jsou více než jen třídění. Spadají do širokých kategorií v závislosti na tom, čeho se snaží dosáhnout. Od šifrování po strojové učení typ algoritmu určuje, jak jsou data zpracovávána.
Vyhledávací algoritmy
Jsou navrženy tak, aby extrahovaly informace z datové struktury. Například lineární vyhledávání (kontrola každého prvku) nebo binární vyhledávání (neustálé dělení seznamu na polovinu). Vyhledávače a databázové dotazy na ně do značné míry spoléhají při hledání toho, co jste zadali, v milisekundách.
Algoritmy dynamického programování
Tento přístup optimalizuje složité úkoly tím, že je rozděluje na jednodušší dílčí úkoly. Vyhne se přepočítávání stejných dat. Příklady zahrnují generování Fibonacciho řady, řešení problému s batohem (maximalizace hodnoty v omezeném prostoru) nebo nalezení nejkratší cesty v grafu, například pomocí algoritmů Bellman-Ford nebo Floyd-Warshell.
Chamtivé algoritmy
Chamtivé algoritmy vybírají v každém kroku nejlepší místní možnost. Nedívají se na celkový obraz. Předpokládají, že nejlepší okamžitá volba povede k nejlepšímu celkovému výsledku. To funguje dobře pro problémy, jako je nalezení minimálního kostrového stromu v síti (Kruskalův a Primův algoritmus). Ale někdy vás chamtivost zavede do slepé uličky.
Algoritmy s návratem (zpětné sledování)
Tyto algoritmy, které se používají pro omezené problémy, sestavují kandidáty krok za krokem. Pokud kandidát v testu neuspěje, „vrátí se“ a zkusí jinou cestu. Klasickými příklady jsou řešitelé sudoku a problém N královen. Je to v podstatě pokus a omyl s pamětí minulých chyb.
Algoritmy strojového učení
Umožňují počítačům učit se z dat spíše než dodržovat pevně zakódovaná pravidla. Předpovídají výsledky nebo se rozhodují. Dělí se na učení pod dohledem (učení z označených dat), učení bez dozoru (hledání vzorců v neoznačených datech), posilovací učení (učení prostřednictvím odměny/trestání) a hluboké učení (pomocí neuronových sítí).
Pravděpodobnostní algoritmy
Někdy je determinismus příliš pomalý. Pravděpodobnostní algoritmy zavádějí do své logiky náhodnost. Používají pravděpodobnostní přístupy k řešení problémů, kde je striktní metoda krok za krokem neúčinná. Monte Carlo a pravděpodobnostní quicksort jsou ukázkovými příklady.
Algoritmy hrubé síly
Je to přístup „vyzkoušet všechno“. Hledání hrubou silou systematicky zkoumá všechna možná řešení. Je to jednoduché. Zaručuje řešení, pokud takové existuje. Ale pro velké nebo složité úkoly je to bolestně neúčinné. Je to digitální ekvivalent pokusu se shodovat s každým klíčem na prstenu, dokud jeden nezapadne.
Tyto kategorie se překrývají. Algoritmus může být jak algoritmus dynamického programování, tak algoritmus chamtivý v různých kontextech. Klíčem je pochopení kompromisů.
Lidský faktor
Algoritmy často považujeme za chladnou logiku. A tak to je. Ale jsou také zrcadlem naší volby. Když upřednostníme rychlost, dostaneme taxíky. Jakmile určíme cenu, dostaneme autobus. Když upřednostníme přesnost, můžeme se spokojit s pomalostí.
Ve svém digitálním životě jen zřídka vidíte kód. Vidíte jen výsledek. Krmivo, které rozumí vaší náladě. Mapa, která se vyhýbá dopravním zácpám. Výsledek hledání, který odpoví na vaši otázku, než dokončíte psaní.
Není to magie. To jsou jen kroky.
Ale kdo o těchto krocích rozhoduje? A kdo určuje váhu každého kroku?
Toto je skutečná otázka.
Až budete příště procházet zdroj, zeptejte se sami sebe: jaký algoritmus řídí tento proces? A proč pro vás vybral právě tento obsah?
Odpověď může změnit způsob, jakým se díváte na obrazovku.
Jak algoritmy transformují vstupní data na skutečné výsledky
Algoritmus je prostě soubor instrukcí. Přijímá vstup. Tato data zpracovává. Dává výsledek. Jazyk, ve kterém to píšete – Python, C++, Java – nemění základní mechaniku. Logika je důležitá. A tato logika vždy usiluje o optimální řešení, i když „optimální“ znamená něco jiného v závislosti na problému.
Výsledkem není vždy jediné číslo nebo odpověď ano/ne. Velmi se liší v závislosti na tom, jaký problém se kód snaží vyřešit.
Řešení problémů a klasifikace
Některé algoritmy jsou navrženy tak, aby nacházely konkrétní odpovědi. Představte si, jak Mapy Google vypočítávají nejkratší cestu mezi dvěma body. Nebo jednoduchý skript, který třídí neuspořádaný seznam čísel. Toto jsou klasické výsledky řešení problémů.
Ale ve strojovém učení je výsledkem často řešení. Spamový filtr netřídí pouze e-maily; klasifikuje je. Je to spam? ano nebo ne. Systém doporučení neuvádí pouze seznam produktů. Rozhoduje, které produkty si právě teď s největší pravděpodobností koupíte. Ona dělá výběr za vás.
Čísla, struktury a vizualizace
Někdy je výsledkem jen hrubé číslo. Algoritmy řeší rovnice k nalezení kořenů. Vypočítávají statistické průměry z obrovských souborů dat. V jiných případech vytvářejí datové struktury. Algoritmus řazení změní uspořádání pole. Algoritmus grafu identifikuje připojené komponenty a v podstatě mapuje vztahy v rámci sítě.
Pak je tu vizuální stránka. Algoritmy počítačové grafiky berou nezpracovaná numerická data a převádějí je na obrázky. Vykreslovací moduly ve videohrách generují 2D obrázky z 3D modelů. Bez těchto algoritmů by světy, ve kterých hrajeme, byly jen řádky na obrazovce.
Text, signály a fyzické akce
Algoritmy zpracování přirozeného jazyka vytvářejí text. Generují odpovědi podobné lidem, překládají jazyky nebo shrnují dlouhé články. Už to není jen kód; toto je komunikace.
V robotice a vestavěných systémech je výsledkem fyzická akce. Algoritmy vysílají signály do motorů a akčních členů. Mohou rozsvítit světlo. Nebo mohou koordinovat složité pohyby robotické paže na montážní lince. Digitální instrukce se stává fyzickou akcí.
Velký obrázek
Ať už identifikujete vzory, proséváte nezpracovaná data nebo hledáte matematický proces, efektivní algoritmy automatizují tvrdou práci. Zpracovávají vstupy a proměnné, takže to nemusíte dělat sami.
Otázkou není, jak fungují. Otázkou je, co mohou dělat dál.
Algoritmy jsou nedílnou součástí způsobu, jakým počítačové systémy zpracovávají data. Většina počítačových programů se skládá z algoritmů, které se řídí specifickými pokyny k provedení jednoduchého úkolu.
Tento článek byl aktualizován pomocí technologie AI, poté byla fakta zkontrolována a upravena editorem HowStuffWorks.
Zde je několik zajímavých odkazů:
- Jak umělá inteligence úplně všechno mění
- whatis.com: Algoritmus
- Jak funguje Java
- Jak C funguje
- Jak fungují počítače
- Jak funguje šifrování
- Jak funguje komprese souborů
Často kladené otázky o algoritmech
Co je to jednoduchými slovy algoritmus?
Když říkáte počítači, co má dělat, vybíráte si také, jak to udělá. Toto je algoritmus. Jedná se o základní techniku nebo soubor instrukcí používaných k dokončení úkolu.
Jaký je příklad algoritmu?
Recept je klasický příklad. Toto je konečný seznam pokynů. Algoritmus může být konkrétnější, ale koncept je stejný.
Jaké jsou tři části algoritmu?
Vstupní data. Zpracování dat. Výstupní data. Něco vložíte, stroj něco udělá a něco vytáhnete.
Jaké jsou využití algoritmů v programování?
Základem zpracování dat jsou algoritmy. Většina počítačových programů jsou jednoduše sady algoritmů, které se řídí specifickými pokyny k provádění jednoduchých úkolů. Bez nich není automatizace. Neexistuje žádná logika. Jen surové železo, čeká se na instrukce.

























