martes, 5 de julio de 2016

Diseñas y elaboras algoritmos para la solución de problemas (Bloque 1)

Cuando hablamos de problemas, estamos hablando de elementos que obstaculizan el correcto o normal desempeño de los procesos, situaciones y fenómenos que nos rodean. Estos problemas pueden ser alteraciones generadas accidental o voluntariamente por agentes externos y su resolución se convierte entonces en algo de suma importancia para restituir las condiciones de normalidad antes existentes. Proveniente del griego, la palabra 'problema' significa que hay algo que se ha hecho presente y es por esto que siempre la existencia de un problema nos da la sensación de inmediatez o de algo repentino generado por diversas causas y que requiere solución.




Metodología de la Solución


La resolución de los problemas consta de cinco etapas que garantizan la llegada correcta a la solución: identificación del problema, planteamiento de alternativas de solución, elección de una alternativa, desarrollo de la solución y evaluación de ésta. 

1. Identificación del problema
La identificación del problema es una fase muy importante en la metodología, pues de ella depende el desarrollo ulterior en busca de la solución. Un problema bien delimitado es una gran ayuda para que el proceso general avance bien; un problema mal definido provocará desvíos conceptuales que serán difíciles de remediar posteriormente. En esta etapa es fundamental el análisis de la información inicial (entrada) con el fin de distinguir los datos pertinentes de los que no lo son, de manera que se pueda elegir la configuración más conveniente respecto a las soluciones posibles. También deben definirse los datos de salida que garanticen la continuidad del proceso para que sea más fácil eliminar las expectativas negativas.

2. Planteamiento de alternativas de solución 
Después de la definición del problema y del análisis de los datos de entrada, el proceso continúa con el análisis de las alternativas de solución. Por lo general, la solución de un problema puede alcanzarse por distintas vías. Es útil tratar de plantear la mayor cantidad de alternativas posibles de solución, pues de esta forma las probabilidades aumentan a favor de encontrar la vía correcta. Se debe destacar que no es conveniente extender demasiado el número de alternativas, pues si el número de éstas es demasiado alto, se presentará una mayor dificultad para elegir la mejor de todas, que es en definitiva el objetivo del proceso. 
3. Elección de una alternativa 
Después de tener todo el repertorio de alternativas, es necesario pasar a otra etapa: la elección de la mejor entre todas las posibilidades. Esta fase es muy importante porque de la elección realizada depende el avance final hasta la solución. La orientación hacia delante supone la irreversibilidad si la decisión es acertada o una "reversibilidad onerosa", pues si la decisión no es acertada, es necesario retroceder, lo que afecta la "optimidad" del proceso. 

Por lo tanto, es necesario que cada alternativa sea bien analizada para que la toma de decisiones sea bien justificada. Deberás elegir la alternativa que sea la más adecuada para la solución del problema, tomando en cuenta las características del problema y las características que deberá tener la solución, así como los elementos, datos o información con la que cuentas. 


4. Desarrollo de la solución 
Después de decidir cuál es la mejor alternativa de todas, se llega a la etapa de la solución. En esta fase, a partir de los datos relacionados con la alternativa seleccionada, se aplican las operaciones necesarias para solucionar el problema. La selección de los procesos también debe ser determinada en función de la optimidad, es decir, las operaciones deben llegar a la solución por el camino más corto para garantizar la mayor eficiencia en el funcionamiento. Si la alternativa es la óptima, llevará a la solución deseada que fue prevista en la identificación del problema. 


5. Evaluación de la solución 
Luego de haber desarrollado la solución queda aún una etapa, que es la evaluación. En los procesos industriales a este procedimiento se le llama control de la calidad y consiste en determinar que la solución obtenida 'es lo que se esperaba conseguir comprobando que el resultado sea correcto. En esta fase se deben "pulir" los procesos ya realizados y tratar de llevarlos a un grado mayor de optimidad, pues el algoritmo más eficiente en la solución de un problema es el que llega a su objetivo final con la mayor economía de procedimientos que sea posible. A continuación, puedes observar un ejemplo de la aplicación de la metodología a la solución de un problema simple. Es importante saber que los problemas complejos también se resuelven con esta estructura. 



Algoritmo

Se denomina algoritmo a un grupo finito de operaciones organizadas de manera lógica y ordenada que permite solucionar un determinado problema. Se trata de una serie de instrucciones o reglas establecidas que, por medio de una sucesión de pasos, permiten arribar a un resultado o solución.
Según los expertos en matemática, los algoritmos permiten trabajar a partir de un estado básico o inicial y, tras seguir los pasos propuestos, llegar a una solución. Cabe resaltar que, si bien los algoritmos suelen estar asociados al ámbito matemático (ya que permiten, por citar casos concretos, averiguar el cociente entre un par de dígitos o determinar cuál es el máximo común divisor entre dos cifras pertenecientes al grupo de los enteros), aunque no siempre implican la presencia de números.

CARACTERÍSTICAS DE LOS ALGORITMOS 
- Finitos: Debe acabar en algún momento. 
- Eficientes: Deben ocupar la mínima memoria y minimizar el tiempo de ejecución. 
- Legibles: El texto que lo describe debe ser claro, tal que permita entenderlo y leerlo fácilmente.
 - Modificables: Estarán diseñados de modo que sus posteriores modificaciones sean fáciles de realizar, incluso por programadores diferentes a sus propios autores.
 - Modulares: La filosofía utilizada para su diseño debe favorecer la división del problema en módulos pequeños. 
