Шта је алгоритам? »Његова дефиниција и значење

Преглед садржаја:

Anonim

У математици, рачунарским наукама и другим сродним доктринама алгоритам је дефинисан као скуп утврђених и недвосмислених прописа, који се налазе методично и на ограничен начин, који омогућавају извршавање прорачуна, обраду одређених информација, пружање решења за проблеме и обављање различитих активности. Једном кад кренете од почетног стања и уноса, следећи потребне процедуре, постиже се коначно стање и добија се резултат. Алгоритми су предмет истраживања алгоритама и иако многи можда не верују, они се такође могу користити у свим аспектима свакодневног живота.

Шта је алгоритам

Преглед садржаја

У рачунарству се обично дефинише као низ узастопних упутстава, у којима се изводе неки процеси како би се дали одговори на одређене одлуке или потребе. На исти начин, алгоритми се често користе у логици и математици, као и основа за развој корисничких приручника, илустративних брошура, између осталог. Један од најугледнијих у математици је онај који се приписује геометријском Еуклиду, да би се постигао највећи заједнички делилац две целобројне позитивне вредности и добро познате „Гауссове методе“ за одређивање система линеарних једначина.

У односу на рачунарство, овај прорачун може бити познат као редослед смерница које треба следити за утврђивање проблема употребом рачунара.

Због тога се алгоритмизам схвата као дисциплина која се фокусира на анализу и дизајн алгоритама. Разматрајући прву, она покушава да испита својства као што су њена исправност и ефикасност у односу на време и простор, како би разумела проблеме који се могу алгоритамски решити. Што се тиче другог, он покушава да проучи већ успостављене парадигме и предлаже нове примере.

Алгоритам се налази у центру напретка рачунарства и важан је у различитим деловима рачунара. На тај начин било би немогуће да тако успешне услуге попут Фацебоок-а и Гоогле-а раде са величином информација које имају без сарадње алгоритама или специјализованих структура података. Међутим, у свакодневном животу се такође користе алгоритми, пример за то је паљење пећи, јер оно започиње у тренутку када особа одлази у кухињу, посматра је и има свој крај, када настави да је пали.

Карактеристике алгоритма

Иако је алгоритам познат као уређени и коначни скуп различитих корака који воде ка решавању проблема, каже се да природа ових потешкоћа варира у зависности од контекста у којем се налазе, на овај начин постоје проблеми хемијске, математичке, филозофске, између осталих. Стога се може рећи да је његова природа различита и да извршење рачунара није неопходно. Поред свега претходно објашњеног, алгоритми имају карактеристике које су елементарне за одређивање онога што су данас и које ће бити наведене у наставку.

  • Смернице садржане у алгоритму морају бити специфичне како би се избегло остављање места за било коју врсту забуне, то значи да се одговарајућа упутства морају следити на одговарајући начин или, напротив, графички приказ тока у који се уписујете неће олакшати решење. тачно.
  • Мора бити у савршеној дефиницији, трудећи се да га што више пута пратите онолико пута колико је потребно, како би се добио исти резултат, а у случају да се догоди супротно, алгоритам неће бити поуздан и неће служити као водич приликом доношења одлуке.
  • Познати су по томе што су коначни, обично се завршавају у неком тренутку, а касније дају резултат на крају сваког корака. Ако се алгоритам проширује унедоглед, враћајући се на неку почетну тачку која се никада не може решити, постоји парадокс или добро позната „петља“ понављања.
  • На крају, речено је да је читљивост алгоритама кључни елемент, јер ако је његов аргумент неразумљив, одговарајућа упутства се не могу следити, поред тога, подразумева директно, јасно и лаконско срочање текста који се налази у сваком од њих.

Делови алгоритма

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

  • Улаз: такође се назива заглавље или почетна тачка, то је иницијална инструкција која представља генезу алгоритма и ону која мотивише његово читање.
  • Процес: такође се назива декларација, то је прецизна разрада коју алгоритам нуди и у основи је труп његових кључева за формулисање упутстава.
  • Резултат: у овој последњој фази су специфичне инструкције одређене алгоритмом, на пример, његове наредбе или резолуције.

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

Уобичајени примери математичких израчунавања укључују 2 + 3 = 5 за сабирање и 15-9 = 6 за одузимање. Други начин за визуализацију једноставних алгоритама је у кухињским рецептима, јер они описују специфичан и уредан поступак, на пример, „прво треба ставити пола лонца воде да се загреје, затим додати мало соли и на крају бибер ће бити подељен за вађење семена и жила “. Овај модел представља почетак, процес и крај, који су у основи оно што дефинише алгоритме.

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

Међу различитим врстама алгоритама који постоје у целом свету, нагласак је стављен на оне који су класификовани према систему знакова, а други према својој функцији. Алгоритам је у основи најпознатије решење за решавање било ког одређеног проблема и према својим стратегијама и функцијама постоје различити типови међу којима се издвајају динамичка, обрнута, груба сила, опортунистичко обележавање., случајни итд. Поред горе поменутих алгоритама, постоје хиљаде таквих који су погодни за решавање потешкоћа у било којој области.

