Documentos de Académico
Documentos de Profesional
Documentos de Cultura
LEctura para Modelado PDF
LEctura para Modelado PDF
Lectura Fundamental
Modelado y especificación de
problemas
Contenido
Palabras clave:
Entrada, salida, precondición, postcondición.
1. Breve repaso de problemas
En la figura 1 se pueden apreciar algunos de los conceptos estudiados en el Escenario 1 del módulo de
Pensamiento Algorítmico. Debe recordarse que, en el presente módulo un problema se define por
medio de dos preguntas:
• Específico, cuando todos los datos utilizados para plantear el problema son constantes.
• General, cuando al menos un dato de los utilizados para plantear el problema es variable.
Por otro lado, algoritmo se definió como un conjunto ordenado y finito de operaciones que permite
hallar la solución de un problema. Finalmente, se dijo que el procesador es la herramienta o entidad
que almacena y ejecuta el algoritmo.
POLITÉCNICO GRANCOLOMBIANO 2
Si la primera tarea acometida, por parte de la persona encargada de solucionar un problema, no es
modelar y especificar, él o ella estará haciendo las cosas “al revés” y perderá mucho tiempo hasta que
entienda qué busca y con qué cuenta. Por otra parte, después de que se ha construido una probable
solución, tener un modelo es indispensable para saber si el algoritmo que se construyó es correcto.
Esto último se logra comprobando que un conjunto de entradas se transformó en un conjunto de
salidas que cumple con las condiciones especificadas.
POLITÉCNICO GRANCOLOMBIANO 3
Los pasos son claros y especifican las preguntas que deberían hacerse; sin embargo, vale la pena
aclarar los tipos de información citados en el primer paso. Los datos relevantes son aquellos que
permiten resolver el problema y pueden ser formulados matemáticamente. Los datos irrelevantes son
los que no inciden en la solución matemática. Finalmente, la información requerida hace referencia a
lo que se quiere averiguar, al resultado que se espera obtener después de implementar el algoritmo.
¿Sabía qué...?
Las precondiciones son aquellas condiciones que deben ser satisfechas por las
entradas de un problema y que las postcondiciones son aquellas condiciones que
deben ser satisfechas por las salidas de un problema. Por eso, las preguntas de
los literales e y f podrían ser reemplazadas respectivamente por ¿cuáles son las
precondiciones del problema? y ¿cuáles son las postcondiciones del problema?
Cómo mejorar...
Muchas veces para visualizar e interpretar correctamente un problema es muy
útil hacer esquemas o dibujos en una hoja de papel. Hágalo siempre que le
parezca conveniente.
Aunque pueda parecer obvio, es clave que nunca se olvide que la solución que se busca es
algorítmica/matemática y por lo tanto el modelado que se haga debe estar en los mismos términos.
Para ello, puede acudirse a la construcción de expresiones tal como se vio en el escenario anterior.
A continuación, se presentan algunos ejemplos de cómo deben ejecutarse el proceso de modelado y
especificación de un problema.
POLITÉCNICO GRANCOLOMBIANO 4
3.1. Ejemplo 1
Pedro quiere construir un nuevo corral triangular para sus vacas. Para esto, él ha clavado tres postes,
que serán los vértices del corral. Para saber cuánto alambre necesitará, Pedro se pone en la tarea de
medir el perímetro del corral, sin embargo, descubre que su instrumento de medida solo le permite
medir la distancia entre parejas de postes. Como Pedro es muy malo sumando, le ha pedido ayuda
para, dadas las distancias entre parejas de postes, calcular el perímetro del corral.
Clasificar la información se puede hacer de muchas formas distintas. En este caso se resaltará
el texto correspondiente a información relevante en verde, información solicitada en amarillo e
información irrelevante en azul.
Pedro quiere construir un nuevo corral triangular para sus vacas. Para esto, él ha clavado tres
postes, que serán los vértices del corral. Para saber cuánto alambre necesitará, Pedro se pone en la
tarea de medir el perímetro del corral, sin embargo, descubre que su instrumento de medida solo
le permite medir la distancia entre parejas de postes. Como Pedro es muy malo sumando, le ha
pedido ayuda para, dadas las distancias entre parejas de postes, calcular el perímetro del corral.
B. ¿Es suficiente la información proporcionada para resolver el problema? Si no, ¿qué hace falta saber?
La información proporcionada no es suficiente para resolver el problema. Hace falta saber cuál
es la forma y las medidas de los postes. Para averiguarlo se debería ir a la fuente del problema
o hacer supuestos (éstos deben ser buenos). Para este caso se supondrá que los postes son
puntos, esto es imposible en la vida real, pero permitirá solucionar el problema matemático.
C. ¿Cuántas entradas tiene el problema? ¿Cuáles son (nombre y descripción)? ¿A qué tipo de dato
corresponde cada una?
Lado A, distancia entre la primera pareja de postes. Lado A es un dato que pertenece a los
números reales.
Lado B, distancia entre la segunda pareja de postes. Lado B es un dato que pertenece a los
números reales.
Lado C, distancia entre la tercera pareja de postes. Lado C es un dato que pertenece a los
números reales.
POLITÉCNICO GRANCOLOMBIANO 5
D. ¿Cuántas salidas tiene el problema? ¿Cuáles son (nombre y descripción)? ¿A qué tipo de dato
corresponde cada una?
Perímetro, corresponde al perímetro del corral. Perímetro es un dato que pertenece a los
números reales.
Lado A, lado B y lado C deben ser números positivos ya que no existen distancias negativas.
Adicionalmente, los tres lados deben formar efectivamente un triángulo y para ello deben
cumplir la desigualdad triangular. Estas condiciones se pueden notar matemáticamente por
medio de los siguientes predicados:
Desigualdad triangular: lado A+lado B>lado C ∧ lado A+lado C>lado B ∧ lado B+lado C>lado A
Perímetro debe corresponder a la suma de los tres lados del corral. Esta condición se puede
notar matemáticamente así:
También, se puede expresar la postcondición de una forma más simple al decir que la salida
perímetro representará el perímetro del corral. Es una manera trivial de expresarla, pero, es
igualmente válida.
Una vez se han resuelto los seis literales, tenemos finalmente el modelado y especificación
del ejemplo 1.
POLITÉCNICO GRANCOLOMBIANO 6
3.2. Ejemplo 2
En Colombia las personas alcanzan la mayoría de edad al cumplir 18 años. Dada la edad de Arnoldo,
quien nació y vive en Colombia, establezca si él es mayor de edad o no.
En Colombia las personas alcanzan la mayoría de edad al cumplir 18 años. Dada la edad de
Arnoldo, quien nació y vive en Colombia, establezca si él es mayor de edad o no.
Note que en este caso se consideró que no había información irrelevante, esto es posible dado
que un problema únicamente está conformado por la información que conozco y la quiero saber.
B. ¿Es suficiente la información proporcionada para resolver el problema? Si no, ¿qué hace falta saber?
C. ¿Cuántas entradas tiene el problema? ¿Cuáles son (nombre y descripción)? ¿A qué tipo de dato
corresponde cada una?
Edad, representa la edad, en años, que tiene Arnoldo. Edad es un dato que pertenece a los
números naturales.
¿Sabía qué...?
POLITÉCNICO GRANCOLOMBIANO 7
D. ¿Cuántas salidas tiene el problema? ¿Cuáles son (nombre y descripción)? ¿A qué tipo de dato
corresponde cada una?
Mayor, representa el hecho de que Arnoldo sea mayor de edad o no. Mayor es un dato de tipo lógico.
Mayor es el valor de verdad que establece si Arnoldo es mayor de edad o no. Esta condición se
puede notar matemáticamente así:
Mayor= edad≥18
De la misma manera que se hizo en el ejemplo anterior, se puede expresar la postcondición de una
forma más simple al decir que la salida mayor representará el hecho de que Arnoldo sea mayor de
edad. Nuevamente, es una forma trivial de expresarse, pero permite la validar la solución.
3.3. Ejemplo 3
Dos cocineros pelaron 400 papas. Juan peló tres papas por minuto y David dos por minuto. Sabiendo que
era más lento, David decidió pelar papas 25 minutos más que Juan. ¿Cuánto tiempo trabajó cada uno?
Dos cocineros pelaron 400 papas. Juan peló tres papas por minuto y David dos por minuto.
Sabiendo que era más lento, David decidió pelar papas 25 minutos más que Juan. ¿Cuánto tiempo
trabajó cada uno?
El hecho de que David sea más lento no se modela matemáticamente y por eso se toma esa
información como irrelevante; lo que sí se puede modelar por medio de matemáticas es su decisión
de trabajar 25 minutos más que Juan.
POLITÉCNICO GRANCOLOMBIANO 8
B. ¿Es suficiente la información proporcionada para resolver el problema? Si no, ¿qué hace
falta saber?
C. ¿Cuántas entradas tiene el problema? ¿Cuáles son (nombre y descripción)? ¿A qué tipo de dato
corresponde cada una?
Ninguna entrada. Es muy importante notar que los datos de la cantidad total de papas peladas, la
velocidad a la que pelan David y Juan y el tiempo que David que trabajó de más sí son entradas; sin
embargo, por ser constantes en este módulo y en el subsiguiente (Programación de Computadores)
no se considerarán de esa forma. De acuerdo con lo visto en el primer escenario de este módulo, se
podría decir que este es un problema específico. Por otro lado, si esos mismos datos fueran dados en
forma de variables, sí se considerarían entradas.
D. ¿Cuántas salidas tiene el problema? ¿Cuáles son (nombre y descripción)? ¿A qué tipo de dato
corresponde cada una?
Tiempo_Juan y tiempo_David son los valores numéricos que representan cuanto tiempo, en minutos,
trabajaron Juan y David. Estas condiciones se pueden notar matemáticamente por medio de las dos
siguientes expresiones:
Tiempo_Juan + 25 =Tiempo_David
Asi mismo, se puede expresar las mismas postcondiciones diciendo que Tiempo_Juan y Tiempo_David
representan el tiempo que pasaron pelando papas Juan y David respectivamente.
POLITÉCNICO GRANCOLOMBIANO 9
¿Sabía qué...?
Entre más complejo es un problema, es mucho más difícil escribir sus
postcondiciones de manera matemática, por lo tanto, será suficiente expresar
éstas por medio de palabras.
Finalmente, cabe hacer una pregunta que no resulta trivial, ¿por qué no se ha considerado a las
constantes como entradas del problema? Eso se debe simplemente al objetivo que persigue la
enseñanza de este tópico en el módulo de Pensamiento Algorítmico: preparar al estudiante para que
cuando resuelva problemas por medio de la programación de computadores pueda escribir funciones.
Una función es una sección de código que toma un conjunto de parámetros (valores puramente
variables) y mediante un algoritmo los transforma en una salida, es decir, una función representa un
algoritmo. Este y otros conceptos serán ampliados en el módulo de Programación de Computadores.
En síntesis...
Modelar y especificar un problema es indispensable para solucionarlo. El proceso
resulta sencillo si se sigue la metodología de seis pasos propuesta aquí.
POLITÉCNICO GRANCOLOMBIANO 10
Referencias
Joyanes, L. (1996). Fundamentos de programación : Algoritmos y estructura de datos (Segunda ed.).
Madrid: McGraw-Hill.
POLITÉCNICO GRANCOLOMBIANO 11
INFORMACIÓN TÉCNICA
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO 12