Algorytm

W matematyce, informatyce i innych powiązanych doktrynach algorytm definiuje się jako zbiór ustalonych i jednoznacznych wskazań, metodycznie i w ograniczonym zakresie, które umożliwiają dokonywanie obliczeń, przetwarzanie niektórych informacji, rozwiązywanie problemów i wykonywanie różnych działań. . Po uruchomieniu stanu początkowego i wpisu, zgodnie z wymaganymi procedurami, stan końcowy zostaje osiągnięty i wynik jest uzyskiwany. Algorytmy są przedmiotem dochodzenia w sprawie algorytmu i chociaż wielu może w to nie wierzyć, można je również stosować we wszystkich aspektach życia codziennego.

Algorytm

Co to jest algorytm

W informatyce jest zwykle wyznaczany jako ciąg kolejnych instrukcji, w których niektóre procesy są przeprowadzane w celu odpowiedzi na określone decyzje lub potrzeby. W ten sam sposób algorytmy są często wykorzystywane w logice i matematyce, a także stanowią podstawę opracowania podręczników użytkownika, ilustracyjnych broszur. Jednym z najbardziej wyróżniających się w matematyce jest ten przypisany geometrycznemu Euclidowi, aby osiągnąć największy wspólny dzielnik dwóch liczb całkowitych, które są dodatnie, oraz dobrze znaną „metodę Gaussa” w celu ustalenia układów równań liniowych.

W odniesieniu do informatyki obliczenia te można nazwać sekwencją wskazówek, które należy zastosować w celu ustalenia problemu za pomocą komputera.

Dlatego algorytmika jest rozumiana jako dyscyplina, która koncentruje się na analizie i projektowaniu algorytmów. Biorąc pod uwagę te pierwsze, staramy się zbadać takie właściwości, jak ich poprawność i skuteczność w odniesieniu do czasu i przestrzeni, aby zrozumieć problemy, które można rozwiązać algorytmicznie. Jeśli chodzi o drugi, ma on na celu zbadanie ustalonych paradygmatów i proponuje nowe przykłady.

Algorytm znajduje się w centrum postępu przetwarzania danych i jest ważny w różnych jego obszarach. W ten sposób usługi tak skuteczne jak Facebook i Google nie byłyby w stanie poradzić sobie z ogromem posiadanych informacji bez współpracy algorytmów lub specjalistycznych struktur danych . Jednak w codziennym życiu stosuje się również algorytmy, czego przykładem jest oświetlenie pieca, ponieważ zaczyna się ono w momencie, gdy dana osoba idzie do kuchni, obserwuje go i kończy, gdy przechodzi do rozpalenia .

Charakterystyka algorytmu

Algorytm

Pomimo faktu, że algorytm jest znany jako uporządkowany i skończony zestaw różnych kroków prowadzących do rozwiązania problemu, mówi się, że charakter tych trudności różni się w zależności od kontekstu, w którym się znajdują. chemiczne, matematyczne, filozoficzne, między innymi. Można zatem powiedzieć, że jego natura jest zróżnicowana i jego wykonanie za pomocą komputera nie jest konieczne. Oprócz wszystkiego, co wcześniej wyjaśniono, algorytmy mają cechy, które są elementarne w celu ustalenia, jakie są dzisiaj i zostaną wymienione poniżej.

  • Wytyczne zawarte w algorytmie muszą być specyficzne, aby uniknąć pozostawienia marginesu w jakimkolwiek pomyleniu, oznacza to, że odpowiednie instrukcje muszą być przestrzegane odpowiednio, lub przeciwnie, graficzna reprezentacja przepływu, w którym się rejestrujesz, nie ułatwi rozwiązania. poprawne.
  • Musi być w doskonałej definicji, starając się jak najwięcej razy podążać za nią tyle razy, ile to konieczne, aby uzyskać ten sam wynik, aw przypadku wystąpienia odwrotności algorytm nie będzie niezawodny i nie będzie służyć jako przewodnik przy podejmowaniu jakiejkolwiek decyzji.
  • Są znane z tego, że są skończone, zwykle kończą się w pewnym momencie, a później dają wynik na końcu każdego kroku. Jeśli algorytm zostanie rozszerzony na czas nieokreślony, powracając do punktu początkowego, którego nigdy nie można rozwiązać, istnieje paradoks lub znana „pętla” powtórzeń.
  • Na koniec mówi się, że czytelność algorytmów jest kluczowym elementem, ponieważ jeśli ich argument jest niezrozumiały, nie można zastosować odpowiednich instrukcji, a ponadto sugeruje bezpośrednie, jasne i lakoniczne sformułowanie tekstu w każdym z nich.

