¿Qué es algoritmo? En matemáticas, lógica, ciencias de la computación y disciplinas relacionadas, un algoritmo del griego y latín



Descargar 61,99 Kb.
Fecha de conversión31.05.2017
Tamaño61,99 Kb.
¿Qué es algoritmo?

En matemáticas, lógica, ciencias de la computación y disciplinas relacionadas, un algoritmo (del griego y latín, dixit algorithmus y este a su vez del matemático persa Al-Juarismi ) es un conjunto prescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien deba realizar dicha actividad. Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solución. Los algoritmos son el objeto de estudio de la algoritmia.

En la vida cotidiana, se emplean algoritmos frecuentemente para resolver problemas. Algunos ejemplos son los manuales de usuario, que muestran algoritmos para usar un aparato, o las instrucciones que recibe un trabajador por parte de su patrón. Algunos ejemplos en matemática son el algoritmo de multiplicación, para calcular el producto, el algoritmo de la división para calcular el cociente de dos números, el algoritmo de Euclides para obtener el máximo común divisor de dos enteros positivos, o el método de Gauss para resolver un sistema lineal de ecuaciones.

DEFINICION

En general, no existe ningún consenso definitivo en cuanto a la definición formal de algoritmo. Muchos autores los señalan como listas de instrucciones para resolver un cálculo o un problema abstracto, es decir, que un número finito de pasos convierten los datos de un problema (entrada) en una solución (salida). Sin embargo cabe notar que algunos algoritmos no necesariamente tienen que terminar o resolver un problema en particular. Por ejemplo, una versión modificada de la criba de Eratóstenes que nunca termine de calcular números primos no deja de ser un algoritmo.

A lo largo de la historia varios autores han tratado de definir formalmente a los algoritmos utilizando modelos matemáticos. Esto fue realizado por Alonzo Church en 1936 con el concepto de "calculabilidad efectiva" basada en su cálculo lambda y por Alan Turing basándose en la máquina de Turing. Los dos enfoques son equivalentes, en el sentido en que se pueden resolver exactamente los mismos problemas con ambos enfoques. Sin embargo, estos modelos están sujetos a un tipo particular de datos como son números, símbolos o gráficas mientras que, en general, los algoritmos funcionan sobre una vasta cantidad de estructuras de datos. En general, la parte común en todas las definiciones se puede resumir en las siguientes tres propiedades siempre y cuando no consideremos algoritmos paralelos:

Tiempo secuencial. Un algoritmo funciona en tiempo discreteado –paso a paso–, definiendo así una secuencia de estados "computacionales" por cada entrada válida (la entrada son los datos que se le suministran al algoritmo antes de comenzar).

Estado abstracto. Cada estado computacional puede ser descrito formalmente utilizando una estructura de primer orden y cada algoritmo es independiente de su implementación (los algoritmos son objetos abstractos) de manera que en un algoritmo las estructuras de primer orden son invariantes bajo isomorfismo.

Exploración acotada. La transición de un estado al siguiente queda completamente determinada por una descripción fija y finita; es decir, entre cada estado y el siguiente solamente se puede tomar en cuenta una cantidad fija y limitada de términos del estado actual.

En resumen, un algoritmo es cualquier cosa que funcione paso a paso, donde cada paso se pueda describir sin ambigüedad y sin hacer referencia a una computadora en particular, y además tiene un límite fijo en cuanto a la cantidad de datos que se pueden leer/escribir en un solo paso. Esta amplia definición abarca tanto a algoritmos prácticos como aquellos que solo funcionan en teoría, por ejemplo el método de Newton y la eliminación de Gauss-Jordán funcionan, al menos en principio, con números de precisión infinita; sin embargo no es posible programar la precisión infinita en una computadora, y no por ello dejan de ser algoritmos. En particular es posible considerar una cuarta propiedad que puede ser usada para validar la tesis de Church-Turing de que toda función calculable se puede programar en una máquina de Turing (o equivalentemente, en un lenguaje de programación suficientemente general).

