viernes, 27 de noviembre de 2009

157. Un problema

Este interesante problema me fue sugerido por dos alumnos del primer año de la Carrera de Ingeniería Electrónica del Instituto Tecnológico de Buenos Aires:

Un edificio posee N departamentos pequeños, en cada uno de los cuales vive una sola persona. Hay un departamento por piso y un único ascensor; no hay departamento en la planta baja. En general, cada habitante del edificio utiliza el ascensor dos veces por día, cuando sale para sus ocupaciones y a la vuelta de ellas, pero sus horarios son muy variados. El ascensor tiene un dispositivo que le permite moverse mientras nadie lo usa, con el propósito de lograr que ante la siguiente llamada el traslado sea (en promedio) lo más corto posible. ¿Cómo debe programarse al dispositivo con ese fin? ¿En qué piso conviene que se estacione a la espera de una llamada?

El primero que ofrezca la respuesta correcta con una buena fundamentación obtendrá el título de "Excelente optimizador de traslados" con validez universal y atemporal inmediata.

Suerte para todos.

Una aclaración para los amigos españoles: Tengo entendido que en España llaman "pisos" a lo que aquí llamamos "departamentos", ¿es así?. En ese caso,¿cómo debería redactarse para que fuese correcta para ustedes la frase que dice "Hay un departamento por piso..."?

11 comentarios:

Víctor dijo...

En la práctica, creo que los hacen estacionarse en la planta baja, pero no sabría decirte por qué motivo.. pues lo lógico parece que sería dirigirlos a un piso intermedio.

Se me ocurre una idea que someto a tu consideración para optar al premio (o al menos a una "mención honorífica"): la mejor forma de optimizar los traslados sería que el ascensor fuese memorizando los horarios de todos los habitantes del edificio (algo perfectamente factible con la informática actual), para dirigirse siempre, tras su último servicio, al lugar donde "sabe" que comenzará el siguiente. El sistema iría mejorando con el tiempo, a medida que fuese acumulando información sobre los viajes efectuados (detectaría el viaje que pertenece a una pauta y el que no, o los cambios de pauta)

Sobre le problema lingüístico, la palabra "piso" tiene dos acepciones en España: la de planta (división verticales), y la de apartamento (división horizontal). En el lenguaje coloquial no hay problema en identificar su significado por el contexto ("ese edificio tiene 20 pisos" se refire siempre a la altura; "voy a mi piso" se refiere al apartamento). Pero si quieres evitar confusiones en el planteamiento de un problema, la frase que mencionadas convendría redactarla así: "Hay una vivienda por planta..."

"Apartamento" (como decimos aquí) en una palabra un poco confusa, hace referencia a una vivienda pequeña (de una habitación, por ejemplo), o a una segunda vivienda que tienes en la playa (aunque en este caso sea más grande)

Saludos

Roberto dijo...

Víctor, me sorprendes muy gratamente. Tu respuesta es la apropiada para el siglo 21. Instrumentar un "sistema inteligente" como el que planteas creo que requiere un procesador con poco más que la memoria de una calculadora de bolsillo. Y es genial la idea de que el sistema "aprenda" y acumule experiencia. Y me parece que si yo dijera que probablemente cualquier alumno de segundo año del Itba puede diseñarlo a la perfección, estaría ofendiendo a los de primero.
Asi que te haces acreedor al premio, sin duda alguna. ¡Felicitaciones!

De todas maneras, si alguien desea ofrecer una respuesta "tipo siglo 20" como la que pediríamos en un examen de matemática en la que la elección del piso de estacionamiento sea única para todo el día, será bienvenido y, si cumple con el requisito de la fundamentación, también podrá llevar su premio.

Gracias también Víctor por tu comentario sobre el uso del idioma allí en España. Ya que estamos, te comento que aquí llamamos "piso" no sólo a la "planta" sino también a los departamentos que ocupan toda una planta y "semipisos" a los que comparten su planta con otro (solamente un vecino). O sea que el piso en Argentina sería solo un caso particular del piso en España. Quiero decir: alli se llaman pisos aunque compartan la planta ¿no?

Un abrazo desde Buenos Aires.

Víctor dijo...

¡Gracias a ti por el premio!.. eso sí, el sistema "inteligente" (o cualquier otro) serviría para optimizar el tiempo de llegada del ascensor tras cada llamada (haría que su uso fuese más "cómodo"), pero no reduciría la distancia total recorrida (por tanto, no serviría para optimizar el consumo de energía, que es lo que se pide en estos tiempos), pues la distancia más corta entre el final de un servicio y el principio del siguiente sería necesariamente el viaje directo entre un punto y otro.

Piso viene a ser sinónimo de "vivienda"... de forma que sí, puede haber varios "pisos" por planta (y de hecho es lo normal en España).

Un abrazo

Sara dijo...

Después de pensar un rato en el problema, he llegado a la conclusión que lo mejor es estacionar el ascensor en la planta baja (como ha dicho Víctor que se hace) o el primer piso.

Según el enunciado, se accede al ascensor una vez desde cada piso del 1 al 100 y cien veces desde la planta baja. Suponemos que el tiempo de espera es directamente proporcional al numero de pisos de diferencia entre el lugar donde se llama al ascensor y el lugar donde se encuentra éste inicialmente (sin tener en cuenta el tiempo de cerrarse las puertas, aceleración, frenar, etc), por lo que llegamos a la conclusión que el tiempo total de espera del ascensor es 100*[piso donde se estaciona el ascensor] + sumatorio(1 <= i <= 100) de valor_absoluto([piso donde se estaciona el ascensor] - i).

