resolución de problemas - cs.buap.mxmtovar/doc/mp/unidad1m.pdf · almacenado en la memoria a corto...

58
Unidad I Resolución de Problemas Otoño 2010

Upload: lenhan

Post on 29-Sep-2018

212 views

Category:

Documents


0 download

TRANSCRIPT

Unidad I

Resolución de Problemas

Otoño 2010

MC Mireya Tovar Vidal 2

Ingeniero en computación

Persona que resuelve problemas computacionales

DesarrolloConectividad

Soporte

Diseño

Consultoría

Otros…

FCC - BUAP Otoño 2010

MC Mireya Tovar Vidal 3

Fase de RESOLUCIÓN de PROBLEMAS Fase de IMPLEMENTACIÓN

Fase de MANTENIMIENTO

Tom

ado d

e: Pro

gra

mm

ing and P

roble

m S

olv

ing w

ith Java.

Nell D

ale

Chap 1

FCC - BUAP Otoño 2010

MC Mireya Tovar Vidal 4FCC - BUAP Otoño 2010

FCC - BUAP Otoño 2010 5

UnProblema

es una

situación

en la cual un

individuo

actúa

meta

utilizando una

estrategia

para alcanzar una

desea

hacer algo

curso de

acción

para alcanzar la

meta

pero desconoce el

Tom

ado d

e L

ibro

5:

Estr

ate

gía

s d

e r

esolu

ció

n d

e p

roble

mas –

Lis

sete

Poggio

li

MC Mireya Tovar Vidal

Cuando hablamos de un problema y nos

referimos a la meta o a lograr lo que se

quiere, nos estamos refiriendo a la solución

de dicho problema.

Una solución esta asociada con:

6

Estado inicial

Solución o meta

Problema

FCC - BUAP Otoño 2010MC Mireya Tovar Vidal

FCC - BUAP Otoño 2010 7

Losproblemas

tienen

componentes

alcanzar

metas

analizar

son lo que se

las

desea

datos

los

elementos

son

para

situación

problema

la

camino

restricciones

las

factores

son

que limitan

solución

la

el

para alcanzar

resolver

operaciones

las

procedimientos

son

para

problema

el

Tom

ado d

e L

ibro

5:

Estr

ate

gía

s d

e r

esolu

ció

n d

e p

roble

mas –

Lis

sete

Poggio

li

MC Mireya Tovar Vidal

Consideremos el siguiente ejemplo:“Anita tiene una muñeca y quiere vestirla con pantalón y blusa. Tiene

cuatro pantalones: rojo, blanco, azul y negro y tiene tres blusas:verde, amarillo y rosado. Ella quiere hacer diferentes combinacionescon todos los pantalones y las blusas verde y rosada. ¿Cuántascombinaciones diferentes puede hacer?”

¿Cuál es la Meta(s)? Consiste en saber cuántas combinaciones diferentes puede hacer

Anita con los pantalones y las blusas ¿Cuáles son los datos?

4 pantalones y 3 blusas Las restricciones ?

Anita solo quiere utilizar 2 de las 3 blusas: la verde y rosada. Enconsecuencia no todas las blusas van a ser consideradas para lascombinaciones

Operaciones o métodos ? Utilizar las operaciones requeridas para obtener el número de

combinaciones

FCC - BUAP Otoño 2010 8MC Mireya Tovar Vidal

FCC - BUAP Otoño 2009MC Beatriz Beltrán Martínez 9

Diariamente resolvemos problemas, la

mayoría de las veces, sin darnos cuenta del

proceso que realizamos.

Algunos problemas están claramente definidos -

como los que mencionamos anteriormente- pero

en la vida real, los procesos no son tan simples.

La mayoría de las veces, tendremos que definir

el problema nosotros mismos y decidir con que

información vamos a trabajar y que resultados

debemos obtener.

MC Mireya Tovar Vidal 10FCC - BUAP Otoño 2010

Según Dijkstra (1991), la resolución de

problemas es un proceso cognoscitivo

