Algoritmos: ¿Qué es Algoritmo, Ejemplos, Tipos, Definición, Informática

Conjunto de instrucciones que aplicado a un número finito de datos, después de un número finito de iteraciones entrega un resultado.

Un algoritmo es un conjunto finito de instrucciones o pasos que sirven para ejecutar una tarea o resolver un problema. En la vida cotidiana empleamos algoritmos en multitud de ocasiones para resolver diversos problemas como por ejemplo para poner una lavadora (conjunto de instrucciones pegadas en la tapa de la máquina), para tocar música (partituras), para construir un aeroplano a escala (expresados en las instrucciones), o, incluso, para hacer recetas de cocina (pasos de la receta). Otros ejemplos, como el algoritmo de la división para calcular el cociente de dos números o el algoritmo de Euclides para calcular el máximo común divisor de dos enteros positivos pertenecen al ámbito de las matemáticas.

¿Qué es un algoritmo?

Por algoritmo, se entiende a un conjunto finito de instrucciones que se deben seguir para resolver un problema. No obstante, desde el punto de vista de la programación de ordenadores, la definición del algoritmo como la especificación de una serie de pasos, es incompleta. Debe observarse que los ordenadores son equipos que tienen limitaciones físicas en cuanto a capacidad de almacenamiento y procesamiento. Por consiguiente debemos refinar un poco más nuestra definición de algoritmo para hacerla aplicable de manera efectiva en el ámbito de la informática.

El algoritmo es un conjunto de pasos, instrucciones o acciones que se deben seguir para resolver un problema. Existen una gran cantidad de algoritmos, hay que coger el más efectivo. Hay dos tipos de algoritmos que son los cualitativos y cuantitativos, cualitativos son todos aquellos pasos o instrucciones descritos por medio de palabras que sirven para llegar a la obtencion de una respuesta o solucion de un problema, y cuantitativos son todos aquellos pasos o instrucciones que involucran calculos numéricos para llegar a un resultado satisfactorio.

Características:

  • Tiene que ser preciso.

  • Tiene que estar bien definido.

  • Tiene que ser finito.

  • La programación es adaptar el algoritmo al ordenador.

  • El algoritmo es independiente según donde lo implemente.

Modelos computacionales

Un modelo computacional es un modelo matemático en las ciencias de la computación que requiere extensos recursos computacionales para estudiar el comportamiento de un sistema complejo por medio de la simulación por computadora. El sistema bajo estudio es a menudo un sistema complejo no lineal para el cual las soluciones analíticas simples e intuitivas no están fácilmente disponibles. En lugar de derivar una solución analítica matemática para el problema, la experimentación es hecha con el modelo cambiando los parámetros del sistema en la computadora, y se estudian las diferencias en el resultado de los experimentos. Las teorías de la operación del modelo se pueden derivar/deducir de estos experimentos de computacionales.

Ejemplos de modelos de computacionales comunes son modelos de el pronóstico del tiempo, modelos del Earth Simulator, modelos de simulador de vuelo, modelos de plegamiento molecular de proteínas, y modelos de red neuronal.

Se considera a los algoritmos al conjunto de pasos ordenados, que permiten resolver un problema bajo una secuencia lógica, es decir, que tenga inicio y fin (sentido concreto).

Ejemplos de Algoritmos

Ejemplo: Realizar el pseudocódigo de un programa que permita calcular el área de un rectángulo. Se debe introducir la base y la altura para poder realizar el cálculo..

Programa; área

Entorno: BASE, ALTURA, AREA son número enteros

Algoritmo:

            escribir “Introduzca la base y la altura”

            leer BASE, ALTURA

            calcular AREA = BASE * ALTURA

            escribir “El área del rectángulo es “AREA

Finprograma

Ejemplo: Realizar el pseudocódigo que permita al usuario introducir por teclado dos notas, calculando la suma y el producto de las notas.

Programa: SumaProducto

Entorno: NOTA1,NOTA2,SUMA,PRODUCTO son números enteros

Algoritmo:

escribir “Introduzca las notas”

leer NOTA1,NOTA2

calcular SUMA = NOTA1 + NOTA2

calcular PRODUCTO = NOTA1 * NOTA2

escribir “La suma de las dos notas es:” SUMA

escribir “El producto de las dos notas es :”PRODUCTO

Finprograma


Ejemplo: Realizar el pseudocódigo de un programa que permita saber si un número es mayor, menor o igual a cero.

    Programa: ComparaNúmeros

       Entorno: NUMERO es un número entero

Algoritmo:

Escribir “Introduzca un número “

leer NUMERO

SI NUMERO>0  ENTONCES

          escribir “El número introducido es positivo”

SI NO

          SI NUMERO<0 ENTONCES

                 escribir “El número introducido es negativo”

          SI NO

                 escribir “El número es cero”

          FINSI

FINSI

Finprograma


Supongamos un algoritmo que lea las coordenadas de tres puntos y los mueva tres puntos en la coordenada y escriba el resultado en algún dispositivo de salida:

 

ALGORITMO lee_tres_vertices

