Ir al contenido
Noticias y Eventos
text

Cómo se aplica la Inteligencia Artificial en la ingeniería y en la arquitectura en ejemplos prácticos

Inteligencia Artificial 26 julio, 2022

En la primera sesiónLuis Peña y José María Peña se centraron en la definición de Inteligencia Artificial y en los términos relacionados con esta metodología, como Machine Learning, Deep Learning, Data Science, Data Mining y Big Data, así como su aplicación en la arquitectura y en la ingeniería.

A continuación trataremos una de las principales técnicas que utilizaremos, la optimización, y tras ello veremos cómo se aplica la Inteligencia Artificial a través de varios casos prácticos ¡Comenzamos!

Técnicas de Optimización

Una de las técnicas principales que se aplica en varios casos, es la Optimización. Se define a través de dos criterios: uno de ellos es el que hace referencia al espacio de búsqueda de una serie de variables o dimensiones: X e Y, y el otro hace alusión a una o varias “funciones objetivo” que serían unas dimensiones adicionales, que representan una métrica de calidad, y que dependen de las variables X e Y.

Optimización Multiobjetivo

El objetivo de esta técnica es encontrar el elemento que maximiza o minimiza esa función, un valor que sea óptimo a nivel global.

Otro de los aspectos que hay que mencionar, son las restricciones, debido a que no todas las combinaciones de XY sirven, pues algunas de ellas no son computables, por lo que pueden ser soluciones que no son factibles.

En cuanto a los problemas que pueden surgir, uno de ellos es la composición de estructuras; un ejemplo de este tipo de problemas son los parámetros de maquinaria o los parámetros de procesos químicos.

Estructura del Espacio de Soluciones

Entre los aspectos del Espacio de búsqueda de soluciones que van a determinar los problemas de optimización, destacan estos:

  • La Optimización continua, hace referencia a dos variables que son valores reales o rangos que tienen una continuidad (variables numéricas).
  • La Optimización combinatoria, se trata de los valores discretos, como pueden ser el material de una estructura, y que tiene elementos diferentes. Entre las variables de este tipo, se encuentran: problemas de permutaciones o de combinaciones.
  • La Optimización programática, o también denominada de optimización de longitud. Se trata de soluciones con estructura variable, como pueden ser las listas de operaciones o árboles de expresiones.
  • La Optimización dinámica, no suelen ser muy habituales. Se presenta cuando la función objetivo varía con el tiempo. Se utiliza de forma frecuente cuando se tratan sistemas de control.
  • La Optimización con ruido, corresponde a los problemas que tienen una variación de tipo aleatorio. Un ejemplo de este tipo sería la simulación de Montecarlo.

Técnicas: Optimización

Para poder analizar de qué forma se resuelven estos mecanismos de cálculo, trataremos dos tipos:

  1. La Optimización matemática, se basa en que conoces la función, la cual es simple, para poder calcular si es un problema continuo o es un problema discreto.
  2. La Optimización de “Caja Negra”, que trata de muestrear determinados valores de la función , y con los resultados que obtenga de esos valores, intentará determinar cuál es una buena solución candidata. Un problema que puede tener este tipo de mecanismos es que no te garantiza la optimalidad, ya que no siempre va a encontrar la mejor solución.

Complejidad de la búsqueda

Una de las cuestiones que nos tenemos que plantear es por qué se puede hacer compleja la resolución de problemas de optimización. Debido a que:

  • El problema no lo puedes descomponer en variables, por lo cual, no vas a poder llegar a la solución.
  • Los problemas de tipo “Deceptive”, se presentan cuando se habla de problemas de tipo engañoso. No son muy habituales en el área de la ingeniería. Uno de los problemas más habituales son los de “Aislamiento”, en el que la mejor de las soluciones está “rodeada” de soluciones no factibles. Las restricciones van a hacer que sea más difícil encontrar la solución en el espacio de búsqueda.
  • Los problemas de Multimodalidad van a representar cuántos óptimos hay, hay un único óptimo global pero también puede haber varios óptimos locales.
  • Los de tipo neutralidad son muy habituales. Te vas a encontrar con numerosas soluciones que van a tener el mismo valor objetivo.
  • Los problemas de Dimensionalidad, en los que cuanto más dimensiones tengas, más difícil será optimizar el problema.

