educaci

Què és algoritme? »La seva definició i significat

Taula de continguts:

Anonim

En matemàtiques, ciències de la computació i altres doctrines relacionades, el algoritme es defineix com un conjunt de preceptes establerts i inequívocs, trobats metòdicament i de manera limitada que permeten efectuar còmputs, processar certes informacions, donar solucions a problemes i dur a terme diverses activitats. Una vegada que es parteix d'un estat inicial i una entrada, seguint els procediments requerits, s'arriba a l'estat final i s'obté un resultat. Els algoritmes són l'objecte d'indagació de la algorísmia i encara que molts no ho creguin, aquests també es poden fer servir en tots els aspectes de la vida quotidiana.

Què és un algoritme

Taula de Continguts

En informàtica se sol delimitar com una successió de instruccions seqüencials, en el qual es duen a terme alguns processos amb la finalitat de donar respostes a determinades decisions o necessitats. De la mateixa manera, els algoritmes són usats freqüentment en lògica i matemàtiques, a més que són el fonament de l'elaboració de manuals d'usuari, pamflets il·lustratius, entre d'altres. Uns dels més distingits en les matemàtiques, és l'atribuït a l'geòmetra Euclides, per assolir el màxim comú divisor de dos enters que siguin positius i el conegut "mètode de Gauss" per determinar els sistemes d'equacions lineals.

En relació amb les ciències de la computació, aquest càlcul pot ser conegut com la seqüència de pautes a seguir per a la determinació d'un problema a través d'l'ús d'un computador.

Per tant, la algorísmia s'entén com una disciplina que se centra en l'anàlisi i el disseny dels algoritmes. En consideració al primer, es busca examinar propietats com el seu correctitud i la seva eficàcia pel que fa a el temps i l'espai, per comprendre els problemes que es poden resoldre algorítmicament. Quant al segon, es busca estudiar els paradigmes ja establerts i proposa nous exemplars.

La algorísmia es localitza en el centre de el progrés de la informàtica i és important en les diferents àrees de la mateixa. D'aquesta manera, seria impossible que serveis tan reeixits com Facebook i Google puguin gestionar la magnitud d'informació que posseeixen sense la col·laboració d'algoritmes o d'estructures de dades especialitzats. No obstant això, en la vida diària també es fan servir algoritmes, un exemple d'això és l'encesa de l'estufa, ja que s'inicia a el moment en què la persona es dirigeix a la cuina, la observa i té la seva fi, quan aquesta procedeix a encendre.

Característiques d'un algoritme

Tot i que l'algoritme es coneix com el conjunt ordenat i finit de diversos passos que condueixen a la resolució d'un problema, es diu que la naturalesa d'aquestes dificultats varien segons el context en què es trobin, d'aquesta manera, hi ha problemes químics, matemàtics, filosòfics, entre d'altres. Així, es pot dir que la seva naturalesa és variada i no és necessària la seva execució mitjançant el computador. Més enllà de tot el que s'ha explicat, els algoritmes posseeixen característiques que són elementals per determinar el que avui en dia són ia continuació es farà esment d'aquestes.

  • Les directrius contingudes en un algoritme han de ser específiques per a evitar deixar marge a qualsevol tipus de confusions, això vol dir que s'han de seguir les instruccions corresponents de manera adequada o per contra la representació gràfica de flux en el qual s'està inscrivint no facilitarà la solució correcta.
  • Ha d'estar en perfecta definició, tractant en la mesura possible de seguir-les vegades que calgui, per així obtenir el mateix resultat i en cas que passi el contrari, l'algoritme no serà fiable i tampoc servirà com a guia a l'hora de prendre alguna decisió.
  • Es coneixen per la particularitat de ser finits, aquests solen acabar en algun instant i més endavant donen un resultat a la fi de cada pas. Si l'algoritme s'estén indefinidament, retornant a algun punt inicial que no es pot resoldre mai, hi ha la presència d'una paradoxa o el molt conegut "loop" de repeticions.
  • Finalment, es diu que la llegibilitat dels algoritmes és l'element clau, ja que si el seu argument és inintel·ligible no es podria seguir les instruccions corresponents, a més, comporta una redacció directa, clara i lacònica de el text que es troba en cada un.

Parts d'un algoritme

