Los algoritmos genéticos

Charles Darwin en una fotografía tomada por J.M. Cameron en 1869.

Resulta fascinante comprobar cómo aplicando los mecanismos básicos de la evolución ya descrita por Darwin en su obra fundamental, El origen de las especies por medio de la selección natural, o la preservación de las razas preferidas en la lucha por la vida, publicada en 1859, se pueden generar algoritmos capaces de optimizar problemas complejos. Este tipo de metaheurísticas inspiradas en la Naturaleza ya se comentaron en artículos anteriores cuando hablamos de la optimización por colonias de hormigas o de la cristalización simulada. Aunque es un algoritmo ampliamente conocido por la comunidad científica, voy a intentar dar un par de pinceladas con el único afán de divulgar esta técnica. La verdad es que las implicaciones filosóficas que subyacen tras la teoría de Darwin son de una profundidad difícil de entender cuando se lleva a sus últimos extremos. Pero el caso es que estos algoritmos funcionan perfectamente en la optimización de estructuras de hormigón, problemas de transporte y otros problemas difíciles de optimización combinatoria.

Para aquellos interesados, os paso en las referencias un par de artículos donde hemos aplicado los algoritmos genéticos para optimizar rutas de transporte aéreo o pilas de puente huecas de hormigón armado.

Sin embargo, para aquellos otros que queráis un buen libro para pensar, os recomiendo “La peligrosa idea de Darwin”, de Daniel C. Dennett. A más de uno le hará remover los cimientos más profundos de sus creencias. Os paso la referencia al final.

Básicamente, los algoritmos genéticos “Genetic Algorithms, GA”, simulan el proceso de evolución de las especies que se reproducen sexualmente. De manera muy general, se puede decir que en la evolución de los seres vivos, el problema al que cada individuo se enfrenta diariamente es el de la supervivencia. Para ello cuenta, entre otras, con las habilidades innatas provistas en su material genético. A nivel de los genes, el problema consiste en la búsqueda de aquellas adaptaciones beneficiosas en un medio hostil y cambiante. Debido en parte a la selección natural, cada especie gana cierta “información” que es incorporada a sus cromosomas.

Durante la reproducción sexual, un nuevo individuo, diferente de sus padres, se genera a través de la acción de dos mecanismos fundamentales: El primero es el cruzamiento, que combina parte del patrimonio genético de cada progenitor para elaborar el del nuevo individuo; el segundo es la mutación, que supone una modificación espontánea de esta información genética. La descendencia será diferente de los progenitores, pero mantendrá parte de sus características. Si los hijos heredan buenos atributos de sus padres, su probabilidad de supervivencia será mayor que aquellos otros que no las tengan. De este modo, los mejores tendrán altas probabilidades de reproducirse y diseminar su información genética a sus descendientes.

Holland (1975) estableció por primera vez una metaheurística basada en la analogía genética. Un individuo se puede asociar a una solución factible del problema, de modo que se pueda codificar en forma de un vector binario “string”. Entonces un operador de cruzamiento intercambia cadenas de los padres para producir un hijo. La mutación se configura como un operador secundario que cambia, con una probabilidad pequeña, algunos elementos del vector hijo. La aptitud del nuevo vector creado se evalúa de acuerdo con una función objetivo.

Los pasos a seguir con esta metaheurística serían los siguientes:

  1. Generar una población de vectores (individuos).
  2. Mientras no se encuentre un criterio de parada:
    1. Seleccionar un conjunto de vectores padre, que serán reemplazados de la población.
    2. Emparejar aleatoriamente a los progenitores y cruzarlos para obtener unos vectores hijo.
    3. Aplicar una mutación a cada descendiente.
    4. Evaluar a los hijos.
    5. Introducir a los hijos en la población.
    6. Eliminar a aquellos individuos menos eficaces.

Normalmente este proceso finaliza después de un numero determinado de generaciones o cuando la población ya no puede mejorar. La selección de los padres se elige probabilísticamente hacia los individuos más aptos. Al igual que ocurre con en la Naturaleza, los sujetos con mayor aptitud diseminan sus características en toda la población.

Esta descripción de los GA se adapta a cada situación concreta, siendo habitual la codificación de números enteros en vez de binarios. Del mismo modo se han sofisticado los distintos operadores de cruzamiento y mutación.

Os dejo a continuación un vídeo explicativo que he elaborado para mis clases de “Modelos predictivos y de optimización heurística de estructuras de hormigón“, del Máster Universitario en Ingeniería del Hormigón, de la Universitat Politècnica de València.

Referencias:

DENNETT, D.C. (1999). La peligrosa idea de Darwin. Galaxia Gutenberg. Círculo de Lectores, Barcelona.

HOLLAND, J.H. (1975). Adaptation in natural and artificial systems. University of Michigan Press, Ann Arbor.

