16Aug

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ą.

Disclaimer: 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ę, w grę wchodzi matematyka, a to nieuniknione. Math maniaków, nie krępuj się poprawić lub lepiej wyjaśnij w komentarzach, ale proszę, zachowajcie to proste dla matematycznie niesubordynowanych wśród nas.

Zdjęcie: Ian Ruotsala

Co to jest algorytm?

Słowo "algorytm" ma etymologię podobną do "algebry", z tym że odnosi się do samego matematyka arabskiego, al-Khwarizmi( tylko interesująca ciekawostka).Algorytm, dla nie-programistów z nas, jest zbiorem instrukcji, które pobierają dane wejściowe, A i dostarczają dane wyjściowe, B, które zmieniają dane w jakikolwiek 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 samym programowaniu, odgrywają one główną rolę w kompresji plików i szyfrowaniu danych.

Podstawowy zestaw instrukcji

Powiedzmy, że twój przyjaciel spotyka cię w sklepie spożywczym i kierujesz 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.

( obraz zatytułowany "Procedura łamania lodu" EDYTOWANIE: dzięki uprzejmości Trigger i Freewheel)

Od START-a poszedłbyś ścieżką w dół iw zależności od tego, co się dzieje, podążałeś 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źmy sobie jednak wykres zawierający tysiąc punktów lub wiele segmentów, każdy z nich. 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

Kolejną 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 oczekiwać 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 do zliczenia( niezależnie od tego, czy x lub y), czy "h""informuje o tym, ile należy policzyć we wskazanym 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]}

W efekcie otrzymaszTen sam wykres widać, że trzy ostatnie wyrażenia w tym wyrażeniu są takie same, więc możemy go skrócić, mówiąc po prostu "powtórz trzy razy". Powiedzmy, że za każdym razem, gdy zobaczysz zmienną "R""Wygląda, to znaczy powtórzyć ostatnią rzecz, 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, jeśli poszczególne punkty naprawdę nie mają znaczenia, a jedynie sam wykres działa? Możemy skonsolidować te trzy ostatnie sekcje:

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

To skraca nieco sytuację z miejsca, w którym znajdowali się 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. Jeszcze raz, 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 wypełnianych zadań.

Kolejną ważną rzeczą, na którą warto 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 plików

Po pobraniu pliku. zip wyodrębniasz zawartość, dzięki czemu możesz użyć dowolnegojest w środku. 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 był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. Jeśli 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 przestrzeni dyskowej, takie jak przycinanie częstotliwości, których nie można usłyszeć przez ludzkie uszy, i wygładzenie kształtu fali w sekcjach, aby pozbyć 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, w tym pierwszym jest zdecydowanie deficyt informacji.

Szyfrowanie danych

Algorytmy są również używane podczas zabezpieczania danych lub linii komunikacyjnych. Zamiast przechowywania danych, które zużywają mniej miejsca na dysku, są przechowywane 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 tam są, mimo że lokalizacja przekazywania do niego nie istnieje. Gdy 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ą pewnego rodzaju dane wejściowe i przekształcają je w inny, bardzo specyficzny typ danych wyjściowych. Aby uzyskać więcej informacji na temat działania szyfrowania, zapoznaj się z objaśnieniami HTG: Co to jest szyfrowanie i jak 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 przekazują instrukcje, aby go przestrzegać.Czy wiesz więcej niż to, co podkreśliliśmy? Podziel się wyjaśnieniami w komentarzach!