В тази публикация в блога изследваме приликите между приготвянето на кимчи яхния и алгоритмите от гледна точка на ясното и ефикасно решаване на проблеми.
Как се прави кимчи яхния? Алгоритъм!
Как се прави кимчи яхния?
1. Добавете вода в тенджера и я оставете да заври.
2. Добавете подходящо количество правилно приготвено кимчи и го сварете.
3. След като се сготви, коригирайте подправките и довършете.
Ако се обясни по този начин, повечето хора биха се озадачили и биха поставили под въпрос. Но строго погледнато, не може да се каже, че горното обяснение не е как се приготвя кимчи яхния. То е просто много двусмислено, не е напълно погрешно. Това обяснение обхваща част от процеса на решаване на проблеми. Наричаме метода за систематично обяснение на този процес на решаване на проблеми „алгоритъм“.
Какво е алгоритъм?
Алгоритъмът се отнася до стъпка по стъпка процедура или метод за решаване на проблем. Споменатият по-горе метод за готвене на кимчи яхния също е вид алгоритъм. Той обаче не може да се нарече „добре проектиран алгоритъм“. Добре проектиран алгоритъм се отнася до процедура, която включва ясно, ефикасно и универсално приложимо логическо обяснение.
Яснота на алгоритмите
Един алгоритъм е ясен, когато е недвусмислен и не е объркващ за разбиране от читателя. Например, терминът „подходящо количество“, споменат по-горе, е силно двусмислен. Тъй като всеки човек може да тълкува „подходящо количество“ по различен начин, това не е ясно обяснение. За да се създаде ясен алгоритъм, той трябва да бъде конкретен.
Нека обясним метода за приготвяне на кимчи яхния малко по-ясно.
1. Добавете 500–550 мл вода (с температура 4°C) в тенджера и я оставете да заври.
2. Нарежете кимчито на квадрати или ромбове с дължина приблизително 3 см на страна, след което добавете 40 г кимчи на 100 г вода и сварете.
3. След като кимчито е сготвено, овкусете го с подправки и догответе.
По този начин, използването на конкретни числови стойности вместо неясни изрази като „подходящо количество“ подобрява яснотата на алгоритъма. Тук „яснотата“ е от съществено значение. За да се гарантира, че процесът на приготвяне на кимчи яхния не се тълкува различно от всеки човек, трябва да се осигурят ясни стандарти и стъпки за постигане на последователни резултати.
Ефективност на алгоритъма
Алгоритъмът трябва не само да бъде ясен, но и ефективен. Тоест, минимизирането на времето и ресурсите, необходими за решаване на даден проблем, е от решаващо значение. Особено в компютърните науки, когато размерът на входните данни е много голям, времето за обработка може да варира значително в зависимост от ефективността на алгоритъма.
Например, спецификите на алгоритъма може да не са от голямо значение при приготвянето на една купа кимчи яхния, но историята се променя, когато трябва да се приготвят стотици купи. Това е така, защото общото време за готвене варира значително в зависимост от това какво представлява „правилното приготвяне“ и колко време отнема това приготвяне.
Алгоритми и ежедневие
В компютърните науки алгоритмите се използват за решаване на различни проблеми в живота ни. Отличен пример е алгоритъмът, който намира най-краткия маршрут в автомобилна навигационна система. Той трябва бързо да определи оптималния път, като вземе предвид множество променливи, като например пътни условия в реално време, произшествия и средни скорости. Решаването на такива проблеми изисква високоефективни и ясни алгоритми.
Алгоритмите се прилагат в множество неочаквани области от ежедневието. Например, интернет търсачките използват алгоритми за бързо и точно намиране на желаната информация в огромни количества данни. Алгоритмите също играят ключова роля при сортирането на големи набори от данни или филтрирането им въз основа на специфични критерии. Целта на алгоритъма е да решава проблеми бързо и точно.
Приложения на алгоритмите в реалния свят
В действителност, алгоритмите далеч надхвърлят обикновените академични понятия. Ние използваме алгоритми в много рецепти за готвене и ежедневни процеси за решаване на проблеми. Точно както варенето на кимчи яхния изисква прецизно спазване на правилните съотношения на съставките, време за готвене и последователност, за да се постигне идеалният вкус, алгоритмите съществуват, за да предоставят оптимални решения за различни проблемни сценарии.
Често несъзнателно следваме алгоритми не само в компютърните науки, но и в много аспекти на ежедневието. Решаваме проблеми чрез определени процедури и стъпки и в процеса непрекъснато усъвършенстваме алгоритмите въз основа на опита.