SYSTEM, METHOD AND COMPUTER PROGRAM PRODUCT FOR BUILDING DESIGN AUTOMATION INCLUDING UTILITY ROUTING
20230342508 · 2023-10-26
Inventors
- Noam RONEN (Be'er Tuvia, IL)
- Mati COHEN (Ganei Tikva, IL)
- Amit HALLER (Belmont, CA, US)
- Israel Jay Klein (Kfar Saba, IL)
Cpc classification
G06F30/18
PHYSICS
G06F30/13
PHYSICS
International classification
G06F30/13
PHYSICS
G06F30/27
PHYSICS
Abstract
System and method for deploying physical connectors within walls, ceilings and floors, comprising a. Displaying a representation of a 3D structure wherein a polyhedron with faces corresponding to at least one wall defines polyhedral nets; b. Accepting human selection of locations, on the faces, for nodes e.g. water outlets, electrical outlets, or intersections between physical connectors, each node belonging to a resource network e.g. a water pipe, electrical or sewage network; and •c. for each network to be deployed in the structure: •for each of the nets, generating a graph including nodes which represent physical resource nodes respectively; and edges, which represent connectors between nodes, and weights defined for edges; scoring each net's graph and, accordingly, selecting best net/s; and deploying resource node/s, and pipes and/or cables in the structure according to a routing plan which interconnects nodes and is derived from the graph generated for the best net.
Claims
1. A method for deploying at least one physical connector within faces, including at least one of walls, ceilings and floors, of an architectural structure e.g. a building, wherein each physical connector interconnects physical locations along the faces of the architectural structure, the system comprising using a hardware processor for: a. Displaying a representation of a 3d architectural structure including a polyhedron which has faces corresponding to at least one of a wall, a ceiling and a floor of the structure, wherein the polyhedron defines plural 2 dimensional nets aka polyhedral nets or net representations or net arrangements, b. Accepting a human designer's selection of locations, on the faces of the polyhedron, at which to position physical resource nodes such as water outlets, electrical outlets, taps, sewer junctions, or intersections between physical connectors, wherein each node belongs to a physical resource network such as a water pipe network, electrical network or sewage network; and c. for each physical resource network within a set of physical resource networks which may include at least one of: a water pipe network, a sewage pipe network, an electrical cable network, to be deployed in the architectural structure: for each of the plural nets, generating a logical graph including logical nodes which represent at least some of said physical resource nodes respectively; and edges, which represent required physical connectors between said physical resource nodes, respectively and weights defined for each of the edges; scoring each net's logical graph and, accordingly, selecting at least one best net from among the plural nets; and deploying at least one physical resource node, and at least one of water pipes, sewage pipes, and electrical cables in the architectural structure according to a routing plan which interconnects plural nodes belonging to said physical resource network and which is derived from the logical graph generated for the best net from among the plural nets.
2. A method according to claim 1 wherein nodes can only be interconnected by connectors or edges lying within edge-joined polyhedron faces.
3. A method according to claim 2 wherein at least two nets from among the plural nets differently define how pairs of first and second nodes, in first and second polyhedron faces, can be interconnected, because in one of the two nets, the first and second polyhedron faces are edge-joined and in another of the two nets, the first and second polyhedron faces are not edge-joined.
4. A method according to claim 1 wherein the architectural structure comprises a room.
5. A method according to claim 1 wherein the architectural structure comprises a common area coupling two rooms and wherein the method also comprises identifying the common area and pre-processing by identifying a mediation point in the common area and its location and connectivity requirements.
6. A method according to claim 1 wherein said generating and scoring is performed for each physical resource network within the set of networks, for a first ordering of the physical resource networks within the set of networks and is then performed again at least once, for each physical resource network within the set of networks, for at least one second ordering of the physical resource networks within the set of networks which differs from said first ordering, thereby to yield at least two best nets and wherein a selection is made between said at least two best nets thereby to define a most preferred net and then, at least one physical resource node, and at least one of water pipes, sewage pipes, and electrical cables in the architectural structure, are deployed according to the logical graph generated for the most preferred net.
7. A method according to claim 1 wherein plural routing plans are generated by at least one routing algorithm and wherein, in at least one initial mode of operation, the method prompts a user to rate at least some of the plural routing plans thereby to generate user ratings.
8. A system for deploying at least one physical connector within faces, including at least one of walls, ceilings and floors, of an architectural structure e.g. a building, wherein each physical connector interconnects physical locations along the faces of the architectural structure, the system comprising at least one hardware processor configured to carry out: a. Displaying a representation of a 3d architectural structure including a polyhedron which has faces corresponding to at least one of a wall, a ceiling and a floor of the structure, wherein the polyhedron defines plural 2 dimensional nets aka polyhedral nets or net representations or net arrangements, b. Accepting a human designer's selection of locations, on the faces of the polyhedron, at which to position physical resource nodes, and other intersections between physical connectors, wherein each node belongs to a physical resource network; and c. for each physical resource network within a set of physical resource networks, to be deployed in the architectural structure: for each of the plural nets, generating a logical graph including logical nodes which represent at least some of said physical resource nodes respectively; and edges, which represent required physical connectors between said physical resource nodes, respectively and weights defined for each of the edges; scoring each net's logical graph and, accordingly, selecting at least one best net from among the plural nets, thereby to facilitate deploying at least one physical resource node, and at least one physical connector in the architectural structure according to a routing plan which interconnects plural nodes belonging to said physical resource network and which is derived from the logical graph generated for the best net from among the plural nets.
9. A computer program product, comprising a non-transitory tangible computer readable medium having computer readable program code embodied therein, said computer readable program code adapted to be executed to implement a method for method for deploying at least one physical connector within faces, including at least one of walls, ceilings and floors, of an architectural structure e.g. a building, wherein each physical connector interconnects physical locations along the faces of the architectural structure, the system comprising using a hardware processor for: a. Displaying a representation of a 3d architectural structure including a polyhedron which has faces corresponding to at least one of a wall, a ceiling and a floor of the structure, wherein the polyhedron defines plural 2 dimensional nets aka polyhedral nets or net representations or net arrangements, b. Accepting a human designer's selection of locations, on the faces of the polyhedron, at which to position physical resource nodes such as water outlets, electrical outlets, taps, sewer junctions, or intersections between physical connectors, wherein each node belongs to a physical resource network such as a water pipe network, electrical network or sewage network; and c. for each physical resource network within a set of physical resource networks which may include at least one of: a water pipe network, a sewage pipe network, an electrical cable network, to be deployed in the architectural structure: for each of the plural nets, generating a logical graph including logical nodes which represent at least some of said physical resource nodes respectively; and edges, which represent required physical connectors between said physical resource nodes, respectively and weights defined for each of the edges; scoring each net's logical graph and, accordingly, selecting at least one best net from among the plural nets, thereby to facilitate deploying at least one physical resource node, and at least one of water pipes, sewage pipes, and electrical cables in the architectural structure according to a routing plan which interconnects plural nodes belonging to said physical resource network and which is derived from the logical graph generated for the best net from among the plural nets.
10. A system according to claim 8 and wherein said physical connectors include at least one of: water pipes, sewage pipes, communication cables, optical fibers, and electrical cables.
11. A system according to claim 8 and wherein a single logical graph, but for weights, is used for most of said plural nets.
12. A system according to claim 11 and wherein a single logical graph, but for weights, is used for all of said plural nets.
13. A method according to claim 7 wherein said User ratings are used as labels in a supervised learning process.
14. A method according to claim 13 wherein after said supervised learning process has been repeated N times, the method generates its own system ratings for at least some routing plans, based on said supervised learning process, and compares said system ratings with said user ratings.
15. A method according to claim 14 wherein the method at least once presents plans to the human designer in order of the plans' system ratings thereby to increase likelihood of early presentation of a routing plan, to the human designer, which the human designer is likely to accept.
16. A method according to claim 7 wherein the method at least one pre-selects, in advance, plans which are more likely to be selected by the user thereby to bias optimization.
17. A system according to claim 8 wherein the system has a first mode, Mode [i], in which users are prompted to select better plans and/or rank or mark plans thereby to define user preferences, and machine learning of said user preferences occurs without machine-modification of presented plans.
18. A system according to claim 9 wherein the system has an additional mode, Mode [ii], in which the system guesses user preferences and accordingly, assesses its own accuracy and wherein said machine learning continues without machine-modification of presented plans.
19. A system according to claim 18 wherein the system has an additional mode, Mode [iii], in which the system takes into account historical preferences by presenting plans to the user which comprise an optimized derivation and/or which are presented in an order biased by a likelihood that each plan will be chosen by the user and wherein the system transitions from mode ii to mode iii when said accuracy achieves a given accuracy threshold.
20. A system according to claim 9 wherein the system has an additional mode, Mode [iii], in which the system takes into account historical preferences by presenting plans to the user which comprise an optimized derivation and/or which are presented in an order biased by a likelihood that each plan will be chosen by the user.
21. A system according to claim 20 wherein in mode iii, the user continues to rank and/or mark and/or select and the machine continues to learn.
22. A method according to claim 7 and wherein the method uses artificial intelligence to learn, over time, from the user, which routing plans are considered better and worse and wherein in at least one later mode of operation, the method automatically hence without resorting to a human user, selects at least one routing plan which is better over at least one routing plan which is worse, and at least one physical resource node, and at least one of water pipes, sewage pipes, and electrical cables in the architectural structure are then deployed according to a routing plan selected by the method as better rather than according to a routing plan selected by the method as worse.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0148] Certain embodiments of the present invention are illustrated in the following drawings; in the block diagrams, arrows between modules may be implemented as APIs, and any suitable technology may be used for interconnecting functional components or modules illustrated herein in a suitable sequence or order e.g. via a suitable API/Interface. For example, state of the art tools may be employed, such as but not limited to Apache Thrift and Avro which provide remote call support. Or, a standard communication protocol may be employed, such as but not limited to HTTP or MQTT, and may be combined with a standard data format, such as but not limited to JSON or XML.
[0149] Example embodiments are illustrated in the various drawings. Specifically:
[0150]
[0151] There may be a specific net (the spread of the prism faces) for demonstrating the connections in 2D.
[0152] In
AB=1,BC=2,CC′=3
AB+BB′+B′C′=1+2+3=6
AC+CC′=√{square root over (5)}+3≈5.24
[0153]
[0154]
[0155] In
AB=1,BC=2,CC′=3
AC′=√{square root over (2)}0≈4.47
[0156]
[0157] In
AB=1,BC=2,CC′=3
AC′=√{square root over (1+25)}≈5.1
[0158]
[0159]
[0160]
[0161]
[0162]
[0163]
[0164] In
AC′=√{square root over (2)}0≈4.47
AC′=√{square root over (1+25)}≈5.1
[0165]
[0166]
[0167]
[0168]
[0169]
[0170]
[0171]
[0172]
[0173]
[0174]
[0175]
[0176]
[0177]
[0178]
[0179] Methods and systems included in the scope of the present invention may include any subset or all of the functional blocks shown in the specifically illustrated implementations by way of example, in any suitable order, e.g. as shown. Flows may include all or any subset of the illustrated operations, suitably ordered, e.g. as shown. Tables herein may include all or any subset of the fields and/or records and/or cells and/or rows and/or columns described.
[0180] Computational, functional or logical components described and illustrated herein can be implemented in various forms, for example, as hardware circuits such as but not limited to custom VLSI circuits or gate arrays or programmable hardware devices such as but not limited to FPGAs, or as software program code stored on at least one tangible or intangible computer readable medium and executable by at least one processor, or any suitable combination thereof. A specific functional component may be formed by one particular sequence of software code, or by a plurality of such, which collectively act or behave or act as described herein with reference to the functional component in question. For example, the component may be distributed over several code sequences such as but not limited to objects, procedures, functions, routines and programs, and may originate from several computer files which typically operate synergistically.
[0181] Each functionality or method herein may be implemented in software (e.g. for execution on suitable processing hardware such as a microprocessor or digital signal processor), firmware, hardware (using any conventional hardware technology such as Integrated Circuit technology) or any combination thereof.
[0182] Functionality or operations stipulated as being software-implemented may alternatively be wholly or fully implemented by an equivalent hardware or firmware module, and vice-versa. Firmware implementing functionality described herein, if provided, may be held in any suitable memory device and a suitable processing unit (aka processor) may be configured for executing firmware code. Alternatively, certain embodiments described herein may be implemented partly or exclusively in hardware in which case all or any subset of the variables, parameters, and computations described herein may be in hardware.
[0183] Any module or functionality described herein may comprise a suitably configured hardware component or circuitry. Alternatively or in addition, modules or functionality described herein may be performed by a general purpose computer or more generally by a suitable microprocessor, configured in accordance with methods shown and described herein, or any suitable subset, in any suitable order, of the operations included in such methods, or in accordance with methods known in the art.
[0184] Any logical functionality described herein may be implemented as a real time application, if and as appropriate, and which may employ any suitable architectural option such as but not limited to FPGA, ASIC or DSP, or any suitable combination thereof.
[0185] Any hardware component mentioned herein may in fact include either one or more hardware devices e.g. chips, which may be co-located or remote from one another.
[0186] Any method described herein is intended to include within the scope of the embodiments of the present invention also any software or computer program performing all or any subset of the method's operations, including a mobile application, platform or operating system e.g. as stored in a medium, as well as combining the computer program with a hardware device to perform all or any subset of the operations of the method.
[0187] Data can be stored on one or more tangible or intangible computer readable media stored at one or more different locations, different network nodes or different storage devices at a single node or location.
[0188] It is appreciated that any computer data storage technology, including any type of storage or memory and any type of computer components and recording media that retain digital data used for computing for an interval of time, and any type of information retention technology, may be used to store the various data provided and employed herein. Suitable computer data storage or information retention apparatus may include apparatus which is primary, secondary, tertiary or off-line; which is of any type or level or amount or category of volatility, differentiation, mutability, accessibility, addressability, capacity, performance and energy use, and which is based on any suitable technologies such as semiconductor, magnetic, optical, paper and others.
DETAILED DESCRIPTION OF CERTAIN EMBODIMENTS
[0189] Regarding all flows either illustrated or presented in the text, it is appreciated that all or any subset of the operations presented may be provided, in any suitable order e.g. as shown or described.
[0190] In this specification, the term “net arrangement” may be used generally synonymously with “net”. Each “net” typically comprises an arrangement of, typically, polygons typically including plural, typically non-overlapping typically edge-joined polygons, typically in a plane, which may be folded along the edges to become the faces of a prism or polyhedron such as a room.
3D to 2D Analysis
[0191] A software platform may be provided which facilitates routing automation encountered in building design. Routing automation includes connecting multiple points in a certain way e.g. connecting some points but not others (also defined as a plan). Although these points may be connected in several ways, typically a plan is sought which is optimal in some sense, meaning that some optimization criteria should be fulfilled through the design (e.g., minimizing the amount of materials used for the plan).
[0192] In
[0193]
[0194] In
[0195] A different net arrangement may lead to a different result (a different optimization candidate) as demonstrated in
[0196] Thus, the search of the shortest path may be required to go over all possible net arrangements and computing the shortest path for each net. The optimal path may be determined by choosing the net which provided the shortest path among all possible nets.
[0197] Any method deriving an optimal path, is typically configured to review optimal path candidates (according to any given optimization criteria) over all possible net arrangements. The optimization criteria may be coupled with other path restrictions e.g. as discussed below.
[0198] In many cases, some part of the routing between elements may take place on the same face of the prism. In this case, and if these elements need to be interconnected, the need to go over all possible nets may be eliminated as the local routing (e.g., the same face) may not be affected by the specific net arrangement chosen.
[0199] In addition, and in contrast to the prism example, the building walls are not equivalent from a routing perspective. Different costs may be associated with different walls due to the material nature of the walls (concrete vs. wood vs. plaster vs. other), and/or their location (internal vs. external, floor vs. ceiling) and/or other considerations.
[0200]
[0201] In
[0202] In
[0203] Also, in
Optimization with Restrictions
[0204] In some cases, the use of net arrangements and their related search algorithms for deriving optimal routing plans, may need to consider various imposed limitations or restrictions which may limit the search space (for an optimal plan). These limitations or restrictions may be either pragmatical considerations such as structural components, which restrict certain routing paths, or regulatory guidance or maintenance preferences, which may prohibit certain areas to be part of the routing plan. In some cases, limiting the search space may simplify the routing procedure, while in other cases this may create certain complexities, yet in any case these may need to be taken into account.
[0205] Use of net arrangements and how related search algorithms may be deployed for resource distribution plans or routing plans, is now described with reference to
[0206] For example, consider a square shaped room (
[0207] Restriction a. Floor area cannot be used for routing (Area 6 in
[0208] Restriction b. Ceiling area is highly preferred for routing (Area t in
[0209] Restriction c: Surrounding walls—Areas 3,4 and 5, all have access to the ceiling area
[0210] Restriction d: Face 2 aka Wall Area 2, has no access to the ceiling, only to adjacent wall areas 3, 4.
[0211] Restriction e: Face 5 aka Wall Area 5, is not accessible by adjacent walls (faces aka Areas 3 and 4) and is considered more difficult for routing.
[0212] Restriction f: Local wall routing is optimized independently. This simplified example can be extended to other cases, which may carry or be subject to more complex restrictions, for example by eliminating or relaxing some of the presented restrictions or presenting additional restrictions. These restrictions may be regarded or treated as limitations or (as in linear programming) as constraints. In many cases, routing of either electricity or water pipes through floor and ceiling structures is harder to maintain, and is therefore avoided. However, in many buildings the ceiling of the room is concealed by a lower artificial ceiling structure (e.g., stretched ceiling) which may conceal any routing between the artificial ceiling structure and the physical ceiling, and therefore favoring such a routing arrangement. E.g. as described above, some structural elements at wall corners (or wall to ceiling corners) may forbid the passing through of wires and pipes between these areas which create additional routing limitations. For example, if restrictions prohibit the use of a certain wall (or ceiling or floor) then for all subsequent net arrangements of the room (on the space used for routing purposes) the corresponding face of the 2D representation may be eliminated hence no routing path by definition will use this wall.
[0213] Referring now to
[0214] The black boxes 2103 in
[0215] In
[0216] The restrictions, as reflected by the connectivity matrix, may be used to redraw other possible net arrangements, as described in
[0217] Consider the case when the routing algorithm examines the possibility of connecting a socket on the center of wall Area 3 with a socket on the center area of wall Area 4. If the original layout (1 in
[0218] In an additional example, as shown in
[0219] In some cases (e.g. as indicated by restriction f—“Local wall routing is optimized independently”) in the example guidelines, the local routing requirements may be handled autonomously or independently. For example, several electrical sockets which are arranged on a specific wall may be positioned according to some 2D plan—either dictated, or as an outcome of a 2D optimization process (e.g., traveling salesman algorithm, or alternatives or modifications thereof). In these cases, there may be at least one anchor point—a socket which may be used for connecting the wall to other areas. In these cases the 3D optimization process may focus on connecting the anchor points in some optimal way.
Logical Graph
[0220] The optimization process may require the system to go through (e.g. consider each of) various net options, taking into account other considerations which may be imposed by various aspects of the routing design. There may be a need to decouple between the logical graph which describes the connectivity between elements (and points) and the so-called physical arrangement, the net, which is used for analyzing the cost related issues of the routing (connectivity) efforts.
[0221] For example, referring again to the examples in
[0222] A generic case is presented in
[0223] In
[0224] A logical graph may be used to provide a typically fixed representation of connectivity necessities between elements (points). A suitable method is shown in
[0225] Prior preparation or pre-processing for the routing algorithm (e.g. as described in
[0226] This example may be used for a more generic polyhedron and the information stored at each position; may be replaced with a complex record of information (related to the prism side) such as relative directions and orientation. For example, each matrix position or cell may contain a binary value (0 or 1) and/or a numerical value (integer, floating point) and/or an alphanumerical string and/or a record (e.g., a group of values of various types) and/or set of instructions (computer code to be executed when the object is processed or examined) and/or an object (e.g., a group of values and set of instructions to be activated or executed when processing or examining the object with or without object inheritance properties). For example, for a position (i,j), a binary value may be indicative of the absence or presence of a certain characteristic (e.g., connection allowed between face #i and face #j); a set of instructions (e.g., code subroutine #l) may indicate what function is to be performed while handling face #i with respect to face #j (e.g., retrieve all nodes of both faces).
[0227] The end result may be that all possible net arrangements follow a consistent representation methodology. Any representation methodology may be used, and the one described here is only an example (see e.g.
[0228] A logical graph which represents the connectivity objectives of the plan, is typically also defined. Any suitable method to store graph connectivity characteristics may be employed. For example, for each node [i] of the graph, a vector, Vi, may comprise or consist of node numbers, indicative of required connections between node [i] and the other nodes. Another similar option is to use a N×N matrix (N—the number nodes), C, which each position (i,j) of the matrix C, indicates if a connection between node (i) and node (j), exists (e.g., 1 indicating a connection and 0 indicating no-connection). Using this example, the system may also use another matrix W, similar in dimensions to C, which represents the weights (e.g., significance, cost, etc.) of the connections. If C(i,j) is non zero (hence node (i) and node (i) are connected) then W(i,j) represents the weight of this connection.
[0229] When a specific net arrangement is investigated, different routing plan candidates may be examined. For each candidate plan, the path costs are computed according to the restrictions and possibilities for the net.
[0230] The method may include all or any subset of the operations of
[0231] Operation g-1: T is the set of net arrangements to be considered (e.g. a list or a vector dimension equals to the number of nets); C represents the logical graph matrix (typically a square matrix with a dimension corresponding to the number of nodes); W represents the logical graph weights; S, Si, So represents score variables; Pi and Po represent the best routing plans for each net arrangement Ti and the best overall respectively.
[0232] Operation g-2: Set So (the optimal score) to zero.
[0233] Operation g-3: Retrieve the next net arrangement Ti out of the set T. If no more net arrangements are available, go to operation g-10.
[0234] Operation g-4: Initialize W to all-zero. Set the intermediate score variable Si to zero.
[0235] Operation g-5: For the current net Ti, with logical graph C, utilize a regular 2D routing plan algorithm
[0236] Operation g-6: 2D routing plan algorithm proposes a candidate plan P
[0237] Operation g-7: For P (routing plan candidate, as available by the previous operation's processing outcome or the output of operation g-6) compute W and score S.
[0238] Operation g-8: If S>Si then store the following: current plan as best plan for Ti (set Pi=P), set S=Si and W.
[0239] Operation g-9: Continue the routing plan candidate search (operation g-6) until some halting criteria is met (for example, no significant improvement in Si within some minimal number of iterations).
[0240] Operation g-10: If the search is terminated, then store best plan Pi for Ti and its associated graph weights and score and go to operation g-3.
[0241] Operation g-11: After all possible net arrangements are analyzed, and the best routing plan for each net arrangement Pi is recognized, the system may select the net arrangement which led to the best score (maximum Si) and consider its best routing plan Po as the overall optimal routing plan which may be the one chosen for the design process.
[0242] Storing the intermediate best plans for each net arrangement may be advantageous e.g. for human intervention e.g. as described below.
[0243] Each net “investigation” may be performed using well-known 2D optimization algorithms (such as but not limited to Dijkstra's algorithm, Bellman-Ford algorithm, “a” algorithm) for routing and connectivity, as used in other industries such as in electrical circuit board design.
[0244] The method may be modified for emphasizing certain net arrangements over others by weighting the scores of the different net arrangements in an uneven way.
Multiple Rooms Graph Representation
[0245] In many cases the routing problem extends beyond a single room. Although each room's routing considerations are somewhat independent, eventually certain dependencies between rooms, offices, public shared places and apartments exist due to various reasons e.g. all or any subset of the following: [0246] 1) Resources are shared—For example, the water supply of a house starts at a single entry point which may eventually split between various apartments and rooms. [0247] 2) Location dependencies—The presence of a connection point in one room, might dictate (or rule out) the presence of the connection point in another. [0248] 3) Resource management and maintenance—In many cases the certain rooms may need to be connected to some central or common location for easier management and maintenance issues.
[0249] In
[0253] As seen in
[0254] In
[0255] In
[0256] Prior preparation or pre-processing for a routing algorithm of the common areas (e.g. as described in
[0257] Operation a-1: Resolve any coupling requirements between adjacent rooms e.g. by identifying the points whose location might be influenced by the existence and location of points of adjacent rooms.
[0258] Operation a-2: Determine if these points need to be connected directly between each other.
[0259] Operation a-3: The common area is acknowledged; this is the area in which some of its boundaries are adjacent rooms with some interconnection requirements.
[0260] Operation a-4: If required, a mediation point is identified in the common area, and its location and connectivity requirements (e.g., a fuse box). Existence of a mediation point in a common area is optional.
[0261] Typically, at this point, the common area is completely defined, and the following flow b (which may employ certain operations in
[0262] Operation b-1: A logical graph (of the common area) representing its connectivity requirements may be created.
[0263] Operation b-2: All possible net arrangements of the common area are identified. The optimization criteria (for the routing plan) is formalized e.g. as described above (e.g., minimum length of wiring, zero cost path areas, etc.). [0264] Operation b-3: The system may apply the method of
Multiple Resources, Multiple Layers
[0265] Embodiments herein may be useful. even when more than one resource is distributed through a routing plan e.g. by designing routing plans for each of plural resource networks. For example, this could be the case in which high voltage (110V) and low voltage supply needs to be distributed through the building for different purposes (e.g., high power devices vs. low power devices such as LED lighting), or the case in which water and sewage needs to be circulated through the house using the plumbing network in addition to other systems. Handling the design of these routing plans may be somewhat independent, with some influence on each other to be identified.
[0266] Optimization criteria for each resource may be different. Hence the techniques described herein may be reapplied for each resource and its elements (points) or nodes, using a corresponding optimization goal e.g. using different optimization criteria for each resource. For example, for one resource, the optimization may favor minimizing the amount of materials for achieving connectivity, while for the other resource this could be the work effort (which may encourage materials' waste, but the work may be easier to execute). Also, the guidelines and restrictions for each resource distribution effort may differ, either due to regulations (e.g., plumbing done at certain angles) or flexibility of the physical connection itself (e.g., cannot be installed in ceilings, cannot accommodate 90 degree turns, etc.).
[0267] Some coupling may exist between resources, as they either may impose restrictions (e.g., no electricity near water supply) or recommendations (e.g., use the same pathways). All of these issues may be translated to specific connectivity rules and restricted routing zones.
[0268] Prior preparation or pre-processing for the multiple resource routing method (e.g. the method of flow d) may include performing “flow c” which may include all or any subset of the following operations, suitable ordered e.g. as shown:
[0269] Operation c-1: Define a typically unique optimization criterion for each of the resources (e.g., water, electricity, etc.) which may require a routing plan. The optimization criterion for each resource typically corresponds to its specific nature. For example, it could be that water piping planning may emphasize labor optimization (e.g., amount of work), while electrical wiring planning may emphasize wiring length.
[0270] Operation c-2: In addition, for each resource, an associated list of restrictions and guidelines may be identified, creating the corresponding connection rules. For example, draining systems (e.g., sewage) may require specific angle positioning for insuring sewage flow, or, as another example, electrical wiring considerations may limit the number of connections per junction etc. Typically the connection rules are translated in advance to pre-defined functions which correspond to or represent the rule or consideration. In the case of the draining system, if there is an angle limitation, the software may check if the current proposed path complies with the rule or consideration by sending the path data to a process which checks all existing limitations for the path (e.g., given nodes, node types, faces, network type process all rules and confirm compliance).
[0271] The multiple resource routing method may include the following method (flow d); when executing flow d, all or any subset of the following operations may be performed, in any suitable order e.g. as follows:
[0272] Operation d-1: Apply the method of
[0273] Operation d-2: the process may be repeated in a different resource network order (e.g., water, then sewage, then electricity, rather than electricity, then water, then sewage) to detect if the order preference may change the optimal routing plans and their associated scores. Selection of the final plans may follow an optimization process of its own. Some examples:
[0274] Example a. Selecting the order of resources which led to highest (if searching for maximum or lowest if searching for minimum) sum of scores of all plans. For example, in the case of two resources, water and electricity, when water is done first, the scores of the best water supply plan and the best electricity supply plan are 2.1 and 1.0 (sum=3.1), while if electricity is done first, the scores are 0.8 and 2.2 (sum=3). If the scores are indicative of some performance metric, then the system may choose the first option (water supply done first), as the score sum is higher.
[0275] Example b. Selecting the order of resources which led to the highest (or lowest, e.g. as described above) weighted sum of all plans, where the weights are chosen according to some importance or priority factors (e.g., water plumbing optimization is prioritized higher than electrical network optimization). For example, in the previous case, it may be known that the electrical supply plan consideration is to have preference over the water supply planning (e.g., schedule) and the system may weigh the water supply and the electrical supply planning with the factors 0.2, 0.8 respectively. In the first case, the weighted sum may be 1.22, while in the second case the weighted sum may be 1.92, which is higher, hence, the system may choose the second option (electricity planning done first).
[0276] Example c. Selecting the order which led to the highest (or lowest) value of a function of all scores of all plans. For example, the function could be retrieving the maximum value among scores. In the previous example, the first option may result at 2.1, and the second option may result at 2.2, hence the second option may be chosen accordingly.
Designer (Human)-In-the-Loop
[0277] It may be useful to allow for some “human” intervention through the design process, as some of the design considerations cannot be captured only by computational optimization. Such considerations, which may be somewhat concealed, may require algorithms involving automated learning processes, such as re-enforcement learning.
[0278] Thus it is advantageous for the designer to be exposed to more than one alternative (routing plan candidate), and pick and choose, out of those, the one which the designer favors most. The alternatives may be presented with some score related information (e.g., cost of materials, work effort, etc.) which may support the designer's decision. In
[0279] The routing plan candidates are a result of using different net arrangements e.g. as described herein, and the common 2D routing algorithm being employed by the optimization engine. For example, if the system is configured to allow for two candidates to be presented to the designer, one may originate from one net arrangement, while the other one from another net arrangement, or both may originate from the same net arrangement, yet the 2D routing algorithm was the one promoting two alternatives for the same net. In the general case, the system may be configured to, say, present the top-N (N>=1) candidates of all net arrangements and 2D routing algorithm results.
[0280] In many cases, as the score is typically a scalar value (or a low rank vector), it may conceal the subtleties of candidate differences. Two candidate designs may receive a similar score, yet are quite different by some other evident nature which is not detected by the score itself.
[0281] For example (see
[0282] In order to capture the differentiating factors, for each candidate plan the system may compute a score (which may be used for optimization) and populate a computed classification vector (list) of predefined design parameters which may be used for discrepancy evaluation. For example, the vector may include the number of connection pathway turns or bends, which provides some insight to the differences between routing candidates of the previous example (
[0283] An automatic learning process (such as a re-enforcement learning algorithm) may be deployed using the feedback given by the designer's choices. When a designer is given N candidate routing plans, and eventually chooses one of them, the feedback given includes the scores and classification vectors of all N candidates in addition to the decision itself which states the chosen candidate versus (N−1) “disqualified” candidates. A learning process may evaluate the classification vector differences (e.g., Euclidean distances) between the disqualified candidates and the chosen candidate.
[0284] The learning process may eventually weight the different dimensions of the classification vector and/or may emphasize, or weight higher, dimensions which present the greatest impact on the design choice, relative to dimensions which present lesser impact. For example, a supervised learning process at which the user has indicated its design choices by labeling a corresponding vector which represents the design (e.g., credentials including the optimization results, path and node data etc.) may effectively favor a specific design consideration (known to the user) by a evaluating a certain linear combination of the vector elements. For example and for simplification purposes only, the weights of the vector elements can all be zero while one element has a non zero weight, indicating that this specific element has the greatest impact on the likelihood of a design being selected and preferred by the user. In return, or conversely, this may be used for differentiating between candidates of future design recommendations.
[0285] A method for presenting to the designer N candidates is shown in
[0291] An example of a method for learning preferences for the routing design process involving a human designer in the loop is the following “flow f”; here and in all flows herein, all operations or any subset may be provided, and may be performed in any suitable order e.g. as shown, or as follows: [0292] Operation f1: N initial routing plan candidates are derived (e.g. based on, or using the output of, the method of
[0299] Operation f7 may (e.g. As described above with reference to operation f5) be replaced by a classification method which predicts preferred choices. The methods used when searching for optimized routing plans, may remain unchanged, e.g. may be as described elsewhere herein, while top choices may be graded by the classification systems. In this case, even if several plans have received the same optimization score (e.g., satisfying the optimization criteria at the same level), then the classification process mentioned in operation f5 may differentiate between such plans, based on the likelihood that the designer may prefer them. The preference learning method may be used for selecting top-N candidates for all design processes.
[0300] In certain embodiments, the methods de-couples between the layer of design rules which are dictated by engineering guidelines or regulations, which the optimization process employs, while searching for an optimal routing plan, and the layer of inner rules which are dictated by human oriented design preferences, which are subject to change. While the optimal routing plan may deal with metrics which measure direct physical aspects of the routing problem, such as the length of routing paths and cost of labor, the inner rules are guided by aspects as other design benefits, such as aesthetics (e.g., symmetry). In this case, certain feature measurements may be created for assessing these benefits. For example, a metric that measures the distribution uniformity of electrical sockets on a wall may be the standard deviation of socket locations from the center of mass of all sockets (the average 2D location of all sockets on the wall).
[0301] In addition, in order to favor the influence of experienced and professional designers on the behavior of the routing plan process, a metric may be used to take this into account. A designer who may make some poor choices, may educate the system to wrongly prefer certain choices. The system could be balanced correctly by using a variable set according to the seniority level of the designer, or a variable which reflects the consistency of choices made by the designer. For example, if the average number of cable bends per length reflects an aspect of design tendencies (e.g., the designer favors bending, when applicable) then measuring its overtime between different design activities of the same designer may reflect consistency. If this metric is tracked over time, then any deviation may be regarded as inconsistency and may deemphasize current recommendations by the designer relative to previous recommendations made by the designer. For example, the training algorithm which tracks user selections may be paused and training may stop until further notice with respect to the specific user.
[0302] Method 0 is a method, provided according to certain embodiments and useful for resolving a 3D optimization problem which may include finding an optimal resource routing plan for 3D spaces within buildings or other structures, or identifying a most efficient or optimal routing plan (e.g. resource routing plan) for a given 3D room/common area. The optimization criteria may, for example, include minimum materials used and/or minimal work effort and/or minimum cost.
[0303] Method 0 typically includes all or any subset of the following operations, suitably ordered e.g. as follows:
[0304] Operation Ia. Providing geometrical 3D data including a 3D representation (aka 3D setup) of a room or common area or any architectural space within a building or other structure, which may be separated by walls and/or partitions from other parts of the building/structure.
[0305] Operation Ib. Deriving, from the 3D representation, plural 2D arrangements e.g. net arrangements.
[0306] It is appreciated that there is a known, finite number of possible 2D net arrangements, per polyhedron e.g. per cube (see for e.g.
[0307] It is appreciated that there may be plural routing plans for a single 2D arrangement or net arrangement.
[0308] Operation II. Selecting a “best” 2D arrangement from among the plural 2D arrangements, including: [0309] For each 3D>2D conversion (aka net arrangement aka 2D conversion plan): [0310] generating a logical graph representing any required connections between different nodes; and [0311] generating score for that graph; and [0312] generating an output indicating that the net arrangement which had the best score, is deemed “best”.
[0313] Typically, given a graph with nodes N1, N2, N3 . . . . where the weights of the edge between each Ni to Nj is Wij, the score is a suitable function of these weights, F(W11, W12, . . . ). For example, for every pair of nodes Ni and Nj the score may be derived by computing either the sum or product (multiplication) of the weights of the edges forming a path between them and as there can be more than one path the score can be set to the maximum or minimum value (e.g. as the optimization criteria dictates) obtained.
[0314] A node in a graph may be a connection point. for example, an electrical outlet may be a node, in an electrical network. a connecting point, e.g. on the wall, of a water tap is a node in a water network, and draining points and taps may be nodes if the network is sewage. When the node is connected to its network the resource (water, electricity etc.) is delivered to the node, and, typically, not otherwise. nodes may be connected among themselves.
[0315] Typically, “connecting” guidelines or considerations may dictate that there must be a connection between a given pair of nodes (e.g. node a should be connected to node b) but the design considerations typically do not dictate how the pair of nodes should be connected. For example, if “node A” is on one wall and “node B” is on another wall, the connection may be a straight line, may go through the ceiling first, and so forth.
[0316] The logical graph, generated for each net arrangement, includes edges or paths interconnecting certain pairs of nodes. Each such edge may be assigned a weight, reflecting the cost of interconnecting that pair of nodes, subject to the specific net arrangement. According to one embodiment, the weight of the edge connecting nodes A and B in a water network, may be the cost of the pipe of the specific length, within the walls, that interconnect nodes A and B. Thus, to compute this weight, the system computes the length of the path between nodes A and B, within the walls, subject to the specific net arrangement. For example, in one (“first”) net arrangement, nodes A and B may lie within edge-joined polyhedron faces (whether two walls, or a wall and a ceiling, or a wall and a floor) which have a common edge. In another (“second”) net arrangement, nodes A and B may lie within faces (whether two walls, or a wall and a ceiling, or a wall and a floor) which lack a common edge. The cost of the edge between nodes A and B may be smaller under the first net arrangement than under the second net arrangement. Thus, each logical graph includes connections or edges between nodes A, B, C, . . . and these connections or edges are each associated, in memory, with a price/penalty which varies between net arrangements.
[0317] An advantage of certain embodiments is that a designer may select a proposed position for nodes “A” “B” “C” in a room, and then run a program which typically outputs both a plan and its cost. The designer may then change the location of, say, “B” and run the program again to see if the “cost” or “plan” changed dramatically etc. Each time the program runs, a best plan and its cost may be computed.
[0318] The output typically comprises an electronic file which may be fed directly to actuators such as machines to cut wires/pipes, etc. and/or may provide inputs to other software programs e.g. software which identifies materials to purchase and/or may be translated to a format which human beings may read or view, thereby to facilitate training the system based on human” preferences.
[0319] The output may be a digital file storing a routing plan, which may, for example, be fed to and be processed by inventory management software, which checks current inventory for wiring cable availability, and creates a purchase order if needed. Alternatively or in addition, the file may be fed to software which converts data in the file (e.g. connect node A to B by wire 78 cm . . . ) to generate an instruction booklet for manual or commands to an automated wall or face fabrication system.
[0320] If there are plural networks e.g. electricity, water, the above method 0 may be performed for each network separately, since, typically, each network resource has its own regulations/considerations/etc. There may also be regulations or rules affecting two networks e.g. maintaining certain minimum distances between electrical lines and water pipes.
[0321] Method 0 may be used as-is, e.g. without any “preference learning function”. The method typically yields the best option available (the best possible routing plan e.g.), for a given room/common space, which may be used to route resources for that room/common space. According to certain embodiments, the system generates a best option and then asks the end-user to indicate whether this routing plan is acceptable or not (e.g. binary rating by end-user), from which the system may learn.
[0322] According to certain embodiments, a conventional routing algorithm is employed to produce routing plans, from among which a “best” plan may be determined. The routing algorithm typically generates at least one route or path between network nodes. The input to a routing algorithm may include desired connectivity between network nodes, and may also include link cost (e.g. what are the respective costs of directly linking or connecting each pair of nodes in the network).
[0323] Alternatively, a system may be provided which is configured to “learn preferences”. In such embodiments, typically, a user is given more than one option or alternative (plural routing plans e.g.) from which the user may select, e.g. by modifying method [0] to generate more than one candidate routing plan. One embodiment for doing this is described herein with reference to
[0324] The method of
[0325] Operation 1800: For each possible K net arrangements
[0326] Operation 1810: Set net to current net arrangement
[0327] Operation 1820: Initialize graph weights and score to zero
[0328] Operation 1830: Find or adjust M routing plan candidates for net
[0329] Operation 1870: Derive corresponding graph weights
[0330] Operation 1880: Compute graph score
[0331] Operation 1890: The method may keep M best plans (highest score) and may go to operation 1830 while routing plan optimization is not done, or until this optimization is done. this may be done by having a background optimization routing plan process which seeks for the best plan while the system keeps n-best options until the process converges (e.g. gradient search ends) at which point the process may repeat itself.
[0332] Operation 1920: Best M plans for net chosen
[0333] Operation 1940: Next net
[0334] Operation 1950: Present N best plans overall (out of K*M plans)
[0335] Typically, in the embodiment of
[0336] It is appreciated that the number of good or best plans may be smaller than expected. The system may still present plans to the user, even if there is only one routing plan available to be presented to the user, in which case the user may be prompted to “accept” or “reject” the routing plan. Thus, even if the routing algorithm may produce only one routing plan, there may still be m alternatives in the end, in which case the system may submit n of them to the user n (given that m>n).
[0337] It is appreciated that the methods of
[0338] Specifically:
[0339]
[0340] The method of
[0341] Operation 1510: For each possible net arrangement
[0342] Operation 1520: Set net to current net arrangement
[0343] Operation 1530: Initialize graph weights and score to zero
[0344] Operation 1540: Find or adjust routing plan candidate for net
[0345] Operation 1550: Derive corresponding graph weights
[0346] Operation 1560: Compute graph score
[0347] Operation 1570: Store plan and score if highest score until now and go to operation 1540 if optimization process not finalized
[0348] Operation 1580: Best plan for net chosen
[0349] Operation 1585: Next net
[0350] Operation 1590: Identify best plan overall.
[0351] Thus, in operation 1540, the system may find or adjust at least one routing plan candidate for a given net.
[0352] For example, if it is needed to connect node A to B, the system first determines which passages, between which faces X and Y, are allowed. The system then generates a connector that goes only through faces which are allowed to pass between each other, and which comply with any other guidelines (regulations/maintenance/craftsmanship). Once all connectors have been generated, the system may compute the weights for each edge between each connected pair of nodes (e.g. by computing the cost of the connector just generated between them). The system may apply a routing algorithm (e.g. “traveling salesman” etc.) and derive the best routing plan for this net arrangement. The system typically runs over all net arrangements and finds the better net arrangements.
[0353] Any suitable method may be employed to determine whether two nodes on a specific net arrangement may be connected by a straight line which resides within the net, such as the following method J; any or any of the following operations may be performed, in any suitable order e.g. as follows:
[0354] Operation j-1) Load net arrangement
[0355] Operation j-2) Get coordinates of point A(Xa,Ya) and point B(Xb,Yb) and set status flag F to ‘False’ Operation j-3) Derive straight line equation y=mx+n which passes between A and B (compute slope and intercept)
[0356] Operation j-4) Define processing step D as D=|Xb−Xa|/N where N is an integer (Note: N should be large enough so D is less than 1% or some acceptable resolution for not missing face border line crossings).
[0357] Operation j-5) Initialize Xq=Xa
[0358] Operation j-6) compute Yq=mXq+n
[0359] Operation j-7) Is (Xq,Yq) within the net arrangement boundaries (on cube faces)? If NO then go to step 11
[0360] Operation j-8) Increase Xq by D, Xq=Xq+D
[0361] Operation j-9) If Xq>Xb then set status flag F to ‘true’ and go to Operation J-11
[0362] Operation j-10) Goto Operation j-(6)
[0363] Operation j-11) Exit
If A,B may be connected by a straight line which is within the net, then the status may indicate F=‘TRUE’.
[0364] Method J may be modified, if for example there are certain faces which cannot be passed through, e.g. as in the following method K; any or any of the following operations may be performed, in any suitable order e.g. as follows:
[0365] Operation k-1) Load net arrangement
[0366] Operation k-2) Get coordinates of point A (Xa,Ya) and point B (Xb,Yb) and set status flag F to ‘False’
[0367] Operation k-3) Derive straight line equation y=mx+n which passes between A and B (compute slope and intercept)
[0368] Operation k-4) Define processing step D as D=|Xb−Xa|/N where N is an integer (Note: N should be large enough so D is less than 1% or some acceptable resolution for not missing face border line crossings).
[0369] Operation k-5) Initialize Xq=Xa
[0370] Operation k-6) compute Yq=m*Xq+n
[0371] Operation k-7) Determine by (Xq,Yq) the specific face it is located on.
[0372] Operation k-8) Was a face located? If NOT, then go to Operation k-13 (no face means out of boundaries)
[0373] Operation k-9) Is the face allowed to be passed through? If NOT, then go to
[0374] Operation k-13
[0375] Operation k-10) Increase Xq by D, Xq=Xq+D
[0376] Operation k-11) If Xq>Xb then set status flag F to ‘True’ and go to Operation k-13
[0377] Operation k-12) Goto Operation k-(6)
[0378] Operation k-13) Exit
[0379] It is appreciated that the method may, alternatively or in addition, be modified to include restrictions such as checking if crossing from one particular face to another is allowed, or any other restriction which is constructed from a particular set of restrictions (e.g., cannot cross face Fn if at any prior step Fm was crossed). It is appreciated that the method may, alternatively or in addition, be modified to use any function y=g(x) rather than using a straight line. It is appreciated that the method may, alternatively or in addition, be modified (e.g. by modifying the step process) to increase only Xq or only Yq depending on the net face and, by doing so, moving in vertical or horizontal lines.
[0380]
[0381] The method of
[0382] Operation 1610: Resolve any coupling requirements between adjacent rooms
[0383] Operation 1620: Identify Common Area
[0384] Operation 1630: Identify Mediation Point (if needed)
[0385] Operation 1640: Construct Common Area Logical Graph
[0386] Operation 1650: Identify all possible Net Arrangements of Common Area
[0387] Operation 1660: Use Optimization Criteria for deriving optimal plan e.g. as per
[0388] Flows a and b, when performed together, form a method for optimizing a routing plan, including pre-processing which may occur when optimizing a routing plan for a common area, before calling a method for optimizing a routing plan for a room e.g. the method of
[0389] All or any subset of the operations of flow b may respectively replace all or any subset of operations 1640, 1650 and 1660 of
[0390] The methods of flows c, d, aka the group 2 methods are useful for use-cases in which it is desired to execute group 1 for each of n>1 resource networks (e.g. water, electricity). Each network typically has its own design goals and/or typically is subject to its own restrictions, hence each network may require its own optimization plan aka routing plan which may be generated by applying method [0] and/or method/s from group [1] for each network. The order of “routing” each network may affect results (e.g. if “WIRE X CANNOT CROSS “PIPE Y”, or, more generally, if any clash between elements of one network such as water, and another network such as electricity, is defined as impermissible, then positioning pipe y and later positioning wire x, typically leads to different results than when wire x is positioned before positioning pipe y. Thus, the order of optimization is typically changed, and software according to any embodiment herein may be run using both the first order and the second order, and the results are compared e.g. manually, to select optimal electrical wiring and optimal water pipe design which do not clash, using any suitable selection criteria.
[0391] Example: a program configured according to any embodiment herein may be run in order to determine an electrical routing plan for an electrical network in a given building, room or architectural structure, and then the program, configured according to any embodiment herein, may be run in order to determine a water routing plan for the water network in the same building, room or architectural structure. In addition, however, the program configured according to any embodiment herein may be run again to determine, first, a water routing plan for a water network in the building, room or architectural structure, and then, the program configured according to any embodiment herein, may be re-run in order to determine an electrical routing plan for the electrical network in the building, room or architectural structure. The resulting electrical and water routing plans, generated working in one order (electrical first), may be compared to electrical and water routing plans, generated working in another order (water first).
[0392] Similarly, if there are N networks rather than 2, a program configured according to any embodiment herein may be run first on one ordering of the N networks e.g. first network1, then network2, . . . then network N (first ordering), and then on other orderings of the N networks e.g. first network 2, then network1, then network 3, . . . then network N (second ordering), and first network 3, then network1, then network 2, then network 4, . . . then network N (third ordering).
[0393] Specifically, the method of flow d typically comprises a multiple resource routing algorithm and the method of flow c typically includes pre-processing for the method of flow d.
[0394] The methods of
[0398] For example, the system may be routing a specific room. The system may present or display to the user two “best” routing plan alternatives for this room e.g. as shown in
[0399] Typically, the end-user's selections of routing plans may include rating or labelling objects (e.g. routing plans or designs) as either “excellent” or “good enough”.
[0400] The system may be configured to measure “goodness” of the object e.g. relying on an object's “credentials” (any recorded/computed characteristics of the object). A supervised learning algorithm may be provided which eventually learns how to correctly derive, from an object's credentials (even for a new object), an indication of whether the object e.g. routing plan, is excellent, or merely good enough, without requiring recourse to a human user.
[0401] According to certain embodiments, after a suitable number of objects have been human user-evaluated, hence used to train the machine, the machine may move into an advanced mode, in which the machine is configured to start guessing how the user may rate a new object.
[0402] According to certain embodiments, an interim stage is provided in which the machine generates guesses, and observes if its guesses are correct, by continuing to rely on human end-users. In this embodiment, typically, there is no change in the selection-of-alternatives process (e.g., in
[0403] The system may, for example, pick n out m*k plans, based on an optimization score. Routing plans may be presented in order, the order being determined according to each routing plan's likelihood, as learned by the machine or system, to be chosen as the preferred solution e.g. based on the previous algorithm prediction. Alternatively or in addition, the system may pick the n out of m*k plans based on a weighted score, taking into account the optimization score and the likelihood to be a preferred solution.
[0404] Typically, whichever n alternatives are presented, the user makes its selection and all data is recorded, typically including n-alternative optimization data and/or likelihood scores, and/or whether this routing plan was selected by user. This is fed back to the reinforcement algorithm.
[0405] According to certain embodiments, the system (e.g. its reinforcement learning or machine learning) computes or measures a difference between a routing plan deemed “excellent” by a user, and another plan.
[0406] According to certain embodiments, the system provides, for each routing plan presented to the user, a vector or list of parameters which are the “credentials” of that particular plan (e.g. the plan's score, graph weights and any other available data). The system may add to the credentials data indicating whether this plan was “chosen” or “not-chosen” by the user, and/or any other indication that the plan has been “labelled” as excellent, or just good. So, for every presented plan Pi, the system may feed back plan i's credential vector Ci and a flag Fi [say, “true” if chosen by user, “false”—if not chosen]. According to certain embodiments, the system computes or measures: [0407] optimization parameters including any variable used to process the optimization score and the score itself. For example, if the goal is to minimize the cost of each routing plan, the cost is typically a function of material cost and labor cost inter alia. The material cost may be a function of wiring length and any other materials which may be required for the installation or interconnection of two nodes (as opposed to fixed costs which are independent of the routing plan). The optimization parameters may comprise a vector or set of values, typically including all or any subset of the above variables and the optimization score; and/or [0408] likelihood of being selected by the system or by an end-user as a preferred or excellent solution e.g. as described above. The system herein typically uses an algorithm which is trained to, eventually, predict if a specific plan will be selected as an “excellent” plan by the user (and may estimate how likely this routing plan is to be thus selected; this estimate is termed herein a likelihood score).
[0409] Typically, for each of the n-presented plans (e.g. the n out of m*k alternatives) there is a vector VI which relates to the optimization process, and another vector UI which includes values including an indication of the likelihood of that routing plan being selected and/or if that routing plan was actually selected (and/or the order of preference if the user was given an opportunity to sort his preferences as being more or less desirable/acceptable).
[0410] When reinforcement learning is used, an agent may learn an optimal, or nearly-optimal, policy that maximizes a “reward function” or other user-provided reinforcement signal that typically accumulates from immediate rewards. Typically, as described in Wikipedia (https://en.wikipedia.org/wiki/Reinforcement learning), a reinforcement learning agent interacts with an environment, typically in discrete time steps e.g. as follows: at each time t, the agent receives a current state s_t and reward r_t. The agent then chooses an action a_t, from a set of available actions; at may be sent to the environment which moves to a new state s_(t+1); the reward r_(t+1) associated with the transition (s_t,a_t,s_(t+1)) is determined. The reinforcement learning agent then learns a policy, typically including mapping a set of available actions and states into an interval [0,1] by computing, for each pair of actions and states, the conditional probability that action a_t=a, given that state s_t=s. the agent typically maximizes the expected cumulative reward.
[0411] The agent may include any of the methods shown and described herein e.g. software configured to perform such methods.
[0412] Still with reference to the group 3 methods, it is appreciated that the method of
[0413] It is appreciated that operations 2-5 of flow e may be respectively replaced by operations 1820, 1830, 1940, 1950 of
[0414] It is appreciated that terminology such as “mandatory”, “required”, “need” and “must” refer to implementation choices made within the context of a particular implementation or application described herewithin for clarity, and are not intended to be limiting, since, in an alternative implementation, the same elements might be defined as not mandatory, and not required, or might even be eliminated altogether.
[0415] Components described herein as software may, alternatively, be implemented wholly or partly in hardware and/or firmware, if desired, using conventional techniques, and vice-versa. Each module or component or processor may be centralized in a single physical location or physical device or distributed over several physical locations or physical devices.
[0416] Included in the scope of the present disclosure, inter alia, are electromagnetic signals in accordance with the description herein. These may carry computer-readable instructions for performing any or all of the operations of any of the methods shown and described herein, in any suitable order, including simultaneous performance of suitable groups of operations, as appropriate. Included in the scope of the present disclosure, inter alia, are machine-readable instructions for performing any or all of the operations of any of the methods shown and described herein, in any suitable order; program storage devices readable by machine, tangibly embodying a program of instructions executable by the machine to perform any or all of the operations of any of the methods shown and described herein, in any suitable order i.e. not necessarily as shown, including performing various operations in parallel or concurrently rather than sequentially as shown; a computer program product comprising a computer useable medium having computer readable program code, such as executable code, having embodied therein, and/or including computer readable program code for performing, any or all of the operations of any of the methods shown and described herein, in any suitable order; any technical effects brought about by any or all of the operations of any of the methods shown and described herein, when performed in any suitable order; any suitable apparatus or device or combination of such, programmed to perform, alone or in combination, any or all of the operations of any of the methods shown and described herein, in any suitable order; electronic devices each including at least one processor and/or cooperating input device and/or output device and operative to perform e.g. in software any operations shown and described herein; information storage devices or physical records, such as disks or hard drives, causing at least one computer or other device to be configured so as to carry out any or all of the operations of any of the methods shown and described herein, in any suitable order; at least one program pre-stored e.g. in memory or on an information network such as the Internet, before or after being downloaded, which embodies any or all of the operations of any of the methods shown and described herein, in any suitable order, and the method of uploading or downloading such, and a system including server/s and/or client/s for using such; at least one processor configured to perform any combination of the described operations or to execute any combination of the described modules; and hardware which performs any or all of the operations of any of the methods shown and described herein, in any suitable order, either alone or in conjunction with software. Any computer-readable or machine-readable media described herein is intended to include non-transitory computer- or machine-readable media.
[0417] Any computations or other forms of analysis described herein may be performed by a suitable computerized method. Any operation or functionality described herein may be wholly or partially computer-implemented e.g. by one or more processors. The invention shown and described herein may include (a) using a computerized method to identify a solution to any of the problems or for any of the objectives described herein, the solution optionally including at least one of a decision, an action, a product, a service or any other information described herein that impacts, in a positive manner, a problem or objectives described herein; and (b) outputting the solution.
[0418] The system may, if desired, be implemented as a network—e.g. web-based system employing software, computers, routers and telecommunications equipment, as appropriate.
[0419] Any suitable deployment may be employed to provide functionalities e.g. software functionalities shown and described herein. For example, a server may store certain applications, for download to clients, which are executed at the client side, the server side serving only as a storehouse. Any or all functionalities e.g. software functionalities shown and described herein, may be deployed in a cloud environment. Clients e.g. mobile communication devices such as smartphones, may be operatively associated with, but external to the cloud.
[0420] The scope of the present invention is not limited to structures and functions specifically described herein and is also intended to include devices which have the capacity to yield a structure, or perform a function, described herein, such that even though users of the device may not use the capacity, they are, if they so desire, able to modify the device to obtain the structure or function.
[0421] Any “if -then” logic described herein is intended to include embodiments in which a processor is programmed to repeatedly determine whether condition x, which is sometimes true and sometimes false, is currently true or false, and to perform y each time x is determined to be true, thereby to yield a processor which performs y at least once, typically on an “if and only if” basis e.g. triggered only by determinations that x is true, and never by determinations that x is false.
[0422] Any determination of a state or condition described herein, and/or other data generated herein, may be harnessed for any suitable technical effect. For example, the determination may be transmitted or fed to any suitable hardware, firmware or software module, which is known or which is described herein to have capabilities to perform a technical operation responsive to the state or condition. The technical operation may, for example, comprise changing the state or condition, or may more generally cause any outcome which is technically advantageous given the state or condition or data, and/or may prevent at least one outcome which is disadvantageous, given the state or condition or data. Alternatively or in addition, an alert may be provided to an appropriate human operator or to an appropriate external system.
[0423] Features of the present invention, including operations which are described in the context of separate embodiments, may also be provided in combination in a single embodiment. For example, a system embodiment is intended to include a corresponding process embodiment, and vice versa. Also, each system embodiment is intended to include a server-centered “view” or client centered “view”, or “view” from any other node of the system, of the entire functionality of the system, computer-readable medium, apparatus, including only those functionalities performed at that server or client or node. Features may also be combined with features known in the art, and particularly, although not limited to, those described in the Background section or in publications mentioned therein.
[0424] Conversely, features of the invention, including operations, which are described for brevity in the context of a single embodiment or in a certain order, may be provided separately or in any suitable sub-combination, including with features known in the art (particularly although not limited to those described in the Background section or in publications mentioned therein) or in a different order. “e.g.” is used herein in the sense of a specific example which is not intended to be limiting. Each method may comprise all or any subset of the operations illustrated or described, suitably ordered e.g. as illustrated or described herein.
[0425] Devices, apparatus or systems shown coupled in any of the drawings may in fact be integrated into a single platform in certain embodiments, or may be coupled via any appropriate wired or wireless coupling such as but not limited to optical fiber, Ethernet, Wireless LAN, HomePNA, power line communication, cell phone, Smart Phone (e.g. iPhone), Tablet, Laptop, PDA, Blackberry GPRS, Satellite including GPS, or other mobile delivery. It is appreciated that in the description and drawings shown and described herein, functionalities described or illustrated as systems and sub-units thereof can also be provided as methods and operations therewithin, and functionalities described or illustrated as methods and operations therewithin can also be provided as systems and sub-units thereof. The scale used to illustrate various elements in the drawings is merely exemplary and/or appropriate for clarity of presentation, and is not intended to be limiting.
[0426] Any suitable communication may be employed between separate units herein e.g. wired data communication and/or in short-range radio communication with sensors such as cameras e.g. via WiFi, Bluetooth or Zigbee.
[0427] It is appreciated that implementation via a cellular app as described herein is but an example, and, instead, embodiments of the present invention may be implemented, say, as a smartphone SDK; as a hardware component; as an STK application, or as suitable combinations of any of the above.
[0428] Any processing functionality illustrated (or described herein) may be executed by any device having a processor, such as but not limited to a mobile telephone, set-top-box, TV, remote desktop computer, game console, tablet, mobile e.g. laptop or other computer terminal, embedded remote unit, which may either be networked itself (may itself be a node in a conventional communication network e.g.) or may be conventionally tethered to a networked device (to a device which is a node in a conventional communication network or is tethered directly or indirectly/ultimately to such a node).
[0429] Any operation or characteristic described herein may be performed by another actor outside the scope of the patent application and the description is intended to include apparatus, whether hardware, firmware or software, which is configured to perform, enable, or facilitate that operation, or to enable, facilitate or provide that characteristic.
[0430] The terms processor or controller or module or logic as used herein are intended to include hardware such as computer microprocessors or hardware processors, which typically have digital memory and processing capacity, such as those available from, say Intel and Advanced Micro Devices (AMD). Any operation or functionality or computation or logic described herein may be implemented entirely or in any part on any suitable circuitry including any such computer microprocessor/s as well as in firmware or in hardware or any combination thereof.
[0431] It is appreciated that elements illustrated in more than one drawing, and/or elements in the written description, may still be combined into a single embodiment, except if otherwise specifically clarified herewithin. Any of the systems shown and described herein may be used to implement or may be combined with, any of the operations or methods shown and described herein.
[0432] It is appreciated that any features, properties, logic, modules, blocks, operations or functionalities described herein, which are, for clarity, described in the context of separate embodiments, may also be provided in combination in a single embodiment, except where the specification or general knowledge specifically indicates that certain teachings are mutually contradictory and cannot be combined. Any of the systems shown and described herein may be used to implement, or may be combined with, any of the operations or methods shown and described herein.
[0433] Conversely, any modules, blocks, operations or functionalities described herein, which are, for brevity, described in the context of a single embodiment, may also be provided separately, or in any suitable sub-combination, including with features known in the art. Each element e.g. operation described herein, may have all characteristics and attributes described or illustrated herein, or, according to other embodiments, may have any subset of the characteristics or attributes described herein.