Trucos para representar gráficas de superficie en MATLAB

Las gráficas de superficie resultan de interés, por ejemplo, para representar la Superficie de Respuesta en un Diseño de Experimentos, o bien cuando estamos representando la predicción de un fenómeno a través de unas redes neuronales. Sea cual sea el motivo, dejo a continuación algunas pautas para que esta tarea sea sencilla.

Sea, por ejemplo, la parametrización de un algoritmo de Simulated Annealing donde hemos realizado experimentos con distintas longitudes de cadenas de Markov (columnas) y distintos coeficientes de enfriamiento (filas). En la tabla se encuentran los resultados medios en coste encontrados tras realizar 9 ensayos en cada caso.

20000 30000 40000 50000
0,95 2652 2645 2637 2634
0,96 2650 2644 2637 2635
0,97 2648 2644 2637 2636
0,98 2647 2642 2637 2636
0,99 2647 2641 2637 2637

 

Para poder representar dichos puntos, necesitamos definir dos vectores fila: x será, por ejemplo, el vector fila de los coeficientes de enfriamiento, e y será el vector fila de las longitudes de cadena de Markov.

>> x=[0.95 0.96 0.97 0.98 0.99]

x =

0.9500 0.9600 0.9700 0.9800 0.9900

>> y=[20000 30000 40000 50000]

y =

20000 30000 40000 50000

>> z=[2652 2645 2637 2634

2650 2644 2637 2635
2648 2644 2637 2636
2647 2642 2637 2636
2647 2641 2637 2637]

z =

2652 2645 2637 2634
2650 2644 2637 2635
2648 2644 2637 2636
2647 2642 2637 2636
2647 2641 2637 2637

 Sin embargo, la matriz z tiene que trasponerse, de forma que en filas vengan los datos de y:

>> z=z’

z =

2652 2650 2648 2647 2647
2645 2644 2644 2642 2641
2637 2637 2637 2637 2637
2634 2635 2636 2636 2637

Ahora  ya podemos dibujar la superficie, con varias opciones:

>> mesh (x,y,z)

Superficie mesh

 >> surf(x,y,z)

 

Superficie surf

>> contour (x,y,z)

Superficie contour

 >> surfc (x,y,z)

Superficie surfc

 >> pcolor (x,y,z)

Superficie pcolor

 

 

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 las 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.

Si bien al principio PERT y CPM tenían algunas diferencias importantes, con el tiempo, ambas técnicas se han fusionado, de modo que hoy día se habla de estos procedimientos como PERT/CPM. El PERT supone que el tiempo para realizar cada una de las actividades es una variable aleatoria descrita por una distribución de probabilidad. El CPM, por otra parte, infiere que los tiempos de las actividades se conocen en forma determinística y se pueden variar cambiando el nivel de recursos utilizados. Ambos métodos aportaron los elementos necesarios para conformar el método del camino crítico actual, empleando el control de los tiempos de ejecución y los costes de operación, para ejecutar un proyecto en el menor tiempo y coste posible. PERT/CPM se basan en diagramas de redes capaces de identificar las interrelaciones entre las tareas y establecen el momento adecuado para su realización. Además, permiten preparar el calendario del proyecto y determinar los caminos críticos. El camino crítico es, en esencia, la ruta que representa el cuello de botella de un proyecto. La reducción del plazo total de ejecución será solo posible si se encuentra la forma de abreviar las actividades situadas en dicho camino, pues el tiempo necesario para ejecutar las actividades no críticas no incide en la duración total del proyecto. La principal diferencia entre PERT y CPM es la manera en que se realizan los estimados de tiempo. En artículos anteriores hemos explicado mediante sendos vídeos las mecánicas de cálculo de los diagramas de flechas y del propio PERT.