Części algorytmu

Każda operacja algorytmiczna ma trzy różne części, które podlegają podstawowej strukturze systemu i są to:

  • Wpis: zwany także nagłówkiem lub punktem początkowym, jest instrukcją początkową, która reprezentuje genezę algorytmu i motywuje jego odczyt.
  • Proces: nazywany także deklaracją, jest to precyzyjne opracowanie algorytmu i jest zasadniczo pniem kluczy do formułowania instrukcji.
  • Wyjście: w tej ostatniej fazie znajdują się szczegółowe instrukcje określone przez algorytm, na przykład jego polecenia lub rozdzielczości.

Przykłady algorytmów

Wśród najczęstszych przykładów obliczeń matematycznych są 2 + 3 = 5 dodatkowo i 15-9 = 6 odejmowane . Innym sposobem wizualizacji prostych algorytmów są przepisy kulinarne, ponieważ opisują one konkretny i uporządkowany proces, na przykład: „najpierw podgrzej pół garnka wody, a następnie dodaj szczyptę soli, a na końcu pieprz zostanie podzielony, aby wyodrębnić nasiona i nerwy. ” W tym modelu przedstawiono początek, proces i koniec, które w zasadzie definiują algorytmy.

Typy algorytmów

Algorytm

Wśród różnych rodzajów algorytmów na świecie nacisk kładziony jest na te, które są klasyfikowane według systemu znaków i inne, które odpowiadają ich funkcji. Algorytm jest w zasadzie najbardziej znanym rozwiązaniem do rozwiązania konkretnego problemu i zgodnie z jego strategiami i funkcjami istnieją różne ich rodzaje, wśród nich dynamiczne, odwrotne, brutalne, oportunistyczne, znakowanie losowy itp. Oprócz wyżej wymienionych algorytmów istnieją tysiące takich, które są odpowiednie do rozwiązywania problemów w dowolnym obszarze.

Zgodnie z jego systemem znaków

Jakościowe i ilościowe są umieszczone w tej kategorii.

  • Algorytmy jakościowe charakteryzują się elementami słownymi, których przykładem są instrukcje lub uznane „krok po kroku”, które są przekazywane ustnie, takie jak przepisy kulinarne lub procedury wykonywania pracy fizycznej.
  • Algorytmy ilościowe są przeciwieństwem jakościowym, ze względu na obecność pewnych elementów liczbowych i zastosowanie matematyki do wykonywania obliczeń, na przykład, gdy znaleziony zostanie pierwiastek kwadratowy lub zostaną rozwiązane równania.

W ramach tej klasyfikacji znajdują się również algorytmy obliczeniowe i obliczeniowe . Te obliczeniowe są przeprowadzane za pomocą komputera i charakteryzują się tym, że są tak złożone, że wymagają maszyny do wykonania, a ponadto są algorytmami ilościowymi, które można zoptymalizować. Te, które nie są obliczeniowe, nie mają obowiązku wykonywania za pomocą maszyny lub komputera; Wyraźnym tego przykładem jest program telewizyjny.

Zgodnie z funkcją

W tej klasyfikacji znajdują się następujące elementy.

