Какво е алгоритъм? »Неговото определение и значение

Съдържание:

Anonim

В математиката, компютърните науки и други свързани доктрини алгоритъмът се определя като набор от установени и недвусмислени предписания, намерени методично и по ограничен начин, които позволяват да се извършват изчисления, да се обработва определена информация, да се предоставят решения на проблеми и да се извършват различни дейности. След като започнете от начално състояние и запис, следвайки необходимите процедури, се достига до крайното състояние и се получава резултат. Алгоритмите са обект на изследване на алгоритмиката и въпреки че мнозина може да не вярват, те също могат да се използват във всички аспекти на ежедневието.

Какво е алгоритъм

Съдържание

При изчисленията той обикновено се определя като поредица от последователни инструкции, в които се извършват някои процеси, за да се отговори на определени решения или нужди. По същия начин алгоритмите често се използват в логиката и математиката, както и като основа за разработването на ръководства за потребителя, илюстративни брошури, наред с други. Един от най-изявените в математиката е този, приписван на геометриста Евклиди, за да се постигне най-големият общ делител на две цели числа, които са положителни, и добре познатия "метод на Гаус" за определяне на системи от линейни уравнения.

Във връзка с компютърните науки това изчисление може да бъде известно като последователност от насоки, които трябва да се следват за определяне на проблем чрез използване на компютър.

Следователно алгоритмиката се разбира като дисциплина, която се фокусира върху анализа и проектирането на алгоритмите. Разглеждайки първия, той се стреми да изследва свойства като неговата коректност и ефективност по отношение на времето и пространството, за да разбере проблемите, които могат да бъдат решени алгоритмично. Що се отнася до втората, тя се стреми да изучи вече установените парадигми и предлага нови примери.

Алгоритъмът се намира в центъра на напредъка на изчисленията и е важен в различните области от него. По този начин би било невъзможно за толкова успешни услуги като Facebook и Google да се справят с размера на информацията, която имат, без сътрудничеството на алгоритми или специализирани структури от данни. В ежедневието обаче се използват и алгоритми, пример за това е запалването на печката, тъй като тя започва в момента, в който човекът отива в кухнята, наблюдава я и има своя край, когато тя продължи да я запалва.

Характеристики на алгоритъм

Въпреки че алгоритъмът е известен като подреден и краен набор от различни стъпки, които водят до разрешаването на даден проблем, се казва, че естеството на тези трудности варира в зависимост от контекста, в който се намират, по този начин има проблеми химически, математически, философски и др. По този начин може да се каже, че неговият характер е разнообразен и изпълнението му от компютъра не е необходимо. Освен всичко по-рано обяснено, алгоритмите имат характеристики, които са елементарни, за да определят какви са днес и ще бъдат споменати по-долу.

  • Указанията, съдържащи се в алгоритъма, трябва да са конкретни, за да се избегне оставяне на място за всякакъв вид объркване, това означава, че съответните инструкции трябва да се спазват по подходящ начин или, напротив, графичното представяне на потока, в който се записвате, няма да улесни решението. правилно.
  • Той трябва да бъде в перфектна дефиниция, като се опитва възможно най-много да го следва толкова пъти, колкото е необходимо, за да се получи един и същ резултат и в случай, че се случи обратното, алгоритъмът няма да бъде надежден и няма да служи като ориентир при вземане на решение.
  • Те са известни с особеността на това, че са крайни, обикновено завършват в даден момент и по-късно хвърлят резултат в края на всяка стъпка. Ако алгоритъмът се разширява за неопределено време, връщайки се към някаква начална точка, която никога не може да бъде разрешена, има наличие на парадокс или добре познатия „цикъл“ от повторения.
  • Накрая се казва, че четимостта на алгоритмите е ключовият елемент, тъй като ако аргументът му е неразбираем, съответните инструкции не могат да бъдат следвани, освен това това води до пряка, ясна и лаконична формулировка на текста, открит във всеки един.

Части от алгоритъм

