Está en la página 1de 7

ALGORITMO

En matemáticas, ciencias de la computación y otras doctrinas relacionadas, el


algoritmo se define como un conjunto de preceptos establecidos e inequívocos,
encontrados metódicamente y de manera limitada que permiten efectuar
cómputos, procesar ciertas informaciones, dar soluciones a problemas y llevar a
cabo diversas actividades. Una vez que se parte de un estado inicial y una
entrada, siguiendo los procedimientos requeridos, se llega al estado final y se
obtiene un resultado. Los algoritmos son el objeto de indagación de la algoritmia y
aunque muchos no lo crean, éstos también se pueden usar en todos los aspectos
de la vida cotidiana.

En informática se suele delimitar como una sucesión de instrucciones


secuenciales, en el que se llevan a cabo algunos procesos con la finalidad de dar
respuestas a determinadas decisiones o necesidades. De la misma manera, los
algoritmos son usados frecuentemente en lógica y matemáticas, además que son
el fundamento de la elaboración de manuales de usuario, panfletos ilustrativos,
entre otros. Unos de los más distinguidos en las matemáticas, es el atribuido al
geómetra Euclides, para alcanzar el máximo común divisor de dos enteros que
sean positivos y el conocido “método de Gauss” para determinar los sistemas de
ecuaciones lineales.

En relación con las ciencias de la computación, este cálculo puede ser conocido
como la secuencia de pautas a seguir para la determinación de un problema a
través del uso de un computador.

Por consiguiente, la algoritmia se entiende como una disciplina que se centra en el


análisis y el diseño de los algoritmos. En consideración a lo primero, se busca
examinar propiedades como su correctitud y su eficacia respecto al tiempo y el
espacio, para comprender los problemas que se pueden resolver
algorítmicamente. En cuanto a lo segundo, se busca estudiar los paradigmas ya
establecidos y propone nuevos ejemplares.

La algoritmia se localiza en el centro del progreso de la informática y es importante


en las distintas áreas de la misma. De este modo, sería imposible que servicios
tan exitosos como Facebook y Google puedan manejar la magnitud de información
que poseen sin la colaboración de algoritmos o de estructuras de datos
especializados. Sin embargo, en la vida diaria también se emplean algoritmos, un
ejemplo de esto es el encendido de la estufa, pues inicia al momento en el que la
persona se dirige a la cocina, la observa y tiene su fin, cuando ésta procede a
encenderla.

Características de un algoritmo
A pesar de que el algoritmo se conoce como el conjunto ordenado y finito de
diversos pasos que conducen a la resolución de un problema, se dice que la
naturaleza de estas dificultades varían según el contexto en el que se encuentren,

1
de esta manera, existen problemas químicos, matemáticos, filosóficos, entre otros.
Así, se puede decir que su naturaleza es variada y no es necesaria su ejecución
mediante el computador. Más allá de todo lo anteriormente explicado, los
algoritmos poseen características que son elementales para determinar lo que hoy
en día son y a continuación se hará mención de éstas.

Las directrices contenidas en un algoritmo deben ser especificas para evitar dejar
margen en cualquier tipo de confusiones, esto significa que se deben seguir las
instrucciones correspondientes de manera adecuada o por el contrario la
representación gráfica de flujo en el que se está inscribiendo no facilitará la
solución correcta.
Debe estar en perfecta definición, tratando en lo posible de seguirlo cuantas veces
sea necesario, para así obtener el mismo resultado y en caso de que ocurra lo
opuesto, el algoritmo no será confiable y tampoco servirá como guía a la hora de
tomar alguna decisión.
Se conocen por la particularidad de ser finitos, éstos suelen terminar en algún
instante y más adelante arrojan un resultado al final de cada paso. Si el algoritmo
se extiende indefinidamente, retornando a algún punto inicial que no se puede
resolver jamás, existe la presencia de una paradoja o el muy conocido “loop” de
repeticiones.
Por último, se dice que la legibilidad de los algoritmos es el elemento clave, pues
si su argumento es ininteligible no se podría seguir las instrucciones
correspondientes, además, conlleva una redacción directa, clara y lacónica del
texto que se encuentra en cada uno.
Partes de un algoritmo
Toda operación algoritmica posee tres partes distintas que se someten a la
estructura básica de un sistema y estas son:

Entrada: también llamada cabecera o punto de partida, es la instrucción inicial que


