miércoles, 8 de enero de 2014
Cuadrados mágicos
lunes, 26 de diciembre de 2011
Sentido común
domingo, 18 de julio de 2010
Al final de la cola
Podríamos decir que la teoría de colas analiza un tipo de problemas de optimización, de cómo encontrar el punto de equilibrio entre la calidad de servicio (es decir, la paciencia de los que esperan en una cola) y la cantidad de servicio (léase cuantos trabajadores hay que poner para atender a los clientes, con el menor coste)
Desde el ritmo de llegada de los clientes a la cola, la distribución de cómo llegan a lo largo del tiempo, la capacidad de la cola, cómo se gestiona el turno en la cola, el método de atención, el número de servidores que atienden el público, el tiempo medio de atención de cada cliente, la desviación típica de estos tiempos de atención... son muchos los factores que intervienen en el análisis detallado de este tema. Y además los matemáticos se lo pasan de rechupete haciendo llegar a los clientes al ritmo exponencial de Poisson, o marcando a los trabajadores que atiendan al público según la distribución de Weibull. Fascinante!
Sumamos ahora el comportamiento de los clientes: hay que abandonan la cola, espabilados que se cuelan, unos que no se unen a la cola al ver su longitud, otros fieles que no dejan la cola aunque ésta sea interminable... pacientes e impacientes.
Para acabarlo de aliñar, el modelo que se consigue después de poner todo estos factores bajo notación matemática, se comporta bien cuando se llega a un estado estacionario, pero en los transitorios difiere bastante del comportamiento real. Y en la realidad de muchas colas abundan los transitorios, ya que el servicio suele ceñirse a un horario, pueden haber interrupciones, etc.
Así que los matemáticos se han sumado a los informáticos para abordar este problema y han programado herramientas de simulación. Aunque no sea una panacea, ahora pueden abordar mejor los transitorios, simular el comportamiento bajo suposiciones diversas y experimentar rápidamente multitud de opciones obteniendo la mejor solución para cada caso.
Parece fácil. Al menos a mi me parece sumamente interesante el tema. Pero de hecho, en la gran mayoría de situaciones reales esto de las colas se soluciona sobre la marcha, con la simple experiencia: “Si hay mucha cola y veo que los clientes se quejan, pondré a otro trabajador a atenderlos”.
Aún así, hay situaciones que son analizadas en profundidad optimizando costes de explotación del servicio -y aumentando los beneficios- a costa de poner al límite la paciencia del cliente. Aplicaciones como las colas en puntos de atención al cliente de grandes empresas o de las líneas de cajeros en supermercados, pasando por los flujos de paquetes en una empresa de mensajería hasta el dimensionado de una red informática según los flujos de información que soporte.

Mucha teoría, pero no nos olvidemos que el cliente sabe que siempre prevalece la Ley de Harper:
“No importa en qué cola te sitúes, la otra siempre avanzará más rápido”
sábado, 6 de febrero de 2010
Código binario

