Clasificación de algoritmos y herramientas de representación: diagramas de flujo, N-S y pseudocódigo
Resumen
El documento explica cómo se clasifican los algoritmos según la estrategia empleada, distinguiendo entre probabilísticos, heurísticos, de escalada, voraces y deterministas. Además, describe los lenguajes algorítmicos gráficos y no gráficos y las herramientas de representación: diagramas de flujo, diagramas estructurados N-S y pseudocódigo.
Puntos clave
- Los algoritmos probabilísticos no garantizan la exactitud de su respuesta: pueden ofrecer soluciones aproximadas o correctas pero también erróneas.
- Los algoritmos heurísticos abandonan alguno de los objetivos para llegar a una solución, y se usan cuando no existe una vía tradicional.
- El algoritmo voraz (greedy) analiza cada paso de forma independiente y elige la solución óptima para ese paso.
- Un algoritmo determinista es lineal y predecible; el Algoritmo de Euclides para el máximo común divisor es un ejemplo.
- Un lenguaje algorítmico es un conjunto de símbolos y reglas para describir un proceso de forma explícita; puede ser gráfico (diagrama de flujo) o no gráfico (pseudocódigo).
- Los diagramas N-S, también llamados diagramas de Chapin, omiten las flechas y colocan las cajas de forma contigua.
Clasificación de Algoritmos por Estrategia
Los algoritmos se clasifican según la estrategia que se utiliza para llegar al resultado. A continuación, se presentan varios tipos:
Tipos de Algoritmos
Algoritmos Probabilísticos
No se puede estar seguro de la exactitud de la respuesta que proporcionarán. Se agrupan en distintos subtipos: o bien presentan soluciones aproximadas del problema, o bien presentan soluciones que pueden ser correctas, pero también erróneas.
Algoritmo Cotidiano
Es el que se da en la vida común de las personas. No se aplica en sistemas informáticos ni en nada ajeno al día a día.
Algoritmo Heurístico
Abandona alguno de los objetivos como recurso para terminar llegando a la solución. En general, son utilizados cuando no existe una solución mediante las vías tradicionales.
Algoritmo de Escalada (Hill Climbing)
Se comienza con una solución insatisfactoria (que no cumple la entrada y la salida) y se la va modificando, aproximándose a lo que se busca. En algún momento, se estará cerca de (o se llegará a) la solución correcta.
Algoritmo Voraz (Greedy Algorithm)
Con la idea de llegar a una solución óptima definitiva, elige analizar cada paso como único y seleccionar la solución óptima para ese paso específico.
Algoritmo Determinista
Es completamente lineal (cada paso tiene un paso sucesor y un paso predecesor) y, por lo tanto, predictivo, si se conocen sus entradas y su forma de proceder. El Algoritmo de Euclides, que permite averiguar el máximo común divisor entre dos números, responde a este tipo. Se distinguen de los no deterministas, donde el algoritmo tiene un comportamiento en forma de árbol.
Lenguajes y Representación Algorítmica
Lenguajes Algorítmicos
Es una serie de símbolos y reglas que se utilizan para describir de manera explícita un proceso.
Tipos de Lenguajes Algorítmicos
Gráficos
Es la representación gráfica de las operaciones que realiza un algoritmo (ejemplo: el diagrama de flujo).
No Gráficos
Representa en forma descriptiva las operaciones que debe realizar un algoritmo (ejemplo: el pseudocódigo).
Herramientas de Representación
Diagrama de Flujo
Se basa en la utilización de diversos símbolos para representar operaciones específicas. Se les llama diagramas de flujo porque los símbolos utilizados se conectan por medio de flechas para indicar la secuencia de la operación.
Diagramas Estructurados (Nassi-Schneiderman o N-S)
El diagrama estructurado N-S, también conocido como Diagrama de Chapin, es similar a un diagrama de flujo, pero omite las flechas de unión y las cajas son contiguas. Las acciones sucesivas se escriben en cajas sucesivas y, al igual que en los diagramas de flujo, se pueden escribir diferentes acciones en una caja.
Los diagramas estructurados son una técnica que permite formular algoritmos mediante una representación geométrica y de asignación de espacios de un bloque específico.
Pseudocódigo
El pseudocódigo cumple dos funciones principales:
- Es una mezcla de lenguaje de programación y español que se emplea, dentro de la programación estructurada, para realizar el diseño de un programa. En esencia, se define como un lenguaje de especificaciones de algoritmos.
- Es la representación narrativa de los pasos que debe seguir un algoritmo para dar solución a un problema determinado. Utiliza palabras clave que indican el proceso a realizar.
Descargar
PDF Word HTMLPreguntas frecuentes
¿Qué diferencia hay entre un algoritmo determinista y uno no determinista?
El algoritmo determinista es completamente lineal: cada paso tiene un sucesor y un predecesor, por lo que es predecible si se conocen sus entradas. El no determinista tiene un comportamiento en forma de árbol.
¿Qué es el pseudocódigo?
Es una mezcla de lenguaje de programación y español que se usa en la programación estructurada para diseñar programas. Describe narrativamente los pasos del algoritmo mediante palabras clave.
¿Qué es un diagrama N-S o de Chapin?
Es un diagrama estructurado similar al diagrama de flujo, pero sin flechas de unión y con cajas contiguas. Las acciones sucesivas se escriben en cajas sucesivas.
Ponte a prueba
Tarjetas de repaso
Pulsa una tarjeta para ver la respuesta.
Test
Preguntas generadas con IA a partir del documento: comprueba las respuestas con el texto.