Vzdělání

Co je to algoritmus? »Jeho definice a význam

Obsah:

Anonim

V matematice, informatice a dalších souvisejících doktrínách je algoritmus definován jako soubor zavedených a jednoznačných pravidel, nalezených metodicky a omezeným způsobem, které umožňují provádět výpočty, zpracovávat určité informace, poskytovat řešení problémů a provádět různé činnosti. Jakmile začnete z počátečního stavu a vstupu, podle požadovaných postupů se dosáhne konečného stavu a získá se výsledek. Algoritmy jsou předmětem zkoumání algoritmů a ačkoli jim mnozí možná nevěří, lze je také použít ve všech aspektech každodenního života.

Co je to algoritmus

Obsah

Ve výpočtech je obvykle definována jako posloupnost sekvenčních instrukcí, ve kterých jsou prováděny některé procesy, aby reagovaly na určitá rozhodnutí nebo potřeby. Stejným způsobem se algoritmy často používají v logice a matematice a jsou také základem pro vývoj uživatelských příruček, ilustrativních brožur, mimo jiné. Jeden z nejvýznamnějších v matematice je ten, který se připisuje geometristovi Euklidesovi, aby se dosáhlo největšího společného dělitele dvou celých čísel, která jsou kladná, a známá „Gaussova metoda“ pro určování systémů lineárních rovnic.

Ve vztahu k počítačové vědě lze tento výpočet označit jako posloupnost pokynů, které je třeba dodržet při určování problému pomocí počítače.

Proto je algoritmika chápána jako disciplína, která se zaměřuje na analýzu a návrh algoritmů. S ohledem na první se snaží zkoumat vlastnosti, jako je jeho správnost a účinnost s ohledem na čas a prostor, porozumět problémům, které lze vyřešit algoritmicky. Pokud jde o druhé, snaží se studovat již zavedená paradigmata a navrhuje nové příklady.

Algoritmus je umístěn ve středu postupu výpočtu a je důležitý v jeho různých oblastech. Tímto způsobem by bylo nemožné, aby služby tak úspěšné jako Facebook a Google zvládly rozsah informací, které mají, bez spolupráce algoritmů nebo specializovaných datových struktur. V každodenním životě se však také používají algoritmy, příkladem toho je zapálení kamen, protože to začíná v okamžiku, kdy osoba jde do kuchyně, pozoruje ji a má svůj konec, když ji začne rozsvěcovat.

Charakteristika algoritmu

Ačkoli je algoritmus známý jako uspořádaná a konečná sada různých kroků, které vedou k vyřešení problému, říká se, že povaha těchto obtíží se liší podle kontextu, v němž se nacházejí, tímto způsobem existují problémy chemické, matematické, filozofické a další. Lze tedy říci, že jeho povaha je různorodá a jeho provedení počítačem není nutné. Kromě všeho dříve vysvětleného mají algoritmy charakteristiky, které jsou základní pro určení toho, čím jsou dnes, a budou zmíněny níže.

  • Pokyny obsažené v algoritmu musí být konkrétní, aby nedocházelo k ponechání prostoru pro jakýkoli druh záměny, to znamená, že je třeba odpovídajícím způsobem postupovat podle příslušných pokynů, nebo naopak grafické řešení toku, do kterého se registrujete, řešení neusnadní. opravit.
  • Musí to být v dokonalé definici, snažit se ho co nejvíce sledovat, kolikrát je to nutné, aby bylo dosaženo stejného výsledku a v případě, že dojde k opaku, algoritmus nebude spolehlivý a nebude sloužit jako vodítko při rozhodování.
  • Oni jsou známí pro zvláštnost, že jsou koneční, obvykle končí v určitém okamžiku a později hodí výsledek na konci každého kroku. Pokud se algoritmus prodlužuje na neurčito a vrací se do nějakého počátečního bodu, který nelze nikdy vyřešit, je zde přítomnost paradoxu nebo známá „smyčka“ opakování.
  • Nakonec se říká, že klíčovým prvkem je čitelnost algoritmů, protože pokud je jeho argument nesrozumitelný, nebylo možné postupovat podle odpovídajících pokynů, navíc s sebou nese přímé, jasné a lakonické znění textu nalezeného v každém z nich.

Části algoritmu

