Resolver un problema enfoque sistémico

Introducción

Casi inconscientemente, los humanos efectuamos cotidianamente una serie de pasos, procedimientos o acciones que nos permiten alcanzar un resultado o resolver un problema.

Esta serie de pasos, procedimientos o acciones, comenzamos a aplicarlas muy temprano en la mañana cuando, por ejemplo, decidimos tomar un baño. Posteriormente cuando pensamos en desayunar también seguimos una serie de pasos que nos permiten alcanzar un resultado específico: tomar el desayuno. La historia se repite innumerables veces durante el día. Continuamente seguimos una serie de pasos o conjunto de acciones que nos permiten alcanzar un resultado. Estamos en realidad aplicando un algoritmo para resolver un problema.

Definición de algoritmo

Formalmente definimos un algoritmo como un conjunto de pasos, procedimientos o acciones que nos permiten alcanzar un resultado o resolver un problema.

Muchas veces aplicamos el algoritmo de manera inadvertida, inconscientemente o automáticamente. Esto generalmente se produce cuand o el problema que tenemos enfrente lo hemos resuelto con anterioridad un gran número de veces.

Supongamos que simplemente tenemos que abrir una puerta. Lo hemos hecho tantas veces que difícilmente nos ponemos a enumerar los pasos para alcanzar este objetivo. Lo hacemos de manera automática. Lo mismo ocurre cuando queremos subirnos a un automóvil, cuando tenemos que lustrar nuestros zapatos, cuando nos calzamos, cuando nos vestimos, cuando tenemos desafortunadamente que cambiar la llanta de un automóvil o, simplemente cuando queremos tomar un vaso con agua.

Ejemplo de algortimos

Veamos un ejemplo de algoritmo que es muy conocido para todos nosotros y recibe el nombre de receta de cocina.

Pechuga de pollo en salsa de elote y chile poblano

Ingredientes (para seis personas):

3 pechugas deshuesadas, sin piel y partidas a la mitad. 1 diente de ajo.
4 gramos de pimienta negra. Sal.
6 cucharadas de aceite.
5 chiles poblanos asados y limpios. ½ taza de leche.
¼ taza de crema ligera.
1 lata de crema de elote.

Algoritmo (Preparación):

– Muela el ajo, la pimienta y un poco de sal y úntese lo a las pechugas.
– Caliente el aceite y dore las pechugas.
– Licúe los chiles con la leche y la crema, y mézclel os con la crema de elote.

  • En una fuente coloque las pechugas y báñelas con la mezcla anterior.
  • Cubra el platón con papel aluminio y hornee a 200º C, durante 15 minutos.

En resumen, todo algoritmo debe ser:

  • Preciso. Indicando el orden de realización de cada uno de los pasos.
  • Definido. Si se sigue el algoritmo varias veces proporcionándole los mismos datos, se deben obtener siempre los mismos resultados.
  • Finito. Al seguir el algoritmo, éste debe terminar en algún momento, es decir, tener un número finito de pasos.

Para diseñar un algoritmo se debe comenzar por identificar las tareas más importantes para resolver el problema y disponerlas en el orden en el que han de ser ejecutadas. Los pasos en esta primera descripción de actividades deberán ser refinados, añadiendo más detalles a los mismos e incluso, algunos de ellos, pueden requerir un refinamiento adicional antes de que podamos obtener un algoritmo claro, preciso y completo. En un algoritmo se deben de considerar tres partes:

  • Entrada. Información dada al algoritmo.
  • Proceso. Operaciones o cálculos necesarios para enc ontrar la solución del problema.
  • Salida. Respuestas dadas por el algoritmo o resultados finales de los cálculos.

Como ejemplo se desarrolla un algoritmo para lavar los platos de la comida.

Análisis del problema

Datos de Salida: Platos limpios. Datos de Entrada: Platos sucios.
Proceso: Preparar lo necesario para el lavado de platos, lavar platos mientras quede alguno sucio y luego secarlos.

Algoritmo

Inicio
Abrir el grifo o llave del agua
Tomar el estropajo
Echarle jabón
Mientras queden platos
Lavar el plato
Enjuagarlo
Dejarlo en el escurridor
Mientras queden platos en el escurridor
Secar plato
Fin

Observemos las siguientes características del algoritmo.

  • Principia con la palabra Inicio.
  • La palabra Mientras se usa para actividades que se van a seguir realizando «mientras» se cumpla la condición establecida: queden platos.
  • Para distinguir las actividades incluidas en el mientras se amplía su margen.
  • Termina con la palabra Fin.

Veamos un ejemplo con un algoritmo un poco más gran de. Algoritmo para ir al cine.

Análisis del problema

Datos de Salida: Ver la película.
Datos de entrada: Nombre de la película, dirección de la sala, hora de proyección.
Proceso: Seleccionar una película de la cartelera del periódico, ir a la sala y comprar la entrada para, finalmente, poder ver la película.

Algoritmo

Inicio

//seleccionar la película — comentario para identificar el proceso tomar el periódico
mientras no lleguemos a la cartelera pasar la hoja
mientras no se acabe la cartelera
leer película
si nos gusta, recordar el título
elegir una de las películas entre las que nos gustaron leer la dirección de la sala y la hora de proyección
// comprar la entrada — otro comentario trasladarse a la sala
si no hay entradas, ir a fin si hay fila de espera
ponerse al final de la fila
mientras no lleguemos a la taquilla avanzar
si hay entradas comprar la entrada sino ir a fin
//ver la película –comentario buscar asiento
sentarse
ver la película
fin

Observamos nuevas características en este algoritmo.

– Se usan dobles diagonales (//) para separar las instrucciones en bloques. Son comentarios que nos permiten entender más fácilmente cuáles son las tareas más importantes que conforman el algoritmo.  Estos  se  pueden  usar  luego  para  dividir  el  programa  en  módulos.
– Se usa la palabra si para decidir entre realizar una acción o no dependiendo de la condición establecida: ¿Hay fila de espera? Entonces nos ponemos al final de la misma.

  • En ocasiones «si» va acompañada de «sino» que a diferencia de la anterior permite elegir entre dos acciones.
  • Los «si» pueden contener dentro de sí a los «mientras» y a la inversa.
  • Los  márgenes  nos  permiten  distinguir  cuáles  instruc  ciones  pertenecen  solamente  al  «si»  y cuáles pertenecen al «si» y también al «mientras» d entro del «si».
  • Hay condiciones que nos obligan a ir al fin y así terminar con el algoritmo sin necesidad de realizar todas las instrucciones.