El origen del CPM se sitúa entre diciembre de 1956 y febrero de 1959. En aquellos momentos, la compañía norteamericana E.I. du Pont (DuPont) estaba buscando cómo utilizar una de los primeros ordenadores comerciales, el “UNIVAC1”. Los gestores de DuPont se dieron cuenta de que planificar, estimar y programar parecía ser el mejor uso que la empresa podría darle a este ordenador. Este trabajo se asignó a Morgan Walker, de la Engineering Services Division de Du Pont, que junto con el matemático James E. Kelley, Jr, que trabajaba en Remington Rand, consiguieron poner a punto el método, con el objetivo de controlar el mantenimiento de los proyectos de plantas químicas de DuPont. A mediados de 1957, esta empresa estaba interesada en ampliar cerca de 300 fábricas, lo cual implicaba un gran número de actividades (por lo menos unas 30000) lo cual no se podía abordar con los diagramas de Gantt. El objetivo era controlar y optimizar los costos de operación de las actividades de un proyecto. En este método, cada una de las tareas tenía una duración exacta, conocida de antemano.

Ordenador digital UNIVAC1. https://museo.inf.upv.es/univac2/
William Francis Raborn (1905-1990) Militar estadounidense.

El origen de los trabajos de la técnica PERT empezaron formalmente en enero de 1957, siendo paralelo al del CPM, pero su origen fue en el ámbito militar. Se desarrolló en la Oficina de Proyectos Especiales de la Armada de los EEUU, al reconocer el almirante William. F. Raborn que se necesitaba una planificación integrada y un sistema de control fiable para el programa de misiles balísticos Polaris. Con su apoyo se estableció un equipo de investigación para desarrollar el PERT o “Program Evaluation Research Task”. Así, la Oficina de Proyectos Especiales de la Marina de los Estados Unidos de América, en colaboración con la división de Sistemas de Misiles Lockheed (fabricantes de proyectiles balísticos) y la consultora Booz, Allen & Hamilton (ingenieros consultores), se plantean un nuevo método para solucionar el problema de planificación, programación y control del proyecto de construcción de submarinos atómicos armados con proyectiles «Polaris», donde tendrían que coordinar y controlar, durante un plazo de cinco años a 250 empresas, 9000 subcontratistas y numerosas agencias gubernamentales. En julio de 1958 se publica el primer informe del programa al que denominan “Program Evaluation and Review Technique”, decidiendo su aplicación en octubre del mismo año y consiguiendo un adelanto de dos años sobre los cinco previstos. D. G. Malcolm, J. H. Roseboom, C. E. Clark y W. Fazar, todos del equipo de investigación patrocinado por la Armada, fueron los autores del primer documento publicado sobre el PERT (Malcolm et al., 1959). Este método se basa en la probabilidad de la duración de las actividades. Hoy día se sigue utilizando este método, si bien, tal y como apuntan algunos autores (ver Ahuja et al., 1995), la estimación calculada por PERT suele subestimar la duración real de los proyectos.

REFERENCIAS

AHUJA, H; DOZZI, S.P.; ABOURIZK, S.M. (1995). Project management techniques in planning and controlling construction projects. 2nd edition, Wiley, N.Y.

CLARK, C.E. (1962). The PERT model for the distribution of an activity time. Operations Research, 10(3):405-406.

MALCOLM, D.G.; ROSEBOOM, J.H.; CLARK, C.E.; FAZAR, W. (1959). Application of a technique for research and development program evaluation. Operations Research, 11(5):646-669.

WEAVER, P. (2006).  A brief story of scheduling -back to the future- http://www.mosaicprojects.com.au/PDF_Papers/P042_History%20of%20Scheduing.pdf

YEPES, V.; PELLICER, E. (2008). Resources Management, in Pellicer, E. et al.: Construction Management. Construction Managers’ Library Leonardo da Vinci: PL/06/B/F/PP/174014. Ed. Warsaw University of Technology, pp. 165-188. ISBN: 83-89780-48-8.

PELLICER, E.; YEPES, V.; TEIXEIRA, J.C.; MOURA, H.P.; CATALÁ, J. (2014). Construction Management. Wiley Blackwell, 316 pp. ISBN: 978-1-118-53957-6.

Diseño heurístico de puentes de hormigón pretensado como ejemplo de docencia de posgrado

