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 system resilience, defined as the use of existing capabilities—the interplay between function, behavior, and structure—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 designing a system-of-systems for adaptation to unplanned scenarios includes receiving sensor outputs and consolidating the sensor outputs into a current system status report. Next, in response to detection of a new unplanned need, currently available system resources are identified. An abstract description of a system-of-systems is updated based on the currently available system resources. The abstract description may also be updated based one or more of current system behaviors, current system lower-level functions, and current system constraints. Additionally, the abstract description may be updated for future conditions by interpolating based on the currently available system resources to determine predicted system resources that will be available at a future time, Using the abstract description of the system-of-systems, feasible solutions are determined that could satisfy the new unplanned need. Each feasible solution comprises instructions for using resources included in the system-of-systems. A simulation network comprising simulation models is generated based on the abstract description of the system-of-systems. Then, the simulation network is used to select one of the feasible solutions. In some embodiments, based on the selected feasible system configuration, presenting a GUI is presented which includes (i) a listing of selected system resources; (ii) a listing of selected system behaviors; and (iii) an indication of one or more relationships between the selected system resources and the selected system behaviors.
In some embodiments of the aforementioned system, the new unplanned need is automatically identified based on the sensor outputs. For example, in one embodiment, a system status is determined based on the sensor outputs. This system status is compared to one or more reference system statuses to identify critical needs and the new unplanned need is selected from the critical needs. In one embodiment, the critical needs are sorted by priority and the highest ranking critical need is selected as the new unplanned need.
Various types of sensor outputs may be used with the aforementioned method for example, in some embodiments, the sensor outputs comprise sensor outputs from one or more physical sensors. Additionally (or alternatively), the sensor outputs may include sensor outputs from one or more non-physical sensors. For example, in one embodiment, one of the non-physical sensors is a social network and the sensor outputs comprise a listing of communications on the social network. In some embodiments, the sensor outputs are consolidated into the current system status report using a computing process that implements one or more sheaf theory-based techniques.
According to other embodiments, a second method for designing a system-of-systems for adapting to unplanned scenarios comprises generating input configurations corresponding to a system-of-systems and performing a planning workflow for each input configuration. The planning workflow includes generating a potential need related to the system-of-systems, and identifying feasible solutions that could satisfy the potential need. Each feasible solution comprises instructions for using resources included in the system-of-systems. The work flow further includes generating a simulation network comprising simulation models based on an abstract description of the system-of-systems and using the simulation network to determine a number of the feasible solutions satisfying a user-selected objective. For example, in one embodiment, the feasible solutions that could satisfy the potential need are identified based on currently available resources associated with the system-of-systems. The input configuration having a greatest number of the feasible solutions in comparison to other input configurations may then be designated as the most resilient input configuration. In one embodiment, based on the most resilient input configuration, a GUI (e.g., an Internet web browser on a user device) is presented which includes (i) a listing of selected system resources; (ii) a listing of selected system behaviors; and (iii) an indication of one or more relationships between the selected system resources and the selected system behaviors. In one embodiment, a parallel computing environment is used to execute the simulation models in parallel to determine the number of the feasible solutions satisfying the user-selected objective.
In some embodiments of the aforementioned second method, the potential need related to the system-of-systems is generated by randomly modifying one or more values in the abstract description of the system-of-systems. Alternatively, the potential need is generated based probabilities of failure or unavailability of system resources and links between the system resources.
In other embodiments of the present invention, a system for designing a system-of-systems for adaptation to unplanned scenarios includes a sensor interface, one or more processors, and a presentation interface. The sensor interface is configured to receive sensor outputs related to a system-of-systems. The one or more processors consolidate the sensor outputs into a current system status report and in response to detection of a new unplanned need, identify currently available system resources. The processors update an abstract description of the system-of-systems based on the currently available system resources, and use the abstract description of the system-of-systems to determine feasible solutions that could satisfy the new unplanned need. Each feasible solution comprises instructions for using resources included in the system-of-systems. Then, the processors generate a simulation network comprising simulation models based on the abstract description of the system-of-systems, and use the simulation network to select one of the feasible solutions. In one embodiment, the one or more processors are included in a parallel processing platform configured to execute the simulation models in parallel to select the selected feasible solution. The presentation interface included in the system is configured to use the selected feasible system configuration to presenting a graphical user interface comprising: (i) a listing of selected system resources; (ii) a listing of selected system behaviors; and (iii) an indication of one or more relationships between the selected system resources and the selected system behaviors.
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
To identify a configuration(s) of the SoS 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) 230 in the software architecture 200 is the programmatic interface to external devices. The Server interacts with the Abstraction Engine 235. The abstraction engine may be designed in a variety of ways, depending on the overall configuration of the dashboard system. For example, in one embodiment, the abstraction engine parses the functional, behavioral, and structural models' properties (e.g., height, mass, rigid bodies, differential equations), and maps the minimal set of properties to named functions (at the multiple levels of functional decomposition). These named functions will contain just the right level of abstraction to reason about the SoS and calculate a resilient configuration. This process is similar to giving a set of heterogeneous models to a group of domain-experts and them finding the minimal functional representation of the system that is compatible with other systems in its environment. Using the abstract SoS representation, the proposed framework calculates the candidate SoS reconfigurations to achieve the desired services. The Abstraction Engine is expected to receive a functional model as an input, and return a set of configurations of the SoS with references to the functional models. The objective is finding configurations of predictive models (at different levels of fidelity) that achieve composition and compositionality that can be used to predict the function, behavior, and structure of the system under the given constraints and events. This is equivalent of giving a problem to a group of domain-experts, and them creating and assembling various configurations of predictive models that can be simulated as a whole. The results are ranked using the baseline performance as a reference, and a strategy (computed by the Abstraction Engine) and SoS reconfiguration is selected to achieve the defined goals.
The Data Management layer contains the Data and Model Management Module 240 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 240 utilizes Graph Processing Algorithms 245 and Model Parsers and Converters 250 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 255 generated using the Simulation Framework 225. External Modeling Tools 260 may be used to create and edit models in their native formats, which may then be uploaded to Simulation Framework 225 via the Data Backbone. In this way, the Simulation Framework 225 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 520. Three databases are created during this Phase 520, 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 520D, links are created between the three databases populated at steps 520A-520C. 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 520E, constraints are applied to the databases populated at steps 520A-520C and the links created at step 520D. Constraints can be represented 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 520 are created.
Continuing with reference to
The result of the abstract SoS representation may be queried in the Offline-Online Interface Phase 540 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 540, 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 540B, information on the current system availability is received and, at step 540B, information is provided on known system relationships.
The Problem Detection Phase 710 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 710A, 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 710B, 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 710C, 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 710D, statuses that deviate from the reference values by more than some threshold amount are characterized as “critical.” Next, at step 710E, 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 710F, 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 720, 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 720A and 720B. This information will be used to update the abstract description of the SoS (“Offline-Online Interface”) at step 720C, 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 730 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 730A, the connections in the available system are browsed. These connections can reside in any of the sub-systems within the SoS. Then, at step 730B, 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 740. 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 740A, 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 740B, the connected simulation models are used to perform a simulation of all possible solutions and, at step 740C, the objective for each solution is evaluated. Based on this evaluation, the best performing set of actions is selected at step 740D.
As outcome of this process, at 750, 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 800 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 800 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 800 of
The device 810 includes one or more thread blocks 830 which represent the computation unit of the device 810. 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 800 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/266,929 filed Dec. 14, 2015, which is incorporated herein by reference in its entirety.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2016/066580 | 12/14/2016 | WO | 00 |
Number | Date | Country | |
---|---|---|---|
62266929 | Dec 2015 | US |