MARTÍNEZ, F.J.; GONZÁLEZ-VIDOSA, F.; HOSPITALER, A.; YEPES, V. (2010). Heuristic Optimization of RC Bridge Piers with Rectangular Hollow Sections. Computers & Structures, 88: 375-386. ISSN: 0045-7949.  (link)

MEDINA, J.R.; YEPES, V. (2003). Optimization of touristic distribution networks using genetic algorithms. Statistics and Operations Research Transactions, 27(1): 95-112.  ISSN: 1696-2281.  (pdf)

PONZ-TIENDA, J.L.; YEPES, V.; PELLICER, E.; MORENO-FLORES, J. (2013). The resource leveling problem with multiple resources using an adaptive genetic algorithm. Automation in Construction, 29(1):161-172. DOI:http://dx.doi.org/10.1016/j.autcon.2012.10.003. (link)

YEPES, V. (2003). Apuntes de optimización heurística en ingeniería. Editorial de la Universidad Politécnica de Valencia. Ref. 2003.249. Valencia, 266 pp. Depósito Legal: V-2720-2003.

Licencia de Creative Commons
Esta obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-SinObraDerivada 4.0 Internacional.

¿Cuál es el mejor algoritmo para optimizar un problema? “No free lunch”

Figura 1. Desgraciadamente, no existe la comida gratis. https://medium.com/@LeonFedden/the-no-free-lunch-theorem-62ae2c3ed10c

Después de años impartiendo docencia en asignaturas relacionadas con la optimización heurística de estructuras de hormigón, y tras muchos artículos científicos publicados y más donde he sido revisor de artículos de otros grupos de investigación, siempre se plantea la misma pregunta: De todos los algoritmos que utilizamos para optimizar, ¿cuál es el mejor? ¿Por qué dice en su artículo que su algoritmo es el mejor para este problema? ¿Por qué no nos ponemos de acuerdo?

Para resolver esta cuestión, dos investigadores norteamericanos, David Wolpert y William Macready, publicaron un artículo en 1997 donde establecieron un teorema denominado “No free lunch“, que traducido sería algo así como “no hay comida gratis”. Dicho teorema establece que, por cada par de algoritmos de búsqueda, hay tantos problemas en el que el primer algoritmo es mejor que el segundo como problemas en el que el segundo algoritmo es mejor que el primero.

Este teorema revolucionó la forma de entender el rendimiento de los algoritmos. Incluso una búsqueda aleatoria en el espacio de soluciones podría dar mejores resultados que cualquier algoritmo de búsqueda. La conclusión es que no existe un algoritmo que sea universalmente mejor que los demás, pues siempre habrá casos donde funcione peor que otros, lo cual significa que todos ellos se comportarán igual de bien (o de mal) en promedio.

De hecho, se podría decir que un experto en algoritmos genéticos podría diseñar un algoritmo genético más eficiente que, por ejemplo, un recocido simulado, y viceversa. Aquí el arte y la experiencia en un problema y en una familia de algoritmos determinados, suele ser decisivo. En la Figura 2 se puede ver cómo un algoritmo muy especializado, que conoce bien el problema, puede mejorar su rendimiento, pero pierde la generalidad de poder usarse en cualquier tipo de problema de optimización que no sea para el que se diseñó.

Figura 2. El uso del conocimiento del problema puede mejorar el rendimiento, a costa de la generalidad. https://medium.com/@LeonFedden/the-no-free-lunch-theorem-62ae2c3ed10c

¿Qué consecuencias obtenemos de este teorema? Lo primero, una gran decepción, pues hay que abandonar la idea del algoritmo inteligente capaz de optimizar cualquier problema. Lo segundo, que es necesario incorporar en el algoritmo cierto conocimiento específico del problema, lo cual equivale a una “carrera armamentística” para cada problema de optimización. Se escriben y escribirán miles de artículos científicos donde un investigador demuestre que su algoritmo es mejor que otro para un determinado problema.

Una forma de resolver este asunto de incorporar conocimiento específico del problema es el uso de la inteligencia artificial en ayuda de las metaheurísticas. Nuestro grupo de investigación está abriendo puertas en este sentido, incorporando “deep learning” en el diseño de los algoritmos (Yepes et al., 2020; García et al., 2020a; 2020b), o bien redes neuronales (García-Segura et al., 2017). Incluso, en este momento, me encuentro como editor de un número especial de la revista Mathematics (primer decil del JCR) denominado: “Deep Learning and Hybrid-Metaheuristics: Novel Engineering Applications”, al cual os invito a enviar vuestros trabajos de investigación.

Si nos centramos en un tipo de problema determinado, por ejemplo, la optimización de estructuras (puentes, pórticos de edificación, muros, etc.), el teorema nos indica que necesitamos gente formada y creativa para optimizar el problema concreto al que nos enfrentamos. Es por ello que no existen programas comerciales eficientes capaces de adaptarse a cualquier estructura para optimizarla. Tampoco son eficientes las herramientas generales “tools” que ofrecen algunos programas como Matlab para su uso inmediato e indiscriminado.

