El puente de Tacoma... después del colapso... ¿Qué?


Es una pena que los documentales (o incluso las explicaciones de los profesores de ingenieria de estructuras), siempre corten la historia justo cuando el tablero cae al agua, porque lo que pasó después es una historia muy interesante de ingeniería, reciclaje forzoso y redención técnica.

La respuesta corta es: se desmanteló casi por completo y se construyó un puente totalmente nuevo desde cero aprovechando únicamente las cimentaciones sumergidas.

Pero.... creo que la historia completa es más que interesante... a continuación, un breve resumen de la historia de lo que ocurrió entre el colapso de 1940 y lo que hay hoy en día:

El destino de las ruinas (1940-1943)

Tras el desastre del 7 de noviembre de 1940, el puente quedó en un estado estructural irrecuperable. Aunque las icónicas torres de acero seguían en pie, las fuerzas brutales del bamboleo torsional y el latigazo del colapso las habían dañado irreversiblemente.

El estado en el que quedó la estructura inmediatamente después del desastre., generada por IA 

  • Las torres y los cables: Los enormes cables principales se estiraron más allá de su límite elástico y se movieron de sus guías. Las torres sufrieron deformaciones estructurales en sus bases debido a los brutales tirones asimétricos. Se determinó que eran estructuralmente inseguras.

  • El desmantelamiento: Entre 1941 y 1943, el puente fue desmontado por completo. Las torres de acero y los restos del tablero se vendieron como chatarra. Esto coincidió de lleno con la Segunda Guerra Mundial, por lo que el acero del puente se fundió para el esfuerzo bélico de Estados Unidos.

  • Lo único que sobrevivió: Los enormes bloques de anclaje de hormigón en las orillas y las pilonas (caissons) de cimentación sumergidas en el estrecho. Estas últimas estaban en perfecto estado y se guardaron para el futuro.

  • El fondo del río: La mayor parte del tablero central de hormigón y acero que cayó al agua sigue hoy en el fondo del estrecho de Tacoma. Actualmente funciona como uno de los arrecifes artificiales más grandes del mundo.

La redención: El nuevo puente de 1950

La necesidad de conectar la península de Kitsap con Tacoma seguía existiendo, pero la guerra congeló cualquier obra. No fue hasta 1950 cuando se inauguró el nuevo puente en el mismo emplazamiento, utilizando las cimentaciones originales.

Esta vez, los ingenieros (escaldados por el desastre provocado por el fenómeno de flutter aeroelástico) no se arriesgaron lo más mínimo:

  • Adiós a las vigas de alma llena: El puente original de 1940 (diseñado por Leon Moisseiff) utilizaba vigas laterales de acero macizas de 2,4 metros de altura que actuaban como una vela, atrapando el viento. El nuevo diseño sustituyó esto por una viga de celosía abierta de 10 metros de profundidad. El viento podía pasar a través de la estructura sin empujarla.

  • Rejillas de ventilación: Se instalaron rejillas ranuradas en el propio suelo del tablero central para ecualizar las presiones de aire arriba y abajo de la calzada.

     

  • Resultados: El nuevo puente se ganó el apodo de "Sturdy Gertie" (Gertrudis la Robusta), en contraste con el "Galloping Gertie" del original. Fue un éxito absoluto y demostró que la lección de la aerodinámica en puentes colgantes había sido aprendida.

    Aqui un articulillo interesante:

    https://www.wikiwand.com/en/Tacoma_Narrows_Bridge_(1950) 

¿Qué hay allí hoy en día?

El tráfico creció tanto con las décadas que el puente de 1950 se quedó pequeño. En 2007, se inauguró un segundo puente colgante paralelo justo al lado.

 

Hoy en día, el puente de 1950 se utiliza para los carriles que van en sentido oeste, mientras que el puente nuevo de 2007 absorbe el tráfico en sentido este. Es un monumento vivo a cómo la ingeniería civil aprendió de uno de sus errores más célebres. (y referencia obligada para nuestros profesores de estructuras en ingenieria, por otra parte.)

 

 

 

Random Forest (Bosque Aleatorio): combinando árboles

 Una introducción a la técnica de Random Forest:

 https://www.iartificial.net/random-forest-bosque-aleatorio/

Esta imagen lo explica todo

 

 

Y los resultados parecen prometedores...


 Pero quizás con un ejemplo se entienda mejor...

Imagina que tienes que tomar una decisión médica importante. En lugar de confiar en un solo doctor (que podría tener sesgos o equivocarse), decides consultar a un comité de 100 doctores. Cada doctor hace preguntas diferentes basadas en su experiencia y, al final, se vota. La decisión de la mayoría es la que se toma.