representa el génesis del algoritmo y la que motiva su lectura.
Proceso: también llamado declaración, es la elaboración precisa que ofrece el
algoritmo y se trata básicamente del tronco de sus claves para la formulación de
instrucciones.
Salida: en esta ultima fase se encuentran las instrucciones puntuales
determinadas por el algoritmo, ejemplo, sus comandos o resoluciones.
Ejemplos de algoritmos
Entre los ejemplos más comunes de cálculos matemáticos se encuentran 2+3=5
en suma y 15-9=6 en resta. Otra forma de visualizar algoritmos sencillos es en las
recetas de cocinas ya que en éstas se describe un proceso concreto y ordenado,
por ejemplo, “primero se debe colocar a calentar media olla de agua, luego se le
debe agregar una pizca de sal y finalmente se va a dividir el pimiento para extraer
las semillas y los nervios.” En este modelo se presenta un inicio, un proceso y un
fin, que básicamente son lo que definen a los algoritmos.

Tipos de algoritmo
Entre los diversos tipos de algoritmos existentes en el mundo entero, se hace
hincapié en aquellos que se clasifican de acuerdo a un sistema de signos y otros
2
en correspondencia con su función. El algoritmo es básicamente la mejor solución
que se conoce para la resolución de cualquier problema en particular y según sus
estrategias y sus funciones existen diversos tipos de éstos, entre los que se
destacan los dinámicos, al reverso, de fuerza bruta, oportunistas, de marcaje,
aleatorios, etc. Además de los algoritmos anteriormente mencionados, existen
miles de éstos que son apropiados para resolver dificultades en cualquier área.

Según su sistema de signos


En esta categoría se ubican los cualitativos y los cuantitativos.

Los algoritmos cualitativos se caracterizan por poseer elementos verbales, un


ejemplo de éstos son las instrucciones o los reconocidos “paso a paso” que se
confieren de forma oral, como las recetas de artes culinarias o los procedimientos
para realizar trabajos manuales.
Los algoritmos cuantitativos son todo lo contrario a los cualitativos, debido a la
presencia de ciertos elementos numéricos y a la utilización de las matemáticas
para la realización de cálculos, por ejemplo, cuando se halla la raíz cuadrada o se
resuelven ecuaciones.
Dentro de esta clasificación también se encuentran los algoritmos
computacionales y los no computacionales. Los computacionales se efectúan
mediante una computadora y se caracterizan por ser tan complejos al punto de
requerir de una máquina para poder ser realizados, además de esto, son
algoritmos cuantitativos que se puede llegar a optimizar. Los no computacionales
no tienen la obligación de ser ejecutados mediante una máquina o computadora;
un claro ejemplo de ésto es la programación de un televisor.

Según su función
En esta clasificación se localizan los siguientes.

1. Algoritmo de marcaje

Este se caracteriza por emplear la automatización para establecer los precios de


una forma diligente, enfocándose en factores como el comportamiento de los
usuarios y también se conoce como la habilidad de determinar automáticamente
los precios para los componentes en devaluación, para lograr incrementar las
ganancias de los vendedores. Ésta ha desempeñado un papel muy importante en
las prácticas comunes de las industrias aéreas desde los comienzos de la década
de 1990.

El algoritmo de marcaje se distingue por ser una de las prácticas más comunes en
las industrias altamente competitivas, haciendo referencia a las agencias de viajes
o aquellos establecimientos en línea. Esta clase de algoritmo puede llegar a ser
extremadamente compleja o relativamente sencilla, pues en muchos casos se
advierte que son optimizadas o auto aprendidas con la continuidad de ciertas
pruebas. Más allá de todo eso, los algoritmos de marcaje también pueden llegar a
ser impopulares con la clientela a medida que los individuos tienden a valorar
tanto la estabilidad como la imparcialidad.
3
2. Algoritmos probabilísticos

Son aquellos en las que la forma en la que se obtienen los resultados dependen
de las probabilidades, éstas se conocen comúnmente como algoritmos aleatorios.

En algunas aplicaciones el manejo de este tipo de operación es habitual, como por


ejemplo, cuando se simula la conducta de cualquier sistema existente o ideado a
lo largo de un tiempo, en el que se obtiene como consecuencia una solución
fortuita. En otras circunstancias el problema que debe ser resuelto suele ser
determinista pero existe la posibilidad de transformarlo en uno fortuito, para así
lograr resolverlo aplicando el algoritmo de probabilidad. Lo positivo de los
aleatorios es que su aplicación no necesita de estudios matemáticos muy
perfeccionados.

Además, dentro de este grupo existen tres tipos principales que se conocen como
el numérico, el Montecarlo y Las Vegas.

Los algoritmos numéricos pueden proporcionar un resultado aproximado del