Este artículo describe la impartición de un curso de posgrado en el diseño automatizado y optimización económica de estructuras de hormigón. El contenido forma parte de un Máster en Ingeniería de Hormigón que comenzó en octubre de 2007. El curso aplica los algoritmos heurísticos al diseño práctico de estructuras reales de hormigón, tales como muros, pórticos y marcos de pasos inferiores de carreteras, pórticos de edificación, bóvedas, pilas, estribos y tableros de puentes. Se presentan como casos prácticos dos tableros de puente de hormigón pretensado usados en la obra pública de construcción de carreteras. En primer lugar, se aplica SA a un tablero de un puente peatonal de viga artesa de hormigón prefabricado. El  segundo ejemplo aplica TA a un tablero de losa continua de hormigón postesado. Los casos estudiados indican que la optimización heurística es una buena opción para diseñar   estructuras de hormigón pretensado reduciendo los costes.

Teoría del valor extremo y optimización estructural

A continuación dejo una presentación que hicimos para el VII Congreso Español sobre Metaheurísticas, Algoritmos Evolutivos y Bioinspirados MAEB 2010, que se celebró en Valencia del 8 al 10 de septiembre de 2010.

El artículo, denominado “Teoría del valor extremo como criterio de parada en la optimización heurística de bóvedas de hormigón estructural” establece un criterio de parada para un algoritmo multiarranque de búsqueda exhaustiva de máximo gradiente basado en una codificación Gray aplicado a la optimización de bóvedas de hormigón. Para ello se ha comprobado que los óptimos locales encontrados constituyen valores extremos que ajustan a una función Weibull de tres parámetros, siendo el de  posición, γ, una estimación del óptimo global que puede alcanzar el algoritmo. Se puede estimar un intervalo de confianza para γ ajustando una distribución Weibull a muestras de  óptimos locales extraídas mediante una técnica bootstrap de los óptimos disponibles. El algoritmo multiarranque se detendrá cuando se acote el intervalo de confianza y la diferencia entre el menor coste encontrado y el teórico ajustado a dicha función Weibull.

Descargar (PDF, 141KB)

Referencia:

YEPES, V.; CARBONELL, A.; GONZÁLEZ-VIDOSA, F. (2010). Teoría del valor extremo como criterio de parada en la optimización heurística de bóvedas de hormigón estructural. Actas del VII Congreso Español sobre Metaheurísticas, Algoritmos Evolutivos y Bioinspirados MAEB 2010, Valencia, 8-10 septiembre, pp. 553-560. Garceta Grupo Editorial. ISBN: 978-84-92812-58-5.

Métodos no convencionales de investigación basados en la inteligencia artificial

El pasado mes de octubre tuve la ocasión de impartir un seminario en la Universidad Católica de Chile denominado “Métodos de investigación no convencionales basados en la inteligencia artificial”. Os paso la presentación que hice. Espero que os guste.

Descargar (PDF, 2.26MB)

Los ingenieros, los ordenadores y mil un indios

Los ingenieros, los ordenadores y “mil un indios”. Un título algo ambiguo para algo tan sencillo como que, es posible, que nuestros ingenieros más jóvenes hayan perdido cierta habilidad en la resolución y cálculo de problemas debido al uso masivo de los ordenadores y las nuevas tecnologías. Primero veamos el chiste (que espero a nadie siente mal), y luego reflexionemos un poco.

- !Mi General!
- !Sí!
- !Nos atacan mil un indios!
- ... oiga, Toto? Y cómo sabe que son mil uno?
- Porque viene uno adelante... !y cómo mil atrás!

El 23 de febrero de 2012 tuvo lugar un panel-debate en el seno del VI Congreso Nacional de la Ingeniería Civil que se desarrolló en Valencia. Allí Gozard Humar, presidente del European Council of Civil Engineers (ECCE), en una de sus intervenciones respondiendo a un debate generado por el público asistente, vino a decir que se debería prohibir en los primeros cursos de ingeniería el uso de ordenadores, pues estas herramientas atrofian la capacidad intuitiva y de cálculo de los futuros profesionales. Algo de razón no le falta a este representante europeo de la ingeniería civil.

Al hombre instruido le caracteriza el buscar en los problemas aquella precisión que por su naturaleza admiten, por tanto tan necio es aceptar razonamientos imprecisos de un matemático como pedir demostraciones científicas a un retórico“. Aristóteles