CARACTERISTICAS DE LOS ALGORITMOS
Las características fundamentales que debe cumplir todo algoritmo son:


  • Un algoritmo debe ser preciso e indicar el orden de realización de cada paso.

  • Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez.

  • Un algoritmo debe ser finito. el algoritmo se debe terminar en algún momento; o sea, debe tener un número finito de pasos. 

  • Un algoritmo debe ser legibles: El texto que lo describe debe ser claro, tal que permita entenderlo y leerlo fácilmente.

Un algoritmo debe definir tres partes: Entrada, Proceso y Salida
REPRESENTACION DE UN ALGORITMO 

Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocódigo, diagramas de flujo y lenguajes de programación entre otros. Las descripciones en lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocódigo y diagramas de flujo evita muchas ambigüedades del lenguaje natural. Dichas expresiones son formas más estructuradas para representar algoritmos; no obstante, se mantienen independientes de un lenguaje de programación específico.

La descripción de un algoritmo usualmente se hace en tres niveles:


  1. Descripción de alto nivel. Se establece el problema, se selecciona un modelo matemático y se explica el algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo detalles.

  2. Descripción formal. Se usa pseudocódigo para describir la secuencia de pasos que encuentran la solución.

3. Implementación. Se muestra el algoritmo expresado en un lenguaje de programación específico o algún objeto capaz de llevar a cabo instrucciones.

También es posible incluir un teorema que demuestre que el algoritmo es correcto, un análisis de complejidad o ambos. 



QUE ES UN DIAGRAMA DE FLUJO

El diagrama de flujo o diagrama de actividades es la representación gráfica del algoritmo o proceso. Se utiliza en disciplinas como programación, economíaprocesos industriales y psicología cognitiva.

En Lenguaje Unificado de Modelado (UML), un diagrama de actividades representa los flujos de trabajo paso a paso de negocio y operacionales de los componentes en un sistema. Un diagrama de actividades muestra el flujo de control general.

En SysML el diagrama ha sido extendido para indicar flujos entre pasos que mueven elementos físicos (p.ej., gasolina) o energía (p.ej., presión). Los cambios adicionales permiten al diagrama soportar mejor flujos de comportamiento y datos continuos.



Estos diagramas utilizan símbolos con significados definidos que representan los pasos del algoritmo, y representan el flujo de ejecución mediante flechas que conectan los puntos de inicio y de fin de proceso.



CLASES DE ALGORITMOS

Una variable es una propiedad que puede fluctuar y cuya variación es susceptible de adoptar diferentes valores, los cuales pueden medirse u observarse. Las variables adquieren valor para la investigación cuando se relacionan con otras variables, es decir, si forman parte de una hipótesis o de una teoría. En este caso se las denomina constructos o construcciones hipotéticas.

Existen diferentes tipos de variables: -cuantitativa -cualitativa -cualitativa discreta -cuantitativa discreta

QUE SON VARIABLES

Una variable es una propiedad que puede fluctuar y cuya variación es susceptible de adoptar diferentes valores, los cuales pueden medirse u observarse. Las variables adquieren valor para la investigación cuando se relacionan con otras variables, es decir, si forman parte de una hipótesis o de una teoría. En este caso se las denomina constructos o construcciones hipotéticas.

Existen diferentes tipos de variables: -cuantitativa -cualitativa -cualitativa discreta -cuantitativa discreta

COMO SE LE DA VALOR A LA VARIABLE

En teoría de la probabilidad una distribución de probabilidad se llama continua si su función de distribución es continua. Puesto que la función de distribución de una variable aleatoria X viene dada por, la definición implica que en una distribución de probabilidad continua X se cumple P[X = a] = 0 para todo número real a, esto es, la probabilidad de que X tome el valor a es cero para cualquier valor de a. Si la distribución de X es continua, se llama a X variable aleatoria continua.

En las distribuciones de probabilidad continuas, la distribución de probabilidad es la integral de la función de densidad, por lo que tenemos entonces que:

Mientras que en una distribución de probabilidad discreta un suceso con probabilidad cero es imposible, no se da el caso en una variable aleatoria continua. Por ejemplo, si se mide la anchura de una hoja de roble, el resultado 3,5 cm es posible, pero tiene probabilidad cero porque hay infinitos valores posibles entre 3 cm y 4 cm. Cada uno de esos valores individuales tiene probabilidad cero, aunque la probabilidad de ese intervalo no lo es. Esta aparente paradoja se resuelve por el hecho de que la probabilidad de que X tome algún valor en un conjunto infinito como un intervalo, no puede calcularse mediante la adición simple de probabilidades de valores individuales. Formalmente, cada valor tiene una probabilidad infinitesimal que estadísticamente equivale a cero.