Estamos acostumbrados a contar con los números del 1 al 10 en nuestro seguro y cómodo sistema decimal y, sobre este sistema, sabemos realizar las operaciones algebraicas básicas. Bueno, los hay que se han olvidado ya de dividir a mano y echan mano a la calculadora para que la electrónica digital les saque del apuro.
También estamos acostumbrados a contar algunas cosas con el sistema sexagesimal. Este sistema, que usa el número 60 como base, lo usamos para contar el tiempo –horas, minutos, segundos-, en la medición de ángulos… y hasta cuando compramos algunos productos por docenas. Que, hablando de la docena, es una antigua y sabia cuestión de práctica doméstica. Puesto que la docena es la cantidad más pequeña que permite ser repartida entre una, dos, tres, cuatro o seis personas.
Pues el código binario no es más que otro sistema de contar. Lo que ocurre es que, como lo que se tenía en esos inicios de la electrónica digital era el cero (no hay corriente) y el uno (sí hay corriente), pues se usaron esos dos niveles, el cero y el uno, como base para contar las cosas. Como lo hicieron cuatro mil años antes en el I Ching.
Cualquier número puede ser traducido a código binario. El tres es 11 (se lee uno uno), el diez es 1010 (uno cero uno cero) o el doscientos nueve es 11010001. Con esos números codificados en binario se pueden hacer electrónicamente muchas cosas. Se pueden hacer las operaciones algebraicas que queramos y que nos dé el resultado traducido a nuestro cómodo sistema decimal en la pantalla de la calculadora; se pueden guardar los números en un soporte de memoria electrónica para recuperarlos cuando queramos; se pueden enviar a cualquier otro punto del mundo a través de las redes de telecomunicaciones… se puede hacer de todo.
Bueno, y es que en realidad, además, se acaba traduciendo a código binario todo lo que sea información. Las letras de un texto, la voz, la música, las fotografías, los dibujos, los bancos de datos… todo. Sólo hay que fijarse en una porción básica, el píxel, por ejemplo, y codificarlo según su color y cantidad de luz en una retahíla de ceros y unos que luego nos permita volver a reproducir ese píxel en otro lado cuando queramos. La electrónica lo hace para nosotros a toda velocidad, pero lo hace así, leyendo el sistema binario y pintando en la pantalla del ordenador, píxel a píxel, según está escrito en su registro de memoria electrónica.
Aunque es enorme la cantidad de ceros y unos que se procesan en cada segundo, el método utilizado en cada “microsegundo” por un aparato electrónico es muy simple. De hecho, se basan en operaciones lógicas desarrolladas en el siglo XIX por el matemático George Boole. Desde las simples operaciones “AND” que “suman”… cero y cero igual a cero, cero y uno igual a uno… hasta operaciones más complejas pero que, en realidad, no son más que operaciones que se descomponen siempre en las cuatro operaciones básicas del álgebra de Boole.
Así, cualquier instrucción que demos a un ordenador desde nuestro nivel de usuario, como por ejemplo si tecleamos la letra “p”, se traduce en un conjunto de instrucciones a nivel de programación informática del estilo “codifica en binario la p, guárdala en la memoria y envía la representación de la letra p a la pantalla del ordenador”, cada parte de estas indicaciones se desglosan en instrucciones de niveles de programación más básicos, y éstos a su vez en otros niveles de microprogramación, niveles que usan, finalmente, los ceros y unos y el álgebra de Boole para ejecutar electrónicamente la acción solicitada al teclear la letra “p”: que se grabe esa letra en el texto que estamos escribiendo y que la veamos en la pantalla de nuestro ordenador.
Espero que a partir de ahora, cuando nos digan que esto de la electrónica digital o eso de la informática funciona con códigos binarios, nos suene a chino sólo porque ya en el antiguo I Ching se utilizó en los hexagramas la esencia del código de numeración con “ceros y unos”.

sábado, 7 de noviembre de 2009
La pirámide de cubos
(Un problema de matemáticas para distraernos pensando)
Enunciado:
Hemos construido una pirámide formada por cubos de madera, cada uno de ellos tiene un volumen de 1 dm³. En el piso superior hay un cubo, situado en el centro del segundo piso, formado por cuatro cubos. Estos cuatro cubos están situados en el centro del otro piso, formado por nueve cubos.
Queremos pintar la parte visible de la pirámide, es decir, que no pintaremos ni las caras que queden debajo ni las partes de caras que queden tapadas por otro piso.
a) ¿Cual será la superficie que tendremos que pintar?
b) Y si añadiéramos un nuevo piso, formado por 16 cubos, ¿Cual sería la superficie que tendríamos que pintar?
c) ¿Sabrías generalizarlo al caso que hubiera un número cualquiera n de pisos?

