The present disclosure generally relates to systems, methods, and apparatuses for designing a complex system-of-systems for planning and adaptation to unplanned scenarios. The techniques described herein may be applied for example, the modeling of any complex system.
Currently, dynamic complex system-of-systems like urban infrastructures are difficult to model and impossible to systematically design; thus leading to: inferior performance; unexpected problems; and weak resilience, especially to other unplanned scenarios. Typically, conventional planning tools are used to simulate a large number of pre-planned scenarios and to identify how modifications to the system would perform under each of them. This approach results in system designs that are likely to perform well under certain emergency scenarios, but cannot provide information on how to adapt the system to scenarios that have not been explicitly planned a priori.
For example, a blizzard can cause major disruption in a region's transportation networks, closing down subways and trains, slowing car traffic, and cancelling flights; also affecting other systems such as the power grid. Currently, city planners use prior experiences to prepare for a blizzard by pre-locating assets such as snow plows and salt to clear the roads. National Guard and State Troopers are dispatched in patrols for rescue missions and to prevent crime. Shelters are established and evacuation recommendations are communicated to the community. During and after the blizzard, city planners use various ad-hoc information feedback loops to manage the assets. Unfortunately, city planners must improvise before, during, and after a natural disaster without design tools.
Recently, cities in the United States are making urban infrastructure data accessible to developers and providing development frameworks for the community to create useful applications (e.g., tracking snow plows in real-time). While these initiatives and similar services are a step forward, the available data sets are based on historical data and can only reflect known events. Therefore, existing tools are restricted to designing alternative urban configurations against playbook scenarios. These tools are limited to designs for system resilience, defined as the use of existing capabilities—the interplay between functions, behaviors, and structures—against predetermined scenarios to provide functional continuity and risk management; these are primarily used for planning in pre-event and disaster stages.
Accordingly, it is desired to create a framework for analyzing complex system-of-systems that offers the capability of adaptive resilience, thereby providing a more robust, consistent, and reliable understanding of how to optimally use system resources.
Embodiments of the present invention address and overcome one or more of the above shortcomings and drawbacks, by providing methods, systems, and apparatuses related to a complex system-of-systems for planning and adaptation to unplanned scenarios. These techniques and technologies are capable of fully considering the various interdependencies of heterogeneous systems, over space and time, and the consequent emergent behaviors.
According to some embodiments, a computer-implemented method for providing adaptive resilience to a system defined by a plurality of physical components includes generating an ontology comprising a plurality of objects. Each object corresponds to (i) functions performed by a discrete physical component of the system; (ii) behaviors of the discrete physical component; (iii) physical structures included in the discrete physical component; and (iv) events that impact usage of the discrete physical component. Relationships are added to the ontology for each of the plurality of physical components. The relationships comprise (i) aggregation relationships between the plurality of physical components, (ii) composition relationships between the plurality of physical components; and (iii) dependencies between the plurality of physical components. Sensor data is received from one or more sensors monitoring activities associated with the plurality of physical components included in the system. Based on the sensor data, an event is identified that is impacting one or more physical components performing a system function. Next, the attributes and the relationships stored in the ontology are used to generate an alternate system design comprising physical components that are functionally equivalent to the impacted physical components with respect to the system function. Then, a transmittal comprising the alternate system design is sent to one or more users.
Some embodiments of the aforementioned method further include using the objects and relationships stored in the ontology to generate one or more instructions for repurposing physical components included in the system to implement the alternate system design.
Various techniques may be used for updating the ontology in the aforementioned method. For example, in some embodiments, new relationships between objects in the ontology corresponding to the alternate system design are identified and used to update the ontology. In other embodiments, new objects corresponding to physical components included the alternate system design. These new objects comprise one or more (i) new functions performed by the physical components in the alternate system design; (ii) new behaviors of the physical components; (iii) new physical structures constructed based on the physical components in the alternate system design; (iv) new constraints related to usage of the physical components in the alternate system design. The ontology may then be updated with the new objects.
In some embodiments of the aforementioned method, the alternate system design is generated by creating a plurality of possible alternate system designs using the attributes and relationships stored in the ontology and simulating the impacted system function with each of the plurality of possible alternate system designs to yield simulation results. Based on the simulation results, one of the possible alternate system designs is selected as the alternate system design. In one embodiment, the impacted system function is simulated using a system of simulations executing across a parallel computing architecture. This system of simulations may be created, for example, by automatically combining a plurality of simulation models according to predetermined rules.
In some embodiments of the aforementioned method, the alternate system design is selected from the possible alternate system designs by ranking the possible alternate system designs according to one or more pre-determined criteria, and selecting a highest ranking possible alternate system design as the alternate system design. The pre-determined criteria may include, for example, a measurement of distance between objects included in each possible alternate design and the event impacting the objects performing the system function, a measurement of monetary cost associated with implementing each possible alternate design, or a measurement of power consumption of each design.
According to another aspect of the present invention, a second computer-implemented method for providing adaptive resilience to a physical system comprising a plurality of objects includes generating a graph representative of objects included in a system. The graph comprises a plurality of nodes, wherein each node is a programming component representing one or more of (i) a function performed by a discrete object included in the system; (ii) behaviors of the discrete object; (iii) a physical structure included in the discrete object; and (iv) an event that impacts usage of the discrete object. The edges between the nodes correspond to relationships between the objects of the system, wherein the relationships comprise (i) aggregation relationships between the plurality of objects, (ii) composition relationships between the plurality of objects; and (iii) dependencies between the plurality of objects. Sensor data is received from one or more sensors monitoring activities associated with physical structures included in the system. Based on the sensor data, an event is identified that is impacting one or more objects performing a system function. The graph is used to generate an alternate system design which comprises a plurality of objects that are functionally equivalent to the impacted objects with respect to the system function. Then, a transmittal comprising the alternate system design is sent to one or more users.
In some embodiments of the second method discussed above, the edges included in the graph are used to generate one or more instructions for repurposing physical objects included in the system to implement the alternate system design. Similarly, new relationships between objects included in the alternate system design may be identified and used to update the graph with new edges. Additionally, the characteristics of the objects included in the alternate system design may be used to update the graph with one or more nodes representative of the characteristics.
In some embodiments of the aforementioned second method, the alternate system design is generated by creating a plurality of possible alternate system designs via traversal of the graph starting at nodes corresponding to the impacted objects. The impacted system function is simulated with each of the plurality of possible alternate system designs to yield simulation results. Then, based on the simulation results, selecting one of the possible alternate system designs is selected as the alternate system design.
According to another aspect of the present invention, a system for providing adaptive resilience to a physical system includes a non-transitory computer reasonable readable medium storing a graph representative of objects included in a system, a plurality of device processors, and a host processor. The graph comprises a plurality of nodes and edges. Each node is a programming component representing one or more of (i) a function performed by a discrete object included in the system; (ii) behaviors of the discrete object; (ii) a physical structure included in the discrete object; (iii) an event that impacts usage of the discrete object. The edges between the plurality of nodes correspond to relationships between the objects of the system, wherein the relationships comprise (i) aggregation relationships between the plurality of objects, (ii) composition relationships between the plurality of objects; and (iii) dependencies between the plurality of objects. The host processor is configured to receive sensor data from one or more sensors monitoring activities associated with physical structures included in the system. Based on the sensor data, the host processor identifies an event impacting one or more objects performing a system function. The host processor creates a plurality of possible alternate system designs by traversing the graph starting at nodes corresponding to the impacted objects. Next, the host processor uses the device processors to simulate the impacted system function with each of the plurality of possible alternate system designs in parallel to yield simulation results. Then, based on the simulation results, one of the possible alternate system designs are selected as an optimal alternate system design.
Additional features and advantages of the invention will be made apparent from the following detailed description of illustrative embodiments that proceeds with reference to the accompanying drawings.
The foregoing and other aspects of the present invention are best understood from the following detailed description when read in connection with the accompanying drawings. For the purpose of illustrating the invention, there is shown in the drawings embodiments that are presently preferred, it being understood, however, that the invention is not limited to the specific instrumentalities disclosed. Included in the drawings are the following Figures:
The following disclosure describes the present invention according to several embodiments directed at methods, systems, and apparatuses related to designing a complex system-of-systems for planning and adaptation to unplanned scenarios. Briefly, the techniques described herein utilize a dashboard that can be used to both plan a system-of-systems (SoS), for improved resiliency with respect to SoS designed with standard tools, (“planning mode”) and to adapt an existing SoS to unplanned needs and configurations (“adaptation mode”). Such dashboard will take as input information on the known resources and behaviors in the considered SoS, on the known functions the SoS can perform in normal conditions and on the constraints that exist. In planning mode, this information will reflect the design space, which the user is willing to explore. In adaptation mode, this information will reflect the characteristics of the existing system, under normal operations (i.e. not under the emergency scenario). The techniques described herein are generally applicable to any complex system including, for example, urban infrastructure, manufacturing plants, product life cycles, and robotics.
In
Functional composition has advantages over conventional design tools that use incompatible system models that are discipline or domain-dependent and not inter-operable. To date, the automatic composition of functionally equivalent function-behavior-structures of complex cyber-physical systems using functional abstractions have been demonstrated in some limited scenarios. However, several key challenges remain in demonstrating the viability of a design tool for adaptive resilience of Systems-of-Systems (SoS) including: (1) “zooming” across multiple space-time scales, hierarchies, and interactions; (2) identifying, on-the-fly, the need of specific functions based on a diagnosis of the state of the system; and (3) developing a System of Simulations (SySim) that does not rely on oversimplifications. The techniques described herein address these challenges by: (1) unifying function-behavior-structure-constraints-events in core units of composition and knowledge representation (UCKR) that can be transacted over in multiple scales of space and time; (2) developing a self-diagnosis capability by continuously monitoring the environmental state with sensors; (3) engineering a flexible and scalable architecture for the adaptive simulation of heterogeneous multi-fidelity models through reconfiguration and recalibration.
UCKRs allow one to develop urban infrastructure models at different fidelity levels, and define an interface with external systems. As an example of the utility of UCKRs, several scenarios are discussed herein which focus on redesigning an urban infrastructure in case of unexpected events such as an earthquake and further cascading events leading to power blackouts and fires. More specifically, the discussion presented herein focuses on the function of health care in such scenarios. As shown in
Strategy-design pairs may be used to dynamically update the system through a continuous evaluation over time. A notional functional equivalence algorithm can be implemented as a four step process: (1) searching in unit hierarchies by traversing the function, behavior, structure, constraints, and events associated with the unit; (2) composing behaviors, structures, constraints, and events (plain-design pairs) that are functionally equivalent to the missing function; (3) evaluating the candidate strategy-design pairs and ranking according to a given criteria; and (4) creating new units, at multiple levels of abstraction, to express the newly discovered knowledge.
A key innovation in UCKRs is their organization. Rather than relying in a monolithic data structure, the focus is on the relationships between units. For example in some embodiments, units form a directed graph where nodes represent units and edges represent transformations between units. These transformations represent relationships such as aggregation, composition, composability, and dependencies. This representation provides the flexibility to use the models associated to the different nodes “as-is” (e.g., for parsing, evaluation, simulation), and the information associated to the edges to discover and create new knowledge. The unit graph is dynamic in the sense that data, queries, simulation, and models are continuously modifying the graph with new nodes and edges. Even though this may result in a large graph with billions of nodes and edges, existing databases (e.g., Linked Data) and algorithms (e.g. Pregel, MapReduce) running in cloud platforms can help to efficiently search and update the graph. As an alternative to a graph, in some embodiments, the UCKRs are stored as an ontology expressed in a language such as expressed the Web Ontology Language (OWL).
Continuing with reference to
Once the event is detected, at step 420, the graph is used to generate an alternate system design which includes comprises objects that are functionally equivalent to the impacted objects with respect to the system function. For example, if the system function is transportation and trains are the impacted objects, the functionally equivalent objects may comprise groupings of busses that offer that same transportation capacity.
In some embodiments, a series of alternate system designs are generated an evaluated. For example, in one embodiment, a plurality of possible alternate system designs are identified by traversing the graph starting at nodes corresponding to the objects impacted by the event. A simulation may be then being performed to simulate the impacted system function with each of the plurality of possible alternate system designs. Techniques for performing this simulation are described in further detail below. Based on the simulation results, one of the possible alternate system designs is selected as the alternate system design. For example, in one embodiment, the possible alternate system designs according to one or more pre-determined criteria (distance between objects, power consumption, and monetary cost to implement). Then, the highest ranking possible alternate system design may be designated the alternate system design.
Finally, at step 425, a transmittal is sent comprising the alternate system design is sent to one or more users. This transmittal can generally take any form generally known in the art for conveying information. Thus, for example, the transmittal can be a simply message displayed in a GUI which allows user interaction with the various system components. In other embodiments, the transmittal can be a message (e.g., email) sent to users via mobile devices. In this way information can be transmitted to first responders (e.g., police, fire fighters, etc.) to allow system components to be repurposed as necessary to provide the system function. In some embodiments, the transmittal includes instructions describing the strategy for repurposing the physical object to implement the alternate system design. These instructions may be derived, for example, using the information associated with the edge relationships in the graph.
It should be noted that the alternate system design can be used to update the graph as needed to capture the new knowledge embodiment in the design. For example, new edges may be added to the graph based on new relationships identified between objects included in the alternate system design. Similarly the characteristics of the objects included in the alternate system design may be used to update the graph with one or more nodes representative of the characteristics.
As an alternative to the graph implementation, a more generic ontology is used in some embodiments. This ontology includes objects corresponding to functions performed by discrete physical components of the system, behaviors of the discrete physical components, physical structures included in the discrete physical components, constraints related to usage of the discrete physical components; and events that impact usage of the discrete physical component. The ontology also captures relationships between the physical components, such as aggregation relationships between the plurality of physical components, composition relationships between the plurality of physical components, and dependencies between the pluralities of physical components. As with the graph, the ontology may be generated by a knowledge domain expert and/or through automatic techniques (e.g., analyzing technical documentation). Once generated, the ontology may be used in a manner similar to the graph as described above with reference to
To identify a configuration(s) of the UCKRs suitable to meet the needs of a particular scenario (e.g., providing hospital services in the event of an earthquake as shown in
Continuing with reference to
The Application Program Interface (API) 530 in the software architecture 500 is the programmatic interface to external devices. The Server interacts with the Abstraction Engine 535 which provides a list system designs comprising UCKRs (e.g., in graph or ontology form) using the techniques described above with reference to
The Data Management layer contains the Data and Model Management Module 540 that combines simulation models according to predetermined rules to create simulation networks. The generation of the simulation network is driven by the set of metrics that needs to be computed and the relationships pre-defined between system components. As an example, if the time to perform a set of actions is the metric of interest, the system will look for a model for performance time in each of the components that represent the considered actions, and run these models in a sequence, provided that the actions are performed sequentially, feeding the result of the first model of action to the subsequent one. This Module 540 utilizes Graph Processing Algorithms 545 and Model Parsers and Converters 550 to facilitate generation and processing of the simulation networks. These modules identify the connections between system components in the graph that represents it, identifies the input/output variables of the models associated to them, and identify the proper conversions needed to allow interaction among the models.
The Collaboration Platform layer is the Data Backbone that contains the Datasets 555 generated using the Simulation Framework 525. External Modeling Tools 560 may be used to create and edit models in their native formats, which may then be uploaded to Simulation Framework 525 via the Data Backbone. In this way, the Simulation Framework 525 may be updated continuously with new, more up-to-date models thereby providing a more robust simulation environment.
Continuing with reference to
During the Problem Definition Phase, the considered resources, behaviors, functions and constraints of the subsystems under consideration are identified during a “SoS Definition” Phase 820. Three databases are created during this Phase 820, including a database of resources for each subsystem, a database of behaviors for each component, and a database of known functions for each subsystem. Such databases can be populated manually by a subject matter expert, or by browsing existing domain-specific databases, or potentially by automatically analyze literature on the specific problem, using natural language processing techniques. Next at step 820D, links are created between the three databases populated at steps 820A-820C. An example for such creation is the following: if function A can be performed by object B while it exhibits behavior C consuming resource D, links will be created between A to B, C to B and D. Then, at step 820E, constraints are applied to the databases populated at steps 820A-820C and the links created at step 820D. Constraints can be associated to behaviors. For example, a car can move from location x to location y only if it has enough fuel. Hence, the behavior of moving a car from x to y will happen only after the constraint on fuel has been met. Constraints can be created similarly to how the databases in Phase 820 are created.
Continuing with reference to
The result of the abstract SoS representation may be queried in the Offline-Online Interface Phase 840 to identify a set of lower level functions, able to satisfy the need identified by the system. Additionally, this result may be used to identify resources and links (among the available ones) to perform a given function. Additional input is provided at run-time during the Offline-Online Interface Phase 840, when the tool is utilized to adapt the SoS to an unplanned scenario. In this case, a set of sensors (of various types), embedded in the SoS, provides data to the tool with the purpose of both identifying any unpredicted need and to assess the current status of the SoS. Thus, at step 840B, information on the current system availability is received and, at step 840B, information is provided on known system relationships.
The Problem Detection Phase 1010 is performed periodically during the operation, when new sensors information is detected, to identify the highest priority, unplanned needs of the SoS. Starting at step 1010A, the various sensors are queried to gather relevant information. These sensors may include traditional physical sensors (e.g. thermal sensors, visual sensors, etc.), as well as “soft” sensors such as communications on social networks. Next, at step 1010B, the information from the sensors is fused. This problem can be tackled, for example, using Sheaf Theory or similar technique, and will result in information on the current status of the system, equipped with the accuracy of such information, based on the accuracy of the utilized sensors and on the discrepancy among the incoming pieces of information. At step 1010C, the detected status of the system is compared with a reference (set of) status(es). These reference statuses may be specified, for example based on user and/or based on a historical analysis of the system under normal working conditions. At step 1010D, statuses that deviate from the reference values by more than some threshold amount are characterized as “critical.” Next, at step 1010E, the statuses that were identified as critical are sorted by priority. The priority list can be determined “a priori” based on general rules or knowledge (e.g. it is of higher priority to resolve safety issues than to resolve networking issues) or based on user input. Finally, at step 1010F, the system identifies a high-level function/need/mission to accomplish with the reconfiguration, basing the decision of the main mission on the priority list (e.g. mission of providing healthcare if survival of humans is the priority).
During the Availability Assessment 1020, once a new need is detected, the sensing system will be queried to identify the resources, behaviors, lower-level functions and constraints that are available or active at the present time. This assessment is performed at steps 1020A and 1020B. This information will be used to update the abstract description of the SoS (“Offline-Online Interface”) at step 1020C, before proceeding to the next phase. In addition, in some embodiments, additional information may be gathered on the predicted availability in the near future, or its uncertainty, can be added to this phase, for more robust adaptation.
The objective of the Feasible Solutions Phase 1030 is to identify, in the currently available system, solutions (in terms of usage of resources and “instructions”) that could satisfy the identified needs. Thus, at step 1030A, the connections in the available system are browsed. These connections can reside in any of the sub-systems within the SoS. Then, at step 1030B, the possible “paths” (i.e., solutions) to satisfy the need are identified. This identification can be done using graph analysis techniques.
Once a set of feasible solutions is identified, the choice among them can be driven by the use of simulation models during the Selection of Solution Phase 1040. However, given the dynamic nature of the SoS structure, existing tools will be composed on the fly based on the abstract description of the current SoS. Starting at step 1040A, composition rules are used to connect simulation models into a simulation network. The composition rules will be based on the functions and behaviors of various structures within the simulation models, inputs and outputs of models, and the levels of models fidelity. The simulation network will have the ability to propagate the uncertainty detected in the input (e.g. on the availability of resources) to the predicted outcome. Depending on the simulation models selected in the network, different objective functions (e.g. cost, time of implementation, probability of success, etc.) could be evaluated to drive the choice on the “best” among the considered solutions. Next, at step 1040B, the connected simulation models are used to perform a simulation of all possible solutions and, at step 1040C, the objective for each solution is evaluated. Based on this evaluation, the best performing set of actions is selected at step 1040D.
As outcome of this process, at 1050, the dashboard may output a set of resources, behaviors and links among them that can be employed to satisfy the automatically identified unplanned need.
In some embodiments of the planning mode, the dashboard will output the resources and functionalities that the SoS needs to include to achieve a high level of resilience (according to a metric defined below). This will be achieved by utilizing a modified version of the workflow described above with respect to
Parallel portions of a deep learning application may be executed on the architecture 1100 as “device kernels” or simply “kernels.” A kernel comprises parameterized code configured to perform a particular function. The parallel computing platform is configured to execute these kernels in an optimal manner across the architecture 1100 based on parameters, settings, and other selections provided by the user. Additionally, in some embodiments, the parallel computing platform may include additional functionality to allow for automatic processing of kernels in an optimal manner with minimal input provided by the user.
The processing required for each kernel is performed by grid of thread blocks (described in greater detail below). Using concurrent kernel execution, streams, and synchronization with lightweight events, the architecture 1100 of
The device 1110 includes one or more thread blocks 1130 which represent the computation unit of the device 1110. The term thread block refers to a group of threads that can cooperate via shared memory and synchronize their execution to coordinate memory accesses. For example, in
Continuing with reference to
Each thread can have one or more levels of memory access. For example, in the architecture 1100 of
The embodiments of the present disclosure may be implemented with any combination of hardware and software. For example, aside from parallel processing architecture presented in
While various aspects and embodiments have been disclosed herein, other aspects and embodiments will be apparent to those skilled in the art. The various aspects and embodiments disclosed herein are for purposes of illustration and are not intended to be limiting, with the true scope and spirit being indicated by the following claims.
An executable application, as used herein, comprises code or machine readable instructions for conditioning the processor to implement predetermined functions, such as those of an operating system, a context data acquisition system or other information processing system, for example, in response to user command or input. An executable procedure is a segment of code or machine readable instruction, sub-routine, or other distinct section of code or portion of an executable application for performing one or more particular processes. These processes may include receiving input data and/or parameters, performing operations on received input data and/or performing functions in response to received input parameters, and providing resulting output data and/or parameters.
A graphical user interface (GUI), as used herein, comprises one or more display images, generated by a display processor and enabling user interaction with a processor or other device and associated data acquisition and processing functions. The GUI also includes an executable procedure or executable application. The executable procedure or executable application conditions the display processor to generate signals representing the GUI display images. These signals are supplied to a display device which displays the image for viewing by the user. The processor, under control of an executable procedure or executable application, manipulates the GUI display images in response to signals received from the input devices. In this way, the user may interact with the display image using the input devices, enabling user interaction with the processor or other device.
The functions and process steps herein may be performed automatically or wholly or partially in response to user command. An activity (including a step) performed automatically is performed in response to one or more executable instructions or device operation without user direct initiation of the activity.
The system and processes of the figures are not exclusive. Other systems, processes and menus may be derived in accordance with the principles of the invention to accomplish the same objectives. Although this invention has been described with reference to particular embodiments, it is to be understood that the embodiments and variations shown and described herein are for illustration purposes only. Modifications to the current design may be implemented by those skilled in the art, without departing from the scope of the invention. As described herein, the various systems, subsystems, agents, managers and processes can be implemented using hardware components, software components, and/or combinations thereof. No claim element herein is to be construed under the provisions of 35 U.S.C. 112, sixth paragraph, unless the element is expressly recited using the phrase “means for.”
This application claims the benefit of U.S. Provisional Application Ser. No. 62/291,004 filed Feb. 4, 2016, which is incorporated herein by reference in its entirety.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2017/016322 | 2/3/2017 | WO | 00 |
Number | Date | Country | |
---|---|---|---|
62291004 | Feb 2016 | US |