ENTRADA: las coordenadas (x,y) de tres puntos

SALIDA: las coordenadas (x,y) de los tres puntos movidos 3 puntos hacia la derecha.

VARIABLES: i:entera

x,y: real

INICIO

PARA i=1 HASTA 3 CON INCREMENTO +1

ESCRIBE "Abscisa del punto número ", i

LEER x

ESCRIBE "Ordenada del punto número ", i

LEER Y

ESCRIBE "El punto es (" x+3","y")"

FIN_PARA

FIN

 El programa equivalente a este algoritmo se muestra a continuación. Como podemos apreciar en un programa en Pascal es importantísimo no olvidar detalles de sintaxis. Por ejemplo cada sentencia termina en punto y coma. De cualquier forma es inmediato apreciar los simples cambios existentes.

 

program lee_tres_vertices;

var x,y:real;

i:integer;

begin

for i:=1 to 3 do

begin

write ('Abscisa del punto número ',i); readln(x);

write ('Ordenada del punto número ',i); readln(y);

writeln (' El punto es (',x+3,',',y,')');

end;

end;


Problema: calcular y mostrar la suma de los diez primeros números entre 1 y 1000 que sean divisibles por uno dado.

 

programa suma_divisibles

variables natural : divisor, suma, contador, número

 

inicio programa

divisor   leer ‘Introduce el divisor: ’

suma   0

contador   0

para número desde 1 hasta 1000 hacer

si divisor divide a número entonces

suma   suma + número

contador   contador + 1

                fin si

                si contador = 10 entonces

interrumpir

                fin si

fin para

 

escribir ‘La suma es’, suma

 

fin programa


Tipos de algoritmos

Un algoritmo de cifrado simétrico es una fórmula matemática que convierte el texto plano en un forma ininteligible, cifrada, y conocida como texto cifrado. La variable, o clave de cifrado, que se utiliza para conducir un algoritmo de cifrado simétrico es derivado de la contraseña dada cuando los datos están cifrados, y una clave única compartida es utilizada para cifrar y descifrar los datos. Existen varios tipos diferentes de algoritmos de cifrado simétrico y su fuerza depende, en gran parte, de la longitud, en bits (0 y 1), de su clave de cifrado.

DES

El Data Encryption Standard (DES) es el estándar de cifrado recomendado por primera vez por el National Institute of Standards and Technology (NIST) en 1977, pero ha sido objeto de muchos ataques en el ínterin y, en la actualidad, sólo está permitido para sistemas heredados. Una clave de cifrado DES se compone de 64 bits, pero solamente 56 bits son utilizados directamente por el algoritmo DES, los 8 bits restantes de la clave se pueden utilizar para la detección de errores.

Blowfish

Blowfish es un algoritmo de cifrado simétrico de dominio público, es decir, que no tiene licencia y está disponible para todo el mundo de forma gratuita, introducido por primera vez en 1993 por uno de los criptógrafos más importantes del mundo, Bruce Schneier. Blowfish utiliza una clave de codificación de longitud variable, que va de 32 bits hasta 448 bits, con un valor predeterminado de 128 bits. En su forma más simple, texto plano se divide en bloques de 64 bits y se introduce en el algoritmo para crear bloques de texto cifrado.

3DES

Triple DES (3DES) es una mejora del simple DES que aplica el método de cifrado DES a los mismos datos tres veces para aumentar el nivel de cifrado. Triple DES aumenta la longitud de la clave de cifrado de 192 bits, pero es más lento que otros métodos de cifrado. Sin embargo, 3DES reemplazó a DES como el algoritmo de cifrado simétrico en el año 1999, de acuerdo con Federal Information Processing Standards (FIPS).

AES

Advanced Encryption Standard (AES), que en realidad es una implementación de un algoritmo de cifrado simétrico conocida como Rjindael, es el último estándar recomendado por el NIST. AES utiliza una clave de cifrado que varía en longitud de 128 bits a 256 bits y cifra los datos en bloques de 128 bits. El algoritmo AES es aplicado a los datos 10, 12, o 14 veces, conocido como "rondas", lo que es muy seguro. De hecho, sólo un ataque de fuerza bruta, en el que el atacante prueba todas las combinaciones posibles de la clave de cifrado, ha demostrado ser eficaz contra AES. Sin embargo, AES es rápido, flexible y puede ser implementado en una variedad de diferentes plataformas.

Definición de algoritmos

En esta ocasión traemos un término que es aplicado por igual a las Matemáticas, como a su derivación en las Ciencias de la Computación y la Informática, y lo que es relativo a las Disciplinas Similares, considerándose entonces como un Algoritmo a un conjunto de órdenes que definen a una operación predeterminada.

La funcionalidad de estas instrucciones que son impartidas permiten la realización de una actividad, siguiendo distintas reglas ordenadas, que permiten salir de un punto de partida (considerad como un Estado Inicial) para poder llegar hacia un resultado, un Punto Final, cuyo conjunto permite establecer una Solución a una problemática determinada.