Por tanto, no se podrá elegir entre dos algoritmos solo basándose en lo bien que trabajaron anteriormente en un problema determinado, pues en el siguiente problema pueden optimizar de forma deficiente. Por tanto, se exige conocimiento intrínseco de cada problema para optimizarlo. Es por ello que, por ejemplo, un experto matemático o informático no puede, sin más, dedicarse a optimizar puentes atirantados.

Referencias:

GARCÍA, J.; YEPES, V.; MARTÍ, J.V. (2020a). A hybrid k-means cuckoo search algorithm applied to the counterfort retaining walls problem. Mathematics,  8(4), 555.

GARCÍA, J.; MARTÍ, J.V.; YEPES, V. (2020b). The buttressed  walls problem: An application of a hybrid clustering particle swarm optimization algorithm. Mathematics,  8(6):862.

GARCÍA-SEGURA, T.; YEPES, V.; FRANGOPOL, D.M. (2017). Multi-Objective Design of Post-Tensioned Concrete Road Bridges Using Artificial Neural Networks. Structural and Multidisciplinary Optimization, 56(1):139-150.

WOLPERT, D.H.; MACREADY, W.G. (1997). No Free Lunch Theorems for Optimization. IEEE Transactions on Evolutionary Computation, 1(1):67-82.

YEPES, V.; MARTÍ, J.V.; GARCÍA, J. (2020). Black hole algorithm for sustainable design of counterfort retaining walls. Sustainability, 12(7), 2767.

A continuación os dejo el artículo original “No Free Lunch Theorems for Optimization”. Se ha convertido en un clásico en optimización heurística.

Descargar (PDF, 698KB)

Licencia de Creative Commons
Esta obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-SinObraDerivada 4.0 Internacional.

Instrucciones básicas de Matlab para tratamiento estadístico de datos

Dejo a continuación una serie de instrucciones básicas que podéis utilizar en Matlab para realizar cálculos estadísticos básicos. Este post está dedicado a mis estudiantes de Modelos Predictivos y de Optimización de Estructuras de Hormigón, pero puede ser de interés, por lo que lo dejo en abierto.

Importar datos de un fichero Excel

>> datos=xlsread(‘Ejercicio 4’)

Número de filas y columnas

>> size(datos)

Dimensión más grande de una matriz

>> length(datos)

Ordena los elementos de forma ascendente

>> sort(datos)

Ordena los elementos de forma descendente

>> sort(datos,’descend’)

Suma de los datos

>> sum(datos)

Producto de los datos

>> prod(datos)

Vector de sumas acumuladas

>> cumsum(datos)

Vector de productos acumulados

>> cumprod(datos)

Calcular la media aritmética

>> mean(datos)

Calcular la mediana

>> median(datos)

Calcular la moda de la muestra

>> mode(datos)

Calcular la media aritmética omitiendo el 5% de datos de cada lado

>> trimmean(datos,10)

Calcular la media geométrica de una muestra

>> geomean(datos)

Calcular la media armónica de una muestra

>> harmmean(datos)

Calcular el sesgo de la muestra

>> skewness(datos)

Calcular la curtosis de los datos

>> kurtosis(datos)

Varianza muestral

>> var(datos)

Desviación estándar muestral

>> std(datos)

 

Rango de los datos

>> range(datos)

El menor valor

>> min(datos)

El mayor valor

>> max(datos)

Desviación absoluta respecto a la media

>> mad(datos)

Momento central de orden 3 respecto a la media

>> moment(datos,3)

Rango intercuartílico

>> iqr(datos)

Primer cuartil (percentil 25)

>> prctile(datos, 25)

Percentil del 5%

>> prctile(datos,5)

Dibujar un diagrama de caja

>> boxplot(datos)

Dibujar el histograma de datos

>> hist(datos)

Dibujar la distribución de frecuencia acumulada

>> cdfplot(datos)

Visualización de funciones de probabilidad

>> disttool

Ajuste de modelos de distribución a conjunto de datos

>> dfittool

Matriz 3×3 de números aleatorios entre 0 y 1

>> rand(3)

Matriz 3×2 de números aleatorios entre 0 y 1

>> rand(3,2)

Matriz 3×3 de números aleatorios normales de media 0 y varianza 1

>> randn(3)

Matriz 3×2 de números aleatorios normales de media 0 y varianza 1

>> randn(3,2)

Secuencia de 5 valores aleatorios normales de desviación estándar de 2,5 y media 3

>> rand(1,5)*2.5+3

 

La inteligencia artificial en la ingeniería civil

https://www.chilecubica.com/revistas-de-construcci%C3%B3n/inteligencia-artificial/