Soluciones apoyadas en Metaheurística 

Dentro de estas técnicas, hay modelos basados en la probabilística y en la estadística. Podemos clasificarlos en 3 métodos:

  1. Métodos de Monosolución o de Trayectoria, que se basan en que parten de un punto de mejora continua en búsqueda de la solución actual mediante la inspección de un vecindario, dónde esa búsqueda finaliza cuando se halla la solución con una calidad aceptable.  Algunos de los algoritmos más utilizados son el “Recocido Simulado” o las búsquedas de vecindario variable.
  2. Métodos Poblacionales, generan nuevas soluciones a partir de una, dos o más
    soluciones. En este grupo estarían por ejemplo los algoritmos genéticos o también las estrategias evolutivas.
  3. Métodos Híbridos y Enfoques Avanzados, que son los que combinan dos o más algoritmos, diferentes metaheurísticas. Se pueden encontrar algoritmos como los meméticos o de descendencia múltiple.

Optimización Multiobjetivo

Es muy común en el campo de la ingeniería disponer de más de una función objetivo. Se llama a esto problemas Multiobjetivo. Se da cuando no existe una única solución sino una multitud de soluciones, de las cuales, cada una tiene sus ventajas frente a las demás, pero ninguna es mejor en todos los aspectos.

Aplicar técnicas de Optimización

Para ello es primordial definir el espacio de búsqueda, para saber cuáles son las variables libres para poder realizar diferentes combinaciones.

A nivel práctico, el conocimiento del dominio va a ser fundamental porque te va a posibilitar iniciar soluciones e interpretar los resultados de la función objetivo. Además, puede haber soluciones que no se encuentren dentro del rango de factibilidad , ya que infringe alguna de las restricciones.

En cuanto a los resultados que se van a obtener al aplicar esta técnica, será la de encontrar valores del espacio de búsqueda que sean óptimos. No te van a solucionar un problema en concreto sino que van a solucionar familias de problemas, y estas técnicas se usan mucho con combinaciones de otros elementos , como el Machine Learning, con simulaciones (sobre todo en la ingeniería) o con técnicas de búsqueda.

Casos prácticos en la Inteligencia Artificial: cómo afrontarlos

A través de una serie de ejemplos prácticos, se van a mostrar cuáles van a ser las mejores técnicas, estrategias y recomendaciones para tratar este tipo de problemas.

Para poder afrontar un problema, tenemos que hacernos dos preguntas: ¿Qué debemos hacer? (como parte funcional de lo que estamos intentando resolver) y la otra pregunta sería: ¿Cómo lo hacemos? (búsqueda de la solución técnica).

Además, de tener una solución técnica, tenemos que introducir una parte de digitalización o de modelado de nuestro problema: la Inteligencia Artificial. Para ello, tendremos que hacernos esta pregunta: ¿Cómo aplicar la IA?, y cuando esto se tenga claro, podremos buscar cuál es la mejor forma de poder resolver nuestro problema.

También hay que tener en cuenta otras preguntas clave para poder resolver estos problemas, ¿Qué esperas conseguir o qué impacto se espera de aplicar la IA?, ¿Qué se considera un éxito? y ¿Quién está liderando este proyecto? Es recomendable que quién lidere este proyecto sea alguien interno de la empresa, porque se necesita a alguien que conozca la terminología específica o el funcionamiento de la empresa o el sector.

Ejemplo de Procesamiento de Documentación

El Procesamiento de Documentación es una tecnología que está basada en la Inteligencia Artificial y en el Procesamiento del Lenguaje Natural, cuyo objetivo es transformar la información no estructurada de documentos (de diferentes formatos) en datos que sean útiles para poder gestionar los documentos/datos de una empresa.

Procesamiento de documentación

En este ejemplo real se trabajó en un modelo de normativas de construcción, cuyo objeto era el poder extraer normativas locales, es decir, poder extraer los términos necesarios para poder trabajar en un proyecto de construcción, conllevando la evaluación de cómo eran los formatos que se podían hallar.