Este término deriva del matemático musulmán Muhammad Musa Al Juarizmi (750-850) que vivió en la ciudad persa de Jwarizm (actualmente es la ciudad de Jiva, en Uzbekistán) y quien desarrolló las bases del estudio de la Algoritmia, la Álgebra y los Guarismos relativos de las matemáticas.

La primera utilización de los Algoritmos en el mundo de la Informática se empleó con la aplicación de la Máquina de Turing, que realiza una entrada y salida de un dispositivo en forma de Cinta, realizando una transición de estados en la misma realizando una lectura, un borrado y escritura de un valor determinado, mediante la realización de operaciones Algorítmicas y Lógicas, siendo uno de los primeros antecedentes de lo que hoy en día es la Unidad Central de Procesamiento.

Justamente esta base ha asentado lo que hoy en día está en las Funciones Algorítmicas de la informática, en lo que se realiza una Entrada y Salida de datos, brindando una solución lo más rápida posible (que respecta en un rendimiento del procesador) como también en lo que es el seguimiento de un determinado número de procesos para la solución (Algoritmo Finito) y a su vez la obtención del mismo resultado cuando se corra el mismo Proceso (es decir, un resultado Definido para cada tipo de algoritmo).

La utilización de algoritmos en el día a día está demostrada no solo en lo que es el mundo de la Informática, sino también en lo que respecta a los Manuales de Instrucciones, que llevan un paso por paso de cómo utilizar un dispositivo electrónico, o bien las pautas que se deben seguir en un trabajo para alcanzar un objetivo determinado.

Se podría definir entonces a un Algoritmo básicamente como las instrucciones a seguir para poder llegar a una Solución específica, con el mismo resultado y sin desviarnos de esta finalidad.

Algoritmos informatica

Algoritmos básicos de las estructuras de datos

En informática, los algoritmos se basan en estructuras de datos con el fin de ejecutar sus tareas de manera eficiente y eficaz. Una vez que una estructura de datos se ha puesto en marcha, los algoritmos pueden ser desarrollados, probados y ejecutados. Las estructuras de datos y los algoritmos se utilizan en casi todos los programas de software disponibles en la actualidad.

Acerca de las estructuras de datos

En informática, una estructura de datos es una manera de organizar y almacenar datos. Éstas buscan maximizar la eficiencia de almacenamiento y recuperación de datos en una computadora. Los diferentes tipos de estructuras de datos son adecuados para diferentes tareas (por ejemplo, los árboles B se utilizan a menudo para la gestión de bases de datos, mientras que las tablas hash se utilizan para los compiladores). El diseño e implementación de una estructura de datos eficiente es esencial para el diseño de algoritmos eficientes para un programa de computadora.

Acerca de los algoritmos

En informática, un algoritmo es un conjunto de instrucciones inequívocas utilizadas para obtener una salida específica para cualquier entrada legítima (es decir, reconocida). Los algoritmos se basan en estructuras de datos para tener éxito (debe haber una estructura de datos en el lugar antes de que los algoritmos puedan ser desarrollados y probados). Por eso, algunos programadores creen que el secreto del desarrollo de un buen software radica en el diseño y el uso de estructuras de datos eficientes en lugar de algoritmos inteligentes.

Los algoritmos de fuerza bruta

Los tipos de "fuerza bruta" son algunos de los algoritmos más básicos y directos. Como su nombre indica, éstos requieren la declaración del problema a resolver, así como las definiciones explícitas de sus diversos componentes, con el fin de trabajar correctamente. En programación, los algoritmos de fuerza bruta se utilizan para calcular los factoriales, exponenciación, para multiplicar matrices o para buscar la clave de un valor en una lista especificada.

Algoritmos divide y vencerás

Divide y vencerás son algunos de los algoritmos más conocidos y se utilizan normalmente para la construcción de algoritmos recursivos (una especie de bucle de retroalimentación positiva). Fieles a su nombre, los algoritmos divide y vencerás dividen el problema en dos pequeños problemas que son más fáciles de tratar y resolver por separado. Las soluciones separadas se combinan para resolver el problema original. En estos algoritmos, el problema original ha sido reducido a un tamaño que el algoritmo puede manejar. Una vez que la solución se encuentra, se reduce hasta resolver el problema original. Los algoritmos divide y vencerás también se conocen como algoritmos inductivos o incrementales.

Algoritmos transforma y vencerás

Los algoritmos transforma y vencerás resuelven problemas en la programación de una de tres maneras, todo lo cual implica la transformación (o traducción) del problema en algo más manejable. Este algoritmo puede transformar el problema a un ejemplo sencillo del mismo problema en un proceso conocido como "ejemplo de simplificación". También podrían transformar el problema en una nueva representación del problema que se llama "cambio de representación". Por último, estos algoritmos también pueden traducir el problema en un problema diferente que es más fácil de resolver; este último método se denomina "reducción de problema."

www.Santificacion.Info
¡DVDs, Libros y Artículos Gratis!
FREE DVDs & VIDEOS
WATCH & DOWNLOAD ALL OUR DVDs & VIDEOS FOR FREE!