La inteligencia artificial (IA)  – tecnologías capaces de realizar tareas que normalmente requieren inteligencia humana – constituye un enfoque alternativo a las técnicas de modelización clásicas. La IA es la rama de la ciencia de la computación que desarrolla máquinas y software con una inteligencia que trata de imitar las funciones cognitivas humanas. En comparación con los métodos tradicionales, la IA ofrece ventajas para abordar los problemas asociados con las incertidumbres y es una ayuda efectiva para resolver problemas de elevada complejidad, como son la mayoría de problemas reales en ingeniería. Además, las soluciones aportadas por la IA constituyen buenas alternativas para determinar los parámetros de diseño cuando no es posible realizar ensayos, lo que supone un ahorro importante en tiempo y esfuerzo dedicado a los experimentos. La IA también es capaz de acelerar el proceso de toma de decisiones, disminuye las tasas de error y aumenta la eficiencia de los cálculos. Entre las diferentes técnicas de IA destacan el aprendizaje automático (machine learning), el reconocimiento de patrones (pattern recognition) y el aprendizaje profundo (deep learning), técnicas que han adquirido recientemente una atención considerable y que se están estableciendo como una nueva clase de métodos inteligentes para su uso en la ingeniería civil.

Todos conocemos problemas de ingeniería civil cuya solución pone al límite las técnicas computacionales tradicionales. Muchas veces se solucionan porque existen expertos con la formación adecuada capaces de intuir la solución más adecuada, para luego comprobarla con los métodos convencionales de cálculo. En este contexto, la inteligencia artificial está tratando de capturar la esencia de la cognición humana para acelerar la resolución de estos problemas complejos. La IA se ha desarrollado en base a la interacción de varias disciplinas, como son la informática, la teoría de la información, la cibernética, la lingüística y la neurofisiología.

Figura 1. Interrelación entre diferentes técnicas computacionales inteligentes. Elaboración propia basada en Salehi y Burgueño (2018)

A veces el concepto de “inteligencia artificial (IA)” se confunde con el de “inteligencia de máquina (IM)” (machine intelligence). En general, la IM se refiere a máquinas con un comportamiento y un razonamiento inteligente similar al de los humanos, mientras que la IA se refiere a la capacidad de una máquina de imitar las funciones cognitivas de los humanos para realizar tareas de forma inteligente. Otro término importante es la “computación cognitiva (CC)” (cognitive computing), que se inspira en las capacidades de la mente humana. Los sistemas cognitivos son capaces de resolver problemas imitando el pensamiento y el razonamiento humano. Tales sistemas se basan en la capacidad de las máquinas para medir, razonar y adaptarse utilizando la experiencia adquirida.

Las principales características de los sistemas de CC son su capacidad para interpretar grandes datos, el entrenamiento dinámico y el aprendizaje adaptativo, el descubrimiento probabilístico de patrones relevantes. Técnicamente, la IA se refiere a ordenadores y máquinas que pueden comportarse de forma inteligente, mientras que el CC se concentra en la resolución de los problemas utilizando el pensamiento humano. La diferencia más significativa entre la IA y la CC puede definirse en función de su interactuación con los humanos. Para cualquier sistema de IA, hay un agente que decide qué acciones deben tomarse. Sin embargo, los sistemas de CC aprenden, razonan e interactúan como los humanos.

Por otra parte, los “sistemas expertos” son una rama de la IA. Un sistema experto se definiría como un programa de ordenador que intenta imitar a los expertos humanos para resolver problemas que exigen conocimientos humanos y experiencia. Por tanto, la IA incluye diferentes ramas como los sistemas expertos, el aprendizaje automático, el reconocimiento de patrones y la lógica difusa.

La IA se ha usado en estas últimas décadas de forma intensiva en las investigaciones relacionadas con la ingeniería civil. Son notables las aplicaciones de las redes neuronales, los algoritmos genéticos, la lógica difusa y la programación paralela. Además, la optimización heurística ha tenido una especial relevancia en muchos campos de la ingeniería civil, especialmente en el ámbito de las estructuras y las infraestructuras. Sin embargo, los métodos más recientes como el reconocimiento de patrones, el aprendizaje automático y el aprendizaje profundo son método totalmente emergentes en este ámbito de la ingeniería. Éstas técnicas emergentes tienen la capacidad de aprender complicadas interrelaciones entre los parámetros y las variables, y así permiten resolver una diversidad de problemas que son difíciles, o no son posibles, de resolver con los métodos tradicionales.

El aprendizaje automático es capaz de descubrir información oculta sobre el rendimiento de una estructura al aprender la influencia de diversos mecanismos de daño o degradación y los datos recogidos de los sensores. Además, el aprendizaje automático y el aprendizaje profundo tienen una elevada potencialidad en el dominio de la mecánica computacional, como por ejemplo, para optimizar los procesos en el método de elementos finitos para mejorar la eficiencia de los cálculos. Estos métodos también se pueden utilizar para resolver problemas complejos a través del novedoso concepto de la Internet de las Cosas. En este contexto del Internet de las Cosas, se pueden utilizar estas técnicas emergentes para analizar e interpretar grandes bases de datos. Esto abre las puertas al desarrollo de infraestructuras, ciudades o estructuras inteligentes.