Každá algoritmická operace má tři různé části, které podléhají základní struktuře systému, a to jsou:

  • Vstup: také se nazývá záhlaví nebo výchozí bod, je to počáteční instrukce, která představuje genezi algoritmu a ta, která motivuje k jejímu čtení.
  • Proces: nazývaný také deklarace, je to přesné zpracování nabízené algoritmem a je v podstatě kmenem jeho klíčů pro formulaci pokynů.
  • Výstup: v této poslední fázi jsou specifické pokyny určené algoritmem, například jeho příkazy nebo rozlišení.

Příklady algoritmů

Mezi běžné příklady matematických výpočtů patří 2 + 3 = 5 pro sčítání a 15-9 = 6 pro odčítání. Další způsob vizualizace jednoduchých algoritmů je v kuchyňských receptech, protože popisují konkrétní a uspořádaný proces, například „nejdříve musíte položit půl hrnce vody na zahřátí, pak musíte přidat špetku soli a nakonec pepř se rozdělí, aby se extrahovaly semena a žíly. “ V tomto modelu je představen začátek, proces a konec, které v zásadě definují algoritmy.

Typy algoritmů

Mezi různými typy algoritmů existujících po celém světě je kladen důraz na ty, které jsou klasifikovány podle systému znaků a další podle jejich funkce. Algoritmus je v zásadě nejznámějším řešením pro řešení konkrétního problému a podle jeho strategií a jeho funkcí existují různé typy, mezi nimiž vyniká dynamická, reverzní, hrubá síla, oportunistické značení., náhodné atd. Kromě výše zmíněných algoritmů existují tisíce z nich, které jsou vhodné pro řešení potíží v jakékoli oblasti.

Podle vašeho znakového systému

Kvalitativní a kvantitativní jsou umístěny v této kategorii.

  • Kvalitativní algoritmy se vyznačují tím, že mají verbální prvky, příkladem jsou pokyny nebo uznávané pokyny „krok za krokem“, které jsou uděleny ústně, například recepty kulinářského umění nebo postupy pro provádění manuální práce.
  • Kvantitativní algoritmy jsou úplným opakem kvalitativních algoritmů, a to kvůli přítomnosti určitých numerických prvků a použití matematiky k provádění výpočtů, například když je nalezena druhá odmocnina nebo jsou vyřešeny rovnice.

V rámci této klasifikace jsou také výpočetní a nevýpočtové algoritmy. Výpočtové se provádějí pomocí počítače a vyznačují se tím, že jsou tak složité, že vyžadují provedení stroje, navíc jde o kvantitativní algoritmy, které lze optimalizovat. Ty, které nejsou výpočetní, nemají povinnost být provedeny pomocí stroje nebo počítače; jasným příkladem toho je programování televize.

Podle jeho funkce

V této klasifikaci jsou umístěny následující.

1. Algoritmus značení

To je charakterizováno použitím automatizace k pečlivému stanovení cen se zaměřením na faktory, jako je chování uživatelů, a je také známá jako schopnost automaticky určovat ceny znehodnocujících komponent, aby se zvýšily zisky uživatelů. prodejci. Od počátku 90. let hraje velmi důležitou roli v běžných postupech leteckého průmyslu.

Algoritmus značení se vyznačuje tím, že je jedním z nejběžnějších postupů ve vysoce konkurenčních odvětvích, což se týká cestovních kanceláří nebo on-line zařízení. Tento druh algoritmu se může stát extrémně složitým nebo relativně jednoduchým, protože v mnoha případech je třeba poznamenat, že jsou optimalizovány nebo samouk s kontinuitou určitých testů. Kromě toho všeho mohou být algoritmy označování také nepopulární u klientely, protože jednotlivci mají tendenci oceňovat stabilitu i spravedlnost.

2. Pravděpodobnostní algoritmy

Jsou to ty, ve kterých způsob, jakým jsou výsledky získávány, závisí na pravděpodobnostech, tyto jsou obecně známé jako náhodné algoritmy.

V některých aplikacích je manipulace s tímto typem operace běžná, například když se v průběhu času simuluje chování jakéhokoli existujícího nebo navrženého systému, v důsledku čehož se získá náhodné řešení. Za jiných okolností je problém, který musí být vyřešen, obvykle deterministický, ale existuje možnost jeho transformace na náhodnou, aby bylo možné ji vyřešit použitím algoritmu pravděpodobnosti. Pozitivní na těch náhodných je, že jejich aplikace nevyžaduje velmi sofistikované matematické studie.

