Saltar al contenido
Especialista3D

Inteligencia Artificial para plazos de construcción

Inteligencia artificial para plazos de construccion Especialista3D

En este artículo voy a intentar que veas un proyecto de aprendizaje automatizado aplicado a un campo tan concreto que va a ser difícil que no entiendas lo que hace. Para mi fue impactante ver los resultados de este proyecto de Inteligencia Artificial para plazos de construcción. Y es que, en Especialista 3D, aunque nos guste estar a la última moda nunca vamos a forzar nada. Por eso seguro que tienes varias preguntas:

  • ¿Por qué justo ahora nos están dando tanto la brasa con la Inteligencia Artificial?
  • ¿Qué hace un Arquitecto de pie de obra escribiendo un artículo de cosas típicas de Ingeniero Informático?
  • ¿Y por qué demonios en una página llamada «Especialista3D.com» me hablan de Inteligencia Artificial?

Por lo pronto, antes de dar respuesta a tan pertinentes preguntas, si quieres ver funcionar la versión beta en la que estoy trabajando (la versión definitiva no creo que pueda compartirla con esta facilidad), puedes ver el siguiente vídeo donde pongo el programa en funcionamiento:

La respuesta a las preguntas anteriores es porque ahora sí que podemos hacerlo. Relacionar decenas de variables, miles de datos, en poco tiempo es algo que hacen muy mal los seres humanos muy bien nuestras señoras las computadoras. Concretamente las máquinas que tenemos ahora han comenzado a rendir muy bien con algoritmos que antes sólo funcionaban en aparatos que ocupaban edificios enteros. Esta circunstancia hace que el Arquitecto Superior que escribe estas líneas tenga acceso a recursos de hardware que le sirven para testear herramientas de software avanzadas… (oye, si me puedo fabricar una herramienta que solucione problemas de mi trabajo cotidiano o de mis clientes mejor que mejor).

Por supuesto, para los que estáis bien metidos en el mundo del BIM, sabréis que más allá del archi conocido modelo 3D se ha normalizado la nomenclatura de los 4D, 5D, 6D, … Pues este mero formalismo de nombres cobra muchísimo más sentido con las técnicas de machine learning, ya que aunque tú y yo no seamos capaces de visualizar más de tres dimensiones, un PC cualquiera sí que es capaz de hacerlo.

2D+3D+4D+5D… ¡todo eso cabe en un coco artificial!now_i_get_it

Bueno, si aún así te parece una analogía algo forzada eres libre de pensar que Especialista3D me parece el mejor sitio del «planeta internet» para publicar contenidos de interés para la comunidad BIM… Dicho esto te intentaré explicar cómo he hecho el proyecto.

A ver, espero que no nos hayamos venido muy arriba con el título de este post, porque a veces el imaginario cultural hace que veamos fuegos artificiales donde no los hay. Cuando hablo de inteligencia artificial es la forma más genérica, menos técnica y casualmente la más trendie de llamar a lo que en este caso es una mezcla de machine learning (en castellano aprendizaje automatizado) y sistemas expertos.

Buscas en internet con las palabras clave «Inteligencia Artificial», «Machine Learning» o «redes neuronales» y te salen una cantidad de artículos científicos enooorme. Unos tan técnicos y crípticos que muy pocos tienen la suerte de entender, y otros que se quedan tan en la superficie que te quedas con ganas de más… Como he dicho, me he prometido a mi mismo intentar contar la chicha sin entrar demasiado en tecnicismos. ¡Ya me diréis si lo consigo!

En este caso, mi cliente me pide que desarrolle un esbozo de software que sea capaz de asesorar sobre la posibilidad que un proyecto de construcción tenga retrasos. Sí, me has entendido bien, lo que en muchos sitios parecen cabezas humanoides en 3D y cerebros dibujados a base de chips, al final son sólo una máscara de marketing que hacen que no veas lo básico. Todo está hecho a base de líneas de código.

Brain_good_bye