complejo que involucra conocimiento

almacenado en la memoria a corto y a largo

plazo.

MC Mireya Tovar Vidal 11FCC - BUAP Otoño 2010

Comprender el problema (análisis y especificación)

Concebir un plan para llegar a la

solución (estrategia)

Ejecutar el plan

Verificar el procedimiento y comprobar los

resultados

MC Mireya Tovar Vidal 12

Polya (1965) señala que un problema puede

resolverse correctamente si se realizan las

siguientes fases o etapas:

FCC - BUAP Otoño 2010

MC Mireya Tovar Vidal 13FCC - BUAP Otoño 2010

Técnicas para

resolución de

problemas

Hacer preguntas

Dividir y Vencer

Por analogía

Buscar cosas que

son familiares

Análisis de medios y

fines

Bloques de construcción

Combinar soluciones

En equipos de 5 integrantes, tienen 7

minutos para resolver el siguiente

problema

Descripción:

Obtener un lista de los diferentes

lugares de procedencia de sus

compañeros y el promedio de edad.

Criterios para el éxito:

Cada equipo deberá haber obtenido la

información solicitada

Responsabilidad Individual:

Cualquier integrante del equipo podrá

ser seleccionado al azar para explicar la

solución al frenteMC Mireya Tovar Vidal 14FCC - BUAP Otoño 2010

Compartiendo la solución con todos

Explicar el proceso que siguieron para

resolver el problema

MC Mireya Tovar Vidal 15FCC - BUAP Otoño 2010

Una de las técnicas para resolución deproblemas más simples pero muy importante esla de hacer preguntas.

Debemos asegurarnos que estamos procediendoa resolver el problema real y no el problemaque percibimos

MC Mireya Tovar Vidal 16FCC - BUAP Otoño 2010MC Mireya Tovar Vidal

Siempre que se nos dé una tarea cuyo problema no estébien definido, o se requiera información adicional,debemos hacer preguntas hasta que tengamos claroexactamente que es lo que se quiere o tiene que hacer.

MC Mireya Tovar Vidal 17FCC - BUAP Otoño 2010

Problema

Qué

Cuándo

Por qué

Dónde

Cómo

Quién

18

Algunas preguntas útiles son:

¿Qué es lo que sé acerca del problema?

¿Cuál es la información con la que debo

trabajar para encontrar la solución?

¿Cómo se ve la solución, qué parece?

¿Qué clase de casos especiales existen?

¿Cómo voy a saber que he encontrado la

solución?

MC Mireya Tovar Vidal FCC - BUAP Otoño 2010

En equipos de 5 integrantes, tienen 10 minutos para resolver el siguiente

problema

Descripción:

Acaban de recibir como herencia un terreno con la forma de la

figura que se les entregará. Todos han acordado vender el terreno,

por lo cual, requieren calcular el área de éste para determinar su

precio.

Actividad:

Identificar y escribir en su cuaderno los componentes del problema

Resolver el problema (Cada equipo contará con una regla y tijeras)

Criterios para el éxito:

Cada equipo obtendrá el área de su terreno.

Todos los integrantes deben asegurarse que el resto de su equipo

entendió satisfactoriamente el proceso de resolución del problema.

Responsabilidad Individual:

Cualquier integrante del equipo podrá ser seleccionado al azar para

explicar la solución al frente

MC Mireya Tovar Vidal 19FCC - BUAP Otoño 2010

Información adicional

Área del trapecio = [(base mayor + base menor)*altura] / 2

Área del triángulo = (base * altura) / 2

Área del rectángulo = base*altura

Área del rombo = (diagonal mayor*diagonal menor) / 2

Área del paralelogramo = base*altura

Compartiendo la solución con todos

Explicar el proceso que siguieron para

resolver el problema

MC Mireya Tovar Vidal 21FCC - BUAP Otoño 2010

¿Logró el equipo resolver el problema

y es capaz de explicar el proceso?

¿Cómo se podría mejorar la próxima

vez?

MC Mireya Tovar Vidal 22FCC - BUAP Otoño 2010

