Oktatás

Mi az algoritmus? »Meghatározása és jelentése

Tartalomjegyzék:

Anonim

A matematikában, az informatikában és az egyéb kapcsolódó doktrínákban az algoritmust úgy határozzák meg, mint egy módszeresen és korlátozottan megállapított és egyértelmű előírások halmazát, amelyek lehetővé teszik számítások elvégzését, bizonyos információk feldolgozását, megoldások nyújtását a problémákra és különféle tevékenységek elvégzését.. Miután kiindulási állapotból és egy bejegyzésből indult, a szükséges eljárások betartásával elérte a végső állapotot és eredményt kapott. Az algoritmusok az algoritmusok vizsgálati tárgyát képezik, és bár sokan talán nem hiszik el, felhasználhatók a mindennapi élet minden területén is.

Mi az algoritmus

Tartalomjegyzék

A számítás során általában a szekvenciális utasítások egymásutánaként definiálják, amelyben bizonyos folyamatokat bizonyos döntésekre vagy igényekre adott válaszok végrehajtása céljából hajtanak végre. Ugyanígy az algoritmusokat gyakran használják a logikában és a matematikában, valamint alapul szolgálnak többek között felhasználói kézikönyvek, szemléltető füzetek kidolgozásához. A matematikában az egyik legkiemelkedőbb az, amelyet a geometrikus Euklidáknak tulajdonítanak, hogy elérjék két pozitív egész szám legnagyobb közös osztóját, és a lineáris egyenletrendszerek meghatározásához a jól ismert "Gauss-módszert".

A számítástechnikával kapcsolatban ez a számítás az irányelvek sorrendjének nevezhető, amelyet követni kell a probléma számítógépen történő meghatározásához.

Ezért az algoritmikát olyan tudományágként értjük, amely az algoritmusok elemzésére és tervezésére összpontosít. Az elsőt figyelembe véve olyan tulajdonságokat igyekszik megvizsgálni, mint annak helyessége és hatékonysága az idő és a tér tekintetében, hogy megértse az algoritmikusan megoldható problémákat. Ami a másodikat illeti, a már kialakult paradigmák tanulmányozására törekszik, és új példákat javasol.

Az algoritmus a számítás haladásának központjában helyezkedik el, és fontos annak különböző területein. Ily módon lehetetlen lenne, hogy az olyan sikeres szolgáltatások, mint a Facebook és a Google, kezeljék a rendelkezésükre álló információk nagyságát algoritmusok vagy speciális adatstruktúrák együttműködése nélkül. A mindennapi életben azonban algoritmusokat is alkalmaznak, erre példa a kályha meggyújtása, mivel abban a pillanatban kezdődik, amikor az ember a konyhába megy, megfigyeli és vége van, amikor továbbgyújtja..

Az algoritmus jellemzői

Bár az algoritmust a különböző problémák rendezett és véges halmazaként ismerik, amelyek egy probléma megoldásához vezetnek, azt mondják, hogy ezeknek a nehézségeknek a jellege attól függően változik, hogy milyen kontextusban találhatók meg, így vannak problémák kémiai, matematikai, filozófiai. Így elmondható, hogy jellege változatos, és a számítógép általi végrehajtás nem szükséges. Az algoritmusok mindazon túl, amelyek korábban kifejtésre kerültek, rendelkeznek olyan jellemzőkkel, amelyek elengedhetetlenek ahhoz, hogy meghatározzák, milyenek ma, és amelyeket alább megemlítünk.

  • Az algoritmusban szereplő irányelveknek konkrétaknak kell lenniük, hogy ne engedjenek teret bármilyen típusú zavartságnak, ez azt jelenti, hogy a megfelelő utasításokat megfelelően kell betartani, vagy éppen ellenkezőleg, a folyamat grafikus ábrázolása nem fogja megkönnyíteni a megoldást. helyes.
  • Tökéletes meghatározásnak kell lennie, amennyire csak lehet, annyiszor kell követnie, ahányszor csak szükséges, ugyanazon eredmény elérése érdekében, és ha az ellenkezője történik, az algoritmus nem lesz megbízható, és nem szolgál útmutatásként a döntés meghozatalakor.
  • Ismertek arról, hogy végesek, általában valamikor véget érnek, és később minden lépés végén eredményt dobnak. Ha az algoritmus a végtelenségig kiterjed, visszatérve valamilyen kezdeti ponthoz, amelyet soha nem lehet feloldani, paradoxon vagy a jól ismert ismétlési hurok van jelen.
  • Végül azt mondják, hogy az algoritmusok olvashatósága a legfontosabb elem, mert ha érvelése érthetetlen, akkor a megfelelő utasításokat nem lehetett követni, ráadásul az egyesekben található szöveg közvetlen, világos és lakonikus megfogalmazását vonja maga után.