Nos enfrentamos en este caso con varios tipos de problemas, uno de ellos y que hay que tener en cuenta, es que van a ser dependientes del idioma y del Corpus (son los términos relevantes y adecuados para el texto en particular). Para ello, se requiere un entrenamiento específico y tener presente una necesidad lógica de negocio.

  • Lo primero que tendríamos que hacer sería una extracción de datos o términos, para ello tendríamos que buscar un formato uniforme.
  • Después, habría que hacer un análisis sintáctico, a través de un análisis de texto que conllevaría a la división de las frases en determinados formatos (tokens). Por lo que habría que limpiar el texto (eliminando los stop words) y se haría un pre etiquetado de las partes del lenguaje. Esto va a ser muy útil para detectar determinados formantes que para ti van a ser relevantes.
  • Por último, tenemos el procesamiento semántico, que es el de identificar aquellas palabras que tienen sentido o que forman sentido a una frase.

Las estrategias que vamos a necesitar para construir ese conocimiento o esa información, van a ser:

  • Realizar un Pre etiquetado, que lo que va a hacer será catalogar el texto. Se podrá hacer a través de herramientas de auto-tagger. Y también es importante disponer de un catalogador manual (persona que pertenezca a ese área o sector para que pueda hacer ese proceso de catalogar el texto).
  • Otra estrategia sería la jerarquización del texto, porque cuanto más separado tenga el texto en secciones, podrá hacerse una clasificación de párrafos,  con lo cual podré extraer mejor la información más relevante.
  • Hay que tener en cuenta qué tipo de texto tienes (formato de los textos). Ya que por ejemplo en un texto de un tema específico va a haber mucha variabilidad.
  • Y que son modelos que requieren de una mejora continua, para evitar que se produzcan desviaciones.

En cuanto a los problemas que se pueden producir, pueden ser:

  • Falta de texto etiquetado.
  • Difícil encontrar modelos del lenguaje específico, por lo que se va a necesitar que tengas un conocimiento del entorno específico.
  • Ser consciente del umbral de error admisible.

Ejemplo de Diseño de Estructuras 

Este segundo ejemplo es sobre cómo poder optimizar el resultado de una simulación, minimizando estrés, desplazamiento, coste, peso… En el que puedas jugar con diferentes parámetros: geometrías, materiales, configuraciones de diseño o parámetros constructivos en la construcción de los muros de una presa.

Estaríamos ante un problema de jugar con esos parámetros asociados a las frecuencias, a los tipos de materiales, y de la evaluación de la calidad. Se resolvió este problema con un algoritmo genético.

Ejemplo de Optimización de Estructuras

Este ejemplo está asociado al desarrollo de técnicas para el diseño de motores del sector de la aeronáutica, que junto a la Universidad de Oxford, se participó para diseñar motores del Rolls Royce.

Problema: Estamos ante un problema que está orientado a la parametrización de los procesos de impresión en 3D de piezas, que depende cómo se configure este proceso de impresión, porque puedes tener una pieza que tenga una respuesta mecánica diferente en un caso o en otro. Por tanto, tienes que apostar por cuáles son los pasos del proceso de impresión, qué parámetros corresponden, para que al final obtengas la pieza con la respuesta mecánica que tú quieres.

Ejemplo de Diseño de Metamateriales

El diseño de metamateriales, que se utiliza mucho en la producción eléctrica, cuyo objetivo es el de poder obtener un considerable desplazamiento como salida, para que después se pueda producir una conversión a energía eléctrica.

Diseño de Metamateriales

Problema: se va a partir en esta cuestión de un mallado completo, del cual se eliminan las conexiones. El objetivo que se va a tener será el de maximizar el desplazamiento resultante de salida por un desplazamiento de entrada.

La solución que se planteó para este problema fue el de cambiar el algoritmo que se estaba utilizando, usando un algoritmo híbrido, el cual te permite combinar más de un algoritmo a la vez. También se utilizó un algoritmo de Machine Learning, que se entrena durante el proceso de optimización, y que lo que hace es cuando quiero comprobar una posible configuración candidata, se lo paso al algoritmo, para que me estime cuál será el resultado. Si el resultado es óptimo, entonces procedo a la simulación, pero si es un resultado peor de los que tengo, lo descarto, y busco otras simulaciones.

