В най-обобщения си смисъл алгоритъм е серия от инструкции, които се задават на един компютър, за да трансформира дадени факти в полезна информация. Те се преобразуват в данни, а полезната информация в знание за хората, инструкции за други машини или дори в нов алгоритъм. Примери са автоматичното сортиране на числа, намиране на най-бързия маршрут в Google Maps и даже самото показване на информация на екран.
За да се разбере по-добре концепцията на алгоритмите, давам за пример обличането за работа сутрин. Един рутинен процес, върху който повечето хора не се задълбочават. Но сега си представете, че трябва да напишете защо сте избрали точно тези дрехи или трябва да обясните логиката си на 5-годишно дете.
Въвеждане
Каква информация ви е нужна, за да се облечете сутрин? Преди всичко с какви дрехи разполагате. След това гледате прогнозата за времето. Накрая идват личните предпочитания. Един компютър има нужда да въведете цялата тази информация, за да намери решение на казуса. Тя най-често е под формата на данни – съвкупност от числа или думи. Ако например въведем температурата с цифри и допълним прогнозата със „слънчево“ или „дъждовно“.
Трансформация
Изчислението е сърцето на всеки алгоритъм. Те могат да включват аритметика, вземане на решения и повторение. Как това би могло да се отнесе до нашия пример? Ние вземаме решения, базирани на прости сметки, когато имаме нужните стойности. От температурата зависи дали ще си вземем връхна дреха, а от прогнозата – дали ще грабнем чадър или слънчеви очила. Един компютър би превърнал този мисловен процес в алгоритъм, който би могъл да звучи: „Ако е над 25 градуса и слънчево = тениска + слънчеви очила“. След като вече сме избрали тоалет, следва самото обличане. Това е ключова част от алгоритъма – повторение. За компютъра това може да е отделно напомняне за обличането на всяка дреха.
Краен резултат
Последната стъпка от алгоритъма е въпроизвеждането на отговор. В повечето случаи това отново са данни, защото това позволява навързването на още алгоритми. Крайният резултат може да бъде и презентиране на конкретна информация на екран или друга форма на комуникация. Затова, вече облечени, сме готови да излезем и да се сблъскаме с всички преживявания, които крие денят.
Машинно обучение
Понякога е трудно да бъде описано вземането на определено решение. Затова съществува категорията machine learning algorithms, които се опитват да се „учат“, позовавайки се на предишни решения. На тяхна база получаваме предложения и предположения. Връщайки се към примера с обличането, подобен алгоритъм би взел предвид данните относно това, какво сме носили предишните дни и имаме ли любими дрехи. След това да ги използва, за да ни помогне да вземем оптимално решение.
Накратко, алгоритъм е всеки процес, при който даден компютър приема данни, преработва ги и изкарва резултати. На пръв поглед тове е доста семпло като концепция, но истината е, че вече сме заобиколени от алгоритми – както прости, така и сложни. На практика зад всяко действие, което извършваме със смартфоните си, стои някакъв вид алгоритъм, който се опитва да улесни живота ни.
Снимки: Unsplash
Вижте още: Google вече намира песни само като си тананикате мелодията