Техники и алгоритми
Techniques and algorithms
Какво е техника и какво е алгоритъм? Каква е разликата между тях?
Въпреки, че в компютърната литература често не се прави разлика между "техника" и "алгоритъм", ние ще направим известно разграничение между двете.
Алгоритъм
Под алгоритъм ще разбираме последователност от стъпки, чието изпълнение води до даден желан резултат. Обикновено в информатичен смисъл алгоритмите прилагат поредица от вече-известни функции и/или операции върху входните данни, като така произвеждат желания резултат под формата на изходни данни.Може би най-близката аналогия, която можем да дадем от реалния живот, би била рецепта. Например "алгоритъмът" за готвене на таратор би бил нещо от сорта:
- Нарежете K краставици на дребни кубчета с размер на страната приблизително един до два милиметра
- Посолете нарязаните кубчета краставица
- Разбъркайте в тенджера K кофички кисело мляко (от 400-500 грама всяка)
- Добавете K чаши вода (приблизително по 200 милилитра всяка) и разбъркайте отново
- Добавете нарязаните краставици
- Добавете N супени лъжици олио
- Добавете M скилитки ситно нарязан чесън
- Добавете 5*K ситно начупени орехи (без черупките)
- Разбъркайте една-две минути
- Готово!
M = 0
.Забележете, че някои от действията, които прилагаме, могат да бъдат други алгоритми. Например можем да имаме специфичен алгоритъм за рязане на краставицата. Също така забележете, че не всичко е предварително фиксирано. Разбира се, входните данни се очаква да са различни, но също така например големината на кубчетата краставица и времето за разбъркване накрая не са конкретно специфицирани. Съществуват алгоритми, които използват случайни числа в себе си, за да постигнат по-разнообразни резултати при различни пускания. За тях ще говорим по-нататък при темите за NP-задачи.
Техника
Под техника ще разбираме нещо малко по-различно. То няма да е точно определена последователност от стъпки, които трябва да следваме за да получим някакъв резултат (както беше при алгоритъма), ами по-скоро по-обща идея, с която можем да съставим алгоритъм за конкретната задача. Да кажем, пример за това би било техниката "приготвяне на супа". В общия случай, това би било нещо от сорта на:- Добавете в голям съд някаква течност
- Добавете продукти
- Обработете по някакъв начин
Ако обаче специфицираме, че съдът ще е тенджера, течността ще е L литра вода, продуктите ще са едно пиле, C грама моркови, и P грама картофи, и обработката ще е варене на котлон за два часа, бихме получили алгоритъм за готвене на пилешка супа.
Допълнителни материали
За да предложите корекция, селектирайте думата или текста, който искате да бъде променен,
натиснете Enter и изпратете Вашето предложение.
натиснете Enter и изпратете Вашето предложение.
Страницата е посетена 8388 пъти.