Las estrategias que se pueden utilizar para atacar este tipo de problemas serían:

  • Muchos de estos problemas tratan sobre las geometrías, por lo que hay que intentar evitar las redundancias (puede implicar que dos configuraciones diferentes representen la misma geometría) por lo que cuantas más redundancias tengas, hace que tengas más codificación que no sirva para nada. Por otra parte, gestionas las soluciones no factibles: corrigiéndolas o directamente se descartan. Y utilizas subrogados cuando sea un problema pesado.
  • En cuanto a seleccionar las técnicas de optimización, hay que saber que ninguna funciona mejor que las demás, por lo que lo mejor es probar varias o alternar. Dos características que tiene estas técnicas son la capacidad de exploración y de explotación, que se basan en encontrar soluciones muy diferentes de las que estás trabajando, y cuando estés cerca de una solución buena, afinar cuál es el valor concreto: las heurísticas de dominio.
  • En cuanto a cómo acometer un problema que es muy pesado o costoso (descomposición del problema), hay varias técnicas, como simular diferentes niveles de detalle, uso de algoritmos de inyección, modelos agregativos o haciendo una evaluación anticipada para realizar descartes.
  • Cuando ya tengas soluciones, que son más o menos factibles, puedes iniciar directamente el proceso de evaluación de las mismas.

En cuanto a los riesgos que se pueden producir, uno de ellos sería la neutralidad (dependiendo de cómo se defina su función objetivo), o problemas de estabilidad, estos últimos son muy habituales, que se da casos de encontrar una solución óptima que funciona bien, y que cambias algún parámetro, y ya esa solución deja de funcionar.

Ejemplo práctico de Reconocimiento de objetos

El reconocimiento de objetos es un problema que procede de distintas mecánicas relacionadas con la estimación de nube de puntos o de análisis volumétrico del entorno.

Reconocimiento de objetos

Vamos a tener aquí dos problemas que tienen que ver con la visión computacional, que es cuando quieres reconocer determinados objetos, o quieres etiquetar esos objetos, que son representados o extraídos de algún mecanismo óptico o del escaneo del entorno. Lo que quiere decir esto, es que se quiere reconocer objetos o extrapolar medidas, y del que sacaré información de mi entorno a través de un elemento con componente de visión computacional.

Ejemplo de reconocimiento de objetos

En general, nos vamos a encontrar con dos problemas, el primero va a ser a lo referente a la clasificación (quiero saber qué es lo que estoy viendo), y el otro problema es el auto etiquetado (he detectado un objeto y quiero saber qué es en particular y qué características tiene).

Otros problemas que podemos encontrar en el reconocimiento de imágenes, pero que son fáciles de resolver, son los que tienen que ver con la clasificación y con la localización, ya que tienen la facilidad de poder trabajar con poco volumen de datos y con un corpus etiquetado lógico, como sería el reconocimiento de un gato, que si tenemos un corpus entrenado en reconocimiento de gatos, va a ser sencillo que se produzca ese reconocimiento de forma correcta.

Pero podemos encontrarnos con problemas más reales, cómo puede ser que haya múltiples objetos en la misma escena, ahí tendría que recurrir a técnicas más sofisticadas basadas en redes neuronales profundas, para que puedan resolver: la identificación de objetos y el recuento de objetos.

Normalmente, vamos a necesitar muchos datos para poder resolver esta problemática, y para resolverlo, tenemos que tener una generación de datos sintéticos. Lo primero que se tendrá que hacer será la labor de etiquetar, ya sea alguien capaz de hacer eso o tener un corpus que esté entrenado para ese tipo de cosas. Una vez que tenga eso, se procederá a las transformaciones sobre los objetos, que hay que tener en cuenta que no todas son válidas , y equivalen a rotar, trasladar y cortar las imágenes. Y también estarían las variaciones de color y la introducción del ruido, que en muchos de los casos no valdría, excepto en las volumetrías que sí se podría utilizar.