Algoritmus részei

Minden algoritmikus műveletnek három különböző része van, amelyek a rendszer alapstruktúrájának vannak kitéve, és ezek a következők:

  • Bemenet: fejlécnek vagy kiindulópontnak is nevezik, a kezdeti utasítás képviseli az algoritmus keletkezését és az motiválja az olvasását.
  • Folyamat: deklarációnak is nevezik, az algoritmus által kínált pontos kidolgozás, és alapvetően kulcsainak törzse az utasítások megfogalmazásához.
  • Kimenet: ebben az utolsó szakaszban vannak az algoritmus által meghatározott specifikus utasítások, például parancsai vagy felbontásai.

Példák algoritmusokra

A matematikai számítások gyakori példái: 2 + 3 = 5 az összeadáshoz és 15-9 = 6 az elvonáshoz. Az egyszerű algoritmusok megjelenítésének másik módja a konyhai receptek, mivel ezek egy meghatározott és rendezett folyamatot írnak le, például: „először egy fél fazék vizet kell helyezni a melegítéshez, majd hozzá kell adni egy csipet sót, végül a paprikát fel fogják osztani, hogy kivonják a magokat és az idegeket. " Ebben a modellben egy kezdetet, egy folyamatot és egy véget mutatnak be, amelyek alapvetően meghatározzák az algoritmusokat.

Algoritmus típusok

Az egész világon létező különféle algoritmusok közül a hangsúlyt azokra helyezik, amelyeket jelrendszer szerint, másokat pedig funkciójuk szerint osztályoznak. Az algoritmus alapvetően a legismertebb megoldás bármely adott probléma megoldására, és stratégiái és funkciói szerint ezeknek különböző típusai vannak, amelyek közül kiemelkedik a dinamikus, fordított, durva erő, opportunista, jelölés., véletlenszerű stb. A fent említett algoritmusok mellett ezek közül több ezer van, amelyek bármely területen nehézségek megoldására alkalmasak.

A jelrendszered szerint

Minőségi és mennyiségi ebben a kategóriában található.

  • A kvalitatív algoritmusokat verbális elemek jellemzik, ezekre példa az utasítások vagy az elismert "lépésről lépésre", amelyeket szóban adnak át, például a konyhaművészet receptjei vagy a kézi munka elvégzésének eljárásai.
  • A kvantitatív algoritmusok teljesen ellentétesek a kvalitatívokkal, bizonyos numerikus elemek jelenléte és a matematika felhasználása miatt számításokhoz, például amikor a négyzetgyök megtalálható vagy az egyenletek megoldódnak.

Ezen osztályozáson belül vannak számítási és nem számítási algoritmusok is. A számítási módszereket számítógép segítségével hajtják végre, és az jellemzi, hogy olyan összetettek, hogy egy gépet megkövetelnek, emellett optimalizálható kvantitatív algoritmusok. A nem számítási feladatok nem kötelesek géppel vagy számítógéppel végrehajtani; erre egyértelmű példa a televízió műsorai.

Funkciója szerint

Az alábbiak találhatók ebben a besorolásban.

1. Jelölési algoritmus