Existe una definición alternativa más rigurosa en la que el término "distribución de probabilidad continua" se reserva a distribuciones que tienen función de densidad de probabilidad. Estas funciones se llaman, con más precisión, variables aleatorias absolutamente continuas (véase el Teorema de Radon-Nikodym). Para una variable aleatoria Absolutamente continua es equivalente decir que la probabilidad P [X = a] = 0 para todo número real a, en virtud de que hay un incontables conjuntos de medida de Lebesgue cero (por ejemplo, el conjunto de Cantor).

Una variable aleatoria con la distribución de Cantor es continua de acuerdo con la primera definición, pero según la segunda, no es absolutamente continua. Tampoco es discreta, ni una media ponderada de variables discretas y absolutamente continuas.

En aplicaciones prácticas, las variables aleatorias a menudo ofrecen una distribución discreta o absolutamente continua, aunque también aparezcan de forma natural mezclas de los dos tipos.

QUE ES UNA CONSTANTE

En programación, una constante es un valor que no puede ser alterado/modificado durante la ejecución de un programa, únicamente puede ser leído.

Una constante corresponde a una longitud fija de un área reservada en la memoria principal del ordenador, donde el programa almacena valores fijos.

Por ejemplo:


  • El valor de pi = 3.1416

Por conveniencia, el nombre de las constantes suele escribirse en mayúsculas en la mayoría de lenguajes.

EJEMPLOS DE CONSTANTES



VALORES CONSTANTES 
Son aquellos valores que no cambian al dar valores a las variables independientes. Dichas cantidades constantes o simplemente CONSTANTES pueden ser: 
- números reales 
- constantes tales como el número π 
- funciones trigonométricas de ángulos dados 
- logaritmos, etc. 

Ejemplo 3: Identifique la variable dependiente, independiente y las constantes (si las hubiera) de la siguiente expresion algebraica: 

y(x, z) = (5/3)x² + x - π³/3 + 3a - xz + g√2 

PSEUDOCÓDIGO

En ciencias de la computación, y análisis numérico, el pseudocódigo (o falso lenguaje) es una descripción de alto nivel compacta e informal1 del principio operativo de un programa u otro algoritmo.

Utiliza las convenciones estructurales de un lenguaje de programación real, pero está diseñado para la lectura humana en lugar de la lectura mediante máquina, y con independencia de cualquier otro lenguaje de programación. Normalmente, el pseudocódigo omite detalles que no son esenciales para la comprensión humana del algoritmo, tales como declaraciones de variables, código específico del sistema y algunas subrutinas. El lenguaje de programación se complementa, donde sea conveniente, con descripciones detalladas en lenguaje natural, o con notación matemática compacta. Se utiliza pseudocódigo pues este es más fácil de entender para las personas que el código del lenguaje de programación convencional, ya que es una descripción eficiente y con un entorno independiente de los principios fundamentales de un algoritmo. Se utiliza comúnmente en los libros de texto y publicaciones científicas que se documentan varios algoritmos, y también en la planificación del desarrollo de programas informáticos, para esbozar la estructura del programa antes de realizar la efectiva codificación.



No existe una sintaxis estándar para el pseudocódigo, aunque los ocho IDE's que manejan pseudocódigo tengan su sintaxis propia. Aunque sea parecido, el pseudocódigo no debe confundirse con los programas esqueleto que incluyen código ficticio, que pueden ser compilados sin errores. Los diagramas de flujo y UML pueden ser considerados como una alternativa gráfica al pseudocódigo, aunque sean más amplios en papel.

Las principales características de este lenguaje son: 



  • Se puede ejecutar en un ordenador

  • Es una forma de representación sencilla de utilizar y de manipular.

  • Facilita el paso del programa al lenguaje de programación.

  • Es independiente del lenguaje de programación que se vaya a utilizar.

  • Es un método que facilita la programación y solución al algoritmo del programa.


La base de datos está protegida por derechos de autor ©absta.info 2016
enviar mensaje

    Página principal