problema y son generalmente aplicados en la ingeniería.
Los algoritmos de Montecarlo pueden arrojar la solución correcta o la incorrecta y
poseen un cierto margen de error y por último.
Los algoritmos de Las Vegas se distinguen por no dejar nunca una respuesta
incorrecta, de hecho, éstas encuentran la solución correcta o sencillamente te
informan del posible fallo.
La programación dinámica hace referencia al método en el que el algoritmo
computa los resultados. En ocasiones, las soluciones de ciertos elementos que
poseen los problemas, dependen de resultados de otros problemas más
reducidos. De modo que, para la resolución de estos se deben volver a calcular
los mismos valores para así resolver los subproblemas más diminutos, sin
embargo, esto puede llegar a crear un desperdicio de ciclos. Para remendar esto,
se puede emplear la programación dinámica y en este caso se recuerda la
solución de cada subproblema, para utilizar este mismo valor en vez de repetirlo
varias veces.

3. Algoritmos heurísticos

Se distinguen por encontrar soluciones y aún así no garantizan que la mejor de las
respuestas sea encontrada, por esta razón, pueden llegar a ser considerados
como algoritmos aproximados. Estos pueden utilizarse cuando se considera
imposible el hallazgo de alguna solución mediante una vía normal. Los heurísticos
proporcionan los usos que se explicarán a continuación. En la planificación, son
empleados para la programación de actividades en un corto período de tiempo, en
el diseño son utilizados para la delineación de sistemas eléctricos o digitales y en
la simulación son usados para la verificación de determinados procedimientos.

4
4. Algoritmos de vuelta atrás

Se conocen como estrategias recursivas que resuelven problemas como los


rompecabezas, laberintos o piezas similares, en el que se realiza una búsqueda
profunda para hallar una posible solución. Su nombre hace referencia al hecho de
que en las indagaciones realizadas para encontrar algún resultado, siempre se va
volviendo al punto anterior para poder tantear alternativas. Éstos suelen ser
revocados para observar su impacto en la economía, en los mercados, en el
marcaje de precios, en ciertas operaciones y hasta en la misma sociedad.

5. Algoritmo voraz

Se conoce como el destructor o el goloso y es aplicable en los problemas de


optimización, en cada paso de este algoritmo se toma una elección lógica y óptima
para finalizar con la mejor de las soluciones globales. Sin embargo, se debe tomar
en cuenta que una vez que se llega a un juicio no se puede hacer absolutamente
nada para corregirlo o cambiarlo en un futuro. Esta operación posee este nombre
porque en cada paso se elige la mejor fracción que es capaz de “engullir” sin
preocuparse de lo que pase más adelante.

Propiedades de un algoritmo
algoritmo-4
Diversos autores han intentado definir a los algoritmos de una manera formal
mientras utilizan modelos matemáticos. Sin embargo, estos ejemplares están
íntimamente relacionados a un tipo peculiar de información que incluye números,
símbolos y algunas gráficas, mientras que funcionan sobre una extensa cantidad
de distribución de datos. Por lo general, la participación común de cada una de las
definiciones se ve resumida en las siguientes tres propiedades:

Enunciado del problema


La resolución de problemas por medio de un ordenador, puede consistir en aquél
proceso en el que se describe un problema y se permite desarrollar algún
programa capaz de resolverlo. En este proceso se exige el análisis del problema,
el diseño de un algoritmo y su transformación en un programa, además de la
realización y validación de la misma. Los dos primeros pasos son los más
complejos en este proceso, pero una vez examinado el problema y obtenido un
algoritmo que pueda resolverlo, su tarea se basa principalmente en traducirlo al
lenguaje de programación que se desea.

Análisis de la solución general


Una vez definido el problema, es momento de analizar lo siguiente:

La informacion de las entradas que nos porporcionan.


Los resultados que se desean.
El dominio de trabajo, enunciados u otros elementos necesarios.
El análisis de los algoritmos se conocen como la parte más importante de la teoría
de complejidad computacional más amplia, pues suministra cálculos teóricos para
5
los recursos que requieren de cualquier algoritmo para la resolución de un
problema computacional dado. A la hora de ejecutar una investigación teórica, es
frecuente calcular sus complicaciones en un sentido asintótico para obtener un
tamaño de entrada lo suficientemente grande. La cota superior asintótica junto a
las notaciones theta y omega, se emplean con esa finalidad y cabe destacar que
la medida no asintótica puede llegar a ser computarizada.