La técnica que acaban de utilizar se llama Dividir y Vencer o divide y vencerás

Se basa en la idea de separar o dividir un problema grande en pequeñas piezas más manejables

23

Problema difícil

Sub-problema

fácil

Sub-Problema

difícil

Sub-problema

fácil

Sub-problema

fácil

Sub-problema

fácil

FCC - BUAP Otoño 2010MC Mireya Tovar Vidal

Otra técnica aplicable para nuestro problema, es la de

bloques de construcción, la cual, es otra forma de atacar

problemas “grandes”.

Esta técnica consiste en ver si existe solución para piezas

mas pequeñas del problema (los bloques o ladrillos) y si es

posible combinar estas soluciones para resolver todo o la

mayoría del problema grande (hacer la pared)

Para nuestra actividad las “piezas pequeñas” fueron las figuras

regulares, y la suma de todas las áreas, nos dio el área de la

figura completa.

24FCC - BUAP Otoño 2010MC Mireya Tovar Vidal

En equipos de 4 integrantes, tienen 15 minutos para resolver el siguiente

problema

Descripción:

Son el equipo campeón en armar rompecabezas y como parte de sus

responsabilidades y experiencia, deben escribir una guía o instructivo

para armar rompecabezas, que sirva de base para equipos novatos.

Actividad:

Identificar y escribir en su cuaderno los componentes del problema

Resolver el problema

Criterios para el éxito:

Cada equipo obtendrá la solución al problema

Todos los integrantes deben asegurarse que el resto de su equipo entendió

satisfactoriamente el proceso de resolución del problema.

Responsabilidad Individual:

Cualquier integrante del equipo podrá ser seleccionado al azar para explicar

la solución al frente.

25FCC - BUAP Otoño 2010MC Mireya Tovar Vidal

Compartiendo la solución con todos

Explicar el proceso que siguieron para

escribir la guía para armar un rompecabezas

26FCC - BUAP Otoño 2010MC Mireya Tovar Vidal

¿Logró el equipo resolver el problema y

es capaz de explicar el proceso?

¿Cómo se podría mejorar la próxima

vez?

27FCC - BUAP Otoño 2010MC Mireya Tovar Vidal

La técnica que acaban de utilizar se llama resolución por analogía.

Consiste en relacionar un problema o una situación, con otra semejante que ya se ha resuelto anteriormente. Es decir, identificar algún patrón común.

28FCC - BUAP Otoño 2010MC Mireya Tovar Vidal

29

Instructivo para construir papalotesReceta de cocina

Por Analogía

Guía para armar rompecabezas

FCC - BUAP Otoño 2010MC Mireya Tovar VidalMC Mireya Tovar Vidal

El punto es que puede haber más de un patrón en el problema, más de una respuesta correcta y más de una perspectiva desde la cual ver un problema.

Mediante está técnica se han originado soluciones creativas.

Por ejemplo, William Harvey fue el primero en aplicar la analogía de “bomba” al corazón, lo que llevó al descubrimiento del sistema circulatorio del cuerpo.

FCC - BUAP Otoño 2010MC Mireya Tovar Vidal 30

• Otra técnica que también podría aplicarse es la de buscar

cosas que sean familiares.

La idea es “nunca reinventar la rueda”.

Si una solución ya existe, usar esta. Es decir, si ya has

resuelto el mismo o un problema similar antes, sólo repite la

solución.

Incluso para escribir la guía, se podría investigar que existe

en internet!

Similarmente

FCC - BUAP Otoño 2010MC Mireya Tovar Vidal 31

Uno no aprende a ir a comprar el pan, después a ir a comprar leche, después huevo! , simplemente aprende uno a “ir a comprar a la tienda” , es decir, repite uno la misma solución.

En programación ciertos problemas se repiten uno y otra vez, por ejemplo obtener la máxima y mínima calificación de un grupo de alumnos, es igual a obtener la temperatura máxima y mínima de un conjunto de datos.