1. Algorytm oznaczania

Charakteryzuje się to stosowaniem automatyzacji do starannego ustalania cen, skupiając się na czynnikach takich jak zachowanie użytkownika, i jest również znany jako zdolność do automatycznego określania cen dla dewaluowanych komponentów w celu zwiększenia zysków sprzedawcy. Od początku lat 90. odgrywa ważną rolę w powszechnych praktykach branży lotniczej.

Algorytm znakowania wyróżnia się tym, że jest jedną z najczęstszych praktyk w wysoce konkurencyjnych branżach, odnoszącą się do biur podróży lub placówek internetowych. Ten rodzaj algorytmu może być niezwykle złożony lub względnie prosty, ponieważ w wielu przypadkach należy zauważyć, że są one zoptymalizowane lub samouczą się z ciągłością niektórych testów. Poza tym algorytmy znakowania mogą również stać się niepopularne wśród klientów, ponieważ ludzie cenią zarówno stabilność, jak i uczciwość.

2. Algorytmy probabilistyczne

Są to te, w których sposób uzyskiwania wyników zależy od prawdopodobieństwa, są one powszechnie znane jako algorytmy losowe.

W niektórych aplikacjach zarządzanie tego typu operacją jest powszechne, na przykład podczas symulacji zachowania dowolnego istniejącego lub opracowanego systemu w czasie, co skutkuje przypadkowym rozwiązaniem . W innych okolicznościach problem do rozwiązania jest zazwyczaj deterministyczny, ale istnieje możliwość przekształcenia go w przypadek, w celu rozwiązania go przez zastosowanie algorytmu prawdopodobieństwa. Zaletą losowych jest to, że ich zastosowanie nie wymaga bardzo skomplikowanych badań matematycznych.

Ponadto w tej grupie istnieją trzy główne typy znane jako numeryczne, Monte Carlo i Las Vegas.

  • Algorytmy numeryczne mogą zapewnić przybliżony wynik problemu i są na ogół stosowane w inżynierii.
  • Algorytmy Monte Carlo mogą dać dobre lub złe rozwiązanie i mieć pewien margines błędu i trwać.
  • Algorytmy Las Vegas wyróżniają się tym, że nigdy nie pozostawiają niepoprawnej odpowiedzi, w rzeczywistości znajdują właściwe rozwiązanie lub po prostu informują o możliwej awarii.

Programowanie dynamiczne odnosi się do metody, w której algorytm oblicza wyniki. Czasami rozwiązania niektórych elementów, które mają problemy, zależą od wyników innych mniejszych problemów. Tak więc, w celu ich rozwiązania, te same wartości muszą zostać ponownie obliczone, aby rozwiązać najmniejsze podproblemy, jednak może to powodować marnowanie cykli. Aby to naprawić, można zastosować programowanie dynamiczne iw tym przypadku zapamiętuje się rozwiązanie każdego podproblemu, aby użyć tej samej wartości zamiast powtarzać ją kilka razy.

3. Algorytmy heurystyczne

Wyróżnia się je znajdowaniem rozwiązań i nadal nie gwarantuje, że zostaną znalezione najlepsze odpowiedzi, dlatego można je traktować jako algorytmy przybliżone . Można ich użyć, gdy uważa się za niemożliwe znalezienie rozwiązania normalną drogą. Heurystyka zapewnia zastosowania, które zostaną wyjaśnione poniżej. W planowaniu są one wykorzystywane do programowania działań w krótkim czasie, w projektowaniu służą do wyznaczenia systemów elektrycznych lub cyfrowych, aw symulacji służą do weryfikacji niektórych procedur.

4. Algorytmy wsteczne