El término inteligencia artificial, aunque parezca muy moderno, se usó por primera vez en los años ’50 del siglo pasado. ¡Y pensar que había personalidades con la cabeza muy buen amueblada que llevaban trasteando ya desde los años ’30 con mecanismos programables! (digo cabeza muy bien amueblada porque no existía por aquel entonces ni la informática ni los ordenadores… no preguntéis qué preparación tenían ni cómo eran sus experimentos). Además, desde mucho antes de que se pusiera de moda el término machine learning ya se impartía en el temario de los ingenieros informáticos contenidos con lo que por aquel entonces llamábamos en castellano seco y duro aprendizaje automático. Ahora te voy a explicar cómo ensamblé mi primera Inteligencia Artificial.

Inteligencia Artificial para plazos de construcción.

Inputs del programa

Como inputs he cogido lo que debería tener cualquier presupuesto y plan de plazos de obra. Necesitaba que fueran sencillos, manejables y fáciles de conseguir. Algunos de esos parámetros también pueden resultar de la combinación de los otros.

Estos son los que cogí:

  • Superficie construida en  m2.
  • Duración estimada en semanas.
  • Módulo de precio de la construcción en €/m2.
  • Tipología de uso, a saber: «comercial»,»viv. aislada»,»viv.colectiva» y «otros».

Outputs del programa

Cuando esté terminado el programa, después de el agente de la construcción introduzca los inputs de su proyecto y le dé al botón de «ejecutar», debería poder verse un mensaje comunicando si la obra será deficitaria con respecto a la duración y a los recursos que se han establecido. Por regla general un Project Manager o la Dirección Facultativa no modifica la tipología del edificio o el área construída por un problema de plazos y recursos, así que lo ideal sería que el programa nos sirviera para tantear manipulando precios y plazos definidos.

Datos recopilados

Conseguí recopilar unas 223 construcciones realizadas con las variables que he expuesto arriba. Después de limpiar y poner el formato adecuado a este paquete de datos, desgraciadamente me di cuenta de que son muy pocos ejemplos de obras ejecutadas para que un modelo estadístico aprenda correctamente qué proyectos tienen probabilidad de ser deficitarios con respecto a lo planeado.

Método

Como he dicho, 223 ejemplos son muy pocos para que una máquina haga estimaciones decentes. Las características socio económicas de cada localización afectan mucho a los precios y los plazos. Los precios de los materiales, los recursos humanos, su preparación y sus honorarios son factores que desestabilizan demasiado el modelo estadístico. Así que, desgraciadamente las bases de datos de multinacionales como DRAGADOS, ACCIONA, o SACIR con cientos de ejemplos de construcciones anuales, se invalidan las características locales de cada construcción harían que esa base de datos se redujera bastante… con lo que da igual lo grande que seas, estamos en las mismas.

Así que aquí entra la clave del proyecto. Me fabriqué artificialmente un paquete de datos de 3530 obras en las que volqué mis intuiciones de las condiciones que se tienen que dar para que una obra resulte deficitaria o que se termine sin problemas, usando mi experiencia como Arquitecto Superior y con las estadísticas del Gobierno de España a mi lado para consultas.

Me costó conseguir esta operación ¡pero me solucionó la vida!swetting

Espero que no creas que fui rellenando celda a celda en un excel las variables de esas 3500 construcciones. Fue complicado, sí, pero porque tuve que darle mucho al coco de cómo hacerlo mediante script. Básicamente, programé una forma de crear esas 3530 obras, con sus datos y condicionantes que las hacen propensas a ser deficitarias o exitosas con el formato que yo quería. Esto me permitió acercarme un poquito más a las cantidades de alimento de calidad que hay que darle a una inteligencia artificial para que evalúe bien las opciones.

Sé que más de un purista me va a decir que no tengo razón con esto que voy a decir, pero me parece muy pedagógico, y creo que va a ayudar a entender el proceso. En el momento en que consigues meter las intuiciones técnicas de un especialista en esa cantidad razonablemente grande de datos, y alimentas con ellas a los algoritmos, la experiencia de un Arquitecto ha pasado a ser la experiencia del ordenador que va a tomar las decisiones y asesorar a su usuario en el futuro. A esto se le llama Sistema Experto, y se suele clasificar como una rama diferenciada del Machine Learning.