A partir de ahora llamaremos P al [piso donde se estaciona el ascensor] para hacer menos engorrosa la notación.

Miramos el tiempo total que se tarda (T) segun el valor de P.

Para P = 0 (planta baja), T = 101*100/2 = 5050

Para P = 1, T = 100 + (1 + 99)*99/2 = 5050

Para P > 1 usaremos una inducción. Supongamos que el tiempo de [P-1] es [T-1]. Entonces el tiempo de T será igual a
T = [T-1] - (100 - [P-1]) + [P - 1] + 100
por lo que se ve que T > [T-1] y por lo tanto el tiempo queda optimizado en P = 0 o P = 1.

Explico la fórmula anterior:
Cada vez que situamos la posición de partida del ascensor un piso más arriba (lo situamos en la posición P), hacemos el tiempo para llegar a pisos que están de P para arriba sea un poco menor (la distancia se acorta 1 unidad). Hasta aquí se justifica:
T = [T-1] - (100 - [P-1])
Por otro lado, cada vez que el ponemos el ascensor un piso más arriba, la distancia con los pisos que están por debajo de P (P no incluido) tendrán un tiempo de espera 1 unidad superior, teniendo que contar la planta baja 100 veces, puesto que el numero total de accesos que se hacen a ésta es 100.
Por lo que queda justificada la totalidad de la fórmula T = [T-1] - (100 - [P-1]) + [P - 1] + 100

Tengo que reconocer que con los métodos actuales, la solución que da Víctor es mucho mejor, por lo que se podría proponer el siguiente problema: Cuál es el mejor algoritmo para optimizar el tiempo de llegada del ascensor?

PD: perdón por la notación que he usado, se que es difícil de leer...

Roberto dijo...

Tu solución es correctísima, Sara;
aunque tal vez, al principío, podrías agregar: "Sea N = 100 por ejemplo".
Entonces te haces acreedora al premio, recibe mis felicitaciones. ¡Muy bien!

Saludos cordiales desde Buenos Aires.

Unknown dijo...

Exactamente, nuestra solución tomó un camino más algebraico dándonos una fórmula general en función de N, pero al fin y al cabo llegamos al mismo resultado.

Saludos.

Roberto dijo...

Muy bien, Juan Manuel.

Saludos.

Víctor dijo...

Me fascinan las explicaciones matemáticas, como la que nos ofrece aquí Sara, aunque me cueste seguirlas.

Roberto dijo...

Víctor, esta demostración se puede "traducir" a lenguaje no matemático, por suerte.
Sería algo asi:
¿Por qué el lugar óptimo de estacionamiento debe dejar la mitad de las posibles llamadas arriba y la otra mitad abajo?
Veámoslo con el ejemplo de Sara:
Si hay cien habitantes en el edificio, cualquier ubicación entre la planta baja y el primer piso (digamos... por ejemplo el punto medio...) deja cien posibles llamadas diarias más arriba y cien más abajo. Cualquier desplazamiento entre la planta baja y el primer piso no cambia la situación ya que cien posibles llamadas estarán unos centímetros más cerca y otras cien LA MISMA CANTIDAD DE CENTÍMETROS más lejos. La cosa cambia si nuestro desplazamiento nos hace cruzar el primer piso y nos ubicamos entre el primero y el segundo: de ese modo nos acercamos a 99 y NOS ALEJAMOS de 100... cierta (idéntica) cantidad de metros... digamos que si estamos justo entre el primero y el segundo seguimos teniendo medio piso respecto del primero (igual que antes) y ESE no cuenta. Bueno, eso es todo: a medida que nos alejamos del lugar óptimo la situación empeora ya que un desplazamiento ulterior nos acerca a menos llamadas posibles de aquellas de las cuales nos aleja (LA MISMA DISTANCIA).
Espero que sea comprensible el razonamiento.
Saludos cordiales desde Buenos Aires.

Víctor dijo...

Roberto, la explicación se entiende perfectamente, no me cabe duda que debes ser un magnífico profesor.

De tu comentario saco además la siguiente conclusión, que seguramente resulte una obviedad para quienes tenéis conocimientos matemáticos, pero no lo es tanto para los mortales que vivimos fuera de ese mundo: que los signos matemáticos no tienen "vida propia", por así decirlo, sino que constituyen la mera representación de un previo pensamiento lógico. En ese pensamiento lógico radica, por tanto, la esencia de las matemáticas, y no en las fórmulas a través de las cuales aquél se expresa.
Si no estoy equivocado, este blog tuyo trata mucho de esto último.
Un abrazo

Roberto dijo...

Víctor, para empezar, te agradezco el primer párrafo de tu comentario.
En cuanto al segundo, debo decirte que en muchos casos es como tu comentas, pero en otros la operación con ciertas reglas de una simbología bien elegida ayuda a progresar en la resolución de problemas aunque uno no se imagine, al pricipio, una descripción completa de la situación estudiada. En esos casos la descripción cualitativa puede venir a posteriori (yo suelo decir: con el resultado en la mano).

Un abrazo.