Algoritmos Como Funciones

9
Algoritmos como funciones  Artículo principal:  Teoría de la computabilidad Esquemática de un algoritmo solucionando un problema de ciclo hamiltoniano. Un algoritmo se puede concebir como una función que transforma los datos de un  problema (entrada) en los datos de una solución (salida). Más aún, los datos se pueden representar a su vez como secuencias de bits, y en general, de smbolos cualesquiera. !"#  !$ #  !"" #  %omo cada secuencia de bits representa a un número natural (v&ase 'istema  binario), entonces los algoritmos son en esencia funciones de los números naturales en los números naturales que s se pueden calcular. s decir que todo algoritmo calcula una función donde cada número natural es la codificación de un problema o de una solución. n ocasiones los algoritmos son susceptibles de nunca terminar, por eemplo, cuando entran a un bucle infinito. %uando esto ocurre, el algoritmo nunca devuelve ningún valor de salida, y podemos decir que la función queda indefinida para ese valor de entrada. *or esta razón se considera que los algoritmos son  funciones parciales, es decir, no necesariamente definidas en todo su dominio de definición. %uando una función puede ser calculada por medios algortmicos, sin importar la cantidad de memoria que ocupe o el tiempo que se tarde, se dice que dic+a función es computable. o todas las funciones entre secuencias datos son computables. l  problema de la parada es un eemplo.  Análisis de algoritmos  Artículo principal:   Análisis de a lgoritmos %omo medida de la eficiencia de un algoritmo, se suelen estudiar los recursos (memoria y tiempo) que consume el algoritmo. l análisis de algoritmos se +a desarrollado para obtener valores que de alguna forma indiquen (o especifiquen) la evolución del gasto de tiempo y memoria en función del tama-o de los valores de entrada. l análisis y estudio de los algoritmos es una disciplina de las ciencias de la computación y, en la mayora de los casos, su estudio es completamente abstracto sin usar ningún tipo de lenguae de programación ni cualquier otra implementación por eso, en ese sentido, comparte las caractersticas de las disciplinas matemáticas. /s, el

Transcript of Algoritmos Como Funciones

Page 1: Algoritmos Como Funciones

8/18/2019 Algoritmos Como Funciones

http://slidepdf.com/reader/full/algoritmos-como-funciones 1/9

Algoritmos como funciones

Artículo principal: Teoría de la computabilidad

Esquemática de un algoritmo solucionando un problema de ciclohamiltoniano .

Un algoritmo se puede concebir como una función que transforma los datos de un problema (entrada) en los datos de una solución (salida). Más aún, los datos se puedenrepresentar a su vez como secuencias de bits , y en general, de s mbolos cualesquiera. !"# !$# !"" # %omo cada secuencia de bits representa a un número natural (v&ase 'istema

binario ), entonces los algoritmos son en esencia funciones de los números naturales enlos números naturales que s se pueden calcular. s decir que todo algoritmo calcula una

función donde cada número natural es la codificación de un problema ode una solución.

n ocasiones los algoritmos son susceptibles de nunca terminar, por e emplo, cuandoentran a un bucle infinito . %uando esto ocurre, el algoritmo nunca devuelve ningún

valor de salida, y podemos decir que la función queda indefinida para ese valor deentrada. *or esta razón se considera que los algoritmos son funciones parciales , es decir,no necesariamente definidas en todo su dominio de definición .

%uando una función puede ser calculada por medios algor tmicos, sin importar lacantidad de memoria que ocupe o el tiempo que se tarde, se dice que dic+a función escomputable . o todas las funciones entre secuencias datos son computables. l

problema de la parada es un e emplo.

Análisis de algoritmos

Artículo principal: Análisis de algoritmos

%omo medida de la eficiencia de un algoritmo, se suelen estudiar los recursos (memoriay tiempo) que consume el algoritmo. l análisis de algoritmos se +a desarrollado paraobtener valores que de alguna forma indiquen (o especifiquen) la evolución del gasto detiempo y memoria en función del tama-o de los valores de entrada.

l análisis y estudio de los algoritmos es una disciplina de las ciencias de lacomputación y, en la mayor a de los casos, su estudio es completamente abstracto sin