Tota operació algoritmica posseeix tres parts diferents que es sotmeten a l'estructura bàsica d'un sistema i aquestes són:

  • Entrada: també anomenada capçalera o punt de partida, és la instrucció inicial que representa el gènesi de l'algoritme i la que motiva la seva lectura.
  • Procés: també anomenat declaració, és l'elaboració necessita que ofereix l'algoritme i es tracta bàsicament de la soca i les claus per a la formulació d'instruccions.
  • Sortida: a aquesta ultima fase es troben les instruccions puntuals determinades per l'algoritme, exemple, els seus comandaments o resolucions.

Exemples d'algorismes

Entre els exemples més comuns de càlculs matemàtics es troben 2 + 3 = 5 en suma i 15-9 = 6 en resta. Una altra forma de visualitzar algoritmes senzills és en les receptes de cuines ja que en aquestes es descriu un procés concret i ordenat, per exemple, "primer s'ha de col·locar a escalfar mitja olla d'aigua, després se li ha de afegir una mica de sal i finalment es va a dividir el pebrot per extreure les llavors i els nervis. " En aquest model es presenta un inici, un procés i un fi, que bàsicament són el que defineixen els algorismes.

Tipus d'algorisme

Entre els diversos tipus d'algoritmes existents al món sencer, es posa l'accent en aquells que es classifiquen d'acord a un sistema de signes i altres en correspondència amb la seva funció. L'algoritme és bàsicament la millor solució que es coneix per a la resolució de qualsevol problema en particular i segons les seves estratègies i les seves funcions hi ha diversos tipus d'aquests, entre els quals es destaquen els dinàmics, a revers, de força bruta, oportunistes, de marcatge, aleatoris, etc. A més dels algoritmes anteriorment esmentats, hi ha milers d'aquests que són apropiats per a resoldre dificultats en qualsevol àrea.

Segons el seu sistema de signes

En aquesta categoria se situen els qualitatius i els quantitatius.

  • Els algoritmes qualitatius es caracteritzen per posseir elements verbals, un exemple d'aquests són les instruccions o els reconeguts "pas a pas" que confereixen de forma oral, com les receptes d'arts culinàries o els procediments per a realitzar treballs manuals.
  • Els algoritmes quantitatius són tot el contrari als qualitatius, a causa de la presència de certs elements numèrics ia la utilització de les matemàtiques per a la realització de càlculs, per exemple, quan es troba l'arrel quadrada o es resolen equacions.

Dins d'aquesta classificació també es troben els algoritmes computacionals i els no computacionals. Els computacionals s'efectuen mitjançant un ordinador i es caracteritzen per ser tan complexos a al punt de requerir d'una màquina per poder ser realitzats, a més d'això, són algoritmes quantitatius que es pot arribar a optimitzar. Els no computacionals no tenen l'obligació de ser executats mitjançant una màquina o ordinador; un clar exemple d'això és la programació d'un televisor.

Segons la seva funció

En aquesta classificació es localitzen els següents.

1. Algorisme de marcatge

Aquest es caracteritza per emprar la automatització per establir els preus d'una manera diligent, enfocant-se en factors com el comportament dels usuaris i també es coneix com l'habilitat de determinar automàticament els preus per als components en devaluació, per aconseguir incrementar els guanys dels venedors. Aquesta ha tingut un paper molt important en les pràctiques comunes de les indústries aèries des dels començaments de la dècada de 1990.

L'algoritme de marcatge es distingeix per ser una de les pràctiques més comunes en les indústries altament competitives, fent referència a les agències de viatges o aquells establiments en línia. Aquesta classe d'algorisme pot arribar a ser extremadament complexa o relativament senzilla, ja que en molts casos s'adverteix que són optimitzades o acte apreses amb la continuïtat de certes proves. Més enllà de tot això, els algoritmes de marcatge també poden arribar a ser impopulars amb la clientela a mesura que els individus tendeixen a valorar tant l'estabilitat com la imparcialitat.

2. Algorismes probabilístics

Són aquells en què la forma en què s'obtenen els resultats depenen de les probabilitats, aquestes es coneixen comunament com algoritmes aleatoris.

En algunes aplicacions el maneig d'aquest tipus d'operació és habitual, com per exemple, quan es simula la conducta de qualsevol sistema existent o ideat al llarg d'un temps, en el qual s'obté com a conseqüència una solució fortuïta. En altres circumstàncies el problema que s'ha de resoldre sol ser determinista però hi ha la possibilitat de transformar-se en un fortuït, per així aconseguir resoldre-ho aplicant l'algoritme de probabilitat. El positiu dels aleatoris és que la seva aplicació no necessita d'estudis matemàtics molt perfeccionats.