Ezt az jellemzi, hogy az automatizálást az árak szorgalmas megállapításához használják, olyan tényezőkre összpontosítva, mint a felhasználói viselkedés, és más néven az a képesség, hogy automatikusan meghatározzák az árfolyamok leértékelődésének összetevőit, a felhasználók profitjának növelése érdekében. eladók. Úgy játszott nagyon fontos szerepet játszik a közös gyakorlat a légitársaság iparágak, mivel a korai 1990-es évek.

A jelölési algoritmus megkülönböztethető azzal, hogy az egyik legelterjedtebb gyakorlat a rendkívül versenyképes iparágakban, utalva az utazási irodákra vagy azokra az online létesítményekre. Ez a fajta algoritmus rendkívül összetetté vagy viszonylag egyszerűvé válhat, mivel sok esetben meg kell jegyezni, hogy optimalizálják vagy saját tanítással végzik bizonyos tesztek folytonosságát. Mindezeken túl a címkézési algoritmusok is népszerűtlenné válhatnak az ügyfélkörben, mivel az egyének hajlamosak a stabilitás és a méltányosság értékét egyaránt értékelni.

2. Valószínűségi algoritmusok

Ezek azok, amelyekben az eredmények elérésének módja a valószínűségektől függ, ezeket általában véletlenszerű algoritmusoknak nevezik.

Bizonyos alkalmazásokban az ilyen típusú műveletek kezelése általános, például amikor bármely létező vagy kidolgozott rendszer viselkedését idővel szimulálják, amelynek eredményeként véletlenszerű megoldás születik. Más körülmények között a megoldandó probléma általában determinisztikus, de lehetőség van véletlenszerűvé történő átalakításra annak érdekében, hogy a valószínűségi algoritmus alkalmazásával megoldható legyen. A véletlen pozitívuma, hogy alkalmazása nem igényel rendkívül kifinomult matematikai vizsgálatokat.

Ezen kívül ezen a csoporton belül három fő típus létezik, amelyek numerikus néven ismertek, Monte Carlo és Las Vegas.

  • A numerikus algoritmusok hozzávetőleges eredményt adhatnak a problémára, és általában a mérnöki munkában alkalmazzák őket.
  • A Monte Carlo algoritmusok megfelelő vagy rossz megoldást adhatnak, és bizonyos hibahatárral bírnak.
  • A Las Vegas-i algoritmusok megkülönböztethetők azzal, hogy soha nem hagynak hibás választ, sőt, megtalálják a helyes megoldást, vagy egyszerűen tájékoztatják Önt a lehetséges kudarcról.

A dinamikus programozás arra a módszerre vonatkozik, amelyben az algoritmus kiszámítja az eredményeket. Előfordul, hogy bizonyos, a problémákat felvető elemek megoldása más kisebb problémák eredményeitől függ. Tehát ezek megoldásához ugyanazokat az értékeket kell újraszámolni a legkisebb részproblémák megoldásához, azonban ez a ciklusok pazarlását eredményezheti. Ennek kijavítására dinamikus programozás használható, és ebben az esetben az egyes részproblémák megoldására emlékezünk, ha ugyanazt az értéket használjuk többszöri ismétlés helyett.

3. Heurisztikus algoritmusok

Megkülönböztetik őket megoldások keresésével, és még így sem garantálják, hogy a legjobb válaszokat találják meg, ezért közelítő algoritmusoknak tekinthetők. Ezeket fel lehet használni, ha lehetetlennek tartják a megoldást normál úton. A heurisztika az alábbiakban ismertetendő felhasználásokat tartalmazza. A tervezés során a tevékenységek rövid időtartamra történő ütemezésére, a tervezés során elektromos vagy digitális rendszerek behatárolására, a szimulációban pedig bizonyos eljárások ellenőrzésére szolgálnak.

4. Visszalépés algoritmusok