Są one znane jako strategie rekurencyjne, które rozwiązują problemy, takie jak łamigłówki, labirynty lub podobne elementy, w których przeprowadza się głębokie wyszukiwanie w celu znalezienia możliwego rozwiązania. Jego nazwa odnosi się do faktu, że w zapytaniach dotyczących wyniku zawsze powraca się do poprzedniego punktu w celu przetestowania alternatyw. Zazwyczaj są one odwoływane, aby zaobserwować ich wpływ na gospodarkę, rynki, oznaczanie cen, niektóre operacje, a nawet samo społeczeństwo.

5. Żarłoczny algorytm

Jest znany jako niszczyciel lub słodycze i ma zastosowanie w problemach związanych z optymalizacją, na każdym etapie tego algorytmu dokonuje się logicznego i optymalnego wyboru, który kończy się na najlepszych z globalnych rozwiązań. Należy jednak wziąć pod uwagę, że po zakończeniu próby absolutnie nic nie można zrobić, aby ją poprawić lub zmienić w przyszłości. Ta operacja ma tę nazwę, ponieważ na każdym etapie wybierana jest najlepsza frakcja, która jest w stanie „pożreć”, nie martwiąc się o to, co stanie się później.

Właściwości algorytmu

Algorytm

Różni autorzy próbowali zdefiniować algorytmy w sposób formalny, stosując modele matematyczne. Okazy te są jednak ściśle powiązane z szczególnym rodzajem informacji, który obejmuje liczby, symbole i niektóre wykresy, działając przy dużej ilości danych. Ogólnie rzecz biorąc, wspólny udział każdej z definicji jest podsumowany w następujących trzech właściwościach:

Opis problemu

Rozwiązywanie problemów za pomocą komputera może składać się z procesu, w którym opisany jest problem i można opracować program, który może go rozwiązać. Proces ten wymaga analizy problemu, zaprojektowania algorytmu i przekształcenia go w program, a także jego realizacji i walidacji. Pierwsze dwa kroki są najbardziej skomplikowane w tym procesie, ale po zbadaniu problemu i uzyskaniu algorytmu, który może go rozwiązać, twoje zadanie polega głównie na przetłumaczeniu go na pożądany język programowania.

Analiza rozwiązania ogólnego

Po zdefiniowaniu problemu nadszedł czas na przeanalizowanie następujących kwestii:

  • Informacje o biletach, które nam dostarczają.
  • Pożądane wyniki.
  • Dziedzina pracy, oświadczenia lub inne niezbędne elementy.

Analiza algorytmów jest znana jako najważniejsza część szerszej teorii złożoności obliczeniowej, ponieważ zapewnia teoretyczne obliczenia zasobów wymaganych przez dowolny algorytm do rozwiązania danego problemu obliczeniowego. Przeprowadzając teoretyczne badanie, często oblicza się jego powikłania w sensie asymptotycznym, aby uzyskać wystarczająco duży rozmiar wejścia. W tym celu stosuje się asymptotyczną górną granicę wraz z notacjami theta i omega, i należy zauważyć, że nie asymptotyczna miara może zostać skomputeryzowana.

Dokładne pomiary wydajności są naprawdę przydatne dla tych, którzy faktycznie używają algorytmów, ponieważ mają większą precyzję, co pozwala im określić czas potrzebny do wykonania. Dla niektórych osób, takich jak twórcy gier wideo, ukryta stała może oznaczać dużą różnicę między sukcesem a porażką. Oceny czasu mogą zależeć od tego, jak określony etap jest zdefiniowany, a aby analiza miała sens, należy zapewnić, aby czas był wyraźnie ograniczony przez stałą.

Opracowanie algorytmu

W celu przeprowadzenia rozwoju operacji ważne jest, aby przeprowadzić szereg procedur w celu zapewnienia zgodności z rozwiązaniem danego problemu. Na początek należy przeprowadzić wcześniejszą analizę trudności, która odbywa się poprzez badanie wykazujące prawdziwe funkcjonowanie problemu na długo przed zastosowaniem jakiegokolwiek algorytmu. W związku z tym ocenia się definicję wymagań, na tym etapie należy zastanowić się, jakie problemy należy rozwiązać, czy jest jasne, czy jest to dodanie dwóch liczb, uporządkowanie listy liczb itp.