Ojo, el Machine Learning, a diferencia de los Sistemas Expertos suelen usar datos «de campo», es decir, datos que provienen de fenómenos de la vida real. Y los sistemas expertos suelen ser, por otro lado, estructuras de decisión bastante rígidas que son muy diferentes a las de Machine Learning. En mi caso los datos de campo serían esos 223 ejemplos que recopilé, que como dijimos eran insuficentes. Así que creo que he usado algoritmos de Machine Learning junto a estrategias de Sistemas Expertos. ¡Vaya mezcla!

Resultado

Usando el paquete de obras reales para poner el aparato a examen.

Con todos los ingredientes en la mesa ya sólo quedaba ponerse con los fogones. Puse a funcionar tres algoritmos estadísticos, los alimenté con el paquete de datos autoconfeccionado (el de las 3500 obras) y evalué cuántas veces acertaban si les preguntaba si iban a tener retrasos las obras del paquete pequeño (el de obras que se han hecho de verdad, de 223 ejemplos). Los algoritmos no saben que yo tengo la respuestas a si se retrasaron las obras o no, así que hacen sus predicciones generalizando con el paquete grande que le di. Así que sólo me queda corregir el examen y poner nota a los algoritmos, viendo cuántas de esas 223 obras han consegido predecir si se retrasan o no. A mi me pareció impactante, espero que flipes como flipé yo:

El mejor de los algoritmos estadísticos consiguió un 68% de acierto y el peor un 54% de aciertos. Pero combinándolos y haciéndolos votar fueron capaces de llegar al 70% de acierto entre los tres.

¡Eso es tres inteligencias artificiales por el precio de una! Aunque el algoritmo de menos acierto acertaba casi igual que si lanzaras una moneda al aire, contrapesaba muy bien al algoritmo con más aciertos. Pero no nos engañemos, más aciertos no quiere decir que la máquina que he fabricado sea mejor. Que acierte mucho en un momento determinado (o con 223 construcciones con las que hizo el examen) no quiere decir que no vaya a acertar un 20% en otra ocasión, o con otras tantas obras. Por muchos algoritmos elaborados que usemos y datos que tengamos, el caos del universo es inexcrutable, por lo que ese 70% incluso puede llegar a verse como algo malo. Puede significar que el algoritmo ha pillado una regla que le ha servido muy bien para este examen, pero justo eso que le hace fuerte es lo que le hace suspender con otros exámenes.

Si he despertado el gusanillo de la programación puedes echar un ojo a Python para Dynamo.

Usando la Inteligencia Artificial para plazos de construcción.

Te explico lo que te puede pasar si usaras el programa que he desarrollado (al menos en su versión beta que enseño en el vídeo) en el caso de máxima capacidad de acierto:

  • Pones los inputs de tu proyecto, un edificio de vivienda colectiva de 800m2 de superficie construida, a 750€/m2 a acabar en 9 meses.
  • Ejecutas el programa para que prediga si va a salir bien o no la obra, según su opinión.
  • La mayoría de las veces funcionará normalmente. Te dirá que vas a tener problemas con esa construcción o que no, que todo va a ir bien.
  • Si te avisa que tu construcción puede ser deficitaria variarás los parámetros hasta que des con alguna combinación que la máquina te responda que «normalmente no da problemas».
  • Cierras el programa y apagas el ordenador. Como usuario has obtenido una segunda opinión y el software ha cumplido su función. ¡CELEBRATION!

Pero unas pocas veces este programa tan eficaz puede tener ciertos comportamientos extraños:

  • Pones los inputs de tu proyecto, un edificio de vivienda colectiva de 800m2 de superficie construida, a 650€/m2 a acabar en cuatro meses.
  • Ejecutas el programa para que prediga si va a salir bien o no la obra, según su opinión.
  • El programa detecta que va a tener retrasos o sobrecostes con toda seguridad. (no hace falta el programa para ver esto con las cifras que he dado, pero es ilustrativo a partir de aquí).
  • Como eres listo subes los meses a siete y el precio a 750€/m2 y le das a ejecutar.
  • El programa responde que sigue habiendo problemas con tu construcción…
  • Y así hasta el infinito. por mucho que cambies los parámetros, te costará dar con algo que le parezca bien. Como si tu obra tuviera una maldición y el programa fuera un pájaro de mal aguero.

