Clasificación de algoritmos y herramientas de representación: diagramas de flujo, N-S y pseudocódigo

Informática y TelecomunicacionesActualizado el 3,6 KB

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.

Ponte a prueba

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 HTML

Preguntas 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

1. ¿Qué tipo de algoritmo abandona alguno de sus objetivos para llegar a una solución?
2. ¿Qué algoritmo permite averiguar el máximo común divisor entre dos números?
3. ¿Cómo elige su solución un algoritmo voraz?
4. ¿Qué tipo de lenguaje algorítmico es el pseudocódigo?
5. ¿Qué característica distingue al diagrama N-S del diagrama de flujo?

Preguntas generadas con IA a partir del documento: comprueba las respuestas con el texto.