Buildings are an integral part of everyday life. The process of planning, designing, and constructing buildings has evolved over several thousands of years. Today, the steps followed to physically realize modern buildings are very complicated and require a high degree of skilled labor that can span several different disciplines. This complexity poses a huge challenge in terms of time, money, and other resources expended in order to build a viable facility that can be used to deliver the intended services in an efficient and profitable way.
In an embodiment, a computer-implemented method for realizing room placement of a building system is disclosed. In the embodiment, the method involves generating a pool of room chromosomes by applying a genetic algorithm, wherein a room chromosome corresponds to a placement of a set of rooms in a building system, selecting a room chromosome with a desired fitness value from the pool of room chromosomes, the fitness value determined by applying a fitness function to at least one room chromosome in the pool, and graphically displaying a placement of rooms in a building system according to the selected room chromosome.
In another embodiment, generating the pool of room chromosomes includes generating an initial number of room chromosomes using a constraint-ratio heuristic and adding additional room chromosomes to the pool of room chromosomes by generating an additional room chromosome by applying the genetic algorithm to the pool of room chromosomes and adding the generated additional room chromosome to the pool of room chromosomes.
In another embodiment, the desired fitness value is the lowest fitness value calculated by a fitness function for a room chromosome in the pool of room chromosomes.
In another embodiment, generating an initial room chromosome involves forming an array of legal billets, each billet corresponding to a room to be placed in a department.
In another embodiment, legal billets are determined by orienting the department in a floor plan grid that is aligned with a structural grid of the building to divide the department into agents, the department indicating pathways, structural components, and boundaries, indexing agents along the sides of pathways in the department to create billets, for each room to be placed within the department, determining if a room can be placed on each billet, and for each room, recording billets on which the room can be placed as legal billets.
In another embodiment, generating an initial room chromosome in a pool of room chromosomes involves selecting a legal billet for each room to be placed within the department using a constraint-ratio heuristic function, the constraint-ratio heuristic function configured to take capacity constraints into account.
In another embodiment, applying the genetic algorithm to the pool of room chromosomes involves applying crossover and mutation heuristics to generate additional room chromosomes.
In another embodiment, the genetic algorithm is repeatedly applied until a fitness value less than a user-defined value is calculated for a room chromosome in the pool of room chromosomes.
In another embodiment, the genetic algorithm is repeatedly applied a user-defined number of times.
In another embodiment, applying crossover involves using binary tournament selection by randomly selecting two distinct parent room chromosomes from the pool of room chromosomes, selecting a first portion of billets in the first parent room chromosome, selecting a second portion of billets in the second parent room chromosome, and generating a third room chromosome by combining the first portion with the second portion of billets, wherein the combination of the first portion with the second portion includes billets for every room to be placed.
In another embodiment, applying mutation heuristics involves applying the Martello-Toth heuristic for mutation to a room chromosome.
In another embodiment, applying mutation heuristics to a room chromosome involves releasing a plurality of rooms from their location within a room chromosome, determining a measure of desirability for the placement of each released room in each of the openings from which the rooms were released, placing the released room with the greatest difference between its best measure of desirability and its second best measure of desirability in the opening corresponding to its best measure of desirability, wherein the closer a measure of desirability is to zero the better the measure is, and placing the remaining released rooms in the remaining openings such that the fitness value of the room chromosome is the closest fitness value to the desired fitness value possible for the room chromosome.
In another embodiment, a measure of desirability is determined by calculating a value by which the placement would impact the fitness value for the room chromosome.
In another embodiment, the fitness function is an integer function evaluated for several components, the components including a constraint cost, a cluster cost, a violation cost, an overlap cost, and a capacity excess cost.
In another embodiment, the fitness function F(x) for j rooms is calculated by:
wherein i is a billet index, Cij is the constraint cost, Ci is the cluster cost, Vi is the violation cost, Oi is the overlap cost, ei is the capacity excess cost, and a is the weight for each cost.
In another embodiment, the constraint cost is determined by the relative distance between rooms within a department.
In another embodiment, the cluster cost is determined by the proximity of rooms to each other.
In another embodiment, the violation cost is determined by the number of user-defined constraints violated by a room chromosome.
In another embodiment, the overlap cost is determined by the number of agent overlaps in a room chromosome.
In another embodiment, the capacity excess cost is determined by the difference between the total sum of room sizes placed along a ruler and the capacity of the ruler.
In another embodiment, the constraint cost is determined by the relative distance between rooms within a department, the cluster cost is determined by the proximity of rooms to each other, the violation cost is determined by the number of user-defined constraints violated by a room chromosome, the overlap cost is determined by the number of agent overlaps in a room chromosome, and the capacity excess cost is determined by the difference between the total sum of room sizes placed along a ruler and the capacity of the ruler.
In a second embodiment, a computer-implemented method for placing rooms in a building system, the method involves generating a pool of room chromosomes by generating an initial number of room chromosomes using a constraint-ratio heuristic and adding additional room chromosomes to the pool of room chromosomes by generating an additional room chromosome by applying a genetic algorithm to the pool of room chromosomes by applying crossover and mutation heuristics, and adding the generated additional room chromosome to the pool of room chromosomes, and selecting a room chromosome with a desired fitness value from the pool of room chromosomes, the fitness value determined by applying a fitness function to at least one room chromosome in the pool, and graphically displaying a placement of rooms in a building system according to the selected room chromosome.
Other aspects and advantages of embodiments of the present invention will become apparent from the following detailed description taken in conjunction with the accompanying drawings.
Throughout the description, similar reference numbers may be used to identify similar elements.
It will be readily understood that the components of the embodiments as generally described herein and illustrated in the appended figures could be arranged and designed in a wide variety of different configurations. Thus, the following more detailed description of various embodiments, as represented in the figures, is not intended to limit the scope of the present disclosure, but is merely representative of various embodiments. While the various aspects of the embodiments are presented in drawings, the drawings are not necessarily drawn to scale unless specifically indicated.
The present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described embodiments are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is, therefore, indicated by the appended claims rather than by this detailed description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.
Reference throughout this specification to features, advantages, or similar language does not imply that all of the features and advantages that may be realized with the present invention should be or are in any single embodiment of the invention. Rather, language referring to the features and advantages is understood to mean that a specific feature, advantage, or characteristic described in connection with an embodiment is included in at least one embodiment of the present invention. Thus, discussions of the features and advantages, and similar language, throughout this specification may, but do not necessarily, refer to the same embodiment.
Furthermore, the described features, advantages, and characteristics of the invention may be combined in any suitable manner in one or more embodiments. One skilled in the relevant art will recognize, in light of the description herein, that the invention can be practiced without one or more of the specific features or advantages of a particular embodiment. In other instances, additional features and advantages may be recognized in certain embodiments that may not be present in all embodiments of the invention.
Reference throughout this specification to “one embodiment,” “an embodiment,” or similar language means that a particular feature, structure, or characteristic described in connection with the indicated embodiment is included in at least one embodiment of the present invention. Thus, the phrases “in one embodiment,” “in an embodiment,” and similar language throughout this specification may, but do not necessarily, all refer to the same embodiment.
Practices of automating and adapting work flows can be applied to the realization of modern buildings. For example, automating and adapting work flows can be applied to the placement of rooms within a building system. The placement of rooms within a building system can be described as a combinatorial optimization problem (e.g., a knapsack problem) in which a solution seeks to optimize the placement of rooms within a building without violating physical limitations of the building system. For example, in a large building system (e.g., 200+ rooms) each room cannot share a common wall with every other room despite the optimization provided by common walls (e.g., no distance between rooms with a common wall). Rather, a solution to the placement of rooms seeks to determine, for example, which rooms should share a common wall to minimize the average daily travel by individuals using the building system. In a large building system with multiple rooms and pathways, the placement of rooms can be a complex and labor-intensive task.
In accordance with an embodiment of the invention, genetic algorithms are used to solve the placement of rooms within a building system. In order to use genetic algorithms, floor plans have been adapted to form chromosomes that can be mutated and altered by the genetic algorithm. In an embodiment, a computer-implemented method for placing rooms in a building system involves generating a pool of room chromosomes by applying a genetic algorithm, wherein a room chromosome corresponds to a placement of a set of rooms in a building system, selecting a room chromosome with a desired fitness value from the pool of room chromosomes, the fitness value determined by applying a fitness function to at least one room chromosome in the pool, and graphically displaying a placement of rooms in a building system according to the selected room chromosome. In an embodiment, the desired fitness value is the lowest fitness value calculated for a room chromosome in the pool of room chromosomes.
While the technique described above for realizing room placement can be applied to many types of modern buildings, the technique will be described below with reference to realizing room placement of a building system within which healthcare services will be provided (e.g., a hospital).
In an embodiment, a number of several room types are selected to be placed in a department based on the department type. For example, department 110 in
In an embodiment, agents located along each ruler in a department can be consecutively indexed (e.g., from 1 to 3000) and are referred to as “billets.”
In an embodiment, each room is associated with a set of legal billets.
In an embodiment, initial room chromosomes can be generated by selecting an array of legal billets (e.g., one legal billet for each room to be placed as specified by a particular space program).
In an embodiment, a second room chromosome can be generated similarly to the room chromosome of
As described above, placing rooms in a building system involves generating a pool of room chromosomes and determining which one of the room chromosomes has a desired fitness value as calculated by a fitness function. In an embodiment, a desired fitness value can be the lowest fitness value for a room chromosome in the pool of room chromosomes. In other embodiments, the desired fitness value can fall within a range (e.g., a fitness value in the lowest 20% of fitness values calculated for room chromosomes in the pool) or any fitness value below a user-defined threshold (e.g., any fitness value below 5000). In order to calculate a fitness value, a fitness function is solved for each room chromosome. In an embodiment, the fitness function can be an integer function F(x) calculated by:
where, i is a room position in a room chromosome, j is a room to be placed in the room chromosome, Cij is a constraint cost, Ci is a cluster cost, Vi is a violation cost, Oi is an overlap cost, ei is a capacity excess cost, and a1, a2, a3, and a4 are weights assigned to each cost. In an embodiment, a user can specify different constraints that apply to various rooms and the fitness function determines which costs to evaluate accordingly. For example, if a constraint requires a recovery room and an operating room to be placed in close proximity, then a constraint cost will need to be determined for each room chromosome. Alternatively, if no constraints require rooms to be placed in a certain proximity to each other, the constraint cost may not need to be determined by the fitness function. The fitness function adds the evaluated costs and returns the sum as an integer value. In an embodiment, the costs can be weighted differently as determined by a user. For example, overlap cost can be more heavily weighted in situations where overlap is undesirable.
In an embodiment, the constraint cost depends on the relative distance between rooms within a department.
In an embodiment, the cluster cost depends on the proximity of rooms to each other. For example, a constraint may specify that at least three rooms should be placed near each nursing station. In an embodiment, the cluster cost is computed by evaluating a minimum spanning tree for all rooms in a cluster (e.g., a number of rooms equal to or less than the full set of rooms to be placed in a department).
Thus, because all me rooms in
In an embodiment, the violation cost depends on the number of user-specified constraints violated in a room chromosome. A user-specified constraint can include, for example, minimum dimensions of a room, a minimum number of a room type to be included in a room chromosome, or proximity of a room to a stairwell or elevator.
In an embodiment, overlap cost depends on the number of agent overlaps in a given placement. For example, if a room is placed with an agent overlapping a structural column or on an agent already occupied by another room, the overlap cost of the placement will increase.
In an embodiment, capacity excess cost depends on the difference between the total sum of room sizes placed along a ruler and the capacity of the ruler. For example, if a ruler can accommodate 90 agents in the x-direction (e.g., the ruler has 90 billets), then placing a room covering 70 agents in the x-direction and a room covering 50 agents in the x-direction along the same ruler will result in a capacity excess cost of 30 (e.g., 70+50−90=30). In an embodiment, capacity excess cost is distinguishable from overlap cost. For example, if a ruler can accommodate 90 agents in the x-direction, then 3 rooms spanning 20 agents in the x-direction can be placed to fit overlapping within the ruler, which would increase the overlap cost, but, because it is possible to otherwise place the rooms to fit along the ruler without overlapping (despite not having done so), the capacity excess cost zero. Alternatively, 4 rooms spanning 20 agents in the x-direction could be placed to fit overlapping within the ruler, thus increasing the overlap cost, but could not possibly be placed to fit along the ruler without overlapping and, thus, the capacity excess cost would be greater than zero.
In an embodiment, an initial pool of room chromosome can be efficiently generated by applying a constraint-ratio heuristic to generate an initial number of room chromosomes (e.g., 200 room chromosomes or another number defined by a user). The constraint-ratio heuristic can consider constraints (e.g., the existence of structural components in a structural grid of a building) and ratios (e.g., space required by rooms compared to space available in a department, floor, or building) when placing rooms. In an embodiment, a constraint-ratio heuristic can select a legal billet for each room by determining a relative cost-resource index score, G[ij], for each legal billet and selecting the billet with the lowest cost-resource index score for each room. In an embodiment, a relative cost-resource index score is determined by the function G( ), which divides the width of the room to be placed by the remaining width of a ruler on which the room is to be placed. Thus, the fewer the number of rooms already placed along a ruler, the lower the cost-resource index score will be for a room.
In an embodiment, several initial room chromosomes are generated and added to a pool of room chromosomes. Additional room chromosomes can then generated and added to the pool of room chromosomes by selecting two room chromosomes from the pool as parents for crossover using binary tournament selection, generating a new room chromosome using crossover, mutating the new room chromosome, and adding the new chromosome back to the pool of room chromosomes before generating another new room chromosome although other techniques can be used to populate a pool of room chromosomes (e.g., random generation). In an embodiment, binary tournament selection can be performed by selecting two room chromosomes from the pool at random.
In an embodiment, new room chromosomes generated by crossover can be mutated using, for example, Martello and Toth's heuristic for mutation to swap placements of rooms within the new room chromosomes, but other techniques for mutating room chromosomes can be used as well.
In an embodiment, once a room chromosome has been mutated, the fitness value of the billet selected for each room in a room chromosome can be compared to the fitness value for every other legal billet of the room and, if a legal billet with a lower fitness value is found, the legal billet with the lower fitness value can be swapped in.
In an embodiment, crossover and mutation are repeatedly performed until the lowest fitness value calculated for a room chromosome in the pool remains unchanged over a user-defined number of iterations. For example, if a fitness value of 6024 is achieved by a room chromosome and after 100 subsequent crossovers and mutations the fitness value is still 6024, the room chromosome with the fitness value of 6024 can be selected.
Once a room chromosome is selected, rooms can be placed in accordance with the room chromosome.
In an embodiment, the technique described above for placing rooms in a building system can be implemented using a building realization platform.
Thus, by describing a placement of rooms in a department as an array of legal billets, a room chromosome can be formed. A genetic algorithm can be applied to a pool of room chromosomes to alter and mutate the room chromosomes generating additional room chromosomes. In an embodiment, after a sufficient number of additional room chromosomes have been generated (e.g., as determined by user), a room chromosome with a desirable fitness value can be selected and a placement of rooms in a building system can be graphically displayed according to the selected room chromosome. By repeatedly mutating and altering the room chromosomes in the pool of room chromosomes, an optimized placement of rooms within a building can be determined.
Although the operations of the method(s) herein are shown and described in a particular order, the order of the operations of each method may be altered so that certain operations may be performed in an inverse order or so that certain operations may be performed, at least in part, concurrently with other operations. In another embodiment, instructions or sub-operations of distinct operations may be implemented in an intermittent and/or alternating manner.
It should also be noted that at least some of the operations for the methods may be implemented using software instructions stored on a computer useable storage medium for execution by a computer. As an example, an embodiment of a computer program product includes a computer useable storage medium to store a computer readable program that, when executed on a computer, causes the computer to perform operations, as described herein.
Furthermore, embodiments of at least portions of the invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
The computer-useable or computer-readable medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device), or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disc, and an optical disc. Current examples of optical discs include a compact disc with read only memory (CD-ROM), a compact disc with read/write (CD-R/W), a digital video disc (DVD), and a Blu-ray disc.
In the above description, specific details of various embodiments are provided. However, some embodiments may be practiced with less than all of these specific details. In other instances, certain methods, procedures, components, structures, and/or functions are described in no more detail than to enable the various embodiments of the invention, for the sake of brevity and clarity.
Although specific embodiments of the invention have been described and illustrated, the invention is not to be limited to the specific forms or arrangements of parts so described and illustrated. The scope of the invention is to be defined by the claims appended hereto and their equivalents.