A més, dins d'aquest grup hi ha tres tipus principals que es coneixen com el numèric, el Montecarlo i Las Vegas.

  • Els algoritmes numèrics poden proporcionar un resultat aproximat de el problema i són generalment aplicats a l'enginyeria.
  • Els algoritmes de Montecarlo poden llançar la solució correcta o la incorrecta i posseeixen un cert marge d'error i finalment.
  • Els algoritmes de Las Vegas es distingeixen per no deixar mai una resposta incorrecta, de fet, aquestes troben la solució correcta o senzillament t'informen de la possible fallada.

La programació dinàmica fa referència a l'mètode en què l'algoritme computa els resultats. En ocasions, les solucions de certs elements que posseeixen els problemes, depenen de resultats d'altres problemes més reduïts. De manera que, per a la resolució d'aquests s'han de tornar a calcular els mateixos valors per així resoldre els subproblemes més diminuts, però, això pot arribar a crear un malbaratament de cicles. Per apedaçar això, es pot emprar la programació dinàmica i en aquest cas es recorda la solució de cada subproblema, per utilitzar aquest mateix valor en comptes de repetir diverses vegades.

3. Algorismes heurístics

Es distingeixen per trobar solucions i tot i així no garanteixen que la millor de les respostes sigui trobada, per aquesta raó, poden arribar a ser considerats com algoritmes aproximats. Aquests poden utilitzar-se quan es considera impossible la troballa d'alguna solució mitjançant una via normal. Els heurístics proporcionen els usos que s'explicaran a continuació. A la planificació, són emprats per a la programació d'activitats en un curt període de temps, en el disseny són utilitzats per a la delineació de sistemes elèctrics o digitals i en la simulació són usats per a la verificació de determinats procediments.

4. Algorismes de marxa enrere

Es coneixen com a estratègies recursives que resolen problemes com els trencaclosques, laberints o peces similars, en el qual es realitza una recerca profunda per trobar una possible solució. El seu nom fa referència a el fet que en les indagacions realitzades per trobar algun resultat, sempre es va tornant a el punt anterior per poder temptejar alternatives. Aquests solen ser revocats per observar el seu impacte en l'economia, en els mercats, en el marcatge de preus, en certes operacions i fins a la mateixa societat.

5. Algorisme voraç

Es coneix com el destructor o el llaminer i és aplicable en els problemes d'optimització, en cada pas d'aquest algoritme es pren una elecció lògica i òptima per a finalitzar amb la millor de les solucions globals. No obstant això, s'ha de prendre en compte que una vegada que s'arriba a un judici no es pot fer absolutament res per corregir-lo o canviar-lo en un futur. Aquesta operació posseeix aquest nom perquè en cada pas es tria la millor fracció que és capaç de "engolir" sense preocupar del que passi més endavant.

Propietats d'un algoritme

Diversos autors han intentat definir als algoritmes d'una manera formal mentre utilitzen models matemàtics. No obstant això, aquests exemplars estan íntimament relacionats a un tipus peculiar d'informació que inclou nombres, símbols i algunes gràfiques, mentre que funcionen sobre una extensa quantitat de distribució de dades. En general, la participació comuna de cadascuna de les definicions es veu resumida en les tres propietats:

Enunciat de el problema

La resolució de problemes per mitjà d'un ordinador, pot consistir en aquell procés en el qual es descriu un problema i es permet desenvolupar algun programa capaç de resoldre-ho. En aquest procés s'exigeix l'anàlisi de el problema, el disseny d'un algoritme i la seva transformació en un programa, a més de la realització i validació de la mateixa. Els dos primers passos són els més complexos en aquest procés, però un cop examinat el problema i obtingut un algoritme que pugui resoldre-ho, la seva tasca es basa principalment en traduir-lo a el llenguatge de programació que es desitja.

Anàlisi de la solució general

Un cop definit el problema, és moment d'analitzar el següent:

  • La informació de les entrades que ens porporcionan.
  • Els resultats que es desitgen.
  • El domini de treball, enunciats o altres elements necessaris.

L'anàlisi dels algoritmes es coneixen com la part més important de la teoria de complexitat computacional més àmplia, ja que subministra càlculs teòrics per als recursos que requereixen de qualsevol algoritme per a la resolució d'un problema computacional donat. A l'hora d'executar una investigació teòrica, és freqüent calcular les seves complicacions en un sentit asimptòtic per obtenir una mida d'entrada prou gran. La cota superior asimptòtica al costat de les notacions theta i omega, s'empren amb aquesta finalitat i cal destacar que la mesura no asimptòtica pot arribar a ser computada.