.
.
Solución:
a) En primer lugar, a partir del volumen de los cubos, obtenemos el valor de la arista (a):
En relación al cubo del primer piso (n=1), la superficie lateral (Sl) a pintar sería la de las 4 caras laterales y la superior:
En relación a los 4 cubos del segundo piso (n=2), la superficie lateral (Sl) a pintar sería la de las 8 caras laterales más la superficie libre superior, que es la de los cuatro cubos, menos la superficie de un cubo, que es la superficie que queda tapada por el piso n=1. Así tenemos:
.
En relación a los 9 cubos del tercer piso (n=3), la superficie lateral (Sl) a pintar sería la de las 12 caras laterales más la superficie libre superior, que es la de los nueve cubos, menos la superficie de los cuatro cubos, que es la superficie que queda tapada por el piso n=2. Así tenemos:
.
Entendemos, por el enunciado del problema, que la base de la pirámide no se pintará. Por lo que no añadimos aquí la superficie de la base (9a²)
Entonces, la superficie total a pintar es:

Sustituyendo el valor de la arista (a=1dm), obtenemos finalmente que:
.
b) A la solución del apartado anterior añadimos la superficie del cuarto piso. Entonces, la superficie lateral (Sl) a pintar, en relación al cuarto piso (n=4), sería la de las 16 caras laterales más la superficie libre superior, que es la de los dieciséis cubos, menos la superficie de los nueve cubos, que es la superficie que queda tapada por el piso n=3. Así tenemos:
.
De este modo, se obtiene la superficie total a pintar para el caso de una pirámide de cubos de cuatro pisos:
Sustituyendo el valor de la arista (a=1dm), obtenemos que:
.
c) Para generalizarlo al caso de n pisos, procederemos a analizar la evolución de las series obtenidas en los dos apartados anteriores.
Para cada piso, obteníamos la superficie de los lados, le sumábamos la superficie superior y le restábamos la superficie de contacto con el piso de encima. Construimos así la tabla siguiente con los coeficientes multiplicadores de la superficie lateral de una cara de un cubo (a²):
.
.
La superficie del piso de encima que tendremos que restar es siempre la misma que la superficie superior calculada en el piso anterior, con lo que sólo nos quedará la superficie n², como superficie superior del último piso (equivalente a lo que se vería de la pirámide desde encima, justo desde la verticalidad) De esta manera, observamos que la superficie de los lados es siempre, para cada piso, 4 veces el número del piso: 4n.
Es decir, la superficie lateral a pintar será de:
Arreglando la expresión obtenida, resulta que la superficie que tendremos de pintar en un caso general de una pirámide de n pisos formada por cubo de arista a es:
.
Para finalizar, realizaremos a continuación un análisis de la evolución de esta superficie a pintar en el caso particular de a=1.