Према вашем знаковном систему

Квалитативни и квантитативни се налазе у овој категорији.

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

У оквиру ове класификације постоје и рачунски и нерачунарски алгоритми. Рачунски се изводе помоћу рачунара и карактеришу их толико сложеност да захтевају извођење машине, а поред тога су квантитативни алгоритми који се могу оптимизовати. Они који нису рачунски немају обавезу да се извршавају помоћу машине или рачунара; јасан пример за то је програмирање телевизије.

Према својој функцији

Следеће се налазе у овој класификацији.

1. Алгоритам маркирања

Ово карактерише употреба аутоматизације за марљиво одређивање цена, фокусирање на факторе као што је понашање корисника, а такође је позната и као способност аутоматског одређивања цена за девалвацију компонената, како би се повећала добит корисника. продавци. Играо је веома важну улогу у уобичајеној пракси авио- индустрије од почетка 1990-их.

Алгоритам обележавања разликује се по томе што је једна од најчешћих пракси у високо конкурентним индустријама, а односи се на туристичке агенције или оне мрежне установе. Ова врста алгоритма може бити изузетно сложена или релативно једноставна, јер се у многим случајевима примећује да су они оптимизовани или самоуки уз континуитет одређених тестова. Поред свега тога, алгоритми означавања такође могу постати непопуларни код клијената јер појединци теже и стабилности и правичности.

2. Пробабилистички алгоритми

То су они на које начин на који се добијају резултати зависи од вероватноће, они су обично познати као случајни алгоритми.

У неким апликацијама руковање овом врстом операције је уобичајено, на пример, када се временом симулира понашање било ког постојећег или осмишљеног система, у коме се као последица добија случајно решење. У другим околностима, проблем који се мора решити је обично детерминистички, али постоји могућност да се трансформише у случајни, како би се решио применом алгоритма вероватноће. Позитиван случајни случај је што његова примена не захтева високо софистициране математичке студије.

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

  • Нумерички алгоритми могу дати приближни резултат проблема и обично се примењују у инжењерству.
  • Монте Царло алгоритми могу дати тачно или погрешно решење и на крају имати одређену границу грешке.
  • Лас Вегас алгоритми се разликују по томе што никада не остављају нетачан одговор, у ствари проналазе тачно решење или вас једноставно обавештавају о могућем неуспеху.

Динамичко програмирање односи се на метод у којем алгоритам израчунава резултате. Понекад решења одређених елемената који имају проблеме зависе од резултата других мањих проблема. Дакле, да би се решили ови, исте вредности морају се прерачунати да би се решиле најмање подпроблеме, међутим, то може створити губитак циклуса. Да би се то поправило, може се користити динамичко програмирање и у овом случају се памти решење сваког потпроблема, да би се користила иста вредност уместо да се понавља неколико пута.

3. Хеуристички алгоритми

Одликују се проналажењем решења, чак и ако не гарантују да ће се пронаћи најбољи одговори, из тог разлога се могу сматрати приближним алгоритмима. Они се могу користити када се сматра да је проналажење решења нормалним путем немогуће. Хеуристика пружа употребу која ће бити објашњена у наставку. У планирању се користе за планирање активности у кратком временском периоду, у дизајну се користе за разграничење електричних или дигиталних система, ау симулацији се користе за верификацију одређених поступака.

4. Алгоритми повратка уназад

Познате су као рекурзивне стратегије које решавају проблеме попут загонетки, лавиринта или сличних делова, у којима се врши дубинско тражење да би се пронашло могуће решење. Његово име се односи на чињеницу да се у упитима извршеним ради проналажења резултата увек враћа на претходну тачку да би могао да тестира алтернативе. Оне се обично укидају ради уочавања њиховог утицаја на економију, тржиште, означавање цена, одређене операције, па чак и на само друштво.

5. Похлепни алгоритам

Познат је као разарач или слатки зуб и применљив је у проблемима оптимизације, у сваком кораку овог алгоритма направљен је логичан и оптималан избор да се на крају добију најбоља глобална решења. Међутим, мора се узети у обзир да се након доношења пресуде апсолутно ништа не може учинити да се она исправи или промени у будућности. Ова операција има ово име, јер се у сваком кораку бира најбоља фракција која је у стању да „прогута“ без бриге о томе шта ће се касније догодити.

Особине алгоритма

Разни аутори су покушали да дефинишу алгоритме на формални начин користећи математичке моделе. Међутим, ови примерци су уско повезани са особеном врстом информација која укључује бројеве, симболе и неке графиконе, док оперишу на великој количини дистрибуције података. Генерално, заједничко учешће сваке од дефиниција сажето је у следећа три својства:

Изјава о проблему

