DIBUJO AUTOMÁTICO DE DISTRIBUCIONES EN PLANTA A PARTIR DE UN GRAFO DE ADYACENCIAS Resumen Trabajo de Investigación Doctorado en Lenguajes, Sistemas Informáticos e Ingeniería del Software Autor: Mónica San José Benito Tutora: Marina Álvarez Alonso Doctorado 2004-2005 Resumen En el trabajo de investigación realizado se presentan algoritmos capaces de automatizar el desarrollo del proyecto arquitectónico por ordenador, llegando hasta la generación automática de esquemas adimensionales de distribución del espacio en las dos dimensiones de la planta de un edificio a partir de las condiciones impuestas por el proyectista. La búsqueda de soluciones para el trazado de esquemas adimensionales de distribución de edificios en planta se ha realizado tratando de reconstruir el proceder del hombre ante este tipo de cuestiones mediante el desarrollo de dos algoritmos: uno para el trazado de los locales exteriores, basado en la división en partes iguales de los lados de la planta. Y un segundo algoritmo para el trazado de locales interiores, basado en una técnica de búsqueda heurística en profundidad, con evaluación de nodos intermedios y vuelta atrás (backtracking). Introducción Desde el comienzo del uso de los ordenadores y a lo largo de toda su historia se ha mostrado un gran interés por la aplicación que los mismos pudieran tener en la automatización del proyecto arquitectónico, aunque los logros han sido limitados hasta el momento. La mayoría de las aplicaciones prácticas, que han ido apareciendo, están dirigidas al cálculo de estructuras, confección de mediciones y presupuestos, dibujo, etcétera. Estos programas de CAD/CAE son capaces de realizar el almacenamiento, recuperación y manipulación de los datos introducidos lo que automatiza el desarrollo de un proyecto concreto, pero sin embargo no permiten la automatización del estudio de soluciones alternativas. Desde la década de los 60 han sido numerosas las propuestas de métodos para abordar el problema de generación de esquemas de edificios en planta. En general el proceso se plantea mediante la solución de dos fases sucesivas: • Generación de esquemas adimensionales • Dimensionamiento A la hora de abordar la primera de las fases, el problema de generación de esquemas adimensionales de edificios en planta, existen esencialmente 2 planteamientos: el de optimización y el combinatorio. En el planteamiento de optimización, se intenta buscar la mejor distribución de los espacios definiendo la disposición óptima mediante una función objetivo que expresa, bien recorridos entre dos actividades, bien adyacencia entre espacios. En el planteamiento de tipo combinatorio, se intenta generar soluciones posibles que cumplan unas condiciones determinadas debidas a características espaciales, tales como interrelaciones geométricas entre locales, orientaciones y limitaciones dimensionales. En general, la teoría de grafos, [Roth88] [Schwarz94] [Recuero96] [Gross99], ha sido el instrumento matemático utilizado para representar de forma abstracta los distintos tipos de relaciones entre los diferentes recintos que constituyen una planta. Un grafo es un conjunto de nodos y aristas que los unen. Si hacemos corresponder a cada recinto un vértice y consideramos las relaciones de adyacencia entre ellos como las aristas que unen dichos vértices, tendremos un grafo simple, comúnmente denominado “grafo de adyacencia”. De este grafo diremos que la distribución en planta que lo origina es una realización del grafo. A cada distribución le corresponde un único grafo, pero a cada grafo le pueden corresponder distintas distribuciones sobre una planta. La posibilidad de poder plasmar los grafos que reflejan las condiciones de diseño prefijadas sobre la planta del edificio es lo que se denomina realizabilidad del grafo [Recuero00] [Recuero04]. Las distintas soluciones de este problema representan las diferentes alternativas que pueden ser consideradas en el proceso de proyecto arquitectónico. En la mayor parte de los casos las plantas de los edificios son de lados paralelos o perpendiculares y las habitaciones o recintos son rectangulares. Resulta pues, de gran interés, el disponer de algoritmos que permitan comprobar primero, si es posible realizar los mencionados grafos sobre la planta disponible, y en caso afirmativo, generar todas las posibles distribuciones. El problema básico puede reducirse al caso de una planta rectangular recubierta por habitaciones rectangulares, pudiendo posteriormente generalizarse a plantas de lados paralelos o perpendiculares entre sí. No existe un algoritmo que resuelva completamente este problema. Los autores han presentado un procedimiento heurístico [Recuero00] [Recuero04] que parece resolverlo puesto que no se han encontrado excepciones, pero no han podido demostrar concluyentemente que sea condición suficiente. En los distintos trabajos de otros autores que utilizan la teoría de grafos para generar distribuciones de plantas, no lo hacen sobre plantas prefijadas y además obligan a tomar decisiones previas sobre posiciones relativas de los rectángulos. Sin embargo, hay requerimientos que pueden cumplirse de varias formas, tal como que dos habitaciones pueden ser contiguas en cualquier dirección. El método propuesto por los autores de este trabajo es más general, pues no impone condiciones a priori sobre las posiciones relativas entre habitaciones, si bien, en principio, es válido para plantas rectangulares, que son las únicas convexas que pueden ser cubiertas por rectángulos. El planteamiento para el proceso de generación automática de plantas se realiza en 4 etapas sucesivas: 1. Determinar la realizabilidad de los grafos o grafo sobre una planta elegida. 2. En caso afirmativo, generar todas las posibles soluciones topológicamente correctas. 3. Generar la realización adimensional de las soluciones topológicamente correctas. 4. Imponer el cumplimiento de las condiciones dimensionales, etc. De las cuales, las tres primeras cubren la primera fase (generación de plantas de forma adimensional) y la 4 corresponde a la 2ª fase (dimensionamiento de la planta). El algoritmo completo se ha estructurado en los siguientes pasos: 1. En caso de planta no rectangular reducir la misma a planta rectangular mediante la adición de recintos ficticios adecuados, que a su vez deben ser incluidos en los grafos a comprobar. 2. Comprobar la realizabilidad del grafo sobre la planta rectangular. 3. Generar las posibles soluciones topológicamente correctas sobre plantas rectangulares. 4. Dibujar en forma adimensional las soluciones topológicamente correctas. 5. Imponer las condiciones dimensionales, de orientación, etc para dibujar las plantas dimensionadas. La descripción de los pasos 1-3 ya ha sido presentada de forma teórica en trabajos anteriores. En el presente trabajo se aborda la solución del paso 4 del algoritmo (etapa 3). Para ello se plantean dos algoritmos: uno para el trazado de los locales exteriores, basado en la división en partes iguales de los lados del rectángulo principal (a partir de ahora la planta), y un segundo algoritmo para el trazado de locales interiores, basado en una técnica de búsqueda heurística en profundidad, con evaluación de nodos intermedios y backtracking. Descripción del algoritmo El algoritmo para el trazado de locales exteriores se ejecuta colocando los locales clasificados por tipos, dependiendo de la dificultad de cada tipo, de mayor a menor complejidad. Así se colocan primero los locales que tienen tres lados exteriores en la planta, luego los de dos y finalmente los de un solo lado exterior. Cada lado exterior se divide entre el número de locales que lo componen, en partes iguales, mientras que el espacio interior lo ocuparán los locales de cada lado alternativamente para generar diferentes soluciones. Dependiendo de qué locales con un lado exterior ocupen el espacio interior de la planta, se generan 5 raíces para los futuros árboles estado-acción, que constituyen la entrada al algoritmo para el trazado de locales interiores. A continuación se corrigen los huecos y solapamientos que se hayan producido entre locales exteriores de cada una de las plantas. El principio básico para el trazado de los locales interiores es el siguiente, se tratará de “colocar los locales interiores en locales con un solo lado exterior o dentro de los locales interiores previamente trazados” siempre que no sean locales verticales al local interior a colocar. Esta es la razón por la que se ha ocupado el espacio interior de la planta con los locales de un lado exterior en la generación de raíces. El algoritmo para el trazado de locales interiores consta a su vez de tres procesos: 1. Búsqueda. Va generando los distintos nodos del árbol 2. Corrección. Opera sobre los nodos generados en la búsqueda 3. Evaluación de cada uno de los nodos. Poda y retroceso (backtracking) cuando corresponda El proceso de búsqueda empleado va generando los diferentes caminos de cada árbol a partir de las 5 raíces generadas anteriormente. Los nodos intermedios se van generando a medida que se colocan los locales interiores, siguiendo el principio de colocación de los locales interiores, por lo que cada nivel intermedio del árbol se corresponde con la colocación de un local interior en la planta. El algoritmo de corrección trata de encaminar las soluciones potenciales hacia una solución final de modo que cumpla el mayor número de adyacencias de entrada entre los locales ya colocados. De este modo será necesario por un lado hacer que locales que NO deben ser adyacentes en la planta y se han trazado como adyacentes dejen de serlo. Por otro lado será necesario que locales que deben ser adyacentes se hayan trazado como no adyacentes y haya que corregirlos. Si durante el proceso de corrección se solapa por completo algún local, la rama actual se poda (backtracking) y se sigue por otra rama. En caso contrario se continúa por esta rama hasta encontrar una solución final. Se obtienen así 5 espacios de soluciones formados por los nodos hoja de los 5 árboles estado-acción. Conclusiones y Resultados El algoritmo para el trazado automático de esquemas adimensionales en planta presentado en este documento es una primera aproximación para conseguir automatizar el proceso de diseño de planos de edificios en planta a partir de un grafo de conexiones. Por un lado el algoritmo logra filtrar y encaminar la búsqueda de forma que no sea una búsqueda aleatoria o de “ fuerza bruta” , si no que sea una búsqueda guiada por las adyacencias entre locales dadas en el grafo inicial. Esto hace que sea un algoritmo más potente o más fuerte dentro de los algoritmos heurísticos vistos hasta el momento sin alejarse de ser un algoritmo general. El algoritmo propuesto como solución al problema de generar trazados adimensionales de plantas arquitectónicas es, por tanto, un algoritmo potente y bastante general, a pesar de que se hace un refinamiento exhaustivo en la búsqueda, pero no está probado que sea válido para cualquier problema inicial que sirva como entrada a los pasos previos. A pesar de esto, deja abierto un camino optimista para retomar los métodos heurísticos como solución al problema arquitectónico. Abstract Algorithms to automate the architectural design development are presented. Starting from the conditions imposed by the designer they automatically generate the a-dimensional 2D space distribution. The search for the solutions of a-dimensional 2D distributions tries to reproduce man wise procedure by means of two algorithms: one deals with the drawing of the external spaces and is based on the equal part division of the plan sides. The other one deals with the drawing of the internal spaces and is based on an heuristic search in depth with backtracking. Introduction One of the areas that has contracted constant interest every since computers came into general use is their potential for automating architectural design, although to date the achievements have not lived up to expectations. Most of the practical applications that have come to market focus on structural engineering, the formulation of bills of quantities and budgets, drawing and the like. These CAD/CAE programs can store, retrieve and handle the data entered and thus automate the development of a specific design, but they make no provision for automating the study of alternative solutions. Any number of methods has been proposed since the nineteen sixties to address the problem of generating building floor plans. The process is generally broken down into two successive phases: i) Generation of not measure schemes and; ii) Sizing. There are essentially two possible approaches to the problem of generating no measure floor plans for buildings: optimisation and combinatorial. In optimisation, the best area layout is sought with a target function based either on distances between two activities or room adjacencies. Under the combinatorial approach, the aim is to generate possible solutions that meet certain conditions deriving from spatial characteristics, such as geometric interrelationships between rooms, or positional or dimensional limitations. Graph theory [Roth88] [Schwarz94] [Recuero96] [Gross99] is the mathematical tool used for the abstract representation of the various types of relationships between the enclosed spaces on any given floor plan of a building. A graph is a series of nodes or vertices and edges joining pairs of nodes. If each enclosed space is assigned a vertex and the adjacency relationships between them are considered to be the edges joining the vertices, the result is a simple graph generally known as an “adjacency graph”. The floor plan underlying any given graph is called the graph realisation. Each layout corresponds to a single graph, but each graph may correspond to several floor plans. The possibility of associating a graph reflecting pre-established design conditions with the respective building floor plan is known as graph realisability [Recuero00] [Recuero04]. The different solutions to this problem represent the different alternatives that may be considered in the architectural design process. The floor plans of most buildings have parallel or perpendicular sides and the rooms or enclosed spaces are rectangular. It is, then, very useful to have algorithms with which to verify whether the graphs such as described above can be realised for any given plan and, if this is the case, to generate all the floor layouts possible. The basic problem may be reduced down to a building with a rectangular floor plan divided into rectangular rooms, which can then be generalised to plans with parallel or perpendicular sides. There is no algorithm that solves this problem entirely. The authors have presented a heuristic procedure [Recuero00] [Recuero04] that appears to do so, inasmuch as no exceptions have been found, but have been unable to conclusively prove its sufficiency. In papers by other authors using graph theory to generate floor plans, no provision is made for designing the layout to pre-established conditions and the procedures call for prior decisions regarding the relative positions of the rectangles. There are requirements that may be met in various manners, however, such as the requirement that two given rooms must be allowed to be adjacent in either direction. The authors of the present paper [Recuero00] [Recuero04] propose a more general method that imposes no a priori conditions on the relative positions of rooms, although it is valid for rectangular floor layouts only, as the only convex plans that can be covered by rectangles. The procedure for the automatic generation of floor plans is divided into four successive stages: 1. Determine whether the graphs or graph are realisable on the plan. 2. If realisable, generate all the topologically correct solutions possible. 3. Generate the no measure realisation of the topologically correct solutions. 4. Impose measure and like conditions. Stages one to three correspond to the first phase mentioned above (no measure generation of layouts) and stage four to the second phase (measuring). The entire algorithm is built around the following steps: 1. Where the floor plan is not rectangular, make it rectangular by adding any necessary fictitious spaces, which must also be included in the graphs to be verified. 2. Verify whether the graph is realisable on the rectangular plan. 3. Generate all topologically correct solutions for rectangular plans. 4. Draw adimensional, topologically correct solutions. 5. Impose any pertinent conditions: dimensional, positional, etc., to draw the plans to the required dimensions. The theoretical description of phases 1-3 is given in. The present paper addresses the solution of step 4 of the algorithm. This involves formulating two algorithms: one for positioning exterior rooms, which entails dividing the sides of the main rectangle (hereafter the floor plan) into equal sections, and a second algorithm for positioning interior rooms, based on a technique consisting of a heuristic depth-wise search, together with intermediate node evaluation and backtracking. The Algorithm The exterior room mapping algorithm is executed, whereby the rooms are positioned by type in order of difficulty, from greater to lesser. Hence, exterior rooms with three outer side are positioned first, followed by exterior rooms with two and one outer side. The roots of the stateaction trees are subsequently generated and any gaps or overlaps between exterior rooms are corrected. The basic principle for mapping interior or type interior rooms is “position interior rooms inside exterior rooms with one outer side or inside previously positioned interior rooms”, providing they are not rooms vertical to the interior room to be positioned. The algorithm consists, in turn, of three processes: 1. Search: generates the different nodes of each state-action tree 2. Correction: acts as necessary on the nodes generated during the search procedure 3. Node evaluation: backtracking as appropriate The search procedure used generates the different paths on each tree from the five previously generated roots; that is, a depth-wise search is conducted to obtain five state-action trees. The root is the floor plan on which the exterior rooms, some of which occupy the interior space, have already been mapped. The intermediate nodes are generated as the interior rooms are positioned, which means that each intermediate level of the tree corresponds to the positioning of an interior room on the floor plan. The correction algorithm attempts to steer the potential solutions towards a final solution compliant with the largest possible number of adjacency conditions initially established, once the rooms are positioned. On the one hand, this means that rooms that should not be adjacent but which have been drawn in as adjacent should be duly corrected. On the other hand, rooms that should be adjacent but which appear as non-adjacent should be duly corrected. After partial correction of each intermediate node it is necessary to make an evaluation of its floor plan to determine if it will be a future final solution. The node is then corrected to meet initial adjacency conditions and, if during this process some one of the rooms is completely over-run by another, the respective branch is pruned and another branch is explored. Otherwise, the procedure continues along the first branch until a final solution is found. The leaf nodes of the five state-action trees form the five solution spaces ultimately obtained. Conclusions and Results The algorithm for the automatic mapping of no measure floor plans introduced is a first attempt to automate the floor plan design process for building floor plans from an adjacency graph. On the one hand the algorithm is able to screen and steer the search in such a way that the result is not a random or “brute force” search, but rather one guided by the room adjacency conditions given in the initial graph. This makes it more powerful than the heuristic algorithms seen to date, without detracting from its general applicability. The algorithm proposed as a solution to the problem of mapping no measure architectural floor plans in buildings is, therefore, a powerful and rather general algorithm, despite the fact that the search procedure entails exhaustive refining. Nonetheless, it has not been proven to be valid for any and every initial problem giving way to the preliminary steps. Despite this reservation, it affords an optimistic view of the potential of heuristic methods in the quest for solutions to architectural problems. Bibliografía / Bibliography [Roth88] J. Roth and R. Hashimshony. Algorithms in graph theory and their use for solve problems in Architectural design. Computer Aided Design, 2 (1988), 373-381. [Schwarz94] Schwarz, D.M. Berry, E. Shabib. Representing and solving the automatic building design problem. Computer Aided Design, 26.9 (1994), 689-698. [Recuero96] A. Recuero, M. Álvarez and O. Río. Grafos en el proyecto arquitectónico. Partición de un rectángulo en rectángulos. R.I. Métodos numéricos para el cálculo y diseño en ingeniería, 12,2 (1996), 187-213. [Gross99] J. Gross and J. Yellen. Graph Theory and its Applications. CRC Press (1999). [Recuero00] A. Recuero, O. Río, M. Álvarez. Heuristic method to check the realisability of a graph into a rectangular plan. Advances in Engineering Software, 31 (2000), 223-231. [Recuero04] A. Recuero, O. Río, M. Álvarez. Realisations of a Graph into Rectangles covering a Rectangle: Building floor Plan Design. CST2004, Lisboa, Portugal (Sep 2004). In press.