Documente Academic
Documente Profesional
Documente Cultură
Tipos de algoritmos
La ejecución de un algoritmo por parte de una máquina es posible porque estos
no requieren ninguna decisión subjetiva ni el uso de la intuición o de la
creatividad. Sin embargo, eso no significa necesariamente que los pasos que
ejecuta un algoritmo se puedan determinar con precisión de antemano o que
siempre den una respuesta exacta y sin errores. Los algoritmos probabilistas
realizan elecciones aleatorias en determinados momentos de su ejecución. Los
algoritmos aproximados dan una solución a un problema dentro de un margen
de error que puede ser establecido de antemano. Los algoritmos heurísticos
son algoritmos que dan una solución aproximada a un problema donde no
podemos controlar la magnitud del error. Lo importante al considerar estos
tipos de algoritmos es que en ningún caso implican la ejecución de
instrucciones o la toma de decisiones de forma arbitraria. Los mecanismos
siempre están determinados de antemano, lo que varían son los resultados de
ejecutarlos, por ejemplo, al usar un generador de números pseudoaleatorios.
Técnicas de diseño de algoritmos
La creación de algoritmos, como todo proceso de resolución de problemas, es
una actividad eminentemente creativa sin embargo la investigación en el
campo ha identificado diversas técnicas comunes que facilitan la resolución de
problemas. Entre las más comunes se encuentran las siguientes:
Recorridos sobre grafos: Los algoritmos de este tipo expresan un problema como un
conjunto de elementos interconectados entre sí y buscan la solución recorriendo la
estructura resultante, llamada grafo.
Representación de algoritmos[editar]
Los algoritmos son procedimientos conceptuales y no tienen una representación tangible
por sí mismos. Para poder comunicarlos a otras personas o a las máquinas y para poder
documentarlos para referencia posterior es necesario expresarlos de alguna manera. Esta
representación debe ser clara y sin ambigüedades.[5]
Existen muchas técnicas para representar los algoritmos y comunicarlos a otras personas.
Sin embargo las más comunes son el pseudocódigo y los diagramas de flujo. El
pseudocódigo es una versión sumamente restringida del lenguaje natural que permite
expresar los pasos de los algoritmos sin sufrir de las ambigüedades presentes en los
textos que usamos para comunicarnos diariamente. Las computadoras no entienden
directamente el pseudocódigo ya que no incluye todos los detalles que necesitan pero los
seres humanos son capaces de traducirlo al lenguaje de las computadoras con relativa
facilidad. Los diagramas de flujo son un conjunto de elementos gráficos que representan
los diferentes pasos del algoritmo y un conjunto de líneas con dirección que los conectan y
que indican el orden de ejecución.[1]
Una vez que el algoritmo se ha especificado adecuadamente, es necesario convertirlo en
un programa mediante un lenguaje de programación para que las computadoras puedan
entenderlo y ejecutarlo.