Всяка алгоритмична операция има три различни части, които са подложени на основната структура на системата и това са:

  • Вход: наричан още заглавка или начална точка, първоначалната инструкция представлява генезиса на алгоритъма и тази, която мотивира четенето му.
  • Процес: нарича се още декларация, това е прецизната разработка, предлагана от алгоритъма и в основата си е стволът на неговите ключове за формулиране на инструкции.
  • Резултат: в тази последна фаза са конкретните инструкции, определени от алгоритъма, например неговите команди или резолюции.

Примери за алгоритми

Често срещаните примери за математически изчисления включват 2 + 3 = 5 за събиране и 15-9 = 6 за изваждане. Друг начин за визуализиране на прости алгоритми е в кухненските рецепти, тъй като те описват специфичен и подреден процес, например, „първо трябва да поставите половин тенджера вода за нагряване, след това трябва да добавите щипка сол и накрая пиперът ще бъде разделен, за да извлече семената и нервите. " В този модел са представени начало, процес и край, които в основата си определят алгоритмите.

Типове алгоритми

Сред различните видове алгоритми, съществуващи в целия свят, се набляга на тези, които са класифицирани според система от знаци, а други според тяхната функция. Алгоритъмът е основно най-известното решение за решаване на даден конкретен проблем и според неговите стратегии и неговите функции има различни видове такива, сред които са динамични, обратни, груба сила, опортюнистични, маркиращи, произволни и т.н. В допълнение към алгоритмите, споменати по-горе, има хиляди от тях, които са подходящи за решаване на трудности във всяка област.

Според вашата система за знаци

Качествените и количествените се намират в тази категория.

  • Качествените алгоритми се характеризират със словесни елементи, пример за това са инструкциите или признатите „стъпка по стъпка“, които се предоставят устно, като рецепти за кулинарни изкуства или процедури за извършване на ръчна работа.
  • Количествените алгоритми са напълно противоположни на качествените, поради наличието на определени числови елементи и използването на математиката за извършване на изчисления, например, когато се намери квадратният корен или се решат уравнения.

В рамките на тази класификация има и изчислителни и неизчислителни алгоритми. Изчислителните се извършват с помощта на компютър и се характеризират с това, че са толкова сложни до степен, че да се изисква машина да бъде извършена, освен това те са количествени алгоритми, които могат да бъдат оптимизирани. Неизчислителните не са задължени да бъдат изпълнени с помощта на машина или компютър; ярък пример за това е програмирането на телевизия.

Според неговата функция

Следното се намира в тази класификация.

1. Алгоритъм за маркиране

Това се характеризира с използването на автоматизация за определяне на цените по усърден начин, като се фокусира върху фактори като поведение на потребителя и е известно също като способността за автоматично определяне на цените за обезценяване на компоненти, с цел увеличаване на печалбите на потребителите. продавачи. Той изигра много важна роля в общите практики на авиокомпаниите промишленост от началото на 1990.

Алгоритъмът за маркиране се отличава с това, че е една от най-често срещаните практики в силно конкурентни индустрии, позовавайки се на туристически агенции или тези онлайн заведения. Този вид алгоритъм може да стане изключително сложен или относително прост, тъй като в много случаи се отбелязва, че те са оптимизирани или се самоучат с непрекъснатостта на определени тестове. Освен всичко това, алгоритмите за маркиране също могат да станат непопулярни сред клиентите, тъй като хората са склонни да ценят както стабилността, така и справедливостта.

2. Вероятностни алгоритми

Те са тези, при които начинът, по който се получават резултатите, зависи от вероятностите, те са известни като случайни алгоритми.

В някои приложения манипулирането на този тип операции е често срещано, например, когато поведението на която и да е съществуваща или разработена система се симулира с течение на времето, при което като следствие се получава случайно решение. При други обстоятелства проблемът, който трябва да бъде решен, обикновено е детерминиран, но има възможност той да бъде трансформиран в случаен, за да се реши чрез прилагане на алгоритъма на вероятността. Положителното при случайните е, че тяхното приложение не изисква много сложни математически изследвания.