Później przeprowadzana jest odpowiednia identyfikacja modułu, ponieważ od tego zależy poprawna implementacja algorytmów, aby zapewnić możliwe rozwiązania wyżej określonych wymagań.

Wreszcie, obliczenia są realizowane w języku programowania zrozumiałym dla komputera, dzięki czemu jest on w stanie zrozumieć instrukcje, które sam modeluje, a tym samym może je wykonać, osiągając oczekiwany wynik. W tej ostatniej procedurze możesz już mówić o programie, który składa się z szeregu instrukcji ułożonych jeden za drugim i rozwiązujących ustalone wymagania.

Algorytm

Należy wspomnieć, że w czasie sekwencyjnym algorytmy wykonują swoją funkcję w zdyskretowanym czasie i starają się zdefiniować sekwencje stanów obliczeniowych na każdym wejściu, które uznaje się za prawidłowe . W stanie abstrakcyjnym operacje te są niezależnymi elementami i uważa się, że w nich struktury pierwotnego porządku mogą stać się niezmienne pod wpływem izomorfizmu. W ograniczonej eksploracji przejścia z jednego stanu do drugiego są w pełni ustalone przez stałe i skończone wyjaśnienie, w którym między jednym stanem a drugim bierze się pod uwagę tylko ograniczoną liczbę warunków obecnego stanu.

Nie należy również zapominać, że algorytmy są często wyrażane za pomocą języków programowania „pseudokodu”, języka wspólnego, a nawet dobrze znanych schematów blokowych. Należy również wspomnieć, że algorytmy odgrywają podstawową rolę w obliczeniach ze względu na ich reprezentację danych jako sekwencji bitów. Z innej strony program jest zdefiniowany jako algorytm, który wyraża komputerowi te konkretne kroki, które musi wykonać, aby właściwie wykonać określone czynności. Z drugiej strony nauka pisania pseudokodu ułatwia programowanie i dlatego zostanie wyjaśnione później.

Języki programowania, znane jako język formalny lub sztuczny, mające dobrze zdefiniowane reguły gramatyczne, mają zdolność do zapewnienia programistom możliwości teksturowania szeregu instrukcji lub sekwencji przepisów w postaci algorytmów w celu Utrzymując kontrolę nad fizycznym i logicznym zachowaniem komputera, w ten sposób można dotrzeć do różnych rodzajów informacji. Ten zestaw zasad napisanych za pomocą języka programowania jest oznaczony jako program .

Języki programowania składają się zwykle z zestawu symboli oraz reguł gramatycznych i semantycznych, które określają obecne struktury języka i jego znaczenie. Z innej perspektywy, języki komputerowe obejmują również języki programowania, czego dobrym przykładem jest HTML, który jest zgodny z pewnymi instrukcjami dotyczącymi przeprowadzania zawartości różnych dokumentów. Język programowania pozwala na precyzyjne określenie danych, które muszą być obsługiwane przez określone oprogramowanie w szerokim zakresie okoliczności.

Z drugiej strony pseudokod jest językiem opisu algorytmicznego, który wykorzystuje podstawowe konwencje prawdziwego języka programowania, ale jest przeznaczony do czytania przez ludzi zamiast czytania maszynowego, zachowując niezależność od jakiegokolwiek innego rodzaju język programowania . Pseudokod ignoruje szczegóły, które nie są uważane za niezbędne dla zrozumienia algorytmu przez człowieka, takie jak kody specyficzne dla systemu, deklaracje zmiennych, a nawet niektóre podprogramy. W ten sposób język programowania stara się uzupełnić precyzyjnymi opisami w języku naturalnym lub zwartymi notacjami matematycznymi.

Zalecane

Unix
2020
Jitanjáforas
2020
Zaklęcie
2020