Sin embargo, aún nos encontramos con limitaciones en el uso de estos métodos emergentes. Entre esas limitaciones figura la falta de selección racional del método de IA, que no se tenga en cuenta el efecto de los datos incompletos o con ruido, que no se considere la eficiencia de la computación, el hecho de que se informe sobre la exactitud de la clasificación sin explorar soluciones alternativas para aumentar el rendimiento, y la insuficiencia de la presentación del proceso para seleccionar los parámetros óptimos para la técnica de IA. Con todo, a pesar de estas limitaciones, el aprendizaje automático, el reconocimiento de patrones y el aprendizaje profundo se postulan como método pioneros para aumentar la eficiencia de muchas aplicaciones actuales de la ingeniería civil, así como para la creación de usos innovadores.

Referencias:

GARCÍA-SEGURA, T.; YEPES, V.; FRANGOPOL, D.M. (2017). Multi-Objective Design of Post-Tensioned Concrete Road Bridges Using Artificial Neural Networks. Structural and Multidisciplinary Optimization, 56(1):139-150.

NAVARRO, I.J.; YEPES, V.; MARTÍ, J.V. (2019). A review of multi-criteria assessment techniques applied to sustainable infrastructures design. Advances in Civil Engineering, 2019: 6134803.

SALEHI, H.; BURGUEÑO, R. (2018). Emerging artificial intelligence methods in structural engineering. Engineering Structures, 171:170-189.

SIERRA, L.A.; YEPES, V.; PELLICER, E. (2018). A review of multi-criteria assessment of the social sustainability of infrastructures. Journal of Cleaner Production, 187:496-513.

YEPES, V. (2013). Métodos no convencionales de investigación basados en la inteligencia artificial. https://victoryepes.blogs.upv.es/2013/11/12/metodos-no-convencionales-de-investigacion-basado-en-la-inteligencia-artificial/

YEPES, V. (2020). Computación cuántica y gemelos híbridos digitales en ingeniería civil y edificación. https://victoryepes.blogs.upv.es/2019/10/30/computacion-cuantica-gemelos-digitales/

YEPES, V.; GARCÍA-SEGURA, T.; MORENO-JIMÉNEZ, J.M. (2015). A cognitive approach for the multi-objective optimization of RC structural problems. Archives of Civil and Mechanical Engineering, 15(4):1024-1036

Os dejo a continuación un informe sobre cómo la inteligencia de máquina permite crear valor y se postula como una herramienta de primer nivel en todos los ámbitos.

Descargar (PDF, 1.05MB)

18 años de la lectura de mi tesis doctoral: Optimización heurística económica aplicada a las redes de transporte del tipo VRPTW

Hoy 4 de septiembre, pero del año 2002, tuve la ocasión de defender mi tesis doctoral titulada “Optimización heurística económica aplicada a las redes de transporte del tipo VRPTW“. La tesis la dirigió el profesor Josep Ramon Medina Folgado, el tribunal lo presidió José Aguilar, acompañado por José Vicente Colomer, Francesc Robusté, Francisco García Benítez y Jesús Cuartero. La calificación fue de sobresaliente “cum laude” por unanimidad.

Por tanto, mi tesis ya ha cumplido la mayoría de edad. Es un buen momento de reflexionar sobre lo que este trabajo supuso para mí. Fue una tesis tardía, pues la leí con 38 años, teniendo ya una buena trayectoria profesional en la empresa privada (Dragados y Construcciones) y en la administración pública (Generalitat Valenciana). De alguna forma, ya tenía la vida más o menos solucionada, con experiencia acumulada, pero con muchas inquietudes. En aquel momento era profesor asociado a tiempo parcial y, en mis ratos libres, me dediqué a hacer la tesis doctoral. Ni decir tiene las dificultades que supone para cualquiera el sacar tiempo de donde no lo hay para hacer algo que, en aquel momento, era simplemente vocacional. No hubo financiación de ningún tipo, ni reducción de jornada laboral, ni nada por el estilo. En aquel momento ni se me ocurrió que acabaría, años después, como catedrático de universidad. Del 2002 al 2008 seguí como profesor asociado trabajando en la administración pública. Por último, por el sistema de habilitación nacional, accedí a la universidad directamente de profesor asociado a profesor titular, cosa bastante rara en aquel momento. Gracias a que era una verdadera oposición con el resto de candidatos, tuve la oportunidad de mostrar mis méritos ante un tribunal. Luego la cátedra vino por el sistema de acreditación, y la plaza, tras una penosa espera a causa de la crisis y por las cuotas de reposición. Pasé en 6 años de ser profesor asociado a tiempo parcial a estar habilitado como catedrático de universidad (12 de mayo del 2014). Todo eso se lo debo, entre otras cosas, a la gran producción científica que pude llevar a cabo y que tuvo su origen en esta tesis doctoral.