FCC - BUAP Otoño 2010MC Mireya Tovar Vidal 32

FCC - BUAP Otoño 2010MC Mireya Tovar Vidal 33

La técnica de análisis de medios y fines permite, trabajar con un objetivo o fin a la vez. Es decir, esta técnica consiste en descomponer el problema en sub-metas o sub-objetivos, ir escogiendo sub-metas para trabajar y solucionar una a una hasta completar la tarea, eliminando los obstáculos que le impiden llegar al estado final.

Un buen ejemplo donde aplicar está técnica, es para el problema de ir de una ciudad a otra, con varias ciudades intermedias. En este caso las sub-metas son las ciudades intermedias y los

medios son la forma de llegar de una ciudad a otra (avión, auto, caminando?)

FCC - BUAP Otoño 2010MC Mireya Tovar Vidal 34

Ejemplo:

Si quisiéramos recorrer la ruta Maya, podríamos identificar las

ciudades involucradas como sub-metas y decidir como llegar

ahí, por ejemplo para llegar de Puebla a San Cristóbal, no podría

ser por avión, tendríamos que buscar otra sub-meta, Tuxtla

Gutiérrez, y de Tuxtla a San Cristóbal por auto, y así a cada

localidad.

FCC - BUAP Otoño 2010MC Mireya Tovar Vidal 35

La última técnica para resolver problemas es combinar soluciones existentes.

Esta técnica podría parecerse a la técnica de Buscar cosas que sean familiares, pero en este caso, es combinar las soluciones paso a paso, no solamente unir soluciones obtenidas separadamente.

FCC - BUAP Otoño 2010MC Mireya Tovar Vidal 36

Ejemplo:

Para calcular el promedio de una lista de valores, debemos hacer dos cosas: sumar los valores y

contarlos.

Si tenemos dos soluciones separadas, una para sumar los valores y otra para contarlos, podemos combinarlas y así paso a paso ir sumando y contando y al final tendremos la solución al problema.

FCC - BUAP Otoño 2010MC Mireya Tovar Vidal 37

¿Qué hemos

aprendido?

Descripción del problema:

En un salón de 35 alumnos aprobaron el 40%.

Determinar el número de alumnos reprobados.

Actividad:

Analiza el problema

Explica que técnica (o técnicas) de resolución de

problemas se adaptaría mejor para resolver este

problema

Resuelve el problema usando dicha técnica

FCC - BUAP Otoño 2010MC Mireya Tovar Vidal 39

Compartiendo la solución con todos

FCC - BUAP Otoño 2010MC Mireya Tovar Vidal 40

En equipos de 5 integrantes, tienen 15 min. para resolver el siguiente problema

Descripción:

Supongamos que desea ir de Chihuahua a Cancún. Para lograr esto se tienen varias opciones: usar el autobús, caminar, viajar en motocicleta, por tren, por avión o caminar. Dependiendo de las circunstancias, usted elegirá la opción que más le convenga. Si es que esta apurado, elegirá viajar por avión, si su presupuesto no es muy alto, probablemente elija viajar por autobús.

Actividad:

Analicen el problema

Explicar que técnica (o técnicas) de resolución de problemas se adaptarían mejor para resolver este problema. Sugieran al menos 3 técnicas

Escriban el proceso que se debe seguir para resolver el problema.

FCC - BUAP Otoño 2010MC Mireya Tovar Vidal 41

Criterios para el éxito:

Cada equipo obtendrá la solución al problema

Todos los integrantes deben asegurarse que el

resto de su equipo entendió satisfactoriamente el

proceso de resolución del problema.

Responsabilidad Individual:

Cualquier integrante del equipo podrá ser

seleccionado al azar para explicar la solución al

frente.

FCC - BUAP Otoño 2010MC Mireya Tovar Vidal 42

Inicio: Chihuahua

Objetivo: Cancún

Medios: Volar, caminar, motocicleta, manejar,

Autobús

Inicio: Chihuahua

Objetivo: Cancún

Revisando medios:

Volar a México y entonces a Cancún,