В допълнение, в тази група има три основни типа, които са известни като числови, Монте Карло и Лас Вегас.

  • Числовите алгоритми могат да осигурят приблизителен резултат от проблема и обикновено се прилагат в инженерството.
  • Алгоритмите на Монте Карло могат да дадат правилното или грешното решение и да имат известна граница на грешка и накрая.
  • Алгоритмите в Лас Вегас се отличават с това, че никога не оставят грешен отговор, всъщност те намират правилното решение или просто ви информират за възможния неуспех.

Динамичното програмиране се отнася до метода, при който алгоритъмът изчислява резултатите. Понякога решенията на някои елементи, които имат проблемите, зависят от резултатите от други по-малки проблеми. Така че, за да се решат тези, едни и същи стойности трябва да бъдат преизчислени за решаване на най-малките подпроблеми, но това може да създаде загуба на цикли. За да се поправи това, може да се използва динамично програмиране и в този случай се запомня решението на всяка подпроблема, за да се използва същата тази стойност, вместо да се повтаря няколко пъти.

3. Евристични алгоритми

Те се отличават с намирането на решения и дори не гарантират, че ще бъдат намерени най-добрите отговори, поради което те могат да се считат за приблизителни алгоритми. Те могат да се използват, когато намирането на решение по нормален път се счита за невъзможно. Евристиката предоставя употребите, които ще бъдат обяснени по-долу. При планирането те се използват за планиране на дейности за кратък период от време, при проектирането се използват за очертаване на електрически или цифрови системи и при симулация се използват за проверка на определени процедури.

4. Алгоритми за обратно проследяване

Те са известни като рекурсивни стратегии, които решават проблеми като пъзели, лабиринти или подобни парчета, при които се извършва задълбочено търсене, за да се намери възможно решение. Името му се отнася до факта, че при направените запитвания, за да се намери резултат, той винаги се връща към предишната точка, за да може да тества алтернативи. Те обикновено се отменят, за да се наблюдава тяхното въздействие върху икономиката, пазарите, ценовата маркировка, определени операции и дори самото общество.

5. Алчен алгоритъм

Известен е като разрушител или сладък зъб и е приложим при оптимизационни проблеми, във всяка стъпка от този алгоритъм се прави логичен и оптимален избор, за да се получат най-добрите от глобалните решения. Трябва обаче да се има предвид, че след като бъде постановено съдебно решение, абсолютно нищо не може да бъде направено, за да се коригира или промени в бъдеще. Тази операция носи това име, защото във всяка стъпка се избира най-добрата фракция, която е в състояние да „погълне“, без да се притеснява какво ще се случи по-късно.

Свойства на алгоритъм

Различни автори се опитват да дефинират алгоритмите по формален начин, докато използват математически модели. Тези екземпляри обаче са тясно свързани със специфичен тип информация, която включва цифри, символи и някои графики, докато работят върху огромно количество разпределение на данни. По принцип общото участие на всяко от определенията е обобщено в следните три свойства:

Посочване на проблема

Разрешаването на проблеми с помощта на компютър може да се състои от този процес, в който е описан проблем и е позволено да бъде разработена програма, способна да го реши. Този процес изисква анализ на проблема, проектиране на алгоритъм и превръщането му в програма, както и неговото изпълнение и валидиране. Първите две стъпки са най-сложните в този процес, но след като разгледате проблема и сте получили алгоритъм, който може да го реши, вашата задача се основава предимно на превеждането му в желания език за програмиране.

Анализ на общото решение

След като проблемът е дефиниран, е време да се анализира следното:

  • В информацията на билетите, че те ни дават.
  • Желаните резултати.
  • Областта на работа, изявления или други необходими елементи.

Анализът на алгоритмите е известен като най-важната част от по-широката теория на изчислителната сложност, тъй като предоставя теоретични изчисления за ресурсите, които всеки алгоритъм изисква за решаване на даден изчислителен проблем. При провеждане на теоретично изследване е обичайно да се изчисляват неговите усложнения в асимптотичен смисъл, за да се получи достатъчно голям входен размер. За тази цел се използва асимптотичната горна граница заедно с тета и омега нотациите и трябва да се отбележи, че неасимптотичната мярка може да бъде изчислена.