usar ningún tipo de lengua e de programación ni cualquier otra implementación poreso, en ese sentido, comparte las caracter sticas de las disciplinas matemáticas. /s , el

Page 2: Algoritmos Como Funciones

8/18/2019 Algoritmos Como Funciones

http://slidepdf.com/reader/full/algoritmos-como-funciones 2/9

análisis de los algoritmos se centra en los principios básicos del algoritmo, no en los dela implementación particular. Una forma de plasmar (o algunas veces 0codificar0) unalgoritmo es escribirlo en pseudocódigo o utilizar un lengua e muy simple tal como1e2ico , cuyos códigos pueden estar en el idioma del programador.

/lgunos escritores restringen la definición de algoritmo a procedimientos que debenacabar en algún momento, mientras que otros consideran procedimientos que podr ane ecutarse eternamente sin pararse, suponiendo el caso en el que e2istiera algúndispositivo f sico que fuera capaz de funcionar eternamente. n este último caso, lafinalización con &2ito del algoritmo no se podr a definir como la terminación de &stecon una salida satisfactoria, sino que el &2ito estar a definido en función de lassecuencias de salidas dadas durante un periodo de vida de la e ecución del algoritmo.*or e emplo, un algoritmo que verifica que +ay más ceros que unos en una secuencia

binaria infinita debe e ecutarse siempre para que pueda devolver un valor útil. 'i seimplementa correctamente, el valor devuelto por el algoritmo será válido, +asta queevalúe el siguiente d gito binario. 3e esta forma, mientras evalúa la siguiente secuencia

podrán leerse dos tipos de se-ales4 una se-al positiva (en el caso de que el número deceros sea mayor que el de unos) y una negativa en caso contrario. 5inalmente, la salidade este algoritmo se define como la devolución de valores e2clusivamente positivos si+ay más ceros que unos en la secuencia y, en cualquier otro caso, devolverá una mezclade se-ales positivas y negativas.

Ejemplo de algoritmo

l problema consiste en encontrar el má2imo de un con unto de números. *ara une emplo más comple o v&ase /lgoritmo de uclides .

[editar ] Descripción de alto nivel3ado un con unto finito C de números, se tiene el problema de encontrar el número másgrande. 'in p&rdida de generalidad se puede asumir que dic+o con unto no es vac o yque sus elementos están numerados como .

s decir, dado un con unto se pide encontrar m tal que

para todo elemento x que pertenece al con unto C .

*ara encontrar el elemento má2imo, se asume que el primer elemento ( c6) es el má2imoluego, se recorre el con unto y se compara cada valor con el valor del má2imo númeroencontrado +asta ese momento. n el caso que un elemento sea mayor que el má2imo,se asigna su valor al má2imo. %uando se termina de recorrer la lista, el má2imo númeroque se +a encontrado es el má2imo de todo el con unto.

Page 3: Algoritmos Como Funciones

8/18/2019 Algoritmos Como Funciones

http://slidepdf.com/reader/full/algoritmos-como-funciones 3/9

Historia del algoritmo

DEFINICION DE ALGORITMOPodemos en contar varias de niciones entre ellas las siguientes1. Algoritmo (del lat n! di"it algurithmus#$ es una lista bien de nida!ordenada % nita de operaciones que permite hallar la soluci&n a unproblema. Esto quiere decir que tiene un estado inicial % una entrada! atrav's de pasos sucesivos % bien de nidos la cual tiene nal.

. Antiguamente algoritmo signi caba descripci&n de un cálculo! como porejemplo de la nueva divisi&n despu's de introducir las fracciones decimales!en la a dualidad es todo descripci&n de un cálculo en general con unesquema de procesos que se repite.). *e de ne tambi'n como el conjunto de procesos nito que deben seguirpara reali+ar una tarea $Proceso 1. ,ebe ser el mismo conjunto de datos para que siempre se llegue

a un mismo conjunto de resultados.Proceso . -as instrucciones han de ser precisos! sin ambig edad.Proceso ). El conjunto debe ser nito.