Решавање проблема помоћу рачунара може се састојати од процеса у којем је проблем описан и дозвољено је развијање програма способног за његово решавање. Овај процес захтева анализу проблема, дизајн алгоритма и његову трансформацију у програм, као и његове перформансе и валидацију. Прва два корака су најсложенија у овом процесу, али након што сте испитали проблем и добили алгоритам који га може решити, ваш задатак се првенствено заснива на превођењу у жељени програмски језик.

Анализа општег решења

Када се проблем дефинише, време је да се анализирају следеће:

  • Информације о улазницама које су нам пружају.
  • Жељени резултати.
  • Домен рада, изјаве или други неопходни елементи.

Анализа алгоритама позната је као најважнији део шире теорије рачунске сложености, јер пружа теоријске прорачуне за ресурсе које било који алгоритам захтева за решавање датог рачунарског проблема. Приликом извођења теоријске истраге, уобичајено је израчунати његове компликације у асимптотском смислу да би се добила довољно велика улазна величина. У ту сврху се користи асимптотска горња граница заједно са тхета и омега ознакама и треба напоменути да се не-асимптотска мера може компјутеризовати.

Прецизне мере ефикасности су заиста корисне за оне који заправо користе алгоритме, јер имају већу прецизност и то им омогућава да одреде време које ће бити потребно за извршење. За неке појединце, попут стваралаца видео игара, скривена константа може направити велику разлику између успеха и неуспеха. Временске процене могу зависити од тога како је одређени корак дефинисан и да би анализа имала смисла мора се гарантовати да је време изразито ограничено константом.

Разрада алгоритма

Да би се спровео развој операције, важно је да се изврши низ поступака који се придржавају решавања самог проблема. За почетак се мора извршити претходна анализа потешкоће и то се ради кроз студију која показује истинско функционисање проблема много пре него што се изврши било који алгоритам. Стога се процењује дефиниција захтева, у овом кораку морате имати јасну представу о томе шта су проблеми које треба решавати, било да се ради о збиру два броја, редоследу листе бројева итд.

Касније се извршава одговарајућа идентификација модула, јер правилна имплементација алгоритама зависи од ње како би се пружила могућа решења за горе идентификоване захтеве.

Коначно, прорачун је примењен у програмском језику који је разумљив рачунару, тако да је у стању да разуме упутства која моделира и на тај начин буде у стању да их изврши, постижући очекивани резултат. У овом последњем поступку већ је могуће говорити о програму који је састављен од низа упутстава која се наређују једно за другим и успевају да реше утврђене захтеве.

Важно је напоменути да у секвенцијалном времену алгоритми извршавају своју функцију у дискретизованом времену и настоје да дефинишу секвенце рачунских стања у сваком улазу који се сматра валидним. У апстрактном стању, ове операције су независни елементи и сматра се да у њима структуре исконског поретка могу постати инваријантне под изоморфизмом. У ограниченом истраживању, прелази из једног стања у друго у потпуности се успостављају трајним и коначним објашњењем, у коме се између једног и другог стања узима у обзир само ограничени број појмова у тренутном стању.

Такође не треба занемарити да се алгоритми обично изражавају кроз програмске језике „псеудо-код“, уобичајени језик, па чак и добро познате дијаграме тока. Такође је важно напоменути да алгоритми играју основну улогу у рачунању због њихове репрезентације података као секвенци битова. Из другог угла, програм се дефинише као алгоритам који изражава рачунару оне специфичне кораке које мора следити да би на одговарајући начин испунио одређене активности. С друге стране, учење писања псеудокода олакшава програмирање и биће објашњено касније.

Програмски језици познати су као формални или вештачки, јер имају граматичка правила која су добро дефинисана, има могућност да програмеру пружи могућност да текстуално серира низ упутстава или секвенце прописа у облику алгоритама у сврху да би се одржала контрола у вези са физичким и логичким понашањем рачунара, на овај начин се могу доћи до различитих врста информација. Овај скуп прописа написаних кроз програмски језик назива се програмом.

Програмски језици се обично састоје од скупа симбола и граматичких и семантичких правила која дефинишу тренутне структуре језика и њихово значење. Из друге перспективе, рачунарски језици такође укључују програмске језике, јасан пример за то је ХТМЛ, који испуњава одређена упутства за извршавање садржаја различитих докумената. Програмски језик може да омогући прецизну спецификацију оних података којима мора да управља одређени софтвер у различитим размерама.

С друге стране, псеудокод је алгоритамски језик описа који користи елементарне конвенције правог програмског језика, али који је дизајниран за људско читање уместо да чита кроз машину, одржавајући независност од било које друге врсте програмски језик. Псеудокод игнорише детаље који се не сматрају битним за људско разумевање алгоритма, као што су системски кодови, декларације променљивих, па чак и неке потпрограме. На овај начин програмски језик настоји да се допуни прецизним описима у природном језику или компактним математичким записима.