Volar a Toluca y entonces a Cancún;

volar a Puebla y entonces a Cancún

Inicio: Chihuahua

Objetivos intermedios:

México

Meta: Cancún

Medios intermedios al objetivo: avión, caminar,

motocicleta, manejar, autobús.

Solución: Tomar un vuelo cercano a México y entonces tomar otro vuelo a

Cancún

Solución: Medios - fines

FCC - BUAP Otoño 2010MC Mireya Tovar Vidal 43

Algoritmo

¿Qué es un algoritmo?

Hasta el momento, hemos hecho:

45

Guías para armar un

rompecabezas

Conjunto de

instrucciones para

resolver un problema

Descripción de

procesos

recetas

ect.

FCC - BUAP Otoño 2010MC Mireya Tovar Vidal

Algoritmo

Entrada Salida

Acciones

Operaciones

Instrucciones

Problema

FCC - BUAP Otoño 2010MC Mireya Tovar Vidal

EntradaEntradaEntrada SalidaEntrada

46

En general, un algoritmo describe el método

mediante el cual se realiza una tarea.

Un algoritmo es una secuencia de instrucciones,

las cuales, realizadas adecuadamente, dan lugar al

resultado deseado.

La noción de algoritmo no es exclusiva de la computación

ni de la Matemática. Existen algoritmos que describen toda

clase de procesos de la vida real (por ejemplo, las recetas

de cocina, las partituras musicales, los planos con las

instrucciones para construir una casa, etc..).

47FCC - BUAP Otoño 2010MC Mireya Tovar Vidal

Un algoritmo es un conjunto finito de reglas que dan

lugar a una secuencia de operaciones para resolver un

tipo específico de problema.

Un algoritmo debe cumplir cinco importantes condiciones:

Finitud: Un algoritmo tiene que acabar siempre tras un número

finito de pasos.

Definibilidad: Cada paso de un algoritmo debe definirse de modo

preciso; las acciones a realizar han de estar especificadas para

cada caso rigurosamente y sin ambigüedad

Conjunto de entradas: Debe existir un conjunto especificado de

objetos, cada uno de los cuales constituyen los datos iniciales del

caso particular del problema que resuelve el algoritmo.

Conjunto de salida: salida o respuesta que debe obtener el

algoritmo para los diferentes casos particulares del problema.

Efectividad: Un algoritmo debe ser efectivo.

48FCC - BUAP Otoño 2010MC Mireya Tovar Vidal

Partes de un algoritmo

Entrada: Información dada al algoritmo.

Proceso: Operaciones o cálculos necesarios

para encontrar la solución del problema.

Salida: Respuestas dadas por el algoritmo o

resultados finales de los procesos realizados.

SalidaProceso

Entrada

FCC - BUAP Otoño 2010MC Mireya Tovar Vidal 49

Ejemplo

Desarrollar un algoritmo que calcule la superficie de un rectángulo proporcionando su base y altura.

Preguntas: Especificaciones de entrada

¿Que datos son de entrada?

¿Cuántos datos se introducirán?

¿Cuales son los datos de entrada válidos?

Especificaciones de salida ¿Cuáles son los datos de salida?

¿Cuántos datos de salida se producirán?

¿Qué formato y precisión tendrán los resultados?

Algoritmo:Paso 1. Entrada desde el teclado, de los datos de base y altura.

Paso 2. Cálculo de la superficie, multiplicando la base por la altura.

Paso 3. Salida por pantalla de base, altura y superficie calculada.

FCC - BUAP Otoño 2010MC Mireya Tovar Vidal 50

El lenguaje algorítmico debe ser independiente de cualquier lenguaje de programación particular, pero fácilmente traducible a cada uno de ellos.

Alcanzar estos objetivos conducirá al empleo de métodos normalizados para la representación de algoritmos, tales como los diagrama de flujo o pseudocódigo.

Verificación de algoritmos

Una vez que se ha terminado de escribir un algoritmo es necesario comprobar que realiza las tareas para las que se ha diseñado y produce el resultado correcto y esperado.