Las medidas precisas de eficiencia son realmente útiles para aquellos que
realmente emplean los algoritmos, pues éstas poseen más precisión y esto les
permite determinar el tiempo que tomará la ejecución. Para algunos individuos
como los creadores de videojuegos, la constante oculta puede llegar a significar
una gran diferencia entre el éxito y el fracaso. Las evaluaciones del tiempo pueden
llegar a depender de cómo se defina un determinado paso y para que el análisis
cobre sentido se debe garantizar que el tiempo se encuentre acotado
notablemente por una constante.

Elaboración del algoritmo


Para llevar a cabo el desarrollo de una operación es importante que se realice una
serie de procedimientos para cumplir con la resolución de un problema
propiamente dado. Para comenzar se debe realizar un análisis previo de la
dificultad y esto se efectúa mediante un estudio que demuestre el verdadero
funcionamiento del problema mucho antes de realizar cualquier algoritmo. Por
consiguiente, se evalúa la definición de requerimientos, en éste paso se debe
tener clara la idea de cuáles son los problemas a solucionar, ya sea la suma de
dos números, el ordenamiento de una lista de números, etc.

Más adelante se ejecuta la respectiva identificación de módulos, pues de ésta


depende la correcta realización de algoritmos para dar las posibles soluciones a
las exigencias que se identificaron anteriormente.

Finalmente se implementa el càlculo en un lenguaje de programación que sea


comprensible por una computadora para que sea capaz de comprender las
instrucciones que él mismo modela y así las pueda efectuar alcanzando el
resultado esperado. En este último procedimiento ya se puede hablar de un
programa que está compuesto por una serie de instrucciones que se ordenan
unas tras otras y logran dar solución a requerimientos establecidos.

Es importante mencionar que en el tiempo secuencial, los algoritmos desempeñan


su función en un tiempo discretizado y buscan definir las secuencias de estados
computacionales en cada entrada que se considere válida. En el estado abstracto,
estas operaciones son elementos independientes y se considera que en ellos las
estructuras de primordial orden pueden llegar a ser invariantes bajo el
isomorfismo. En la exploración acotada, Las transiciones de un estado a otro
quedan completamente establecidas por una explicación permanente y finita, en el
que entre un estado y el siguiente, sólo se toma en cuenta la cantidad limitada de
los términos del estado actual.

6
Tampoco hay que dejar pasar inadvertido que los algoritmos suelen expresarse a
través de lenguajes de programación «pseudocódigos» la lengua habitual e
incluso los conocidos diagramas de flujo. Asimismo, es importante mencionar que
los algoritmos cumplen un papel fundamental en la informática debido a su
representación de datos como sucesiones de bits. Desde otro ángulo, se define
que un programa es el algoritmo que expresa a la computadora aquellos pasos
determinados que debe seguir para cumplir adecuadamente ciertas actividades.
Por otro lado, aprender a escribir pseudocódigo permite que la programación sea
más sencilla y por ende se explicará más adelante.

Los lenguajes de programación, se conocen como una lengua formal o artificial


por poseer reglas gramaticales que se encuentran bien definidas, ésta tiene la
capacidad de proporcionarle al programador la capacidad de textualizar una serie
de instrucciones o sucesiones de reglamentos en forma de algoritmos con la
finalidad de mantener un control en cuanto al comportamiento físico y lógico de la
computadora, de esta manera, se puede alcanzar los diversos tipos de
información. A este conjunto de preceptos escritos por medio de un lenguaje de
programación se le designa como programa.

Los lenguajes de programación suelen estar formados por un conjunto de


símbolos y reglas gramaticales y semánticas que definen las estructuras vigentes
de la lengua y su significado. Desde otra perspectiva, los lenguajes informáticos
también engloban a los lenguajes de programación, un claro ejemplo de esto es el
HTML que es el que cumple determinadas instrucciones para poder llevar a cabo
el contenido de distintos documentos. El lenguaje de programación puede permitir
que se especifique de manera precisa aquellos datos que deben ser operados por
un software específico bajo una surtida escala de circunstancias.

Por otro lado, el pseudocódigo es el lenguaje de descripción algorítmico que


emplea las convenciones elementales de un lenguaje de programación real, pero
que está diseñado para la lectura humana en vez de la lectura a través de una
máquina, manteniendo independencia de cualquier otro tipo de lenguaje de
programación. El pseudocódigo ignora detalles que no se consideran esenciales
para el entendimiento humano del algoritmo, tales como códigos propios de un
sistema, declaraciones de variables e incluso algunas subrutinas. De este modo,
el lenguaje de programación busca complementarse con descripciones precisas
en lenguaje natural o con notaciones matemáticas compactas.

También podría gustarte