Прецизните мерки за ефективност са наистина полезни за тези, които действително използват алгоритмите, тъй като имат по-голяма точност и това им позволява да определят времето, необходимо за изпълнението. За някои хора, като създателите на видеоигри, скритата константа може да означава голяма разлика между успеха и неуспеха. Оценките на времето могат да зависят от това как е определена определена стъпка и за да има смисъл анализът, трябва да се гарантира, че времето е значително ограничено от константа.

Разработване на алгоритъма

За да се извърши разработването на операция, е важно да се извършат редица процедури, за да се спази решението на самия проблем. За начало трябва да се извърши предварителен анализ на трудността и това се прави чрез проучване, което демонстрира истинската работа на проблема много преди да се извърши някакъв алгоритъм. Следователно дефиницията на изискванията се оценява, в тази стъпка трябва да имате ясна представа кои проблеми да решите, било то сумата от две числа, подреждането на списък с числа и т.н.

По-късно се изпълнява съответната идентификация на модулите, тъй като правилното изпълнение на алгоритмите зависи от нея, за да осигури възможни решения на изискванията, идентифицирани по-горе.

И накрая, изчислението се изпълнява на език за програмиране, разбираем за компютъра, така че той да може да разбере инструкциите, които той моделира и по този начин да бъде в състояние да ги изпълни, постигайки очаквания резултат. В тази последна процедура е възможно да се говори за програма, която е съставена от поредица от инструкции, които се подреждат една след друга и успяват да разрешат установените изисквания.

Важно е да се спомене, че в последователно време алгоритмите изпълняват функцията си в дискретизирано време и се стремят да дефинират последователностите на изчислителните състояния във всеки вход, който се счита за валиден. В абстрактното състояние тези операции са независими елементи и се счита, че в тях структурите на първоначалния ред могат да станат инвариантни при изоморфизма. При ограничено изследване преходите от едно състояние в друго са напълно установени чрез постоянно и крайно обяснение, при което между едно състояние и следващото се вземат предвид само ограниченият брой термини в текущото състояние.

Не бива да се пренебрегва и факта, че алгоритмите обикновено се изразяват чрез езици за програмиране с „псевдокод“, обичайния език и дори добре познатите диаграми на потока. Също така е важно да се спомене, че алгоритмите играят основна роля в изчисленията поради представянето им на данни като последователности от битове. От друг ъгъл се определя, че програмата е алгоритъмът, който изразява на компютъра онези специфични стъпки, които трябва да следва, за да изпълнява адекватно определени дейности. От друга страна, ученето за писане на псевдокод улеснява програмирането и следователно ще бъде обяснено по-късно.

Езиците за програмиране са известни като официален или изкуствен език, тъй като имат граматични правила, които са добре дефинирани, той има способността да предостави на програмиста способността да текстуализира поредица от инструкции или последователности от разпоредби под формата на алгоритми с цел за да се поддържа контрол по отношение на физическото и логическото поведение на компютъра, по този начин могат да се достигнат различните видове информация. Този набор от правила, написани с помощта на език за програмиране, е определен като програма.

Езиците за програмиране обикновено се състоят от набор от символи и граматични и семантични правила, които определят текущите структури на езика и тяхното значение. От друга гледна точка компютърните езици също включват езици за програмиране, ярък пример за това е HTML, който изпълнява определени инструкции за изпълнение на съдържанието на различни документи. Езикът за програмиране може да позволи точната спецификация на тези данни, които трябва да се управляват от специфичен софтуер при широк спектър от обстоятелства.

От друга страна, псевдокодът е алгоритмичният език за описание, който използва елементарните конвенции на реален език за програмиране, но който е предназначен за човешко четене, вместо да чете чрез машина, поддържайки независимост от всеки друг тип език за програмиране. Псевдокодът игнорира подробности, които не се считат за съществени за човешкото разбиране на алгоритъма, като системни кодове, декларации на променливи и дори някои подпрограми. По този начин езикът за програмиране се стреми да се допълни с точни описания на естествен език или с компактни математически обозначения.