El abandono de la regla de cálculo por la calculadora electrónica, luego por la programable y por último el uso masivo del ordenador por parte de los alumnos ha traído, por una parte las abrumadoras ventajas del uso de las tecnologías de la información y la comunicación en el ámbito de la ingeniería. Pero por otro lado, hoy resulta complicado encontrar alumnos capaces de hacer a mano una raíz cuadrada o cualquier cálculo simple sin el uso de una calculadora. No es difícil encontrar anécdotas de jóvenes ingenieros que, ante problemas más o menos complicados, se encierran con el ordenador para buscar una solución “con diez decimales” y luego un ingeniero senior o un catedrático avezado ha encontrado algún error de bulto en la solución haciendo un “cálculo de servilleta“, usando lo que vienen a ser “números gordos”. A veces un método sencillo, aunque algo impreciso, es suficiente para encuadrar el orden de magnitud de un problema.

Imaginemos que se le pide a uno de nuestros alumnos el cálculo del número de latidos del corazón de un hombre a lo largo de su vida. Si acaba de aprobar la asignatura de Estadística, lo que hará es buscar la esperanza de vida media, con una desviación típica determinada. Lo mismo deberá hacer con el número de latidos. Se pondrá nervioso porque no encuentra datos, pero al final, nos dará una cifra (probablemente con varios decimales).

Suponiendo que el año tiene 400 días, un día tiene 25 horas y cada hora 60 minutos, el número aproximado de minutos en un año es de 6×10^5 minutos.  El número aproximado de minutos en 70 años (suponiendo que es ésta la vida media) es de 4×10^7 minutos. Si las pulsaciones medias son de 70 al minuto, tendremos que el resultado es de 10^9.

¿Y si la vida promedio se estimase en 80 años en vez de 70? El número de minutos en 80 años sería de 5×10^8, lo cual implica que el resultado sigue estando en el orden de magnitud de 10^9.

Otra idea que ya no se suele utilizar por el abuso de las calculadoras: el concepto de cifras significativas. Esto está muy relacionado con los “mil un indios”.

Supongamos que pedimos a nuestros futuros ingenieros hallar la superficie de una habitación cuadrada de 10,46 m de lado. Tenemos dos decimales porque la precisión es de 1 cm. Es decir, que realmente, el lado podría medir 10,45 m o bien 10,46 m. El resultado más probable que nos darían sería el de 109,4116 m2, lo cual no es correcto. Deberíamos haber respondido 109,4 m2. Nos olvidamos del siguiente hecho: cuando se multiplican cantidades, el número de cifras significativas en la respuesta final es el mismo que el número de cifras significativas que tiene el número con menos cifras significativas. Dicha regla se aplica también a la división. Otro ejemplo, el área de un círculo de 6,0 cm de radio no debería expresarse como 113 cm2, puesto que esta respuesta tiene 3 cifras significativas, mientras que el radio tiene sólo 2. El resultado aceptable sería 1,1×10^2 cm2.

Lo mismo le pasa a la suma y a la resta, aunque aquí la regla es distinta: cuando los números se sumen o se resten, el número de lugares decimales en el resultado debe ser igual al número más pequeño de lugares decimales de cualquier término de la suma. Así, 150 +12,35  debería ser 162 y no 162,35.

¿Cómo reducimos el número de cifras significativas? Se puede usar el redondeo: si el último dígito eliminado es mayor que 5, entonces se aumenta en 1. Si es menor a 5, se disminuye en 1. En el caso de que el último dígito eliminado sea igual a 5, el dígito restante debe redondearse al número par más cercano. Esta regla ayuda a evitar la acumulación de errores en procesos aritméticos largos. Otra técnica para evitar la acumulación de error es demorar el redondeo en el cálculo hasta la respuesta final de la calculadora antes de redondear al número correcto de cifras significativas.

Como pasatiempo: ¿cuánto hormigón sería necesario para ejecutar un muro de hormigón armado? Dos formas de abordarlo, mediante el cálculo exhaustivo o bien con un número gordo. Os dejo la solución del número gordo para pasatiempo y un día de estos os lo cuento. Es muy fácil.