Este es un problema típico de las inteligencias artificiales demasiado efectivas, que a veces se encariñan con cosas que les damos y no las sueltan. Y en ese momento pierden gran parte de su utilidad.

Esto lo arreglé regulando la forma en la que votaban los algoritmos. Con esto, el programa, al asesorar perdía bastante precisión, es decir, era peor prediciendo. Pero es una técnica rápida para conseguir que fuera más robusto. Al fin y al cabo, el software no tiene responsabilidad y se le permite que se equivoque sin ir a la cárcel, y los agentes de la construcción que firman siguen siendo humanos.

En cualquier caso, este problema al final lo acabaría solucionando mejorando la calidad de los datos con que alimenté los algoritmos, y probablemente, si el programa pasa de la fase beta (y me piden que lo desarrolle en profundidad) los algoritmos que podría fabricar alcanzarían más del 85% de acierto casi seguro. Sólo hace falta tener la experiencia de un Arquitecto Superior, y unas cuantas horas de código. La pregunta es, aunque el programa acierté sólo el 66% de veces ¿a quién no le gustaría tener una segunda opinión a golpe de click en el escritorio?

A continuación tienes un enlace para que puedas ver el estudio pormenorizado en .html (está en inglés).

Si has llegado hasta el final del artículo, mi escasa inteligencia humana me dice que puede que haya despertado una chispa de interés en ti. Si es así, compártelo o puede que enfades un poquito a Terminator (no quieras ver a Terminator enfadado…)

terminator_especialista3dDescargar estudio CONSTADEX (documento en .html)

CC BY-NC 4.0 Inteligencia Artificial para plazos de construcción por Especialista3D está licenciado bajo una Licencia Creative Commons Atribución-NoComercial 4.0 Internacional.

Entradas relacionadas

Deja una respuesta

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

Comentarios (3)

[…] probablemente no podría haber seguido escribiendo entradas en este blog, desarrollando scripts de machine learning para gestión de obra y también, incluso me dio tiempo a disfrutar un poquito de la vida […]

Responder

Enhorabuena. Interesante artículo! Me ha gustado la forma de exponerlo y siempre se aprenden algunas cosas nuevas. Me despierta gran curiosidad estos temas de programación, datos, machine learnig, mapping, etc.. y me representan totalmente la frase que escribes diciendo «Buscas en internet con las palabras clave “Inteligencia Artificial”, “Machine Learning” o “redes neuronales” y te salen una cantidad de artículos científicos enooorme. Unos tan técnicos y crípticos que muy pocos tienen la suerte de entender, y otros que se quedan tan en la superficie que te quedas con ganas de más… «.
¿Cómo creeis que se puede ir metiendo un poco la cabeza en este mundo para saber si realmente nos apasiona o servimos para ello? En mi caso soy ingeniero civil de 24 años, formándome poco a poco en el amplio mundo del BIM y comenzando a abrir de vez en cuando Dynamo y VisualBasic para macros en excel… Gracias!
Saludos!! 🙂

Responder

¡Gracias Iván! Vas por muy buen camino. Dynamo es una de las formas más agradecidas de empezar a formarse en programación, en este caso programación visual, con Revit. Además si controlas visual basic te será mucho más fácil después aprender Python, porque Python y Dynamo son muy compatibles así que good job. Si quieres hacer el proceso más corto, porque sabemos que aprender de forma autodidacta es a veces un dolor de muelas; en Especialista3D hacemos formaciones de Dynamo y de Python. Para el tema de la inteligencia artificial nos cuesta más orientarte ya que hay muy pocos profesionales que estén orientando la inteligencia artificial hacia la construcción.
¿REsuelve la duda? Un saludo!!!

Responder