Les mesures precises d'eficiència són realment útils per a aquells que realment fan servir els algoritmes, ja que aquestes posseeixen més precisió i això els permet determinar el temps que prendrà l'execució. Per a alguns individus com els creadors de videojocs, la constant oculta pot arribar a significar una gran diferència entre l'èxit i el fracàs. Les avaluacions de el temps poden arribar a dependre de com es defineixi un determinat pas i perquè l'anàlisi coure sentit s'ha de garantir que el temps es trobi delimitat notablement per una constant.

Elaboració de l'algoritme

Per dur a terme el desenvolupament d'una operació és important que es faci una sèrie de procediments per complir amb la resolució d'un problema pròpiament donat. Per començar s'ha de realitzar un anàlisi prèvia de la dificultat i això es fa mitjançant un estudi que demostri el veritable funcionament de el problema molt abans de realitzar qualsevol algorisme. Per tant, s'avalua la definició de requeriments, en aquest pas s'ha de tenir clara la idea de quins són els problemes a solucionar, ja sigui la suma de dos nombres, l'ordenament d'una llista de nombres, etc.

Més endavant s'executa la respectiva identificació de mòduls, ja que d'aquesta depèn la correcta realització d'algoritmes per donar les possibles solucions a les exigències que es van identificar anteriorment.

Finalment s'implementa el càlcul en un llenguatge de programació que sigui comprensible per un ordinador perquè sigui capaç de comprendre les instruccions que ell mateix modela i així les pugui efectuar aconseguint el resultat esperat. En aquest últim procediment ja es pot parlar d'un programa que està compost per una sèrie d'instruccions que s'ordenen una darrera l'altra i aconsegueixen donar solució a requeriments establerts.

És important esmentar que en el temps seqüencial, els algoritmes exerceixen la seva funció en un temps discretitzat i busquen definir les seqüències d'estats computacionals en cada entrada que es consideri vàlida. En l'estat abstracte, aquestes operacions són elements independents i es considera que en ells les estructures de primordial ordre poden arribar a ser invariants sota l'isomorfisme. En l'exploració acotada, Les transicions d'un estat a un altre queden completament establertes per una explicació permanent i finita, en què entre un estat i el següent, només es té en compte la quantitat limitada dels termes de l'estat actual.

Tampoc cal deixar passar inadvertit que els algoritmes solen expressar-se a través de llenguatges de programació "pseudocodi" la llengua habitual i fins i tot els coneguts diagrames de flux. Així mateix, és important esmentar que els algoritmes compleixen un paper fonamental en la informàtica causa de la seva representació de dades com successions de bits. Des d'un altre angle, es defineix que un programa és l'algoritme que expressa a l'ordinador aquells passos determinats que ha de seguir per complir adequadament certes activitats. D'altra banda, aprendre a escriure pseudocodi permet que la programació sigui més senzilla i per tant s'explicarà més endavant.

Els llenguatges de programació, es coneixen com una llengua formal o artificial per posseir regles gramaticals que es troben ben definides, aquesta té la capacitat de proporcionar-li a el programador la capacitat d'contextualitzar una sèrie d'instruccions o successions de reglaments en forma d'algoritmes amb la finalitat de mantenir un control pel que fa a l' comportament físic i lògic de l'ordinador, d'aquesta manera, es pot arribar als diversos tipus d'informació. A aquest conjunt de preceptes escrits per mitjà d'un llenguatge de programació se li designa com programa.

Els llenguatges de programació solen estar formats per un conjunt de símbols i regles gramaticals i semàntiques que defineixen les estructures vigents de la llengua i el seu significat. Des d'una altra perspectiva, els llenguatges informàtics també engloben als llenguatges de programació, un clar exemple d'això és el HTML que és el que compleix determinades instruccions per poder dur a terme el contingut de diferents documents. El llenguatge de programació pot permetre que s'especifiqui de manera precisa les dades que han de ser operats per un programari específic sota una assortida escala de circumstàncies.

D'altra banda, el pseudocodi és el llenguatge de descripció algorítmic que empra les convencions elementals d'un llenguatge de programació real, però que està dissenyat per a la lectura humana en comptes de la lectura a través d'una màquina, mantenint independència de qualsevol altre tipus de llenguatge de programació. El pseudocodi ignora detalls que no es consideren essencials per a l'enteniment humà de l'algoritme, com ara codis propis d'un sistema, declaracions de variables i fins i tot algunes subrutines. D'aquesta manera, el llenguatge de programació busca complementar-se amb descripcions precises en llenguatge natural o amb notacions matemàtiques compactes.