You are on page 1of 4

Algoritmos Informalmente, un algoritmo es cualquier procedimiento computacional bien definido que toma algn valor, o conjunto de valores, como

entrada algn valor o conjunto de valores, como salida. Un algoritmo es hasta este punto una secuencia de pasos computacionales que transforman la entrada en salida. Adems tambin podemos ver un algoritmo como una herramienta para resolver problemas computacionales correctamente definidos. En trminos generales, la definicin de un determinado problema establece la relacin entrada/salida. El algoritmo describe un procedimiento computacional especfico para lograr la relacin entrada/salida. Por ejemplo, formalicemos como se define la tipificacin de un problema: Input: Una secuencia de n nmeros Output: Una combinacin (reordenamiento) de la secuencia de entrada as como . Por ejemplo, dada la secuencia de entrada , un algoritmo clasificador devolvera como salida la secuencia . Es as como una secuencia de entrada es se denomina instancia del problema clasificador. En general la instancia de un problema consiste que la entrada (la satisfaccin de cualquiera de las restricciones son establecidas en el problema planteado) necesita computar una solucin al problema. La ordenacin es una operacin fundamental en la ciencia de la computacin (muchos programas lo utilizan como un paso intermedio), y como resultado de un gran nmero de buenos algoritmos de ordenamiento que han sido desarrollados. Tal algoritmo es la mejor aplicacin asignada, la cual depende de entre otros factores el nmero de puntos a ser ordenados, el alcance para tales fines ya son clasificados, posibles restricciones sobre los valores de estos puntos, y la clase de dispositivo de almacenamiento para ser utilizado: memoria principal, discos, memorias auxiliares, o cintas. Un algoritmo se dice estar correcto si, para todas las instancias de entrada, se termina con la salida correcta. Diremos luego que un algoritmo adecuado resuelve el problema computacional dado. Un algoritmo incorrecto puede no terminar con todas las instancias de las entradas, o puede terminar con la respuesta de una de ellas. Contrariamente a lo que uno pueda esperar, los algoritmos incorrectos pueden ser utilizados algunas veces, si el costo de sus errores puede ser controlado. Un algoritmo puede ser especificado en ingls, como un programa de computadora, o an como un diseo de hardware. El requerimiento es que la especificacin debe proporcionar una descripcin precisa del procedimiento computacional para ser entendido.

Informalmente, un algoritmo es un procedimiento computacional bien definido que tiene algn valor, o conjunto de valores, como entrada y produce un cierto valor, o conjunto de valores, como de salida. Un algoritmo es por tanto una secuencia de pasos computacionales que transforman la entrada en la salida. Tambin podemos ver un algoritmo como herramienta para la solucin de un bien determinado computacional problema emocional. El enunciado del problema especifica en trminos generales la deseada entrada / salida de la relacin. El algoritmo se describe un clculo especfico de procedi-miento para lograr que la relacin entrada / salida. Por ejemplo, puede ser que necesite para ordenar una secuencia de nmeros en orden no decreciente. Este problema se presenta con frecuencia en la prctica y proporciona un terreno frtil para la introduccin de muchas de las tcnicas de diseo estndar y herramientas de anlisis. Aqu es cmo definir formalmente el problema de clasificacin:

Debido a que muchos programas lo utilizan como un paso intermedio, la clasificacin es una operacin fundamental en la informtica. Como resultado, tenemos un gran nmero de algoritmos de ordenacin buenas a nuestra disposicin. Cul es el mejor algoritmo para una

aplicacin dada depende-entre otros factores-el nmero de elementos que deben resolverse, en la medida en que los temas ya estn un poco ordenados, las posibles restricciones de los valores de los elementos, la arquitectura de la computadora, y la clase de dispositivos de almacenamiento que se utilizan: la memoria principal, discos o cintas, incluso. Un algoritmo se dice que es correcto si, para cada instancia de entrada, se detendr con la salida correcta. Decimos que un algoritmo correcto resuelve el problema dado computacional. Un algoritmo incorrecto no puede detenerse en absoluto en algunos casos, de entrada, o puede detener con una respuesta incorrecta. Contrariamente a lo que cabra esperar, los algoritmos incorrectos a veces puede ser til, si somos capaces de controlar su tasa de error. Veremos un ejemplo de un algoritmo con una tasa de error controlable en el captulo 31, cuando se estudia algoritmos para la bsqueda de grandes nmeros primos. Por lo general, sin embargo, nos ocuparemos slo con algoritmos correctos. Un algoritmo se puede especificar en Ingls, como un programa de ordenador, o incluso como un diseo de hardware. El nico requisito es que la especificacin debe proporcionar una descripcin precisa del procedimiento computacional para ser seguido.

La ordenacin es de ninguna manera el nico problema computacional para el que algoritmos se han desarrollado. (. Probablemente sospechaba al ver el tamao de este libro) Aplicaciones prcticas de los algoritmos son ubicuos e incluyen los ejemplos-guientes:

El Proyecto Genoma Humano ha hecho grandes progresos hacia las metas de identi-ficar los 100.000 genes en el ADN humano, determinar las secuencias de la 3 mil millones de pares de bases qumicas que componen el ADN humano, guardar esta informacin en bases de datos, y desarrollo de herramientas para el anlisis de datos. Cada uno de estos pasos requiere de sofisticados algoritmos. A pesar de las soluciones a los diversos problemas involucrados estn fuera del alcance de este libro, muchos mtodos para resolver estos problemas biolgicos utilizar las ideas de varios de los captulos de este libro, lo que permite a los cientficos a realizar las tareas durante el uso de los recursos de manera eficiente. Los ahorros son en el tiempo, tanto humano y la mquina, y en dinero, como ms informa-cin puede ser extrado de tcnicas de laboratorio. La Internet permite a las personas de todo el mundo para acceder rpidamente y recuperar grandes cantidades de informacin. Con la ayuda de algoritmos inteligentes, sitios de Internet son capaces de gestionar y manipular este gran volumen de datos. Ejemplos de problemas que hacen

que el uso esencial de algoritmos incluyen la bsqueda de buenas rutas en las que los datos viajan (tcnicas para resolver estos problemas aparecen en

Captulo 24), y el uso de un motor de bsqueda para encontrar rpidamente las pginas en el que reside (informacin en particular las tcnicas relacionadas en los captulos 11 y 32). El comercio electrnico permite a los bienes y servicios que han de negociarse y ex-cambiado por va electrnica, y depende de la privacidad de la informacin per-sonal como nmeros de tarjetas de crdito, contraseas y estados de cuenta bancarios. Las principales tecnologas utilizadas en el comercio electrnico incluyen criptografa de clave pblica y firmas digitales (cubierto en el captulo 31), que se basan en los algoritmos numricos y teora de nmeros. Fabricacin y otras empresas comerciales a menudo tienen que asignar los recursos escasos de la manera ms beneficiosa. Una compaa petrolera podra saber dnde colocar sus pozos con el fin de maximizar su beneficio esperado. Un candidato poltico puede querer determinar dnde gastar el dinero comprando una campaa publicitaria con el fin de maximizar las posibilidades de ganar una eleccin. Una compaa area podr desea asignar los equipos a los vuelos de la manera menos costosa posible, asegurndose de que cada vuelo est cubierto y que las regulaciones gubernamentales con respecto a la tripulacin schedul-cin que se cumplan. Un proveedor de servicios de Internet podra determinar dnde colocar los recursos adicionales con el fin de servir a sus clientes ms eficazmente. Todos estos son ejemplos de problemas que se puedan resolver mediante programacin lineal, que estudiaremos en el captulo 29.

You might also like