Por cierto, en aquella época la tesis doctoral tenía que ser inédita, es decir, no tenía que haberse publicado ningún artículo de la tesis. Hoy día es todo lo contrario, conviene tener 3-4 artículos buenos antes de pasar por la defensa. Luego publiqué al respecto algunos artículos en revistas nacionales e internacionales, pero sobre todo, comunicaciones a congresos.

La tesis supuso, en su momento, aprender en profundidad lo que era la algoritmia, el cálculo computacional y, sobre todo, la optimización heurística. En aquel momento, al menos en el ámbito de la ingeniería civil, nada o muy poco se sabía al respecto, aunque era un campo abonado a nivel internacional. Luego comprobé que todo lo aprendido se pudo aplicar al ámbito de las estructuras, especialmente a los puentes, pero eso es otra historia.

Os dejo las primeras páginas de la tesis y la presentación que utilicé en Powerpoint. Para que os hagáis una idea del momento, la presentación también la imprimí en acetato, pues aún se utilizada en ese momento en las clases la proyección de transparencias.

Referencia:

YEPES, V. (2002). Optimización heurística económica aplicada a las redes de transporte del tipo VRPTW. Tesis Doctoral. Escuela Técnica Superior de Ingenieros de Caminos, Canales y Puertos. Universitat Politècnica de València. 352 pp. ISBN: 0-493-91360-2.

Descargar (PDF, 340KB)

Descargar (PDF, 5.92MB)

¿Qué es la optimización por cristalización simulada?

La cristalización simulada (también llamado recocido simulado)  “Simulated Annealing, SA” constituye una de las estrategias a las que se recurre en la resolución de los problemas de optimización combinatoria. Kirkpatrick, Gelatt y Vecchi la propusieron por primera vez en 1983 y Cerny en 1985 de forma independiente. Estos autores se inspiraron en los trabajos sobre Mecánica Estadística de Metrópolis et al. (1953). La metaheurística despliega una estructura que se inserta cómodamente en la programación, mostrando además una considerable habilidad para escapar de los óptimos locales. Fue una técnica que experimentó un auge considerable en la década de los 80 para resolver los modelos matemáticos de optimización.

La energía de un sistema termodinámico se compara con la función de coste evaluada para una solución admisible de un problema de optimización combinatoria. En ambos casos se trata de evolucionar de un estado a otro de menor energía o coste. El acceso de un estado metaestable a otro se alcanza introduciendo “ruido” con un parámetro de control al que se denomina temperatura. Su reducción adecuada permite, con una elevada probabilidad, que un sistema termodinámico adquiera un mínimo global de energía. Conceptualmente es un algoritmo de búsqueda por entornos, que selecciona candidatos de forma aleatoria. La alternativa se aprueba si perfecciona la solución actual (D menor o igual que cero); en caso contrario, será aceptada con una probabilidad  (e(-D/T) si D>0, donde T es el parámetro temperatura) decreciente con el aumento de la diferencia entre los costes de la solución candidata y la actual. El proceso se repite cuando la propuesta no es admitida. La selección aleatoria de soluciones degradadas permite eludir los mínimos locales. La cristalización simulada se codifica fácilmente, incluso en problemas complejos y con funciones objetivo arbitrarias. Además, con independencia de la solución inicial, el algoritmo converge estadísticamente a la solución óptima (Lundy y Mees, 1986). En cualquier caso, SA proporciona generalmente soluciones valiosas, aunque no informa si ha llegado al óptimo absoluto. Por contra, al ser un procedimiento general, en ocasiones no resulta competitivo, aunque sí comparable, ante otros específicos que aprovechan información adicional del problema. El algoritmo es lento, especialmente si la función objetivo es costosa en su tiempo de computación. Además, la cristalización simulada pierde terreno frente a otros métodos más simples y rápidos como el descenso local cuando el espacio de las soluciones es poco abrupto o escasean los mínimos locales.

Os dejo un vídeo explicativo:

Referencias

CERNY, V. (1985). Thermodynamical approach to the traveling salesman problem: an efficient simulated algorithm. Journal of Optimization Theory and Applications, 45: 41-51.

KIRKPATRICHK, S.; GELATT, C.D.; VECCHI, M.P. (1983). Optimization by simulated annealing. Science, 220(4598): 671-680.

LUNDY, M.; MEES, A. (1986). Convergence of an Annealing Algorithm. Mathematical programming, 34:111-124.

METROPOLIS, N.; ROSENBLUTH, A.W.; ROSENBLUTH, M.N.; TELLER, A.H.; TELER, E. (1953). Equation of State Calculation by Fast Computing Machines. Journal of Chemical Physics, 21:1087-1092.