Kromě toho v rámci této skupiny existují tři hlavní typy známé jako číselné, Monte Carlo a Las Vegas.

  • Numerické algoritmy mohou poskytnout přibližný výsledek problému a obecně se používají ve strojírenství.
  • Algoritmy Monte Carlo mohou poskytnout správné nebo špatné řešení a mají určitou míru chyb a nakonec.
  • Algoritmy Las Vegas se vyznačují tím, že nikdy nezanechají nesprávnou odpověď, ve skutečnosti najdou správné řešení nebo vás jednoduše informují o možném selhání.

Dynamické programování odkazuje na metodu, při které algoritmus počítá výsledky. Někdy řešení určitých prvků, které mají problémy, závisí na výsledcích jiných menších problémů. Abychom je mohli vyřešit, je nutné přepočítat stejné hodnoty, aby se vyřešily i ty nejmenší dílčí problémy, což však může způsobit plýtvání cykly. Chcete-li to opravit, lze použít dynamické programování a v tomto případě je zapamatováno řešení každého dílčího problému, použít stejnou hodnotu namísto opakování několikrát.

3. Heuristické algoritmy

Vyznačují se nalezením řešení a přesto nezaručují, že bude nalezena nejlepší z odpovědí, z tohoto důvodu je lze považovat za přibližné algoritmy. Ty lze použít, když je hledání řešení normální cestou považováno za nemožné. Heuristika poskytuje použití, která budou vysvětlena níže. Při plánování se používají k plánování činností v krátkém časovém období, v designu k vymezení elektrických nebo digitálních systémů a v simulaci k ověření určitých postupů.

4. Algoritmy zpětného sledování

Oni jsou známí jako rekurzivní strategie, které řeší problémy, jako jsou hádanky, bludiště nebo podobné kousky, ve kterých se provádí hluboké hledání, aby se našlo možné řešení. Jeho název odkazuje na skutečnost, že v dotazech za účelem nalezení výsledku se vždy vrací k předchozímu bodu, aby bylo možné testovat alternativy. Ty jsou obvykle zrušeny, aby bylo možné sledovat jejich dopad na ekonomiku, na trhy, na cenové značení, na určité operace a dokonce i na samotnou společnost.

5. Chamtivý algoritmus

Je známý jako torpédoborec nebo sladký zub a je použitelný při optimalizačních problémech, v každém kroku tohoto algoritmu je provedena logická a optimální volba, aby bylo dosaženo nejlepších z globálních řešení. Je však třeba vzít v úvahu, že jakmile bude dosaženo rozsudku, nelze v budoucnu udělat nic pro jeho opravu nebo změnu. Tato operace má tento název, protože v každém kroku je vybrána nejlepší frakce, která je schopna „spolknout“ bez obav z toho, co se stane později.

Vlastnosti algoritmu

Různí autoři se pokusili formálně definovat algoritmy pomocí matematických modelů. Tyto vzorky však úzce souvisejí se zvláštním typem informací, které zahrnují čísla, symboly a některé grafy, přičemž fungují na velkém množství distribuce dat. Obecný společný podíl každé z definic je shrnut v následujících třech vlastnostech:

Problémové prohlášení

Řešení problému pomocí počítače může sestávat z procesu, ve kterém je problém popsán a je dovoleno vyvinout program schopný jeho řešení. Tento proces vyžaduje analýzu problému, návrh algoritmu a jeho transformaci do programu, stejně jako jeho výkon a ověření. První dva kroky jsou v tomto procesu nejsložitější, ale jakmile problém prozkoumáte a získáte algoritmus, který jej dokáže vyřešit, je váš úkol primárně založen na jeho překladu do požadovaného programovacího jazyka.

Analýza obecného řešení

Jakmile je problém definován, je čas analyzovat následující:

  • Informace o vstupenkách, které poskytují nám.
  • Požadované výsledky.
  • Oblast práce, prohlášení nebo jiných nezbytných prvků.

Analýza algoritmů je známá jako nejdůležitější část širší teorie výpočetní složitosti, protože poskytuje teoretické výpočty zdrojů, které jakýkoli algoritmus vyžaduje k vyřešení daného výpočetního problému. Při provádění teoretického výzkumu je běžné vypočítat jeho komplikace v asymptotickém smyslu, aby se získala dostatečně velká vstupní velikost. Pro tento účel se používá asymptotická horní mez spolu s notací theta a omega a je třeba poznamenat, že lze vypočítat neasymptotickou míru.