Rekurzív stratégiákként ismerik őket, amelyek olyan problémákat oldanak meg, mint a rejtvények, útvesztők vagy hasonló darabok, amelyek során mély kutatást végeznek a lehetséges megoldás megtalálása érdekében. A neve arra a tényre utal, hogy az eredmény megtalálására irányuló megkeresések során mindig az előző pontra tér vissza, hogy alternatívákat tesztelhessen. Ezeket általában visszavonják, hogy megfigyeljék a gazdaságra, a piacokra, az árképzésre, bizonyos műveletekre, sőt magára a társadalomra gyakorolt ​​hatásukat.

5. Kapzsi algoritmus

Rombolónak vagy édesszájúnak hívják, és optimalizálási problémák esetén alkalmazható, ennek az algoritmusnak minden egyes lépésében logikus és optimális választás születik a globális megoldások legjobbjainak elérése érdekében. Figyelembe kell azonban venni, hogy az ítélet megszületése után a jövőben semmit sem lehet tenni annak kijavítására vagy megváltoztatására. Ennek a műveletnek ez a neve, mert minden lépésben a legjobb frakciót választják ki, amely képes "lenyelni", anélkül, hogy aggódna a későbbi események miatt.

Egy algoritmus tulajdonságai

Különböző szerzők megpróbálták formálisan meghatározni az algoritmusokat matematikai modellek használata közben. Ezek a példányok azonban szorosan kapcsolódnak egy olyan sajátos információtípushoz, amely számokat, szimbólumokat és néhány grafikont tartalmaz, miközben hatalmas mennyiségű adatelosztással működnek. Általában az egyes definíciók közös részvételét a következő három tulajdonság foglalja össze:

Probléma nyilatkozat

A problémák számítógépes megoldása abból a folyamatból állhat, amelyben a problémát leírják, és lehetővé teszik egy program megoldását, amely képes annak megoldására. Ez a folyamat megköveteli a probléma elemzését, egy algoritmus megtervezését és programokká alakítását, valamint annak teljesítményét és érvényesítését. Az első két lépés a legösszetettebb ebben a folyamatban, de miután megvizsgálta a problémát és kapott egy algoritmust, amely megoldhatja, a feladata elsősorban azon alapszik, hogy lefordítsa a kívánt programozási nyelvre.

Az általános megoldás elemzése

A probléma meghatározása után ideje elemezni a következőket:

  • Az általunk megadott jegyek információi.
  • A kívánt eredmények.
  • A munka, nyilatkozatok vagy egyéb szükséges elemek területe.

Az algoritmusok elemzése a tágabb számítási komplexitáselmélet legfontosabb részeként ismert, mivel elméleti számításokat nyújt azokhoz az erőforrásokhoz, amelyekre bármely algoritmus egy adott számítási probléma megoldásához szükséges. Elméleti vizsgálat végrehajtásakor általában aszimptotikus értelemben számoljuk ki annak szövődményeit, hogy elég nagy bemeneti méretet kapjunk. Az aszimptotikus felső határt, valamint a teta- és omega-jelöléseket használják erre a célra, és meg kell jegyezni, hogy a nem aszimptotikus mérték számítógépesíthető.

A hatékonyság pontos mérése valóban hasznos azok számára, akik valóban használják az algoritmusokat, mivel nagyobb pontossággal rendelkeznek, és ez lehetővé teszi számukra a végrehajtáshoz szükséges idő meghatározását. Egyes egyének, például a videojátékok készítői számára a rejtett állandó nagy különbséget jelenthet a siker és a kudarc között. Az időértékelések függhetnek egy adott lépés meghatározásától, és az elemzés értelme érdekében garantálni kell, hogy az időt jelentősen korlátozza egy állandó.

Az algoritmus kidolgozása

Egy művelet fejlesztésének végrehajtásához fontos, hogy egy sor eljárást hajtsanak végre, hogy megfeleljenek a probléma megoldásának. Először el kell végezni a nehézség előzetes elemzését, és ezt egy olyan tanulmány segítségével kell elvégezni, amely jóval az algoritmus végrehajtása előtt bebizonyítja a probléma valódi működését. Ezért kiértékelik a követelmények meghatározását, ebben a lépésben pontosan meg kell adnia, hogy mik a megoldandó problémák, legyen az két szám összege, számlista sorrendje stb.