GONZÁLEZ-VIDOSA-VIDOSA, F.; YEPES, V.; ALCALÁ, J.; CARRERA, M.; PEREA, C.; PAYÁ-ZAFORTEZA, I. (2008) Optimization of Reinforced Concrete Structures by Simulated Annealing. TAN, C.M. (ed): Simulated Annealing. I-Tech Education and Publishing, Vienna, pp. 307-320. (link)

Redes neuronales aplicadas al diseño multiobjetivo de puentes postesados

Nos acaban de publicar en línea en la revista Structural and Multidisciplinary Optimization (revista indexada en JCR en el primer cuartil) un trabajo de investigación en el que utilizamos las redes neuronales artificiales junto para el diseño multiobjetivo de puentes postesados de carreteras. Os paso a continuación el resumen y el enlace al artículo por si os resulta de interés. El enlace del artículo es el siguiente: http://link.springer.com/article/10.1007%2Fs00158-017-1653-0

Referencia:

García-Segura, T.; Yepes, V.; Frangopol, D.M. (2017). Multi-objective design of post-tensioned concrete road bridges using artificial neural networks. Structural and Multidisciplinary Optimization, doi:10.1007/s00158-017-1653-0

Abstract:

In order to minimize the total expected cost, bridges have to be designed for safety and durability. This paper considers the cost, the safety, and the corrosion initiation time to design post-tensioned concrete box-girder road bridges. The deck is modeled by finite elements based on problem variables such as the cross-section geometry, the concrete grade, and the reinforcing and post-tensioning steel. An integrated multi-objective harmony search with artificial neural networks (ANNs) is proposed to reduce the high computing time required for the finite-element analysis and the increment in conflicting objectives. ANNs are trained through the results of previous bridge performance evaluations. Then, ANNs are used to evaluate the constraints and provide a direction towards the Pareto front. Finally, exact methods actualize and improve the Pareto set. The results show that the harmony search parameters should be progressively changed in a diversification-intensification strategy. This methodology provides trade-off solutions that are the cheapest ones for the safety and durability levels considered. Therefore, it is possible to choose an alternative that can be easily adjusted to each need.

Keywords:

Multi-objective harmony search; Artificial neural networks; Post-tensioned concrete bridges; Durability; Safety.

Os dejo a continuación la versión autor del artículo.

Descargar (PDF, 1.14MB)

La programación lineal y el método Simplex en el ámbito del hormigón

La programación lineal es un procedimiento o algoritmo matemático mediante el cual se resuelve un problema indeterminado, formulado a través de un sistema de inecuaciones lineales, optimizando la función objetivo, también lineal. Consiste en optimizar (minimizar o maximizar) una función lineal, denominada función objetivo, de tal forma que las variables de dicha función estén sujetas a una serie de restricciones que expresamos mediante un sistema de inecuaciones lineales.

Os dejo un vídeo tutorial donde se explica la programación lineal y se avanzan las ideas básicas del método Simplex.

 

 

 

 

 

Existen páginas web, como PHPSimplex, donde puedes solucionar on-line problemas sencillos. También puede resolverse este tipo de problemas con las herramientas de MATLAB: Optimization Toolbox.

A continuación os dejo un vídeo donde se explica cómo resolver un problema de Programación Lineal mediante MS Excel 2007. Es importante que aprendáis a utilizar el Solver. Espero que os guste el vídeo.

También os dejo el siguiente enlace del canal FdeT donde podéis aprender más sobre programación lineal: https://www.youtube.com/playlist?list=PL0_FimzlChzLfAeFbjv0S2nnj8fAi82wB

¿Seríais capaces de resolver los siguientes problemas, donde el objetivo es maximizar el beneficio?:

  1. Una empresa produce hormigón usando los ingredientes A y B. Cada kilo de ingrediente A cuesta 60 unidades monetarias y contiene 4 unidades de arena fina, 3 unidades de arena gruesa y 5 unidades de grava. Cada kilo de ingrediente B cuesta 100 unidades monetarias y contiene 3 unidades de arena fina, 6 unidades de arena gruesa y 2 unidades de grava. Cada amasada debe contener, por lo menos, 12 unidades de arena fina, 12 unidades de arena gruesa y 10 unidades de grava. Formule un modelo de programación lineal y resuélvalo gráficamente.
  2. Una empresa especializada en la construcción de estructuras de edificios tiene patentes de tres tipos de forjados F1, F2 y F3. Los beneficios que consigue por metro cuadrado de forjado construido son 100, 90 y 120 unidades monetarias respectivamente. Por razones de almacenamiento y financiación, diariamente sólo se dispone de dos toneladas de acero, 200 m3 de hormigón y 8 m3 de madera para encofrados. Maximizar el beneficio a obtener. Las cantidades de acero, hormigón y madera que se necesitan por m2 en cada uno de los forjados son:

 

 

Tipo de forjado

Materia prima

Cantidad

F1

Acero

0,2 kg/m2

Hormigón

80 dm3/m2

Madera

0,001 m3/m2

F2

Acero

0,25 kg/m2

Hormigón