Přesná měřítka účinnosti jsou opravdu užitečná pro ty, kteří skutečně používají algoritmy, protože mají větší přesnost a to jim umožňuje určit čas, který bude trvat jejich provedení. Pro některé jednotlivce, jako jsou tvůrci videoher, může skrytá konstanta znamenat velký rozdíl mezi úspěchem a neúspěchem. Vyhodnocení času může záviset na tom, jak je definován určitý krok, a aby měla analýza smysl, musí být zaručeno, že čas je výrazně omezen konstantou.

Vypracování algoritmu

Aby bylo možné provést vývoj operace, je důležité provést řadu postupů, aby bylo vyhověno samotnému řešení problému. Chcete-li začít, je třeba provést předchozí analýzu obtížnosti, a to prostřednictvím studie, která demonstruje skutečnou operaci problému dlouho před provedením jakéhokoli algoritmu. Vyhodnocuje se tedy definice požadavků, v tomto kroku musíte mít jasnou představu o tom, jaké jsou problémy, které je třeba řešit, ať už je to součet dvou čísel, uspořádání seznamu čísel atd.

Později se provede příslušná identifikace modulů, protože správná implementace algoritmů závisí na ní, aby poskytla možná řešení výše uvedených požadavků.

Nakonec je výpočet implementován v programovacím jazyce, který je srozumitelný počítači, takže je schopen porozumět instrukcím, které modeluje, a tak je může provádět a dosáhnout očekávaného výsledku. V tomto posledním postupu lze již hovořit o programu, který se skládá z řady instrukcí, které jsou řazeny jeden po druhém a dokáží vyřešit stanovené požadavky.

Je důležité zmínit, že v sekvenčním čase algoritmy plní svoji funkci v diskretizovaném čase a snaží se definovat sekvence výpočetních stavů v každém vstupu, který je považován za platný. V abstraktním stavu jsou tyto operace nezávislými prvky a má se za to, že v nich mohou být struktury pravěkého řádu za izomorfismu invariantní. V omezeném průzkumu jsou přechody z jednoho stavu do druhého zcela stanoveny trvalým a konečným vysvětlením, ve kterém je mezi jedním stavem a druhým zohledněn pouze omezený počet pojmů současného stavu.

Nemělo by se zapomínat ani na to, že algoritmy jsou obvykle vyjádřeny prostřednictvím „pseudokódových“ programovacích jazyků, obvyklého jazyka a dokonce i známých vývojových diagramů. Stejně tak je důležité zmínit, že algoritmy hrají zásadní roli ve výpočtech kvůli jejich reprezentaci dat jako sekvencí bitů. Z jiného úhlu je program definován jako algoritmus, který vyjadřuje počítači ty konkrétní kroky, které musí dodržovat, aby adekvátně plnil určité činnosti. Na druhou stranu, naučení psát pseudokód usnadňuje programování, a proto bude vysvětleno později.

Programovací jazyky jsou známé jako formální nebo umělý jazyk, protože mají dobře definovaná pravidla gramatiky, mají schopnost poskytnout programátorovi schopnost textově zpracovat řadu pokynů nebo sekvenci předpisů ve formě algoritmů za účelem k udržení kontroly nad fyzickým a logickým chováním počítače lze tímto způsobem dosáhnout různých typů informací. Tato sada pravidel napsaná prostřednictvím programovacího jazyka se nazývá program.

Programovací jazyky se obvykle skládají ze sady symbolů a gramatických a sémantických pravidel, která definují aktuální struktury jazyka a jejich význam. Z jiného pohledu zahrnují počítačové jazyky také programovací jazyky, jasným příkladem toho je HTML, které splňuje určité pokyny k provádění obsahu různých dokumentů. Programovací jazyk umožňuje přesnou specifikaci dat, která musí být provozována konkrétním softwarem za různých okolností.

Na druhou stranu, pseudokód je algoritmický popisný jazyk, který používá základní konvence skutečného programovacího jazyka, ale který je navržen pro čtení člověkem namísto čtení přes stroj, přičemž si zachovává nezávislost na jakémkoli jiném typu programovací jazyk. Pseudokód ignoruje detaily, které nejsou považovány za nezbytné pro lidské porozumění algoritmu, jako jsou kódy systému, deklarace proměnných a dokonce i některé podprogramy. Tímto způsobem se programovací jazyk snaží doplnit přesnými popisy v přirozeném jazyce nebo kompaktními matematickými zápisy.