¿Qué es la investigación operativa?

La investigación de operaciones o investigación operativa es una rama de las matemáticas que consiste en el uso de modelos matemáticos, estadística y algoritmos con objeto de modelar y resolver problemas complejos  determinando la solución óptima y permitiendo, de este modo, tomar decisiones.  Frecuentemente trata del estudio de complejos sistemas reales, con la finalidad de mejorar (u optimizar) su funcionamiento. La investigación de operaciones permite el análisis de la toma de decisiones teniendo en cuenta la escasez de recursos, para determinar cómo se puede optimizar un objetivo definido, como la maximización de los beneficios o la minimización de costos.

Aunque su nacimiento como ciencia se establece durante la Segunda Guerra Mundial y debe su nombre a las operaciones militares, los verdaderos orígenes de la Investigación Operativa se remontan mucho más atrás en el tiempo, hasta el siglo XVII. Esta disciplina nació en Inglaterra durante la Segunda Guerra Mundial como estrategia para encontrar soluciones a problemas militares, para ello fue necesario crear un Grupo de Investigación de Operaciones Militares conformado por un grupo de científicos multidisciplinares. Al terminar la guerra este método fue empleado en darle solución a problemas generales como el control de inventarios, asignación de recursos, líneas de espera, entre otros. Esta técnica cumplió sus objetivos en la década de los cincuenta y sesenta, hasta su desarrollo total en la actualidad. Sin embargo su auge es debido, en su mayor parte, al gran desarrollo de la informática, gracias a la cual es posible resolver problemas en la práctica y obtener soluciones que de otra forma conllevarían un enorme tiempo de cálculo. Debido a este éxito, la Investigación Operativa  se extendió a otros campos tales como la industria, física, informática, economía, estadística y probabilidad, ecología, educación, servicio social, …, siendo hoy en día utilizada prácticamente en todas las áreas. Algunos de los promotores más importantes de la filosofía y aplicación de la investigación de operaciones son C.W. Churchman, R.L. Ackoff y R. Bellman. Actualmente la Investigación Operativa incluye gran cantidad de ramas como la Programación Lineal, Programación No Lineal, Programación Dinámica, Simulación, Teoría de Colas, Teoría de Inventarios, Teoría de Grafos, etc.

Os presento ahora un vídeo, que no llega a 3 minutos de duración sobre el tema. Espero que os guste.

Automatic design of concrete vaults using iterated local search and extreme value estimation

La optimización de estructuras reales de hormigón armado constituye un campo de gran interés no sólo en la investigación, sino en la aplicación real en obra. Os paso un artículo reciente donde se explica una forma de optimizar bóvedas de hormigón empleadas habitualmente en pasos inferiores como falsos túneles. Los ahorros que se pueden conseguir, en este caso, han sido de un 7% respecto a un diseño tradicional. En el caso de obras lineales de gran longitud, los ahorros pueden ser nada despreciables. La revista Latin American Journal of Solids and Structures es una revista en abierto, de donde podéis descargaros éste y otros artículos de interés.

 

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

¿Qué es un algoritmo?

Algoritmo de Euclides
Algoritmo de Euclides

Un algoritmo es un conjunto prescrito de reglas o instrucciones bien definidas para la resolución de un problema. En general, se trata de encontrar el método más “eficiente”, no siendo baladí el modo de medir dicha eficiencia. Para resolver esta circunstancia, en la década de los 70 numerosos científicos se interesaron por la complejidad computacional de los problemas y los algoritmos. En muchos casos se asimila el rendimiento algorítmico a la medida del tiempo medio de ejecución empleado por un procedimiento para completar su operación con un conjunto de datos. Además, es posible relacionar el esfuerzo de cálculo con la dimensión del problema a resolver.

Un algoritmo muestra una complejidad polinómica si necesita un tiempo O(nk), donde n muestra la dimensión de entrada y k es una constante independiente de n. Si la función que denota la complejidad no está acotada por un polinomio, el algoritmo presenta una complejidad en tiempo exponencial. Continue reading “¿Qué es un algoritmo?”