En cuanto a las estrategias que vamos a aplicar a este tipo de problemas, partiendo de imágenes o de escáneres, lo primero que tenemos que hacer es clasificar los objetos que vamos a utilizar (clasificar los objetos como target), y después procederemos al etiquetado, para ello tengo conocer todos los objetos, y realizar mi corpus de objetos relevantes, para poder etiquetar el mayor número posible de imágenes.

Si en cambio, parto de una nube de puntos, se necesita hacer un etiquetado e intentar desarrollar una descomposición en elementos principales, que para ello necesitaré tener las piezas “principales” o la pieza “Madre”.  Además de hacer una subdivisión de toda la geometría que tenga, para poder detectar piezas y componentes.

En cuanto a los riesgos que puede haber, hay que tener en cuenta que el entorno es demasiado variable, por lo que necesitaré un corpus de imágenes, ya que no hay tantos.

Ejemplo práctico de Diseños de parcela

En este apartado se va a tratar sobre los problemas de diseño de aprovechamiento de una parcela. Para ello, habrá dos formas de ver este problema: desde un punto de vista estimativo, que trata sobre poder estimar datos, como el coste del proyecto, el presupuesto, cuál es la edificabilidad… Estamos ante un problema del Machine Learning, y cuyo objetivo es obtener una estimación de valor. El otro punto de vista sería de tipo constructivo, que va a indicar por ejemplo qué orientaciones tiene la construcción o qué tipo de construcción se podría hacer en la parcela.
Estimación de costes del proyecto
En cuanto a las estrategias que se van a usar, pueden ser de varios tipos, como: modelos explicativos (Bayesianos, árboles de Decisión), representación del conocimiento del dominio o información externa.
Vamos a tener una serie de herramientas que se van a utilizar en las aproximaciones de tipo constructivo, como Prism, muy utilizada en la ciudad de Londres, lo que te va a facilitar es información sobre los registros de las parcelas, las ubicaciones, estimaciones de las distribuciones de las parcelas o cuál es el grado de ocupación.

PRISM
Otra herramienta similar es Envelope´s 3D, la cual hace estimaciones y tiene configuraciones de la edificación como la masa o un bloque, el grado de ocupación que puede tener un residencial o una construcción comercial, y reportarlo en metros cuadrados.

ENVELOPE
Y, por otro lado, tenemos el llamado BIMBOT, que es un asistente de diseño inteligente para la industria AEC, en el que a través de un software de modelado BIM va a producir soluciones de diseño con modelos BIM optimizados, cuya función será el realizar estimaciones sobre la edificabilidad, cogiendo información del catastro (normativas, parámetros o restricciones de la obra), y lo que te va a devolver es información tipo costes, grado de ocupación, datos de edificabilidad, de iluminación. Además, de permitirte obtener un modelo para poder estimar o evaluar cuál es el nivel de calidad del proyecto.

BIMBOT

Así como diferentes estrategias, como un análisis preliminar, que me va a dar la respuesta a soluciones a nivel estimativo, cómo: los costes, duración del proyecto, la precisión…Después, a través de un enfoque estimativo, puedes comprobar la disponibilidad de datos que tienes, mediante la visualización de datos y el Data Science. Y con enfoques constructivos, que van a precisar de técnicas de optimización “ligeras” con una interactividad entre el arquitecto o el promotor con las propuestas de diseño.

Conclusión

En esta segunda y última entrada, hemos podido analizar la Inteligencia Artificial a través de casos reales. Se ha podido ver distintos casos que suelen ser muy habituales en el área de la arquitectura y la ingeniería, y cómo José María y Luis Peña nos han explicado los pasos para poder resolver estos problemas que te puedas encontrar y qué técnicas han empleado para poder resolverlos con éxito.

A continuación, os compartimos la grabación de esta segunda sesión, y os compartimos un importante material gráfico para que os sirva de mucha utilidad.

Recuerda el índice completo de las dos sesiones que comprenden esta publicación sobre Inteligencia Artificial:

  1. Miércoles 6 de julio de 2022. Inteligencia Artificial aplicada a Ingeniería y a la Arquitectura. Primera Sesión (teórica)
  2. Miércoles, 27 de julio de 2022. Inteligencia Artificial aplicada a Ingeniería y a la Arquitectura. Segunda Sesión (práctica).

Esperamos que os sea de enorme utilidad.

Publica un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.