Eso es un Random Forest: un conjunto ("ensemble") de muchos Árboles de Decisión trabajando juntos.

Los dos pilares de la "Aleatoriedad" (Random)

Para que el comité sea bueno, los doctores no pueden ser clones; deben pensar de forma diferente. Random Forest logra esto mediante dos técnicas:

  1. Bagging (Bootstrap Aggregating): Cada árbol se entrena con una muestra aleatoria del dataset original (algunos datos se repiten, otros se quedan fuera).

  2. Selección aleatoria de características (Features): Cuando un árbol va a cortar una rama, no mira todas las variables disponibles. Elige un subgrupo al azar (por ejemplo, si hay 20 variables, solo mira 5 para ese corte).

Resultado: Árboles muy diferentes entre sí que, al combinarse, reducen drásticamente el sobreajuste (overfitting) y entregan predicciones muy robustas.

¿Cómo lo implementa Keras?

Históricamente, Keras era solo para Redes Neuronales Profundas (Deep Learning) y usábamos Scikit-Learn para Random Forest. Sin embargo, Google lanzó Keras Decision Forests (KDF), lo que permite entrenar modelos basados en árboles directamente en Keras, disfrutando de sus ventajas (como una integración perfecta en pipelines de producción con TensorFlow).

Para usarlo, necesitas tener instalada la librería específica:

Bash
pip install tensorflow_decision_forests

Ejemplo Práctico de Implementación

Aquí tienes cómo estructurar un Random Forest usando la API de Keras:

Python
import tensorflow as tf
import tensorflow_decision_forests as tfdf
import pandas as pd

# 1. Cargar tus datos (usaremos un ejemplo clásico de clasificación)
# Supongamos que tienes un archivo train.csv y test.csv
train_df = pd.read_csv("train.csv")
test_df = pd.read_csv("test.csv")

# 2. Convertir los DataFrames de Pandas a Datasets de TensorFlow
# Nota: Keras DF detecta automáticamente columnas numéricas y categóricas.
train_ds = tfdf.keras.pd_dataframe_to_tf_dataset(train_df, label="columna_objetivo")
test_ds = tfdf.keras.pd_dataframe_to_tf_dataset(test_df, label="columna_objetivo")

# 3. Crear el modelo de Random Forest con Keras
# Aquí no necesitas compilar con optimizadores o funciones de pérdida, se configuran solos.
model = tfdf.keras.RandomForestModel()

# 4. Entrenar el modelo
# Los árboles de decisión se entrenan muy rápido en comparación con las redes neuronales
model.fit(train_ds)

# 5. Evaluar y predecir
self_evaluation = model.evaluate(test_ds, return_dict=True)
print(f"Precisión en Test: {self_evaluation['accuracy']:.4f}")

# 6. Guardar el modelo en el formato estándar de Keras
model.save("mi_bosque_aleatorio_keras")

Ventajas de usar Keras Decision Forests

  • Cero Preprocesamiento: No necesitas normalizar los datos numéricos ni hacer One-Hot Encoding a las variables de texto (categóricas). Keras DF lo gestiona de forma nativa.

  • Valores Faltantes: Tolera perfectamente los NaN o datos nulos en el dataset.

  • Modelos Híbridos: Puedes combinar este Random Forest con una Red Neuronal de Keras (por ejemplo, usar una red para extraer características de imágenes y pasar el resultado a un Random Forest).

 

En Keras está implementado:

 

 https://www.tensorflow.org/decision_forests/api_docs/python/tfdf/keras/RandomForestModel

 

 

 

 

RXTX for Java x64

Web de descarga de la libreria para conectar Arduino a JAVA

http://fizzed.com/oss/rxtx-for-java

Descargar una carpeta de Github a zip

Una aplicacion execelente para descargar directamente una carpeta de un reporsitorio de Github cuando no aparece la opcion de "Clone":

https://minhaskamal.github.io/DownGit/#/home


Tutorial [4] Deteccion de colisiones

En el siguiente ejemplo de código, ampliaremos el ejemplo anterior. Agregaremos un nuevo sprite Alien. Detectaremos dos tipos de colisiones: cuando el misil golpea una nave alienígena y cuando nuestra nave espacial colisiona con un alienígena y por supuesto, actuaremos en consecuencia.


El puente de Tacoma... después del colapso... ¿Qué?

Es una pena que los documentales (o incluso las explicaciones de los profesores de ingenieria de estructuras), siempre corten la historia ju...