Később végrehajtják a modulok azonosítását, mivel az algoritmusok helyes megvalósítása attól függ, hogy lehetséges megoldásokat kínál-e a fent meghatározott követelményekre.

Végül a számítást a számítógép számára érthető programozási nyelven hajtják végre, így képes megérteni az általa modellezett utasításokat, és így képes végrehajtani azokat, elérve a várt eredményt. Ebben az utolsó eljárásban olyan programról lehet beszélni, amely egymás után megrendelt utasítások sorozatából áll, és képes megoldani a megállapított követelményeket.

Fontos megemlíteni, hogy szekvenciális időben az algoritmusok diszkretizált idő alatt teljesítik a funkciójukat, és minden érvényesnek tekintett bemenetben megpróbálják meghatározni a számítási állapotok sorrendjét. Absztrakt állapotban ezek a műveletek egymástól független elemek, és úgy vélik, hogy bennük az ősrend struktúrái változatlanok lehetnek az izomorfizmus alatt. A korlátozott feltárás során az egyik állapotból a másikba való átmenet maradéktalan és véges magyarázat alapján maradéktalanul megállapítható, amelyben az egyik és a következő állapot között csak az aktuális állapotban lévő korlátozott számú kifejezést veszik figyelembe.

Azt sem szabad figyelmen kívül hagyni, hogy az algoritmusokat általában a programozási nyelveken keresztül fejezik ki a szokásos nyelv "álkódjai", sőt a jól ismert folyamatábrák is. Hasonlóképpen fontos megemlíteni, hogy az algoritmusok alapvető szerepet játszanak a számításban, mivel az adatokat bit szekvenciaként ábrázolják. Más szempontból a programot olyan algoritmusként definiáljuk, amely kifejezi a számítógép számára azokat a konkrét lépéseket, amelyeket bizonyos tevékenységek megfelelő teljesítéséhez meg kell követnie. Másrészt az álkód írásának megtanulása megkönnyíti a programozást, ezért később elmagyarázzuk.

A programozási nyelvek formális vagy mesterséges nyelvként ismertek, mivel jól definiált nyelvtani szabályokkal rendelkeznek, képes arra, hogy a programozó számára lehetővé tegye az utasítások vagy rendeletsorozatok algoritmusok formájában történő sorozatszerűsítését algoritmusok formájában, azzal a céllal, hogy a számítógép fizikai és logikai viselkedése felett az ellenőrzés fenntartása érdekében ily módon elérhetők a különféle típusú információk. Ez az előírásai írásbeli révén egy programozási nyelv van kijelölve, mint a programot.

A programozási nyelvek általában szimbólumokból, valamint nyelvtani és szemantikai szabályokból állnak, amelyek meghatározzák a nyelv jelenlegi struktúráját és jelentését. Más szempontból a számítógépes nyelvek magukban foglalják a programozási nyelveket is, ennek egyértelmű példája a HTML, amely bizonyos utasításokat teljesít a különböző dokumentumok tartalmának végrehajtására. A programozási nyelv lehetővé teszi azoknak az adatoknak a pontos meghatározását, amelyeket egy adott szoftverrel kell kezelni, sokféle körülmények között.

Másrészt a pszeudokód az algoritmikus leíró nyelv, amely egy valós programozási nyelv elvi konvencióit használja, de amelyet emberi olvasásra terveztek ahelyett, hogy gépen keresztül olvasnának, fenntartva a függetlenséget bármilyen más típusú nyelvtől programozási nyelv. Az álkód figyelmen kívül hagyja azokat a részleteket, amelyek nem tekinthetők elengedhetetlennek az algoritmus emberi megértése szempontjából, mint például a rendszerkódok, a változó deklarációk és még egyes alprogramok is. Ily módon a programozási nyelv megpróbálja kiegészíteni magát természetes nyelvű pontos leírásokkal vagy kompakt matematikai jelölésekkel.