37,5 dm3/m2

Madera

0,00125 m3/m2

F3

Acero

0,225 kg/m2

Hormigón

35 dm3/m2

Madera

0,0015 m3/m2

Los orígenes del PERT y del CPM

Henry Laurence Gantt (1861-1919)

Si tuviésemos que hablar de la historia de la planificación y control de las obras, deberíamos referirnos a la primera de las construcciones realizadas por el hombre y perdida en el origen de nuestra especie. Construcciones como las pirámides de Egipto no pudieron construirse sin un plan previo y una compleja organización de recursos. Sin embargo, si queremos utilizar las actuales técnicas de planificación, podríamos reducir significativamente nuestra historia y remontarnos apenas medio siglo en Estados Unidos, cuando tanto desde el ámbito militar como desde el civil, de forma independiente, se sentaron las bases de la técnicas basadas en el método del camino crítico (Critical Path Method, CPM) y en el método PERT (Program Evaluation and Review Technique). La planificación y programación de proyectos complejos, sobre todo grandes proyectos unitarios no repetitivos, comenzó a ser motivo de especial atención al final de la Segunda Guerra Mundial, donde el diagrama de barras de Henry Gantt  era la única herramienta de planificación de la que se disponía, que fue un método innovador en su momento, pero muy limitado. Gannt publicó en 1916 “Work, Wages, and Profits“, un texto donde discutía estos aspectos de planificación y otros relacionados con la productividad. De todos modos, para ser más exactos, Gantt no fue el pionero en el uso de esta herramienta. Otros autores como Joseph Priestley en 1765 o William Playfair en 1786, ya había sugerido ideas precursoras, que el ingeniero  Karol Adamiecki desarrolló en 1896 en lo que él llamó como “Harmonograma”. También deberíamos destacar aquí los primeros intentos desarrollados, entre 1955 y 1957 por la “Imperial Chemical Industries” y el “Central Electricity Generating Board”, en el Reino Unido, donde se desarrolló una técnica capaz de identificar la secuencia de estados más larga e irreductible para la ejecución de un trabajo, en línea con lo que después se llamaría CPM (Crítical Path Method). Estas empresas consiguieron ahorros de tiempo en torno al 40%, pero debido a que no se publicaron estas innovaciones, cayeron en la oscuridad, de la cual se despertó con los avances que se desarrollaron al otro lado del océano. Continue reading “Los orígenes del PERT y del CPM”

¿Qué es la optimización combinatoria?

Los problemas de optimización en los que las variables de decisión son enteras, es decir, donde el espacio de soluciones está formado por ordenaciones o subconjuntos de números naturales, reciben el nombre de problemas de optimización combinatoria. En este caso, se trata de hallar el mejor valor de entre un número finito o numerable de soluciones viables. Sin embargo la enumeración de este conjunto resulta prácticamente imposible, aún para problemas de tamaño moderado.

Las raíces históricas de la optimización combinatoria subyacen en ciertos problemas económicos: la planificación y gestión de operaciones y el uso eficiente de los recursos. Pronto comenzaron a modelizarse de esta manera aplicaciones más técnicas, y hoy vemos problemas de optimización discreta en diversas áreas: informática, gestión logística (rutas, almacenaje), telecomunicaciones, ingeniería, etc., así como para tareas variadas como el diseño de campañas de marketing, la planificación de inversiones, la división de áreas en distritos políticos, la secuenciación de genes, la clasificación de plantas y animales, el diseño de nuevas moléculas, el trazado de redes de comunicaciones, el posicionamiento de satélites, la determinación del tamaño de vehículos y las rutas de medios de transporte, la asignación de trabajadores a tareas, la construcción de códigos seguros, el diseño de circuitos electrónicos, etc. (Yepes, 2002). La trascendencia de estos modelos, además del elevado número de aplicaciones, estriba en el hecho de que “contiene los dos elementos que hacen atractivo un problema a los matemáticos: planteamiento sencillo y dificultad de resolución” (Garfinkel, 1985). En Grötschel y Lobas (1993) se enumeran otros campos en los cuales pueden utilizarse las técnicas de optimización combinatoria.

REFERENCIAS

GARFINKEL, R.S. (1985). Motivation and Modeling, in LAWLER, E.L.; LENSTRA, J.K.; RINNOOY KAN, A.H.G.; SHMOYS, D.B. (eds.) The Traveling Salesman Problem: A Guide Tour of Combinatorial Optimization. Wiley. Chichester.

GRÖTSCHEL, M.; LÓVASZ, L. (1993). Combinatorial Optimization: A Survey. Technical Report 93-29. DIMACS, May.

YEPES, V. (2002). Optimización heurística económica aplicada a las redes de transporte del tipo VRPTW. Tesis Doctoral. Escuela Técnica Superior de Ingenieros de Caminos, Canales y Puertos. Universitat Politècnica de València. 352 pp. ISBN: 0-493-91360-2. (pdf)