H/*0 2/A ,E- A-3 2/04Estos bienes surgieron a mediados del siglo /5 por el matemático distinguido% astr&nomo 4ohammed /bn 4usa 6aljari+m$ pero podemos ver que Al7%ebr6mugabata es otro que desarrollo formulas para posibilitar que con unn8mero limitado de procesos fuese posible resolver ecuaciones de primer %segundo grado.

-a historia del algoritmo nace por necesidad de hacer cálculos matemáticosatraves! de ella se fundamenta el paso inicial de entender acabadamentecualquier problema planteada.Pero tambi'n tengamos en cuenta que los algoritmos están en el cora+&nmismos de los ordenadores % que los leguajes de computaci&n solo son unmedio de e"presarlos.9onforme transcurre el tiempo se crea las simbolog as de los algoritmos$*e utili+a un rectángulo redondeado para el inicio % nali+aci&n de lasalgoritmos! los rombos son utili+ados para las decisiones % los rectángulospara las acciones a tomar. -as :echas nos indican el :ujo teniendo en

cuenta que las decisiones no crecerán verticalmente % las decisiones por sicrecerán ala derecha. *i bien estos no son los 8nicos s mbolos.

El algoritmo tiene la virtud de brindarnos a todos la oportunidad deseleccionar aquello que se considera priotario decimos que no es poco % lacapacidad contenida como ordenador del pensamiento da comien+o en elprimer paso! el cual implica plantear el problema .;o podemos se<alar que el algoritmo no es una noci&n de las centrales enmatemática principalmente en al área correspondiente de la matemáticacomputacional.

En la teor a de los algoritmos podemos mencionar que los algoritmosempe+ara hadar inicio apro"imadamente a lo alargo de la historia en el siglo

Page 4: Algoritmos Como Funciones

8/18/2019 Algoritmos Como Funciones

http://slidepdf.com/reader/full/algoritmos-como-funciones 4/9

1= aunque %a se ten a cierto conocimiento.En la teor a de los algoritmos a objetos no constructivos se hace necesarionombrar a esto como objetos constructivos! por lo que la teor a de lanumeraci&n prácticamente se convierte en un interesante apartado de lateor a de algoritmos.

Page 5: Algoritmos Como Funciones

8/18/2019 Algoritmos Como Funciones

http://slidepdf.com/reader/full/algoritmos-como-funciones 5/9

,e nici&n formal

n general, no e2iste ningún consenso definitivo en cuanto a la definición formal dealgoritmo. Muc+os autores los se-alan como listas de instrucciones para resolver un

problema abstracto , es decir, que un número finito de pasos convierten los datos de un problema (entrada) en una solución (salida). !"# !7# !8# !9# !: # !; # 'in embargo cabe notar quealgunos algoritmos no necesariamente tienen que terminar o resolver un problema en

particular. *or e emplo, una versión modificada de la criba de ratóstenes que nuncatermine de calcular números primos no de a de ser un algoritmo .!<#

/ lo largo de la +istoria varios autores +an tratado de definir formalmente a losalgoritmos utilizando modelos matemáticos como máquinas de =uring entre otros .!># !$# 'in embargo, estos modelos están su etos a un tipo particular de datos como sonnúmeros, s mbolos o gráficas mientras que, en general, los algoritmos funcionan sobre

una vasta cantidad de estructuras de datos .!8#

!"#

n general, la parte común en todas lasdefiniciones se puede resumir en las siguientes tres propiedades siempre y cuando noconsideremos algoritmos paralelos 4!<#

Tiempo sec encial . >n algoritmo funciona en tiempo discreti+ado ?paso a paso?! de niendo as una secuencia de estados@computacionales @ por cada entrada válida (la entrada son los datosque se le suministran al algoritmo antes de comen+ar#.

Estado a!stracto . 9ada estado computacional puede ser descritoformalmente utili+ando una estructura de primer orden % cadaalgoritmo es independiente de su implementaci&n (los algoritmos sonobjetos abstractos# de manera que en un algoritmo las estructuras deprimer orden son invariantes bajo isomor smo.

E"ploración acotada . -a transici&n de un estado al siguiente quedacompletamente determinada por una descripci&n ja % nita es decir!entre cada estado % el siguiente solamente se puede tomar en cuentauna cantidad ja % limitada de t'rminos del estado actual.

n resumen, un algoritmo es cualquier cosa que funcione paso a paso, donde cada paso

se pueda describir sin ambig?edad y sin +acer referencia a una computadora en particular, y además tiene un l mite fi o en cuanto a la cantidad de datos que se puedenleer@escribir en un solo paso. sta amplia definición abarca tanto a algoritmos prácticoscomo aquellos que solo funcionan en teor a, por e emplo el m&todo de eAton y laeliminación de BaussCDordan funcionan, al menos en principio, con números de

precisión infinita sin embargo no es posible programar la precisión infinita en unacomputadora, y no por ello de an de ser algoritmos. !"6# n particular es posibleconsiderar una cuarta propiedad que puede ser usada para validar la tesis de %+urc+C=uring de que toda función calculable se puede programar en una máquina de =uring (oequivalentemente, en un lengua e de programación suficientemente general)4 !"6 #

4edios de e"presi&n de un algoritmo

Page 6: Algoritmos Como Funciones

8/18/2019 Algoritmos Como Funciones

http://slidepdf.com/reader/full/algoritmos-como-funciones 6/9

1os algoritmos pueden ser e2presados de muc+as maneras, incluyendo al lengua enatural , pseudocódigo , diagramas de flu o y lengua es de programación entre otros. 1asdescripciones en lengua e natural tienden a ser ambiguas y e2tensas. l usar

pseudocódigo y diagramas de flu o evita muc+as ambig?edades del lengua e natural.

3ic+as e2presiones son formas más estructuradas para representar algoritmos noobstante, se mantienen independientes de un lengua e de programación espec fico.

1a descripción de un algoritmo usualmente se +ace en tres niveles4

1. Descripción de alto nivel . *e establece el problema! se seleccionaun modelo matemático % se e"plica el algoritmo de manera verbal!posiblemente con ilustraciones % omitiendo detalles.

. Descripción #ormal . *e usa pseudoc&digo para describir lasecuencia de pasos que encuentran la soluci&n.

). Implementación . *e muestra el algoritmo e"presado en un lenguajede programaci&n espec co o alg8n objeto capa+ de llevar a caboinstrucciones.

=ambi&n es posible incluir un teorema que demuestre que el algoritmo es correcto, unanálisis de comple idad o ambos.

Dia$rama de % &o

,iagrama de :ujo que e"presa un algoritmo para calcular la ra + cuadradade un n8mero x

Artículo principal: Diagrama de fujo

1os diagramas de flu o son descripciones gráficas de algoritmos usan s mbolosconectados con flec+as para indicar la secuencia de instrucciones y están regidos porE'F .

Page 7: Algoritmos Como Funciones

8/18/2019 Algoritmos Como Funciones

http://slidepdf.com/reader/full/algoritmos-como-funciones 7/9

1os diagramas de flu o son usados para representar algoritmos peque-os, ya queabarcan muc+o espacio y su construcción es laboriosa. *or su facilidad de lectura sonusados como introducción a los algoritmos, descripción de un lengua e y descripción de

procesos a personas a enas a la computación.

'se docódi$o( Artículo principal: Pseudocódigo

l pseudocódigo ( falso lenguaje , el prefi o pseudo significa falso ) es una descripción dealto nivel de un algoritmo que emplea una mezcla de lengua e natural con algunasconvenciones sintácticas propias de lengua es de programación, como asignaciones,ciclos y condicionales, aunque no está regido por ningún estándar. s utilizado paradescribir algoritmos en libros y publicaciones cient ficas, y como producto intermediodurante el desarrollo de un algoritmo, como los Gdiagramas de flu o, aunque presentan

una venta a importante sobre estos, y es que los algoritmos descritos en pseudocódigorequieren menos espacio para representar instrucciones comple as.

l pseudocódigo está pensado para facilitar a las personas el entendimiento de unalgoritmo, y por lo tanto puede omitir detalles irrelevantes que son necesarios en unaimplementación. *rogramadores diferentes suelen utilizar convenciones distintas, que

pueden estar basadas en la sinta2is de lengua es de programación concretos. 'inembargo, el pseudocódigo en general es comprensible sin necesidad de conocer outilizar un entorno de programación espec fico, y es a la vez suficientementeestructurado para que su implementación se pueda +acer directamente a partir de &l.

)istemas #ormales(1a teor a de autómatas y la teor a de funciones recursivas proveen modelos matemáticosque formalizan el concepto de algoritmo . 1os modelos más comunes son la máquina de=uring , máquina de registro y funciones HCrecursivas . stos modelos son tan precisoscomo un lengua e máquina , careciendo de e2presiones coloquiales o ambig?edad, sinembargo se mantienen independientes de cualquier computadora y de cualquierimplementación.

Implementación:

Muc+os algoritmos son ideados para implementarse en un programa . 'in embargo, losalgoritmos pueden ser implementados en otros medios, como una red neuronal , uncircuito el&ctrico o un aparato mecánico y el&ctrico. /lgunos algoritmos inclusive sedise-an especialmente para implementarse usando lápiz y papel. l algoritmo demultiplicación tradicional, el algoritmo de uclides , la criba de ratóstenes y muc+asformas de resolver la ra z cuadrada son sólo algunos e emplos.

Page 8: Algoritmos Como Funciones

8/18/2019 Algoritmos Como Funciones

http://slidepdf.com/reader/full/algoritmos-como-funciones 8/9

*aria!le(Un elemento que toda pertenece a un dato espec fico correcto. 1a declaración se realizacomenzando con var . *rincipalmente, e2isten dos maneras de otorgar valores iniciales avariables emplo4

1. 4ediante una sentencia de asignaci&n.

. 4ediante uno de los procedimientos de entrada de datos ( read oreadln #.

Estr ct ras sec enciales(1a estructura secuencial es aquella en la que una acción sigue a otra en secuencia. 1asoperaciones se suceden de tal modo que la salida de una es la entrada de la siguiente y

as sucesivamente +asta el fin del proceso. 1a asignación de esto consiste, en el paso devalores o resultados a una zona de la memoria. 3ic+a zona será reconocida con elnombre de la variable que recibe el valor. 1a asignación se puede clasificar de lasiguiente forma4

1. )imples $ 9onsiste en pasar un valor constante a una variable (a B1C#

. Contador $ 9onsiste en usarla como un veri cador del numero deveces que se reali+a un proceso (a B a D 1#

). Ac m lador $ 9onsiste en usarla como un sumador en un proceso (aB a D b#

. De tra!a&o $ ,onde puede recibir el resultado de una operaci&nmatemática que involucre muchas variables (a B c D bF G #.

Un e emplo de estructura secuencial, como obtener la área de un triángulo4

Inicio... float b, h, a;

printf("Diga la base"); scanf("%f", &b); printf("Diga la altura"); scanf("%f", &h); a = (b*h)/2; printf(" l !rea el tri!ngulo es %f", a)

... i#=$; rea ln(n); hile i n o begin (* cuerpo el bucle *) i #= i ' $

Page 9: Algoritmos Como Funciones

8/18/2019 Algoritmos Como Funciones

http://slidepdf.com/reader/full/algoritmos-como-funciones 9/9

en ; ...

1os diagramas de flu o sirven para representar algoritmos de manera gráfica.

n matemáticas , ciencias de la computación y disciplinas relacionadas, un algoritmo (del griego y latin, dixit algorithmus y &ste a su vez del matemático persa /l Duarismi !"# )es un con unto preescrito de instrucciones o reglas bien definidas, ordenadas y finitasque permite realizar una actividad mediante pasos sucesivos que no generen dudas aquien deba realizar dic+a actividad. !7# 3ados un estado inicial y una entrada, siguiendo

los pasos sucesivos se llega a un estado final y se obtiene una solución. 1os algoritmosson el ob eto de estudio de la algoritmia .!"#

n la vida cotidiana, se emplean algoritmos frecuentemente para resolver problemas./lgunos e emplos son los manuales de usuario, que muestran algoritmos para usar unaparato, o las instrucciones que recibe un traba ador por parte de su patrón . /lgunose emplos en matemática son el algoritmo de la división para calcular el cociente de dosnúmeros, el algoritmo de uclides para obtener el má2imo común divisor de dos enteros

positivos, o el m&todo de Bauss para resolver un sistema lineal de ecuaciones .