El modo más normal de comprobar un algoritmo es mediante su ejecución manual, usando datos significativos que abarquen todo el posible rango de valores (prueba del algoritmo).

FCC - BUAP Otoño 2010MC Mireya Tovar Vidal 51

Ejemplo 1.1

Un procedimiento que realizamos varias veces al día consiste en lavarnos los dientes. Veamos la forma de expresar este procedimiento como un Algoritmo:

1. Tomar la crema dental

2. Destapar la crema dental

3. Tomar el cepillo de dientes

4. Aplicar crema dental al cepillo

5. Tapar la crema dental

6. Abrir la llave del lavamanos

7. Remojar el cepillo con la crema dental

8. Cerrar la llave del lavamanos

9. Frotar los dientes con el cepillo

10. Abrir la llave del lavamanos

11. Enjuagarse la boca

12. Enjuagar el cepillo

13. Cerrar la llave del lavamanos

14. Secarse la cara y las manos con una toalla

FCC - BUAP Otoño 2010MC Mireya Tovar Vidal 52

Ejemplo

Veamos que algo tan común como los pasos para cambiar un foco se pueden expresar en forma de Algoritmo:

1. Ubicar una escalera o un banco debajo del foco fundido

2. Tomar un foco nuevo

3. Subir por la escalera o al banco

4. Girar el foco hacia la izquierda hasta soltarlo

5. Enroscar el foco nuevo hacia la derecha en el plafón hasta apretarlo

6. Bajar de la escalera o del banco

7. Fin

FCC - BUAP Otoño 2010MC Mireya Tovar Vidal 53

Actividad

Discutir en equipo el ejemplo del foco y

proponer algunas mejoras.

Luego, un voluntario debe pasar al pizarrón y

escribir un Algoritmo con participación de

toda la clase

FCC - BUAP Otoño 2010MC Mireya Tovar Vidal 54

A diferencia de los seres humanos que

realizan actividades sin detenerse a pensar

en los pasos que deben seguir.

Las computadoras son muy ordenadas y

necesitan que quien los programa les

especifique cada uno de los pasos que debe

realizar y el orden lógico de ejecución.

Actividad

Numerar en orden lógico los pasos

siguientes (para pescar):___ El pez se traga el anzuelo.

___ Enrollar el sedal.

___ Tirar el sedal al agua.

___ Llevar el pescado a casa.

___ Quitar el Anzuelo de la boca del pescado.

___ Poner carnada al anzuelo.

___ Sacar el pescado del agua.

Ejemplo

Consideremos algo más complejo como el algoritmo de Euclides para hallar el Máximo Común Divisor (MCD) de dos números enteros positivos dados. Obsérvese que no se especifica cuáles son los dos números, pero si se establece claramente una restricción: deben ser enteros y positivos.

ALGORITMO

Paso 1: Inicio.

Paso 2: Leer los dos números (“a” y “b”). Avanzar al paso 3.

Paso 3: Comparar “a” y “b” para determinar cuál es mayor. Avanzar al paso 4.

Paso 4: Si “a” y “b” son iguales, entonces ambos son el resultado esperado y termina el algoritmo. En caso contrario, avanzar al paso 5.

Paso 5: Si “a” es menor que “b”, se deben intercambiar sus valores. Avanzar al paso 6; si “a” no es menor que “b”, avanzar al paso 6.

Paso 6: Realizar la operación “a” menos “b”, asignar el valor de “b” a “a” y asignar el valor de la resta a “b”. Ir al paso 3.

FCC - BUAP Otoño 2010MC Mireya Tovar Vidal 57

Ejercicio

A un trabajador le pagan según sus horas y

una tarifa de pago por horas. Si la cantidad

de horas trabajadas es mayor a 40 horas. La

tarifa se incrementa en un 50% para las

horas extras. Calcular el salario del

trabajador, dadas las horas trabajadas y la

tarifa.

FCC - BUAP Otoño 2010MC Mireya Tovar Vidal 58