.
.
Y ya está:
"Con esto y un bizcocho, !hasta mañana a las ocho!"
.
sábado, 18 de julio de 2009
Simulated annealing
domingo, 1 de marzo de 2009
Procedimientos heurísticos
.
Por la taxonomía dada a este tipo de procedimientos matemáticos nos sugiere que resuelven problemas por el método de “feliz idea”. De “Eureka” - lo encontré – que parece que pronunció Arquímedes cuando intuyó su Principio mientras se bañaba, comprobando que su cuerpo sumergido en el agua recibía un empuje vertical hacia arriba.
Se trata de procedimientos que se suelen aplicar en problemas en los que hay un número muy elevado de combinaciones posibles, de entre las cuales hay probablemente una de ellas que sea la solución óptima. Hay que encontrar, pues, de la manera más eficiente posible, la aguja en el pajar.
Existe una amplia variedad de problemas de este tipo en la ciencia, la ingeniería o la economía. Un ejemplo ilustrativo es el de la búsqueda del camino euleriano, o del camino hamiltoniano sobre un dodecaedro, conocido popularmente como el “problema del viajante”: un vendedor sale de una ciudad y debe visitar todas las ciudades de una lista, pasando únicamente una vez por cada una y volviendo finalmente a la ciudad inicial. La cuestión está en encontrar cual es el recorrido más corto.
Efectivamente, los procedimientos heurísticos tienen una parte del uso del azar, de la intuición o de las diversas estrategias acerca de cómo resolver los problemas de optimización combinatoria. Dibujar esquemas, probar una solución, realizar aproximaciones sucesivas, desmenuzarlo en otros más simples, generalizarlo primero para luego concretar, buscar analogías en otros campos de la ciencia, ... hasta la “cuenta de la vieja” puede llevarnos a la resolución de un problema bajo un procedimiento del tipo heurístico.
.
Y probablemente, para un problema concreto, el procedimiento heurístico sea altamente eficiente. Aunque seguramente deje de funcionar al aumentar el orden del problema, o al aplicar el mismo procedimiento heurístico a otro problema distinto de optimización combinatoria.
.
Sin embargo, existen otros procedimientos algorítmicos para la resolución de problemas de optimización combinatoria que han mostrado una alta eficiencia y, a la vez, una gran adaptabilidad a problemas de diferentes campos. Se trata de procedimientos meta-heurísticos en que, curiosamente, su funcionamiento guarda estrecha relación con fenómenos de la naturaleza. De entre ellos se encuentran las redes neuronales, los algoritmos genéticos o la simulación del temple (simulated annealing).
.
Retomaré en otra ocasión el tema para explicar cómo funciona alguno de estos procedimientos meta-heurísticos, ya que estas problemáticas me resultan altamente fascinantes..
.
sábado, 8 de noviembre de 2008
Alcance y velocidad de disparo
.jpg)
Una pregunta que me hacía algunas veces mientras practicaba tiro con arco era cómo poder determinar la velocidad de salida de la flecha en el momento del disparo.
No era ninguna cuestión necesaria para practicarlo, ni parecía que ese dato ayude a mejorar la puntería. Sólo era con el fin de satisfacer la curiosidad técnica de cómo poder obtener esa velocidad de disparo de una manera más o menos fácil y fiable.
El método de obtención de velocidad como espacio por unidad de tiempo ocasionaba alto nivel de error, ya que si bien puedes tener precisión en la medida de la distancia arco-diana, tienes un error considerable de medida del recorrido real parabólico que describe la flecha, así como de medida del tiempo que tarda en recorrer este espacio ya que, al ser éste bastante corto, se produce un error relativo grande usando un cronómetro de manera manual.
Finalmente, hallé la solución profundizando en el análisis cinemático del tiro parabólico. Más concretamente en la obtención del alcance. Es decir, en la distancia horizontal que recorre un proyectil si es lanzado a una velocidad inicial V0 y con una inclinación respecto del plano del suelo de a grados.
Pues bien, despreciando los efectos del rozamiento de la flecha con el aire, así como la altura inicial de la flecha respecto del suelo y redondeando la fuerza de gravedad a 10 m/s², se obtiene que el alcance r se puede expresar como:
r = 0,2 V0² sen a cos a
De donde se deduce que el máximo alcance se produce cuando el ángulo de disparo es de 45 grados. Y en este caso, despejando la velocidad inicial V0 e incluyendo los oportunos factores de conversión para obtener el resultado en km/h resulta que:
V0 = 3,6 · V(10 · r) (km/h)
Resumiendo: que lanzando una flecha a 45 grados en un campo de tiro, midiendo horizontalmente en metros a qué distancia se ha clavado en el suelo (r), multiplicando por 10, obteniendo la raíz cuadrada y multiplicando después por 3,6 obtenemos la velocidad de salida de la flecha en km/h.
Esta velocidad, obviamente, depende del arco y las flechas que utilices. En mi caso, la experimentación en un campo de tiro me dio como resultado un alcance de 175 metros y una velocidad inicial de la flecha de 150 km/h.
Y así es como dejé satisfecha mi curiosidad técnica sobre este tema.
domingo, 19 de octubre de 2008
Tetraktys
Los pitagóricos creían que toda la esencia de este mundo era de orden numérico y armónico. Y compendiaban en su vida la filosofía, las matemáticas, la ciencia, la música y la astronomía. Bajo esta definición, el Homus Virtualis de este blog se identificaría como un aficionado al pitagorismo.
Sin entrar en la doctrina de los pitagóricos, pues hay extensa literatura de ello, hasta hace pocos días conocía aspectos inconexos de este tema: el universalmente conocido teorema de Pitágoras, los tipos de números según su relación (perfectos, amigos, poligonales, etc.), la base pitagórica de la armonía musical, la geometría pitagórica... y algunos aspectos –entre historia y leyenda- de la vida y la muerte de Pitágoras.
Pues bien, al profundizar en el conocimiento del pitagorismo, me ha aparecido de pronto, como una revelación, el símbolo místico pitagórico del Tetraktys. Se trata de un triangulo donde se representan diez puntos, como suma de 1+2+3+4.
- El uno (mónada) es entendido como la unidad, la divinidad, el origen de todas las cosas, el ser inmanifestado...
- El dos (díada) es el desdoblamiento de la unidad, el principio de la dualidad inherente en toda cosmología: activo y pasivo, masculino y femenino, bien y mal, ...
- El tres (tríada) recoge el concepto de los tres niveles que hay en los aspectos místicos: cuerpo, alma y espírtitu; Padre, Hijo y Espíritu Santo; infierno, tierra y cielo; etc. También, bajo una idea geométrica, si entendemos el uno como un punto y el dos como una línea, el tres pasa a ser un plano.
- El cuatro (cuaternario) quiere simbolizar el universo material, como manifestación de cuatro aspectos: tierra, aire, fuego y agua; Lucas, Juan, Marcos y Mateo; toro, águila, león y hombre; y los tetragrámaton de muchas religiones y filosofías. Ahora la idea geométrica alcanza con este cuarto nivel el volumen, adquiriendo cuerpo material.
- Y el 10 (década) es el conjunto de los anteriores, el número perfecto, la totalidad del Universo. Y en este sentido de totalidad se revela como un retorno a la unidad, cerrando el ciclo. Un origen y un fin; un todo surge del uno y vuelve al uno...
Así pues, el Tetraktys es una representación simple y compleja de la creación, de la totalidad en constante movimiento, de la armonía de los contrarios, de la esencia numérica de todas las cosas... En definitiva, opino que podría ser el árbol de la vida de los pitagóricos.
Una pasada.
.
lunes, 12 de mayo de 2008
Jugant amb l'infinit
Per exemple, vaig a demostrar que 2 = 1
Parteixo d’una afirmació innòcua, com a = b
Multiplico els dos costats per a, i tinc a² = ab
Afegeixo als dos costats a²-2ab, per passar a tenir:
a²+a²-2ab = ab+a²-2ab
I d’aquesta manera puc simplificar-ho agrupant els termes en a² i els termes en ab a cada costat de l’expressió:
2a²-2ab = a²-ab
Traient factor comú a la primera igualtat, tinc que:
2(a²-ab) = a²-ab
Finalment, no tinc més que dividir els dos costats de la igualtat per a²-ab i...
Obtenim la demostració que 2 = 1 !!!
Aquest exemple pretén il·lustrar que de la mateixa manera que, en una matèria que m’agrada aprofundir en el seus secrets, un és capaç de demostrar i afirmar coses incorrectes confonent als altres, també crec que en altres de camps els anomenats “entesos en la matèria” de vegades no ho són tant. I, conscientment com en aquest exemple, o imprudentment per no saber “jugar amb l’infinit” ens transmeten conclusions totalment errònies.

L’elucubració sobre qualsevol tema potser és lícit de ser practicat per tothom. Però també tothom hauria de ser més cautelós en creure’s qualsevol font d’informació. Hi ha molts casos de llops disfressats amb pell de be que, malintencionadament, et conten històries per a que caiguis a les seves urpes.



