Główna » jak » Jakie są algorytmy komputerowe i jak działają?

    Jakie są algorytmy komputerowe i jak działają?

    Jeśli nie masz do czynienia z matematyką lub programowaniem, słowo "algorytm" może być dla ciebie po grecku, ale jest to jeden z podstawowych elementów wszystkiego, czego używasz do czytania tego artykułu. Oto krótki opis tego, czym są i jak działają.

    Zrzeczenie się: Nie jestem matematykiem ani nauczycielem informatyki, więc nie wszystkie terminy, których używam są techniczne. To dlatego, że staram się wszystko wyjaśnić prostym językiem angielskim, ponieważ ludzie nie są do końca zadowoleni z matematyki. Biorąc to pod uwagę, jest w to zaangażowana matematyka i to jest nieuniknione. Mądrości matematyki, nie krępuj się poprawić lub lepiej wyjaśnij w komentarzach, ale proszę, zachowaj to proste dla matematycznie niesympatycznego wśród nas.

    Obraz wg Ian Ruotsala

    Co to jest algorytm??

    Słowo "algorytm" ma etymologię podobną do "algebry", tyle tylko, że odnosi się do samego matematyka arabskiego, al-Khwarizmi (tylko interesujący smakołyk). Algorytm dla nie-programistów spośród nas jest zestawem instrukcji, które pobierają dane wejściowe, A i dostarczają wynik B, który zmienia dane w jakiś sposób. Algorytmy mają szeroki zakres zastosowań. W matematyce mogą pomóc w obliczaniu funkcji z punktów w zbiorze danych, wśród znacznie bardziej zaawansowanych rzeczy. Oprócz tego, że są używane w programowaniu, odgrywają one główną rolę w takich dziedzinach, jak kompresja plików i szyfrowanie danych.

    Podstawowy zestaw instrukcji

    Powiedzmy, że twój przyjaciel spotyka cię w sklepie spożywczym i prowadzisz go do siebie. Mówisz rzeczy takie jak "wejdź przez prawe drzwi", "podaj sekcję ryb po lewej stronie" i "jeśli zobaczysz mleczarnię, zdałeś mnie." Algorytmy działają w ten sposób. Możemy użyć schematu blokowego, aby zilustrować instrukcje oparte na kryteriach, które znamy z wyprzedzeniem lub dowiedzieć się w trakcie procesu.

    (zdjęcie zatytułowane "Rutynowa procedura łamania lodu" EDIT: dzięki uprzejmości Trigger i Freewheel)

    Począwszy od START, idziesz w dół ścieżką iw zależności od tego, co się dzieje, podążasz za "przepływem" do wyniku końcowego. Schematy blokowe są narzędziami wizualnymi, które w bardziej zrozumiały sposób przedstawiają zestaw instrukcji używanych przez komputery. Podobnie algorytmy pomagają zrobić to samo z większymi modelami matematycznymi.

    Wykresy

    Użyjmy wykresu, aby zilustrować różne sposoby udzielania wskazówek.

    Możemy wyrazić ten wykres jako połączenie wszystkich jego punktów. Aby odtworzyć ten obraz, możemy przekazać komuś instrukcje.

    Metoda 1

    Możemy to przedstawić jako serię punktów, a informacja podążałaby za standardową formą wykresu = (x1, y1), (x2, y2), ..., (xn, yn).

    wykres = (0,0), (3,0), (3,3), (5,5), (7,10), (8,7), (9,4), (10,1)

    Łatwo jest wyrysować każdy punkt, jeden po drugim i połączyć je z poprzednim punktem. Wyobraź sobie jednak wykres z tysiącem punktów lub wieloma segmentami, które wszystko idzie w każdą stronę. Ta lista miałaby dużo danych, prawda? A potem połączenie każdego z nich, po jednym na raz, może być uciążliwe.

    Metoda 2

    Inną rzeczą, którą możemy zrobić, to podać punkt początkowy, nachylenie linii między nim a następnym punktem i wskazać, gdzie można się spodziewać następnego punktu, używając standardowej postaci wykresu = (punkt początkowy, [m1, x1, h1 ], ..., [mn, xn, hn] .W tym przypadku zmienna "m" reprezentuje nachylenie linii, "x" oznacza kierunek, w którym należy policzyć (niezależnie od tego, czy x lub y), a "h" mówi o tym, jak wiele do zliczenia we wspomnianym kierunku, możesz także pamiętać o wykreśleniu punktu po każdym ruchu.

    wykres = (0,0), [0, x, 3], [0, y, 3], [1, x, 2], [2,5, x, 2], [-3, x, 1], [-3, x, 1], [-3, x, 1]

    Otrzymasz ten sam wykres. Widać, że ostatnie trzy wyrażenia w tym wyrażeniu są takie same, więc możemy je skrócić, mówiąc po prostu "powtórz trzy razy" w jakiś sposób. Powiedzmy, że za każdym razem, gdy zobaczysz zmienną "R", oznacza to powtórzenie ostatniej rzeczy. Możemy to zrobić:

    wykres = (0,0), [0, x, 3], [0, y, 3], [1, x, 2], [2,5, x, 2], [-3, x, 1], [R = 2]

    Co się stanie, jeśli poszczególne punkty nie będą miały znaczenia, a jedynie sam wykres? Możemy skonsolidować te trzy ostatnie sekcje w ten sposób:

    wykres = (0,0), [0, x, 3], [0, y, 3], [1, x, 2], [2,5, x, 2], [-3, x, 3]

    Skraca to nieco sytuację, w której byli wcześniej.

    Metoda 3

    Spróbujmy to zrobić w inny sposób.

    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≤x≤8
    y = -3x + 29, 8≤x≤9
    y = -3x + 29, 9≤x≤10

    Tutaj mamy to w czysto algebraicznych kategoriach. Ponownie, jeśli same punkty nie mają znaczenia, a tylko wykres, możemy skonsolidować trzy ostatnie elementy.

    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≤x≤10

    Teraz, którą metodę wybierzesz, zależy od twoich umiejętności. Może jesteś świetny z matematyką i grafiką, więc wybierasz ostatnią opcję. Może jesteś dobry w nawigacji, więc wybierasz drugą opcję. Jednak w dziedzinie komputerów wykonujesz wiele różnych zadań, a możliwości komputera tak naprawdę się nie zmieniają. Dlatego algorytmy są zoptymalizowane pod kątem wykonywanych zadań.

    Inną ważną kwestią, na którą należy zwrócić uwagę, jest to, że każda metoda opiera się na kluczu. Każdy zestaw instrukcji jest bezużyteczny, chyba że wiesz, co z nimi zrobić. Jeśli nie wiesz, że masz narysować każdy punkt i połączyć kropki, pierwszy zestaw punktów nic nie znaczy. Jeśli nie wiesz, co każda zmienna oznacza w drugiej metodzie, nie będziesz wiedział, jak je zastosować, podobnie jak klucz do szyfru. Klucz ten jest również integralną częścią korzystania z algorytmów, a często klucz ten znajduje się w społeczności lub za pośrednictwem "standardu".

    Kompresja pliku

    Po pobraniu pliku .zip wyodrębniasz zawartość, aby można było użyć jej zawartości. W dzisiejszych czasach większość systemów operacyjnych może przechwytywać pliki .zip, tak jak normalne foldery, robiąc wszystko w tle. Na moim komputerze z Windows 95 ponad dekadę temu musiałem wyodrębnić wszystko ręcznie, zanim mogłem zobaczyć coś więcej niż nazwy plików wewnątrz. To dlatego, że to, co zostało zapisane na dysku jako plik .zip, nie było w formie użytkowej. Pomyśl o rozkładanej kanapie. Kiedy chcesz go użyć jako łóżko, musisz usunąć poduszki i rozłożyć je, co zajmuje więcej miejsca. Kiedy go nie potrzebujesz lub chcesz go przetransportować, możesz złożyć go z powrotem.

    Algorytmy kompresji są dostosowywane i optymalizowane specjalnie dla typów plików, do których są kierowane. Na przykład, formaty audio wykorzystują inny sposób przechowywania danych, które po dekodowaniu przez kodek audio, dadzą plik dźwiękowy podobny do pierwotnego kształtu fali. Aby uzyskać więcej informacji na temat tych różnic, sprawdź nasz poprzedni artykuł, Jakie są różnice między wszystkimi tymi formatami audio? Bezstratne formaty audio i pliki .zip mają jedną wspólną cechę: obie dają oryginalne dane w ich dokładnej postaci po procesie dekompresji. Strumieniowe kodeki audio wykorzystują inne sposoby oszczędzania miejsca na dysku, takie jak przycinanie częstotliwości, których nie można usłyszeć przez ludzkie uszy i wygładzanie kształtu fali w sekcjach w celu pozbycia się niektórych szczegółów. W końcu, chociaż możemy nie być w stanie naprawdę usłyszeć różnicy między MP3 i CD, na pewno jest deficyt informacji w tym pierwszym.

    Szyfrowanie danych

    Algorytmy są również używane podczas zabezpieczania danych lub linii komunikacyjnych. Zamiast przechowywania danych w taki sposób, aby zużywał mniej miejsca na dysku, jest on przechowywany w sposób niewykrywalny w innych programach. Jeśli ktoś ukradnie twój dysk twardy i zacznie go skanować, będzie mógł pobierać dane nawet wtedy, gdy usuniesz pliki, ponieważ same dane nadal istnieją, nawet jeśli lokalizacja przekazywania do niego zniknęła. Kiedy dane są szyfrowane, to, co jest przechowywane, nie wygląda tak, jak jest. Zwykle wygląda losowo, jakby z upływem czasu narastała fragmentacja. Możesz także przechowywać dane i sprawić, by wyglądały one jak inny typ pliku. Pliki graficzne i pliki muzyczne są na to dobre, ponieważ mogą być dość duże bez przykładania podejrzeń. Wszystko to odbywa się za pomocą algorytmów matematycznych, które pobierają pewien rodzaj danych wejściowych i konwertują je na inny, bardzo specyficzny typ danych wyjściowych. Aby uzyskać więcej informacji na temat działania szyfrowania, zobacz wyjaśnienia HTG: Co to jest szyfrowanie i jak to działa?


    Algorytmy są narzędziami matematycznymi, które zapewniają różnorodne zastosowania w informatyce. Starają się zapewnić spójny sposób między punktem początkowym a punktem końcowym i dostarczyć instrukcje, aby je śledzić. Czy wiesz więcej niż to, co podkreśliliśmy? Podziel się swoimi wyjaśnieniami w komentarzach!