- Único punto de entrada, único punto de salida: A los algoritmos y a los módulos que lo integran se entra por un sólo punto, inicio, y se sale por un sólo punto también, fin.


Diagramas de Flujo

El diagrama de flujo o diagrama de actividades es la representación gráfica del algoritmo o proceso. Se utiliza en disciplinas comoprogramación, economía, procesos industriales y psicología cognitiva. En Lenguaje Unificado de Modelado (UML), un diagrama de actividades representa los flujos de trabajo paso a paso de negocio y operacionales de los componentes en un sistema. Un diagrama de actividades muestra el flujo de control general. En SysML el diagrama ha sido extendido para indicar flujos entre pasos que mueven elementos físicos (p. ej., gasolina) o energía (p. ej., presión). Los cambios adicionales permiten al diagrama soportar mejor flujos de comportamiento y datos continuos. Estos diagramas utilizan símbolos con significados definidos que representan los pasos del algoritmo, y representan el flujo de ejecución mediante flechas que conectan los puntos de inicio y de fin del proceso.


Reglas para la construcción de Diagramas de flujo




Para la representación de algortimos por diagramas de flujo se deben seguir ciertas reglas que a continuación se lista:

• Poner un encabezado que incluya un título que identifique la función del algoritmo; el nombre del
autor; y la fecha de elaboración;

• Sólo se pueden utilizar símbolos estándar (ISO 5807);

• Los diagramas se deben dibujar de arriba hacía abajo y de izquierda a derecha;

• La ejecución del programa siempre empieza en la parte superior del diagrama;
• Los símbolos de “Inicio” y “Final” deben aparecer solo una vez;

• La dirección del flujo se debe representar por medio de flechas (líneas de flujo);

• Todas las líneas de flujo deben llegar a un símbolo o a otra línea;

• Una línea de flujo recta nunca debe cruzar a otra. Cuando dos líneas de flujo se crucen, una de ellas
debe incluir una línea arqueada en el sitio donde cruza a la otra ;

• Se deben inicializar las variables que se utilicen o permitir la asignación de valores mediante consulta al usuario;

• Las bifurcaciones y ciclos se deben dibujar procurando una cierta simetría;

• Cada rombo de decisión debe tener al menos dos líneas de salida (una para SI y otra para NO);

• Las acciones y decisiones se deben describir utilizando el menor numero de palabras posible; sin
que resulten confusas o poco claras;

• Si el Diagrama se vuelve complejo y confuso, es mejor utilizar símbolos conectores para reducir las
líneas de flujo;

• Todo el Diagrama debe ser claro, ordenado y fácil de recorrer;

• El Diagrama se debe probar recorriéndolo con datos iniciales simples (prueba de escritorio).

Ventajas de los diagramas de flujo

Favorecen la comprensión del proceso al mostrarlo como un dibujo.
El cerebro humano reconoce fácilmente los dibujos.
Un buen diagrama de flujo reemplaza varias páginas de texto.
• Permiten identificar los problemas y las oportunidades de mejora del proceso.
• Son una excelente herramienta para capacitar a los nuevos empleados y también a los que desarrollan la tarea, cuando se realizan mejoras en el proceso.
• También puede ser utilizados para clases de talleres o de acciones sobre bachilleratos técnicos. Reglas para la construcción de diagramas de flujo
• Cualquier diagrama de flujo debe tener un inicio y un fin.
• Las líneas utilizadas para indicar la dirección del flujo deben ser rectas, verticales y horizontales.
• Todas las líneas utilizadas para indicar la dirección del flujo deben estar conectadas.
• El diagrama de flujo debe ser construido de arriba hacia abajo y de izquierda a derecha.
• No pueden llegar más de una línea a un símbolo.

Existen varios programas y lenguajes de programación para resolver algoritmos. Uno de ellos el es programa DFD con el cual se pueden analizar y desarrollar algoritmos.

Este programa cuenta con diversas herramientas e instrucciones útiles para la elaboración de algoritmos.

Solución de problemas

Ejemplos de problemas y formas de solución

Simulando la preparación de un pay
A continuación se emplea la metodología de solución de problemas para definir e implementar los pasos necesarios para simular la solución a un problema simple.

Hornear y servir un pay de fruta
Se puede ofrecer la implementación en el lenguaje de programación llamado C de la solución encontrada, aunque de manera simulada. Esto quiere decir que algunas operaciones no hacen nada en realidad, sino que simulan la ocurrencia de acciones que deben llevarse a cabo.

1. Definición del problema
Conceptualización: El problema consiste en preparar un pay de alguna fruta específica, de acuerdo con cierta receta proporcionada, y servirlo a cierta cantidad de comensales.
Se recibirá como entrada la receta para hornear, es decir, la cantidad de huevos, harina y mantequilla que se empleará, la fruta con que se cubrirá la base y la cantidad correspondiente, así como el tiempo que debe permanecer en el horno. Adicionalmente, se recibe el número de comensales que disfrutarán del producto final, para poder cortarlo y servirlo.

Objetivo: el objetivo es poder seguir la receta proporcionada de modo que podamos obtener como resultado un pay de fruta que podamos repartir a los comensales.



DFD
Practica guiada
http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=314:ejemplos-y-ejercicios-resueltos-de-algoritmia-diagramas-de-flujo-y-pseudocodigo-calcular-media-cu00140a&catid=28:curso-bases-programacion-nivel-i&Itemid=59

No hay comentarios:

Publicar un comentario