System and method for full history dynamic network analysis
By building a full-historical dynamic network (FHDN), which includes dynamically changed nodes, edges and time series, it solves the problem of difficulty in storing and querying the full historical state of the dynamic network in the prior art, realizes efficient storage and query, reduces storage requirements and improves query speed.
Patent Information
- Application Number
- CN202510283888.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2018-11-02
- Filing Date
- 2019-10-30
- Publication Date
- 2025-06-20
AI Technical Summary
It is difficult for prior art to effectively store and query the full historical state of a dynamic network, especially when it is necessary to query the precise state of the network at any given point in time.
By building a full-history dynamic network (FHDN), the network includes nodes, edges that can be dynamically changed, and time series associated with these nodes and edges, allowing querying of the state of the network at any historical moment.
It realizes efficient storage and query of the full historical state of the dynamic network, reduces storage requirements, improves query speed, and allows answering queries at historical moments without instantiating the entire network.
Smart Images

Figure CN120186038A_ABST
Abstract
Description
[0001] This application is a divisional application of an application with an application date of October 30, 2019, an application number of 201980087711.8, and an invention title of "Systems and Methods for Full History Dynamic Network Analysis". Technical Field
[0002] Provided herein are methods and systems for analyzing and understanding the full history of dynamic networks. Cross - Reference
[0003] This application claims the priority of U.S. Provisional Patent Application No. 62 / 754,786, filed on November 2, 2018, the entire content of which is incorporated herein by reference. Background Art
[0004] Network science is the study of large-scale complex networks. Such networks can include computer networks, cyber-physical systems, telecommunications networks, biological networks, cognitive and semantic networks, and social networks. In such networks, different elements or participants can be represented by nodes (or vertices), and the connections between the elements or participants can be represented by links (or edges).
[0005] Networks can be illustrated with graphs. Many industries and companies have developed applications of network and graph processing methods for static graph analysis. For example, Google Maps can plan complex routes on the current snapshot of the road network of a country, and Facebook can represent its social network as a large graph and has developed the GraphQL language to query the graph. These graphs are not "static" in the traditional sense because nodes and edges can be added and removed over time, and the characteristics of nodes or edges may change. However, these graphs do not store the full history of the dynamic process. For example, Google Maps may not be able to show the exact traffic status at a specific time (e.g., 7:45 pm, Pacific Time, on April 23, 2013) and in a specific area, and Facebook may not be able to show the state of one of its social network graphs (e.g., at any moment one year ago). Although these networks are dynamic, the storage engine is static because it only shows the current state of the network and the previous state of the network at certain predefined time points, and they do not provide the function of querying the graph at any arbitrary time point. Summary of the Invention
[0006] Current techniques for determining the historical state of a network can include periodically taking snapshots of a network graph and then analyzing the sequence of these snapshots to understand historical dynamic behavior. However, this may not be sufficient for different network domains. For example, for Internet of Things (IoT) applications (such as energy distribution systems), the current may be determined by the precise physical connections of the network, and understanding complex events such as cascading failures may require knowledge of the precise per-second configuration of switches and connectivity in the electrical network.
[0007] All networks can be their core dynamic objects because the edges and nodes of a network can be continuously added, removed, or have their states changed as the network evolves. For example, in the power grid, physical assets (wires, transformers, etc.) are added and removed over time, switches are turned on and off, and each of these changes fundamentally alters the physical flow characteristics of the network. For example, in a transportation network, roads are open or closed, and the traffic pattern on a given road changes rapidly over time. To effectively reason about such networks, a model is needed that can accurately capture the changes in the network over time. Additionally, graph analysis of the dynamic network is required, where the precise state of the network can be queried at any given time.
[0008] In one aspect, a computer-implemented method for determining the historical state of a system includes: continuously obtaining data about the system from a plurality of different data sources; using the data to construct a full historical dynamic network (FHDN) of the system, where the FHDN includes (1) a plurality of nodes that can dynamically change, (2) a plurality of edges connecting the nodes, where the plurality of edges can dynamically change, and (3) a time series associated with each of the plurality of nodes and the plurality of edges, and providing, in response to a query of the FHDN for the historical moment, the system state for the historical moment. The time series can indicate the changes in the states of the plurality of nodes and the plurality of edges over time. The FHDN can be constructed without periodically capturing and storing system snapshots at different time points.
[0009] In some embodiments, the state of the system includes the exact graphical state of the system that was in an operational state at the historical moment. In some embodiments, the state of the system includes the exact graphical state for a subset of the system at the historical moment. The graphical state of a network or a subset of the network can be an exact graphical state, a substantially exact graphical state, or an approximate graphical state. In some embodiments, the FHDN is constructed without periodically capturing and storing network snapshots at different time points. In some embodiments, the historical dynamic behavior of the FHDN can be determined without analyzing a sequence of network snapshots captured at different time points. In some embodiments, the FHDN allows queries at the historical moment to be answered without full network instantiation at the historical moment.
[0010] In some embodiments, the plurality of nodes and edges includes: (1) all nodes and edges that have previously existed in the network since a given moment, and (2) all nodes and edges that currently exist in the network. In some embodiments, the time series for a selected node or edge includes the time of addition or removal of the selected node or edge in the network. In some embodiments, the time series is based on events or changes that occur at the selected node or edge.
[0011] In some embodiments, the system state at the historical moment is obtained by using a search algorithm that traverses the plurality of nodes and searches the time series. In some embodiments, the search algorithm includes an iterative graph search algorithm that is configured to check the state of selected nodes or edges only on an as-needed basis. In some embodiments, the query includes a request for information about a subset of nodes at a given moment, and wherein the search algorithm is configured to query only and directly the subset of nodes, without querying other unnecessary nodes.
[0012] In some embodiments, the method further includes: caching the entire connected graphical region of the FHDN in memory at any given time using a blocking technique. In some embodiments, the blocking technique includes standard blocking, token blocking, or attribute cluster blocking. In some embodiments, caching the entire connected graphical region in memory allows searches to be performed more quickly compared to conventional network drawing techniques.
[0013] In some embodiments, compared to conventional network drawing techniques, the use of the FHDN allows for memory / storage savings of several orders of magnitude. In some embodiments, compared to conventional network drawing techniques, the storage requirements can be reduced by at least three orders of magnitude. In certain embodiments, the storage requirements can be reduced by more than three orders of magnitude or less than one order of magnitude.
[0014] In some embodiments, the system includes a power distribution system. In some embodiments, the power distribution system includes a plurality of power distribution feeders. In some embodiments, the state of the power distribution system includes the exact graphical state of the plurality of power distribution feeders at the historical moment. In some embodiments, the state of the power distribution system includes the exact graphical state of a subset of the power distribution feeders at the historical moment. In some embodiments, the FHDN allows for answering queries at the historical moment without fully instantiating the power distribution system at the historical moment.
[0015] In some embodiments, (1) the plurality of nodes and edges and (2) the time series are associated with the plurality of power distribution feeders and the connected nodes and branches within each feeder. In some embodiments, the time series for a selected node or edge includes the time of addition or removal of the selected node or edge within the network. In some embodiments, the addition or removal of the selected node or edge corresponds to the opening or closing of a circuit breaker switch within the power distribution system, where the circuit breaker switch is associated with the selected edge.
[0016] In some embodiments, the query includes a query of the electrical configuration of one or more selected power distribution feeders at any given moment. In some embodiments, the exact state of the one or more selected power distribution feeders at any given moment is queried using a graph search algorithm by only searching the nodes and edges included in the one or more selected feeders.
[0017] In some embodiments, the graph search algorithm is configured to query the status of nodes and edges included in selected distribution feeders only on an as-needed basis. In some embodiments, the graph search algorithm is not configured to query nodes and edges included in other unselected distribution feeders. In some embodiments, the network includes 280,000 grid nodes, 320,000 edges, and 1,000,000 open / close time series events recorded over a six-year period. In the above embodiments, FHDN allows queries of any part of the network at historical moments and requires only 13.4 MB of storage compared to 2.1 TB using traditional mapping techniques. In some embodiments, the system includes a bill of materials for any manufacturing company. In some embodiments, the system includes a supply chain distribution network. In some embodiments, the system includes a social network consisting of multiple users.
[0018] On the other hand, a system for determining the historical state of a dynamic network includes: a data aggregation component for continuously obtaining data about the system from a plurality of different data sources; and a network mapping component configured to: construct a full historical dynamic network (FHDN) of the system using the data, where the FHDN includes (1) a plurality of nodes capable of dynamically changing, (2) a plurality of edges connecting the nodes, where the plurality of edges are capable of dynamically changing, and (3) a time series associated with each of the plurality of nodes and the plurality of edges, and provide the system state at the historical moment in response to a query of the FHDN for the historical moment.
[0019] On the other hand, a non-transitory computer-readable medium storing instructions that, when executed by one or more servers, cause the one or more servers to perform a method, the method including: obtaining data about the system from a plurality of different data sources; constructing a full historical dynamic network (FHDN) of the system using the data, where the FHDN includes (1) a plurality of nodes capable of dynamically changing, (2) a plurality of edges connecting the nodes, where the plurality of edges are capable of dynamically changing, and (3) a time series associated with each of the plurality of nodes and the plurality of edges, and providing the system state at the historical moment in response to a query of the FHDN for the historical moment.
[0020] Based on the following detailed description, other aspects and advantages of the present disclosure will become readily apparent to those skilled in the art, where only illustrative embodiments of the present disclosure are shown and described. It will be recognized that the present disclosure is capable of other and different embodiments, and that several details thereof can be modified in various obvious aspects, all without departing from the present disclosure. Accordingly, the drawings and description are to be regarded as illustrative in nature and not restrictive.
[0021] The present application provides the following: 1) A computer-implemented method for determining a historical state of a system, the method comprising: Obtaining data about the system from a plurality of different data sources; Using the data to construct a full historical dynamic network (FHDN) of the system, wherein the FHDN includes (1) a plurality of nodes that can change dynamically, (2) a plurality of edges connecting the nodes, wherein the plurality of edges can change dynamically, and (3) a time series associated with each of the plurality of nodes and the plurality of edges, wherein the time series indicates the change in the state of the plurality of nodes and the plurality of edges over time; and In response to a query of the FHDN for a historical moment, providing the state of the system for the historical moment.
[0022] 2) The method according to 1), wherein the state of the system includes the exact graphical state of the system that is in an operating state at the historical moment.
[0023] 3) The method according to 1), wherein the state of the system includes the exact graphical state of a subset of the system at the historical moment.
[0024] 4) The method according to 1), wherein determining the historical dynamic behavior of the FHDN is performed without analyzing a sequence of snapshots of the network captured at different time points.
[0025] 5) The method according to 1), wherein the FHDN allows answering the query for the historical moment without fully instantiating the entire network at the historical moment.
[0026] 6) The method according to 1), wherein the plurality of nodes and edges include: (1) all nodes and edges that have previously existed in the network since a given moment, and (2) all nodes and edges that currently exist in the network.
[0027] 7) The method according to 1), wherein the time series of a selected node or edge includes the time when the selected node or edge is added or removed from the network.
[0028] 8) The method according to 1), wherein the time series is based on events or changes that occur at a selected node or edge.
[0029] 9) The method according to 1), wherein the state of the system at the historical moment is obtained by using a search algorithm that traverses the plurality of nodes and searches the time series.
[0030] 10) The method according to 9), wherein the search algorithm includes an iterative graph search algorithm configured to check the state of selected nodes or edges only on an as-needed basis.
[0031] 11) The method according to 9), wherein the query includes an information request regarding a subset of nodes at a given moment, and wherein the search algorithm is configured to query only and directly the subset of nodes without querying other unnecessary nodes.
[0032] 12) The method according to 1), further comprising: caching, in a memory at any given time, the entire connected graph region of the FHDN using a blocking technique.
[0033] 13) The method according to 12), wherein the connected graph region of the FHDN does not contain unreachable nodes.
[0034] 14) The method according to 13), wherein the blocking technique includes standard blocking, token blocking, or attribute cluster blocking.
[0035] 15) The method according to 13), wherein caching the entire connected graph region in the memory allows for faster execution of the search compared to conventional network drawing techniques.
[0036] 16) The method according to 1), wherein the use of the FHDN allows for several orders of magnitude of memory / storage savings compared to conventional network drawing techniques.
[0037] 17) The method according to 16), wherein the storage requirements can be reduced by at least three orders of magnitude compared to conventional network drawing techniques.
[0038] 18) The method according to 1), wherein the system includes a power distribution system.
[0039] 19) The method according to 18), wherein the power distribution system includes a plurality of distribution feeders.
[0040] 20) The method according to 19), wherein the state of the power distribution system includes the exact graphical state of the plurality of distribution feeders at the historical moment.
[0041] 21) The method according to 19), wherein the state of the power distribution system includes the exact graphical state of a subset of the distribution feeders at the historical moment.
[0042] 22) The method according to 18), wherein the FHDN allows answering the query at the historical moment without full network instantiation of the power distribution system at the historical moment.
[0043] 23) The method according to 19), wherein (1) the plurality of nodes and edges and (2) the time series are associated with the plurality of distribution feeders and the connected nodes and branches within each feeder.
[0044] 24) The method according to 23), wherein the time series of the selected node or edge includes the time of adding or removing the selected node or edge within the network.
[0045] 25) The method according to 24), wherein the addition or removal of the selected node or edge corresponds to the opening or closing of a circuit breaker switch within the distribution system, wherein the circuit breaker switch is associated with the selected edge.
[0046] 26) The method according to 23), wherein the query includes a query of the electrical configuration of one or more selected distribution feeders at any given moment.
[0047] 27) The method according to 26), wherein the exact state of the one or more selected distribution feeders at any given moment is queried using a graph search algorithm by searching only for the nodes and edges included in the one or more selected feeders.
[0048] 28) The method according to 27), wherein the graph search algorithm is configured to query the state of the nodes and edges included in the selected distribution feeders only on an as-needed basis.
[0049] 29) The method according to 28), wherein the graph search algorithm is not configured to query the nodes and edges included in other unselected distribution feeders.
[0050] 30) The method according to 1), wherein the FHDN is stored in a two-dimensional matrix including a plurality of rows and columns, wherein each row of the plurality of rows represents one of the plurality of nodes, wherein each column of the plurality of columns represents one of the plurality of edges, and wherein the entry at the row and column in the two-dimensional matrix indicates whether the edge represented by the column is connected to the node represented by the row.
[0051] 31) The method according to 30), wherein the entry is a time series.
[0052] 32) The method according to 1), wherein the FHDN is stored in a graph database.
[0053] 33) The method according to 32), wherein the graph database includes a plurality of pointers between the plurality of nodes, wherein each pointer represents one of the plurality of edges.
[0054] 34) The method according to 33), wherein the plurality of pointers includes bidirectional pointers.
[0055] 35) The method according to 33), wherein the plurality of pointers includes unidirectional pointers.
[0056] 36) The method according to 1), wherein the plurality of nodes and the plurality of edges include labels or attributes.
[0057] 37) The method according to 1), wherein the plurality of edges includes weights, and the weights indicate the strength of the connection or relationship between nodes.
[0058] 38) The method according to 1), wherein the system includes a bill of materials of any manufacturing company.
[0059] 39) The method according to 1), wherein the system includes a supply chain distribution network.
[0060] 40) The method according to 1), wherein the system includes a social network having a plurality of users.
[0061] 41) The method according to 1), wherein the system is a molecule including a plurality of atoms and a plurality of bonds, wherein the plurality of nodes represent the plurality of atoms, and wherein the plurality of edges represent the plurality of bonds.
[0062] 42) The method according to 1), wherein the system is an oil and gas processing pipeline including drilling assets, refining assets, and pipeline assets, wherein the plurality of nodes represent the drilling assets and the pipeline assets, and wherein the plurality of edges represent the pipeline assets.
[0063] 43) The method according to 1), wherein the system is a biological neural network including neurons and their connections.
[0064] 44) The method according to 1), wherein the system is a road network.
[0065] 45) The method according to 1), wherein the FHDN is constructed without periodically capturing and storing snapshots of the system at different points in time.
[0066] 46) The method according to 1), wherein constructing the FHDN of the system includes generating data objects representing the plurality of nodes, the plurality of edges, and the time series.
[0067] 47) A system for determining the historical state of a system, the system comprising: a data aggregation component for continuously obtaining data about the system from a plurality of different data sources; and A network drawing component, the network drawing component being configured to: - Construct a full - history dynamic network (FHDN) of the system using the data, where the FHDN includes (1) a plurality of nodes that can change dynamically, (2) a plurality of edges connecting the nodes, where the plurality of edges can change dynamically, and (3) a time series associated with each of the plurality of nodes and the plurality of edges, where the time series indicates the change in the state of the plurality of nodes and the plurality of edges over time, and where constructing the FHDN does not require capturing and storing snapshots of the system at different time points; and - Respond to a query of the FHDN for a historical moment by providing the state of the system for that historical moment.
[0068] 48) A non - transitory computer - readable medium storing instructions that, when executed by one or more servers, cause the one or more servers to perform a method, the method including: Obtain data about a system from a plurality of different data sources; Construct a full - history dynamic network (FHDN) of the system using the data, where the FHDN includes (1) a plurality of nodes that can change dynamically, (2) a plurality of edges connecting the nodes, where the plurality of edges can change dynamically, and (3) a time series associated with each of the plurality of nodes and the plurality of edges, where the time series indicates the change in the state of the plurality of nodes and the plurality of edges over time, and where constructing the FHDN does not require capturing and storing snapshots of the system at different time points; and Respond to a query of the FHDN for a historical moment by providing the state of the system for that historical moment. Incorporation by Reference
[0069] All publications, patents, and patent applications mentioned in this specification are incorporated herein by reference as if each individual publication, patent, or patent application was specifically and individually indicated to be incorporated by reference. To the extent that the publications and patents or patent applications incorporated by reference conflict with the disclosure contained in this specification, this specification is intended to supersede and / or take precedence over any such conflicting material. Brief Description of the Drawings
[0070] The novel features of the present invention are set forth specifically in the appended claims. The features and advantages of the present invention can be better understood by reference to the following detailed description, which sets forth exemplary embodiments that utilize the principles of the present invention as well as the accompanying drawings (also referred to as "drawings" and "figures"), where: Figure 1 An example of a diagram showing a Full History Dynamic Network (FHDN); Figure 2 An example of a diagram showing a dynamic network at time t; and Figure 3 An example showing multiple snapshots at different times. Detailed Description
[0071] Although various embodiments of the present invention have been shown and described herein, it will be readily apparent to those skilled in the art that these embodiments are provided by way of example only. Many variations, modifications, and substitutions can be contemplated by those skilled in the art without departing from the present invention. It should be understood that various alternatives to the embodiments of the present invention described herein can be employed.
[0072] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which the claimed subject matter belongs. It should be understood that the foregoing general description and the following detailed description are exemplary and explanatory only and do not limit any claimed subject matter. In this application, the use of the singular includes the plural unless otherwise expressly stated.
[0073] In this specification, any percentage range, ratio range, or integer range should be understood to include any integer value within the stated range, and, where appropriate, fractions thereof (e.g., tenths and hundredths of an integer), unless otherwise indicated. It should be understood that the terms "a" and "an" as used herein refer to "one or more" of the recited components, unless the context otherwise indicates or requires. The use of alternatives (e.g., "or") should be understood to refer to one of the alternatives, both, or any combination thereof. As used herein, the terms "comprises" and "comprising" are used synonymously.
[0074] The term "about" or "approximately" can mean within an acceptable error range of a particular value, as determined by one of ordinary skill in the art, which will depend in part on how the value is measured or determined, e.g., the limitations of the measuring system. For example, in accordance with the practice in the art, "about" can mean plus or minus 10%. Alternatively, "about" can represent a range of plus or minus 20%, plus or minus 10%, plus or minus 5%, or plus or minus 1% of a given value. Where a particular value is described in this application and in the claims, unless otherwise stated, it should be assumed that the term "about" means that particular value within an acceptable error range. Similarly, where a range and / or sub-range of values is provided, the range and / or sub-range can include the endpoints of the range and / or sub-range.
[0075] Introduction This paper presents a new paradigm for storing and querying a Full-History Dynamic Network (FHDN). The FHDN allows users to query the network state at any point in history. By using the FHDN, snapshots of the graph can be reconstructed "on demand", and the full network can be generated at a given point in time without explicitly storing the snapshots in a database. The FHDN allows users to instantaneously answer queries about the graph without instantiating the full graph at that time. For example, a common query in a power distribution system is to query the exact electrical configuration of a power distribution feeder at a given time. The full network may contain thousands of power distribution feeders, but the FHDN allows users to query the state of the power distribution feeder of interest at any time using a graph search algorithm by only searching for the nodes and edges in the power distribution feeder of interest.
[0076] The FHDN can operate by creating a graph that includes all the nodes and edges that have ever existed in the network at any point in time. Each edge and node can include a time series that indicates the time at which the node or edge in the network was changed (e.g., added or removed). The change can include a topological change, such as adding or removing an edge or a node. In some cases, the change can also include a change in the attributes or characteristics (e.g., weight) of an edge or a node. In the case of an energy distribution system, for example, corresponding to the opening or closing of a circuit breaker switch, an edge can be added or removed multiple times. To reconstruct the graph at a given time, the user can traverse all the nodes, search for the time series (e.g., using binary search to find the nodes and edges with a large number of events), and generate the graph corresponding to the network at that time. Any analysis that requires searching on the graph (e.g., finding connected components) can be run using an iterative graph search algorithm that only checks the state of the nodes or branches as needed. If the analysis requires information about a small subset of nodes at a given time, the FHDN data structure can be directly queried to evaluate the result of this analysis without processing any unnecessary nodes. Since most of the FHDN is small enough to be stored in memory, at any given time, blocking techniques can be employed to cache the entire connected region of the graph in memory, allowing users to quickly perform these searches, occasionally only needing to load a portion of the graph from memory.
[0077] Computer - implemented Method In one aspect, a computer-implemented method for determining the historical state of a dynamic network can include: continuously obtaining data associated with a system from a plurality of different data sources; using the data to construct a full-history dynamic network (FHDN) of the system; and providing the system state at a historical moment in response to a query of the FHDN at the historical moment.
[0078] A dynamic network may be a network that changes over time. For a dynamic network, the network topology may change over time. For example, nodes and / or edges may be formed and removed over time. Dynamic networks can include, for example, local area networks, mobile ad-hoc wireless networks, communication networks, social networks, energy distribution networks, the web, and transportation networks. Dynamic networks can be driven by adversarial models, stochastic models, or game theory models.
[0079] Data sources can include data from sensors or smart devices (e.g., appliances, smart meters, wearable devices, monitoring systems, data storage, customer systems, billing systems, financial systems, crowd-sourced data, weather data, social networks, or any other sensors, enterprise systems, or data storage). Examples of smart meters or sensors can include meters or sensors located at the customer site, or meters or sensors located between the customer and the generation or source location. For example, user meters, grid sensors, or any other sensors on the grid can provide measurement data or other information to the grid operator. Sensors can also include, but are not limited to, geophones, hydrophones, fringing sensors, microphones, seismographs, sound locators, air flow meters, AFR sensors, blind spot monitors, defect detectors, Hall effect sensors, wheel speed sensors, airbag sensors, coolant temperature sensors, fuel level sensors, fuel pressure sensors, light sensors, MAP sensors, oxygen sensors, oil level sensors, breath analyzers, carbon dioxide sensors, carbon monoxide sensors, electrochemical gas sensors, hydrogen sensors, current sensors, Daly detectors, electroscopes, magnetic anomaly detectors, MEMS magnetic sensors, metal detectors, radio direction finders, voltage detectors, photometers, air pollution sensors, ceilometers, gas detectors, humidifiers, vane sensors, rain gauges, rain sensors, snow gauges, soil moisture sensors, flow meters, tide gauges, mass flow sensors, water meters, cloud chambers, neuron detectors, air speed indicators, depth gauges, magnetic compasses, steering coordinators, flame detectors, photodiodes, wavefront sensors, barometers, pressure sensors, level sensors, viscometers, bolometers, colorimeters, thermometers, proximity sensors, reed switches, and biosensors. By combining data from various sources, the system may be able to perform complex and detailed analyses, resulting in greater business insights. Data sources can include, but are not limited to, sensors or databases from other industries and systems.
[0080] Data sources can include a large number of sensors, smart devices, or equipment for any type of industry. Data sources can include systems, nodes, or devices in a computing network, or other systems used by enterprises, companies, customers, or other entities. In one embodiment, the data source can include a database of customer or company information. The data source can include data stored in an unstructured database or format, such as the Hadoop Distributed File System (HDFS). The data source can include data stored by customer systems such as a Customer Information System (CIS), a Customer Relationship Management (CRM) system, or a call center system. The data source can include data stored or managed by enterprise systems such as an accounting system, a financial system, a Supply Chain Management (SCM) system, an asset management system, and / or a workforce management system. The data source can include data stored or managed by operating systems such as a Distributed Resource Management System (DRMS), a Document Management System (DMS), a Content Management System (CMS), an Energy Management System (EMS), a Geographic Information System (GIS), a Globalization Management System (GMS), and / or a Supervisory Control and Data Acquisition (SCADA) system. The data source can include data related to device events. Device events can include, for example, device failures, restarts, interruptions, tampering, etc. The data source can include social media data, such as data from Facebook®, LinkedIn®, Twitter®, or other social networks or social network databases. The data source can also include other external sources, such as data from weather services or websites and / or data from online application programming interfaces (APIs), such as data provided by Google®. The data source can include external databases.
[0081] The Full History Dynamic Network (FHDN) can contain the entire history of a dynamic network. For example, the FHDN can include, at any time in the history of a dynamic network, the nodes, edges, and the relationships between nodes and edges of the dynamic network. For example, if a dynamic network was created in 2010, the FHDN may contain all the edges, all the nodes, and the time series that have ever existed in the dynamic network since 2010. Additionally, the FHDN may also contain information on how all the edges and all the nodes in the dynamic network have changed over time. The FHDN can be configured to store and query information about the dynamic network. The FHDN can be configured to query the system state at any time in the dynamic network history.
[0082] The FHDN can include (1) a plurality of nodes that can change dynamically, (2) a plurality of edges that connect the nodes and that can change dynamically, and (3) a time series associated with each of the plurality of nodes and edges.
[0083] A given node among multiple nodes can be a reallocation point or a communication endpoint. If the network is a physical network, the node can be an active electronic device attached to the network. In this case, the node may be able to create, receive, or transmit information on a communication channel. A physical network node can be a data communication device (DCE) such as a modem, hub, bridge, or switch, or a data terminal device (DTE) such as a digital telephone handset, printer, or host computer. If the network is a local area network (LAN) or a wide area network (WAN), each LAN or WAN node that is at least a data link layer device can have a network address, typically the address of each network interface controller it possesses. Examples of nodes in a physical network can include computers, packet switches, xDSL modems (with an Ethernet interface), and wireless LAN access points. If the network is the Internet or an intranet, the physical network node can be a host identified by an IP address.
[0084] In a fixed telephone network, the node can be a public or private telephone switch, a remote concentrator, or a computer providing certain intelligent network services. In cellular communication, examples of nodes can include switching points and databases, such as base station controllers, home location registers, gateway GPRS support nodes (GGSNs), and serving GPRS support nodes (SGSNs). In a cable television system (CATV), the nodes can include fiber nodes. A fiber node can be a home or business served by a common fiber optic receiver within a specific geographical area. If the network is a distributed system, the nodes can be clients, servers, or peer nodes.
[0085] A given edge among multiple edges can be one of the connections between two nodes (or vertices) of a network. Edges can be directed, which means they point from one node to another. In this case, the two nodes connected by a directed edge can be in a one-way relationship. A one-way relationship can enable one node to send information to another node but not receive any information from the other node. Edges can also be undirected, in which case they are two-way. In this case, the two nodes connected by a directed edge can be in a two-way relationship. A two-way relationship can enable one node to send information to another node and also receive any information from the other node. In some cases, nodes may not send information to each other.
[0086] A time series can be a sequence of data points arranged in chronological order. The time series can be a sequence obtained at consecutive equally-spaced time points. The time series can include a sequence of discrete-time data. The time series can indicate when a node or an edge changes, e.g., when a node or an edge is added, removed, activated, deactivated, or connected or disconnected from another node. Alternatively or additionally, the time series can indicate time-varying characteristics of a node or an edge. In the case of a power distribution network, the nodes can be, for example, power plants, transmission substations, distribution feeders, transformers, circuit breakers, and users. The edges can be transmission lines and other wires connecting these nodes. The time series can indicate, for example, when a power plant is online or offline, or when a circuit breaker is open or closed. The time series can additionally indicate, for example, the power output of a power plant over time. In the case of a social network, the nodes can be enterprises and people having profiles on the social network. The edges can be relationships between these companies and people (e.g., friends, followers, etc.). The time series can indicate when a relationship on the social network starts or ends. The time series can additionally indicate, for example, how the attributes of an enterprise or a person in the social network change over time (e.g., how a person's relationship status, occupation, or location changes over time). In the case of a supply chain distribution network, the nodes can be supplier factories, assembly factories, regional distribution centers, local distribution centers, and customer locations. The nodes can be roads, railways, waterways, and flight paths connecting the nodes in the supply chain network. The time series can indicate, for example, whether a factory is operating at a particular time and whether a road or a railway is open at a particular time.
[0087] Time series may represent nodes and edges that change dynamically in an FHDN. Such changes may be systematic or non-systematic. If the change is systematic, the time series can be obtained at systematic time intervals. If the change is non-systematic, the time series can be obtained at non-systematic time intervals. For example, the time series can first be obtained every 1 s for a 1-minute time period and then every 10 s for a 10-hour time period. In some cases, although the system can be monitored continuously or periodically for changes in nodes and edges, the time series entries may only be stored in memory when an actual change in nodes and edges occurs. This can reduce the amount of memory required to store the FHDN. A query on the FHDN can include a request for information from the FHDN. The query can include a request for the state of the dynamic network at a historical moment. The query can be posed by selecting parameters from a menu in which the database system presents a list of parameters that the user can select. The query can also be posed by an example query, in which the system presents a blank record and allows the user to specify the fields and values that define the query. These fields or values can specify the historical moment directly or indirectly. For example, the field or value can specify a change that occurred at a particular node. The query can be posed in a query language in which the user requests information in the form of a stylized query that must be written in a special query language.
[0088] Figure 1 An example of a graph of an FHDN is shown. In Figure 1 this, the FHDN 100 includes a plurality of nodes 102 capable of dynamic change, a plurality of edges 104 connecting the nodes and capable of dynamic change, and time series associated with each of the plurality of nodes 106 and edges 108. The FHDN can contain all the nodes and edges that have ever existed in the dynamic network. The time series 106 of a node can be T1 = [A, I, A, A, A,...], which represents that at a specific time interval, the change of the node over time is "active, inactive, active, active, active,...". The time series 108 of an edge can be T2 = [A, I, I, A, A,...], which represents that at a specific time interval, the change of the edge over time is "active, inactive, inactive, active, active,...". Figure 2 An example of a graph of the dynamic network at time t is shown. In Figure 2 this, the dynamic network 200 includes a plurality of nodes 202 (shaded) that are activated at time t and a plurality of active edges 204 (represented by solid lines) that connect the nodes activated at time t. At time t, the remainder of the nodes 206 (not shaded) and the remainder of the edges 208 (represented by dashed lines) are not activated.
[0089] At a historical moment, the state of the system can include the graphical state of the entire network in an operating state. The historical moment can be any time in the history of a user-defined dynamic network. For example, the historical moment can be a point in time in the history of the dynamic network (e.g., 10:00 am on August 12, 2000), a time period in the history of the dynamic network (e.g., between 1:00 am and 12:00 pm on October 11, 1980), or a combination thereof. The graphical state can include a graph structure, which can be a graphical representation of data involving relationships (edges) between nodes. A graph can be an ordered pair including a set of nodes and a set of edges. A node can be a set, along with an incidence relationship associated with each edge connecting two nodes.
[0090] Graphs can be used to model many types of relationships and processes. For example, in computer science, graphs can be used to represent communication networks, data organization, computing devices, computational processes, etc. In one example, the link structure of a website can be represented by a directed graph, where nodes represent web pages and directed edges represent links from one page to another. Another example is in chemistry, where graphs can be used to build natural models of molecules - nodes represent atoms and edges represent bonds. In statistical physics, graphs can represent local connections between interacting parts of a system, as well as the dynamics of physical processes on such systems. Similarly, in computational neuroscience, graphs can be used to represent functional connections between brain regions that interact to produce various cognitive processes, where nodes represent different regions of the brain and edges represent connections between these regions. Graphs can be used to represent microscale channels in porous media, where nodes represent pores and edges represent smaller channels connecting the pores. In biology, nodes can represent regions where certain species (or habitats) exist, and edges represent migration paths or movements between regions. The graph can also be applied to social media, travel, computer chip design, mapping the progression of neurodegenerative diseases, and problems in many other fields. In the case of travel, the systems and methods described herein can be used to create a FHDN of a travel network (e.g., roads, waterways, flight paths, etc.). Nodes can represent different destinations (e.g., cities) in the travel network, and edges can represent different paths between these destinations. Edges can be weighted by distance or travel time. A time series in the FHDN can indicate whether a particular path is open at a particular time (e.g., whether a particular road is passable or a particular flight is available). The FHDN of a travel network can be used to determine the best route (e.g., the fastest or shortest route) from one destination to another.
[0091] In the case of computer chip design, the systems and methods described herein can be used to create a FHDN of a computer chip, which can be used to analyze component failures over time and subsequently predict future failures.
[0092] In the case of neurodegenerative diseases, the systems and methods described herein can be used to create a FHDN of the human brain. The nodes of the FHDN can represent neurons in the brain, and the edges can be the connections between neurons. The time series can indicate whether a particular neuron has been adversely affected by the progression of the disease. Creating a FHDN of a patient's brain can help doctors predict and prevent the progression of the disease in other patients.
[0093] The systems and methods described herein can also be used to create a FHDN of oil and gas processing pipelines. Oil and gas processing pipelines may include drilling assets, refining assets, and pipeline assets (e.g., pumps, compressors, heat exchangers, and valves). The nodes in the FHDN can represent the drilling and refining assets, and the edges can represent the pipeline assets. The time series can indicate whether certain assets are operational at certain times and can also indicate the capacity or output of these assets over time.
[0094] The graph structure can be extended by assigning weights to each edge of the graph. A graph with weights or a weighted graph can be used to represent a structure in which pairwise connections have some numerical value. For example, if the graph represents a road network, the weights can represent the length of each road. There may be multiple weights associated with each edge, including distance (as in the previous example), travel time, or monetary cost. The graph structure can also be extended by assigning time series to each edge and node of the graph. A graph with time series can be used to represent a structure in which pairwise connections have some value that changes over time. For example, if the graph represents a road network, the time series can represent the traffic flow on each road over time. The weights can alternatively or additionally represent the relationship between nodes or the strength of the connection.
[0095] The graph can be stored in a computer system. The data structure used to store the graph can depend on the graph structure and the algorithms used to manipulate the graph. The data structure can include a list structure, a matrix structure, or a combination of both. The list structure can be used for sparse graphs because they have smaller memory requirements. The matrix structure can provide faster access for certain applications but consumes a large amount of memory. Different list structures and matrix structures can include adjacency lists, adjacency matrices, and incidence matrices. For an adjacency list, the nodes can be stored as records or objects, and each vertex can store a list of adjacent vertices. This data structure can allow additional data to be stored on the nodes. For an adjacency matrix, a two-dimensional matrix can be used, where the rows represent the source nodes, the columns represent the destination nodes, and the data on the edges and nodes can be stored externally. For an incidence matrix, a two-dimensional boolean matrix can be used, where the rows represent the nodes, the columns represent the edges, and the entries can indicate whether the vertex at the row is incident to the edge at the column. The entry can be a time series indicating whether the vertex at the row is incident to the edge at the column at any given moment.
[0096] The provided FHDN can be used as the graph structure of a graph database. Data objects can be stored in the graph database in the form of FHDNs. A graph database can be a database that uses a graph structure for queries with nodes, edges, and attributes to represent and store data. In one embodiment, each element contains a direct pointer to its adjacent elements and no index lookups are required. The key concept of the system may be the graph (or edge or relationship), which directly associates data items in the store. These relationships can allow the data in the store to be directly linked together and, in many cases, retrieved with a single operation. The pointers can be unidirectional or bidirectional.
[0097] Graph databases can allow for simple and fast retrieval of complex hierarchies that are difficult to model in relational systems. The storage mechanisms of graph databases can include a dependency engine and a mechanism for "storing" graph data in tables, or a mechanism that uses a key-value store or a document-oriented database for storage, making them inherently NoSQL in structure. Some graph databases based on non-relational storage engines can also add the concept of labels or attributes, which are essentially relationships with pointers to another document. Retrieving data from a graph database may require a query language. Certain graph databases can be accessed through an application programming interface (API).
[0098] Graph databases can adopt a graph structure including nodes, edges, and attributes. This graph structure can be the FHDN as described elsewhere in this document. For example, a time series indicating the change time of a node or edge can be recorded along with the node or edge. Nodes can represent entities such as people, enterprises, accounts, or any other item to be tracked. Edges may be lines connecting nodes to other nodes, and they may represent the relationships between them. Edges may represent abstractions not directly implemented in the system. Attributes can be metadata or data about a node. For example, in the case of a social network with a person as a node, attributes can include demographic or personal information about the person (such as age, gender, employer, school, location, etc.). The methods disclosed herein can include external graph databases. External graph databases can include AllegroGraph, AnzoGraph, ArangoDB, DataStax, InfiniteGraph, Marklogic, Microsoft SQL Server, Neo4j, OpenLinkVirtuoso, Oracle Spatial and Graph, OrientDB, SAP HANA, Sparksee, SqrrlEnterprise, Teradata Aster, or other similar types of databases.
[0099] The state of the system may include a graphical state of a subset of the network at a historical moment. The graphical state may include all nodes and edges requested by a query at a historical moment defined by a user of the dynamic network. All nodes and edges requested by a query at a historical moment defined by a user may be a subset of the network. All nodes and edges requested by a query at a historical moment defined by a user may be the entire network. A subset of the network may include a subset of nodes of the entire network, a subset of edges, and / or a subset of time series. A subset of the network may include at least about 4%, 5%, 6%, 7%, 8%, 9%, 10%, 15%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90% or more of the nodes of the entire network. In other cases, a subset of the network may include at most about 90%, 80%, 70%, 60%, 50%, 40%, 30%, 20%, 15%, 10%, 9%, 8% or less of the nodes of the entire network. A subset of the network may include at least about 4%, 5%, 6%, 7%, 8%, 9%, 10%, 15%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90% or more of the edges of the entire network. In other cases, a subset of the network may include at most about 90%, 80%, 70%, 60%, 50%, 40%, 30%, 20%, 15%, 10%, 9%, 8% or less of the edges of the entire network. A subset of the network may include at least about 4%, 5%, 6%, 7%, 8%, 9%, 10%, 15%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90% or more of the time series of the entire network. In other cases, a subset of the network may include at most about 90%, 80%, 70%, 60%, 50%, 40%, 30%, 20%, 15%, 10%, 9%, 8% or less of the time series of the entire network.
[0100] An FHDN can be constructed without periodically capturing and storing network snapshots at different time points.
[0101] A snapshot may include the state of the system at a particular time point. Figure 3 An example of multiple snapshots of a dynamic network at different times is shown. In Figure 3 a time series of snapshots of a dynamic network for times t = 1 to t = 6 is shown. Dashed edges indicate no relationship and solid edges indicate a relationship. For example, (1, 2) has no relationship at t = 1 and (2, 4) has no relationship at t = 6.
[0102] The historical dynamic behavior of the FHDN can be determined without analyzing a sequence of network snapshots captured at different time points. The historical dynamic behavior can include changes in the FHDN at user-defined historical moments. The historical dynamic behavior can include changes in the FHDN over a user-defined time period. To determine the historical dynamic behavior of the FHDN without analyzing a sequence of network snapshots captured at different time points, a time series can be obtained and used together with information about the nodes and edges in the dynamic network. In this case, it may not be necessary to replicate information about the nodes and edges across snapshots.
[0103] The FHDN can allow queries about historical moments to be answered without full network instantiation at the historical moment. Instantiation can be the creation of a real instance or a specific implementation of an abstraction or template (such as a class of objects or a computer process). To answer queries about historical time postures without full network instantiation at the historical moment, a time series can be obtained and used together with information about the nodes and edges in the dynamic network. In this case, only the time series, nodes, and edges relevant to the query can be searched for and obtained, while time series, nodes, and edges irrelevant to the query do not need to be searched / processed. In some cases, specific time series, nodes, and edges can be inferred from other time series, nodes, and edges. For example, the state of a corresponding node can be inferred from the node and the edges adjacent to the corresponding node. Inferring the state of the node may be necessary when data about the node is lost, for example, due to sensor failure or other connectivity issues.
[0104] The multiple nodes and edges can include: (1) all nodes and edges that previously existed in the network at a given time after starting to collect data about the network; and (2) all nodes and edges that currently exist in the network. In other embodiments, the multiple nodes and edges include: (1) all nodes and edges that previously existed in the network at any given time; (2) all nodes and edges that currently exist in the network; and (3) all nodes and edges that will exist in the network. The number of all nodes can be at least 1, 10, 50, 100, 200, 300, 400, 500, 1000, 10000, 100000, 1000000, 10000000, 100000000, 1000000000 or greater. The number of all nodes is at most 1000000000, 100000000, 10000000, 1000000, 100000, 10000, 1000, 500, 400, 300, 200, 100, 50, 10 or less. The number of edges can be comparable to the number of nodes, or the number of edges can be greater than the number of nodes. In some cases, the number of edges can be less than the number of nodes.
[0105] A time series can be based on events or changes that occur at selected nodes or edges. In some cases, the events or changes may include topological changes. Alternatively or additionally, the change can include a change in the characteristics or properties of an edge or node (e.g., weight, directionality). The events or changes can include selecting a node, deselecting a node, selecting an edge, and deselecting an edge. The time series of the selected node or edge can include the exact time of addition or removal of the selected node or edge in the network. The time series of the selected node or edge can include the exact time of addition, removal, and modification of the selected node or edge in the network. The time series can be obtained at systematic or non-systematic time intervals. The systematic time interval can be at least every 0.1 microseconds (µs), 1 µs, 10 µs, 100 µs, 1 millisecond (ms), 10 ms, 100 ms, 1 second (s), 2 s, 3 s, 10 s, 30 s, 60 s, 2 minutes (m), 3 m, 4 m, 5 m, 10 m, or greater. In some embodiments, the systematic time interval can be at most every 10 m, 5 m, 4 m, 3 m, 2 m, 1 m, 30 s, 10 s, 3 s, 2 s, 1 s, 100 ms, 10 ms, 1 ms, 100 µs, 10 µs, 1 µs, 1 µs, or less. For non-systematic time intervals, the time series can first be obtained in a first time period at a first time, and then in a second time period at a second time. For example, the time series can first be obtained every 1 s in a first time period of 1 minute, and then every 10 s in a second time period of 10 hours.
[0106] The time series can be stored in a storage including a high-throughput distributed key-value data store. The distributed key / value store can provide reliability and scalability and has the ability to store large data sets and operate with high reliability. The key / value store can also be optimized by strictly controlling the trade-off between availability, consistency, and cost-effectiveness. The data persistence process can be designed to utilize elastic compute nodes, and scaling out requires additional processing to keep up with the arrival rate of messages reaching the distributed queue. The storage can include a variety of database types. For example, a distributed key-value data store may be ideal for handling time series and other unstructured data. The key-value data store can be designed to handle large amounts of data on many commodity servers and can provide high availability without a single point of failure. A relational data store can be used to store and query business types with complex entity relationships. A multi-dimensional data store can be used to store and access aggregations including aggregated data from multiple different data sources or data stores.
[0107] The system state at a historical moment can be obtained by using a search algorithm that iterates over multiple nodes and searches a time series. The number of multiple nodes may not be all the nodes that have ever existed in a dynamic network. In other cases, the number of multiple nodes may be all the nodes that have ever existed in a dynamic network.
[0108] The system state at a historical moment can be obtained by using a search algorithm that iterates over multiple edges and searches a time series. The number of multiple edges may not be all the edges that have ever existed in a dynamic network. In other cases, the number of multiple edges may be all the edges that have ever existed in a dynamic network.
[0109] The search algorithm can be any algorithm that solves a search problem to retrieve information stored within a data structure or computed within the search space of a problem domain. Examples of search algorithms can include, but are not limited to, linked lists, array data structures, or search trees. The appropriate search algorithm may depend on the data structure to be searched and prior knowledge about the data. The search may include algorithms that query the data structure, such as the SQL SELECT command.
[0110] The search algorithm can include a linear search algorithm, a binary search algorithm, a jump search algorithm, an interpolation search algorithm, an exponential search algorithm, a sublist search algorithm, a comparison search algorithm, and a digital search algorithm. The linear search algorithm can check each record associated with a target keyword in a linear manner. The binary search algorithm can repeatedly target the center of the search structure and divide the search space into two halves. The comparison search algorithm can improve the linear search by continuously removing records based on keyword comparisons until the target record is found. The comparison search algorithm can be applied to the data structure in a defined order. The digital search algorithm can work based on the properties of numbers in a data structure that uses numeric keys.
[0111] The search algorithm can include an iterative graph search algorithm that is configured to check the status of selected nodes or edges only on an as-needed basis. The graph search algorithm can specify the order of the nodes of the search graph. The graph search algorithm can be, for example, a connected component search such as a depth-first search or a breadth-first search. For example, the graph search algorithm can start from a source node and search until a target node is found, then the frontier can include the nodes that have not been explored yet, and in each iteration, a node can be removed from the frontier and its neighbors can be added to the frontier. The user can set the basis as needed. For example, if the analysis requires information about a small subset of nodes at a given time, the FHDN data structure can be directly queried to evaluate the result of this analysis without touching any unnecessary nodes. Unnecessary nodes can be nodes that are not relevant to the query. Unnecessary nodes can include at least about 4%, 5%, 6%, 7%, 8%, 9%, 10%, 15%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90% or more of all the nodes in the FHDN. In other cases, unnecessary nodes can include at most about 90%, 80%, 70%, 60%, 50%, 40%, 30%, 20%, 15%, 10%, 9%, 8% or less of all the nodes in the FHDN.
[0112] The query can include a request for information about a subset of nodes at a given time. The query can include a request for information about a subset of edges at a given moment. The query can include a request for information about a subset of nodes and edges at a given moment. The query can include a request for information about a subset of nodes at multiple given times. The query can include a request for information about a subset of edges at multiple given times. The query can include a request for information about a subset of nodes and edges at multiple given times.
[0113] The search algorithm can be configured to directly query only a subset of nodes without querying other unnecessary nodes. This can shorten the response time and enable more targeted / focused queries. In some cases, the subset of nodes / edges to be queried to reproduce a graph can be nodes / edges with frequent event changes. For example, nodes or edges with a number of changes greater than a threshold can be queried. In another example, nodes with a greater number of changes are queried before nodes or edges with a smaller number of changes. The search algorithm can be configured to query only and indirectly a subset of nodes, without querying other unnecessary nodes. The search algorithm can be configured to query only and directly a subset of nodes, without querying other unnecessary edges. The search algorithm can be configured to query only and indirectly a subset of nodes, without querying other unnecessary edges. The search algorithm can be configured to query only directly a subset of nodes, without querying other unnecessary nodes and edges. The search algorithm can be configured to query only and indirectly a subset of nodes, without querying other unnecessary nodes and edges. Unnecessary nodes and edges can be nodes and edges irrelevant to the query. Unnecessary nodes can include at least about 4%, 5%, 6%, 7%, 8%, 9%, 10%, 15%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90% or more of all nodes in the FHDN. In other cases, unnecessary nodes can include at most about 90%, 80%, 70%, 60%, 50%, 40%, 30%, 20%, 15%, 10%, 9%, 8% or less of all nodes in the FHDN. Unnecessary edges can include at least about 4%, 5%, 6%, 7%, 8%, 9%, 10%, 15%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90% or more of all edges in the FHDN. In other cases, unnecessary edges can include at most about 90%, 80%, 70%, 60%, 50%, 40%, 30%, 20%, 15%, 10%, 9%, 8% or less of all edges in the FHDN.
[0114] The method can further include caching one or more connected graph regions of the FHDN in a memory at any given time using a blocking technique. The memory can be volatile RAM or non-volatile memory. Volatile RAM can be implemented as dynamic RAM (DRAM), which continuously requires power to refresh or maintain data in the memory. Non-volatile memory can be a magnetic hard disk drive, a magneto-optical drive, an optical drive (such as a DVD RAM), or other types of storage systems that retain data even after power is removed from the system. Non-volatile memory can also be random access memory. Non-volatile memory can be a local device directly coupled to the rest of the components in the data processing system. Non-volatile memory located away from the system can also be used, such as a network storage device coupled to any of the computer systems described herein through a network interface such as a modem or an Ethernet interface.
[0115] Blocking techniques can include standard blocking, token blocking, or attribute clustering blocking. Blocking techniques can help avoid memory bandwidth bottlenecks in many applications. Blocking techniques can exploit data reuse inherent in an application by ensuring that data is retained in the cache across multiple uses. Blocking techniques can be performed on 1-D, 2-D, or 3-D spatial data structures. Some iterative applications can further benefit from blocking multiple iterations to further alleviate the bandwidth bottleneck. Blocking techniques can include a combination of loop splitting and interchange. Cache blocking may be a technique of rearranging data access to pull a subset (block) of data into the cache and operate on this block to avoid repeated fetches from the main memory.
[0116] Caching one or more connected graph regions in memory can allow for faster search execution compared to traditional network drawing techniques. A connected graph region may refer to a connected region of a graph that does not contain unreachable vertices / nodes. For example, a connected region of a graph can be loaded into the cache and retained for multiple uses. Caching one or more connected graph regions in memory can make search execution 5 - 65 times faster, or even more, compared to conventional network drawing techniques.
[0117] The use of FHDN can save several orders of magnitude in memory / storage compared to traditional network drawing techniques. Compared to traditional network drawing techniques, the storage requirements can be reduced by at least three orders of magnitude. Compared to traditional network drawing techniques, the storage requirements can be reduced by 1 to 10, 2 to 9, 3 to 8, 4 to 7, 5 to 6 orders of magnitude. Compared to traditional network drawing techniques, the storage requirements can be reduced by at least 3, 4, 5, 6, 7, 8, 9, 10, or more orders of magnitude. In some cases, compared to traditional network drawing techniques, the storage requirements can be reduced by at least 10, 9, 8, 7, 6, 5, 4, or fewer orders of magnitude.
[0118] Power Distribution System The system can include a power distribution system. The power distribution system can include different arrangements. The arrangement can include a radial system, an extended radial system, a radial system with primary selectivity, a primary and secondary simple radial system, a primary loop system, a secondary selectivity system, a primary selectivity system, a standby transformer system, a secondary point network, and a composite system.
[0119] The power distribution system can include multiple distribution feeders. The multiple distribution feeders can be connected to each other through multiple connections. A distribution feeder can include multiple nodes. The nodes can include power consumption devices and the power grid. A distribution feeder can include multiple edges. The edges can include wires connecting the nodes.
[0120] The state of the power distribution system can include the graphical state of multiple power distribution feeders at a historical moment. The state of the power distribution system can include the graphical state of multiple connections that connect the power distribution feeders at a historical moment.
[0121] The state of the power distribution system can include the graphical state of a subset of the power distribution feeders at a historical moment. The graphical state can include all the power distribution feeders requested by a query at a historical moment. All the power distribution feeders at a historical moment can be a subset of the power distribution system. The subset of the power distribution feeders can include at least approximately: 4%, 5%, 6%, 7%, 8%, 9%, 10%, 15%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90% or more of the power distribution feeders of the power distribution system. In other cases, the subset of the power distribution feeders can include at most approximately: 90%, 80%, 70%, 60%, 50%, 40%, 30%, 20%, 15%, 10%, 9%, 8% or less of the power distribution feeders of the power distribution system.
[0122] FHDN can allow queries at a historical moment to be answered without full network instantiation of the power distribution system at the historical moment. Instantiation can be the creation of a real instance or a specific implementation of an abstraction or template (such as a class of data objects or a computer process).
[0123] Multiple nodes and edges and time series can be associated with multiple power distribution feeders and the connected nodes and branches within each feeder. The multiple nodes and edges can include (1) all the nodes and edges that have previously existed in the power distribution feeder at any given moment, and (2) all the nodes and edges that currently exist in the power distribution feeder. In other embodiments, the multiple nodes and edges include (1) all the nodes and edges that have previously existed in the distribution feeder at any given moment, (2) all the nodes and edges that currently exist in the power distribution feeder, and (3) all the nodes and edges that will exist in the power distribution feeder.
[0124] The time series can include the exact time of addition or removal of selected nodes or edges in the power distribution feeder. The time series can include the exact time of addition, removal or modification of selected nodes or edges in the power distribution feeder. The time series can be obtained through a system time interval or a non-system time interval. For a non-system time interval, the time series can first be obtained at the first time of the first time period and then at the second time of the second time period. For example, the time series can first be obtained every 1 s in the first time period of 1 minute and then every 10 s in the second time period of 10 hours. The addition or removal of the selected edge can correspond to the opening or closing of a circuit breaker switch within the power distribution system, where the circuit breaker switch is associated with the selected edge. The modification of the selected edge can represent a change in the power consumption of the selected edge.
[0125] The query can include a query of the exact electrical configuration of one or more selected distribution feeders at any given moment.
[0126] The status of one or more selected distribution feeders at any given moment can be queried by using a graph search algorithm by only searching for nodes and edges included in the one or more selected distribution feeders. The search algorithm can be any algorithm that solves a search problem to retrieve information stored within a certain data structure or computed within the search space of the problem domain. Examples of search algorithms include, but are not limited to, linked lists, array data structures, or search trees. Search algorithms can also include linear search algorithms, binary search algorithms, jump search algorithms, interpolation search algorithms, exponential search algorithms, sublist search algorithms, comparison search algorithms, and digital search algorithms.
[0127] The graph search algorithm may not be configured to query nodes and edges included in other unselected distribution feeders. The search algorithm can be configured to query only and directly a subset of nodes without querying other unnecessary nodes. The search algorithm can be configured to query only and indirectly a subset of nodes without querying other unnecessary nodes. The search algorithm can be configured to query only and directly a subset of nodes without querying other unnecessary edges. The search algorithm can be configured to query only and indirectly a subset of nodes without querying other unnecessary edges. The search algorithm can be configured to query only and directly a subset of nodes without querying other unnecessary nodes and edges. The search algorithm can be configured to query only and indirectly a subset of nodes without querying other unnecessary nodes and edges. Unnecessary nodes and edges can be nodes and edges that are irrelevant to the query.
[0128] FHDN can allow answering queries at historical moments in any part of the network while using only approximately 10 MB to 100 MB of storage compared to 2.1 TB using traditional mapping techniques. The amount of memory required to store FHDN is at most 40 MB, 30MB, 25 MB, 20 MB, 19 MB, 18 MB, 17 MB, 16 MB, 15 MB, 14 MB, 13.4 MB, 13 MB, 12 MB, 11 MB, 10 MB, 9 MB, 8 MB, 7 MB, 6 MB, 5 MB, 4 MB, 3 MB, 2 MB, 1 MB or less. In some cases, depending on the size, complexity, and lifespan of the system represented by FHDN, the amount of memory required to store FHDN may be larger.
[0129] Bill of Materials The system may include a bill of materials for any manufacturing company. A bill of materials (BOM) may include a list of raw materials, sub-assemblies, intermediate assemblies, sub-components, parts, and the quantity of each required to manufacture a final product. The BOM can be used for communication between manufacturing partners and can also be limited to a single manufacturing plant.
[0130] The BOM can define the designed product (engineering bill of materials), the ordered product (sales bill of materials), the manufactured product (manufacturing bill of materials), or the maintained product (service bill of materials). The different types of BOMs depend on their desired business requirements and uses. The BOM can also include a recipe, formula, or list of ingredients. In electronics, the BOM can represent a list of components used on a printed wiring board or printed circuit board.
[0131] The system may include a supply chain distribution network. The supply chain distribution network may include multiple participants (e.g., buyers or sellers). The multiple participants can be connected to each other through multiple connections. The connections can represent purchases, sales, or both purchases and sales.
[0132] The state of the supply chain distribution network can include the graphical state of the multiple participants at a historical moment. The state of the supply chain distribution network can include the graphical state of the multiple connections that connect the participants at a historical moment.
[0133] The state of the supply chain distribution network can include the graphical state of a subset of the participants at a historical moment. The graphical state can include all the participants active in the supply chain distribution network at a historical moment. All the participants at the historical moment can be a subset of the system. The subset of participants can include at least approximately: 4%, 5%, 6%, 7%, 8%, 9%, 10%, 15%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90% or more of the participants in the supply chain distribution network. In other cases, the subset of participants can include at most approximately 90%, 80%, 70%, 60%, 50%, 40%, 30%, 20%, 15%, 10%, 9%, 8% or less of the participants in the supply chain distribution network.
[0134] The FHDN can query the historical moment to be answered without fully instantiating the supply chain distribution network at the historical moment. In the supply chain distribution network, the FHDN can include multiple participants (represented by multiple nodes), multiple connections that connect the participants (represented by multiple edges), and a time series associated with each of the multiple participants and connections. The FHDN of the supply chain distribution system may include all the participants and all the connections that have ever existed in the supply chain distribution system.
[0135] Multiple nodes and edges, as well as time series, can be associated with multiple participants. The multiple nodes and edges can include (1) all nodes and edges that have previously existed in the supply chain distribution system at any given moment, and (2) all nodes and edges that currently exist in the supply chain distribution system. In other embodiments, the multiple nodes and edges include (1) all nodes and edges that have previously existed in the supply chain distribution system at any given moment, (2) all nodes and edges that currently exist in the supply chain distribution system, and (3) all nodes and edges that will exist in the supply chain distribution system.
[0136] The time series can include the exact time of addition or removal of selected nodes or edges in the supply chain distribution system. The time series can include the exact time of addition, removal, or modification of selected nodes or edges in the supply chain distribution system. In the supply chain distribution system, an addition may indicate that a participant is willing to buy or sell from / to other participants, a removal may indicate that a participant is not willing to buy or sell from / to other participants, and a modification may indicate that a participant has changed his / her position of buying or selling from / to other participants. The time series can be obtained through system time intervals or non-system time intervals. For non-system time intervals, the time series can first be obtained at a first time in a first time period and then at a second time in a second time period. For example, the time series can first be obtained every 1 s in a first time period of 1 minute and then every 10 s in a second time period of 10 hours.
[0137] By searching only for the nodes and edges that are active in the supply chain distribution network, a graph search algorithm can be used to query the state of the supply chain distribution network at a given moment. The graph search algorithm can specify the order in which the nodes of the graph are searched. The graph search algorithm can be, for example, a connected components search, such as a depth-first search or a breadth-first search. For example, the graph search algorithm can start from a source node and search until a target node is found. Then the frontier can include the nodes that have not yet been explored, and in each iteration, a node can be removed from the frontier and its neighbors can be added to the frontier. The user can set it as needed. For example, if the analysis requires information about a small subset of nodes at a given time, the FHDN data structure can be directly queried to evaluate the result of this analysis without touching any unnecessary nodes. The search algorithm can be any algorithm that solves a search problem to retrieve information stored within a certain data structure or computed within the search space of the problem domain. Example search algorithms are described elsewhere in this document. The graph search algorithm can specify the order in which the nodes of the graph are searched. The graph search algorithm can be a depth-first search algorithm, a breadth-first search algorithm, a Dijkstra algorithm, etc.
[0138] The graph search algorithm may not be configured to query unselected nodes and edges included in the supply chain allocation network. The search algorithm can be configured to query only and directly a subset of nodes and / or edges, without querying other unnecessary nodes and / or edges. The search algorithm can be configured to query only and indirectly a subset of nodes and / or edges, without querying other unnecessary nodes and / or edges. Unnecessary nodes or edges can include at least approximately: 4%, 5%, 6%, 7%, 8%, 9%, 10%, 15%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90% or more of all nodes or edges, respectively, in the FHDN. In other cases, unnecessary nodes or edges can include at most approximately: 90%, 80%, 70%, 60%, 50%, 40%, 30%, 20%, 15%, 10%, 9%, 8% or less of all nodes or edges, respectively, in the FHDN.
[0139] The FHDN can allow answering queries at any part of the supply chain allocation network at historical moments, with only a small amount of storage required. The amount of memory required to store the FHDN can be at most 40 MB, 30 MB, 25 MB, 20 MB, 19 MB, 18 MB, 17 MB, 16 MB, 15 MB, 14 MB, 13.4 MB, 13 MB, 12 MB, 11 MB, 10 MB, 9 MB, 8 MB, 7 MB, 6 MB, 5MB, 4 MB, 3 MB, 2 MB, 1 MB or less. In some cases, depending on the size, complexity, and lifespan of the system represented by the FHDN, the amount of memory required to store the FHDN may be larger.
[0140] Social Network The system can include a social network composed of multiple users. The system can include multiple social networks. The multiple social networks can be connected to each other through multiple connections. A given social network among the multiple social networks can include multiple users (represented by nodes) and multiple connections (represented by edges).
[0141] The system described herein can be used to query the state of a social network at a specific time in history. For example, such a state can be used to track demographic changes in the population on the social network. Users of the social network may also be interested in such a state so that such users can see how their social circle has grown over time. The state of the system can include the graphical state of a plurality of connected social networks at a historical moment. The state of the system can include the graphical state of a plurality of connections connecting social networks at a historical moment. The number of social networks at a historical time can be at least 1, 10, 50, 100, 200, 300, 400, 500, 1000, 10000 or more. The number of social networks at a historical time can be at most 10000, 1000, 500, 400, 300, 200, 100, 50, 10 or less. The number of connections connecting social networks at a historical moment can be at least 1, 10, 50, 100, 200, 300, 400, 500, 1000, 10000 or more. The number of connections connecting social networks at a historical moment can be at most 10000, 1000, 500, 400, 300, 200, 100, 50, 10 or less.
[0142] The state of the system can include the graphical state of a subset of the social network at a historical moment. The graphical state can include all social networks active at a historical moment. All social networks at a historical moment can be a subset of the system. The subset of the social network can include at least approximately: 4%, 5%, 6%, 7%, 8%, 9%, 10%, 15%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90% or more of the full social network of the system. In other cases, the subset of the social network can include at most approximately 90%, 80%, 70%, 60%, 50%, 40%, 30%, 20%, 15%, 10%, 9%, 8% or less of the full social network of the system.
[0143] FHDN can allow answering queries at a historical moment without instantiating the full network of the system at that historical moment. In this system, FHDN can include a plurality of users (represented by a plurality of nodes), a plurality of connections connecting the users (represented by a plurality of edges), and a time series associated with each of the plurality of users and connections. The connections can be represented as becoming or adding friends. The FHDN of the social network can include all users and all connections that have ever existed in the system.
[0144] Multiple nodes and edges, as well as time series, can be associated with multiple social networks and the connected nodes and branches within each social network. The multiple nodes and edges can include (1) all nodes and edges that have previously existed in the social network at any given moment, and (2) all nodes and edges that currently exist in the social network. In other embodiments, the nodes and edges can include (1) all nodes and edges that have previously existed in the social network at any given moment, (2) all nodes and edges that currently exist in the social network, and (3) all nodes and edges that will exist in the social network.
[0145] The time series can include the exact times of addition or removal of selected nodes or edges in the social network. The time series can include the exact times of addition, removal, or modification of selected nodes or edges in the social network. In a social network, addition may mean that a user is adding another user as a friend or becoming a friend of another user, removal may mean that the user is blocking or unfriending another user, and modification may mean that the user is changing his / her location to another user. For system time intervals, the time series can be obtained first at a first time in a first time period and then at a second time in a second time period. For example, the time series can be obtained first every 1 s in a first time period of 1 minute and then every 10 s in a second time period of 10 hours.
[0146] The state of the social network at any given moment can be queried by using a graph search algorithm by only searching for the nodes and edges contained in the social network of interest. The search algorithm can be any algorithm that solves a search problem to retrieve information stored within a certain data structure or computed within the search space of the problem domain. Example search algorithms are described elsewhere in this document.
[0147] The graph search algorithm can be configured to query the status of nodes and edges included in a selected social network only on an as-needed basis. The graph search algorithm may not be configured to query nodes and edges included in other unselected social networks. The search algorithm can be configured to query only and directly a subset of nodes and / or edges, without querying other unnecessary nodes and / or edges. In other embodiments, the search algorithm can be configured to query only and indirectly a subset of nodes and / or edges, without querying other unnecessary nodes and / or edges. Unnecessary nodes or edges can respectively include at least approximately: 4%, 5%, 6%, 7%, 8%, 9%, 10%, 15%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90% or more of all nodes and edges in the FHDN. In other cases, unnecessary nodes or edges can include at most approximately: 90%, 80%, 70%, 60%, 50%, 40%, 30%, 20%, 15%, 10%, 9%, 8% or less of all nodes and edges in the FHDN. The amount of memory required to store the FHDN can be at most 40 MB, 30 MB, 25 MB, 20 MB, 19 MB, 18 MB, 17 MB, 16 MB, 15 MB, 14 MB, 13.4 MB, 13 MB, 12 MB, 11 MB, 10 MB, 9 MB, 8 MB, 7 MB, 6 MB, 5 MB, 4 MB, 3 MB, 2 MB, 1 MB or less. In some cases, depending on the size, complexity, and lifespan of the system represented by the FHDN, the amount of memory required to store the FHDN may be larger.
[0148] Other Embodiments In another aspect, a system for determining the historical state of a dynamic network can include a data aggregation component and a network mapping component.
[0149] The data aggregation component can be configured to continuously obtain data associated with the system from a plurality of different data sources. The data sources will be described elsewhere herein. The data aggregation component can perform data aggregation. Data aggregation can include graph aggregation. In graph aggregation, aggregation can be used as an edge / node attribute in a graph representing a spatial network to represent the temporal changes of topology and parameter values. Nodes and edges may disappear from the network during certain instants, and new nodes and edges can be added. The time-aggregated graph can track these changes through time series attached to each node and edge, which indicate their presence at various instants.
[0150] The network drawing component can be configured to use the full - history dynamic network (FHDN) of the data construction system and, in response to a query of the FHDN at a historical moment, provide the system state at the historical moment. The FHDN can include (1) a plurality of nodes that can be dynamically changed, (2) a plurality of edges connecting the nodes, which edges can be dynamically changed, and (3) a time series associated with each of the plurality of nodes and edges. The FHDN is described elsewhere in this document.
[0151] The system can further include a display component. The display component can include a speaker or a display screen. The speaker and / or the display screen can be operably coupled to an electronic device. The speaker and / or the display screen can be integrated with the electronic device. The electronic device can be a small alert device. The electronic device can be a portable electronic device. The electronic device can be a mobile phone, a PC, a tablet computer, a printer, consumer electronics, and household appliances. The electronic device can be a wearable device, including but not limited to Fitbit, Apple Watch, Samsung health, Misfit, Xiaomi Mi Band, and Microsoft Band. The display screen can be a liquid crystal display, similar to a tablet computer. The display screen can be accompanied by one or more speakers and can be configured to provide visual and auditory instructions to the user. The speaker can include a smart speaker. The smart speaker can include Alexa, Google Home, Google Assistant, Clova, Microsoft Cortana, AliGenie, Ambient, Apple HomeKit, Apple Siri, and Apple Pod.
[0152] In another aspect, a non - transitory computer - readable medium can store instructions that, when executed by one or more servers, cause the one or more servers to perform a method that includes continuously obtaining data associated with the system from a plurality of different data sources; using the full - history dynamic network (FHDN) of the data construction system; and, in response to a query of the FHDN at a historical moment, providing the system state at the historical moment.
[0153] Data can be stored in a database. The database can store in a computer-readable format. A computer processor can be configured to access data stored in a computer-readable memory. A computer system can be used to analyze the data to obtain results. The results can be stored remotely or internally on a non-transitory computer-readable medium and communicated to users of the system or FHDN. The non-transitory computer-readable medium can be operably coupled to components for transmitting the results. Components for transmission can include wired and wireless components. Examples of wired communication components can include Universal Serial Bus (USB) connections, coaxial cable connections, Ethernet cables (such as Cat5 or Cat6 cables), fiber optic cables, or telephone lines. Examples of wireless communication components can include Wi-Fi receivers, components for accessing mobile data standards (such as 3G or 4G LTE data signals), or Bluetooth receivers. All of this data in the non-transitory computer-readable medium can be collected and archived to build a data warehouse.
[0154] FHDN can include (1) a plurality of nodes capable of dynamically changing, (2) a plurality of edges connecting the nodes, which edges are capable of dynamically changing, and (3) a time series associated with each of the plurality of nodes and edges. FHDN is described elsewhere herein.
[0155] For example, various embodiments of the platform described in U.S. Patent Application Publication No. 2018 / 0191867, entitled "Systems, Methods, and Devices for an Enterprise AI and Internet-of-Things Platform", the entire content of which is incorporated herein by reference, can be used to implement the systems and methods described herein.
[0156] While the preferred embodiments of the present invention have been shown and described herein, it will be readily apparent to those skilled in the art that such embodiments are provided by way of example only. It is not intended to limit the present invention by the specific examples provided in the specification. Although the present invention has been described with reference to the foregoing specification, the description and illustration of the embodiments herein are not meant to be construed in a limiting sense. Many variations, modifications and substitutions will now occur to those skilled in the art without departing from the present invention. In addition, it should be understood that all aspects of the present invention are not limited to the specific descriptions, configurations or relative proportions set forth herein, which depend on various conditions and variables. It should be understood that various alternatives to the embodiments of the present invention described herein may be used to practice the present invention. Accordingly, it is anticipated that the present invention will also cover any such alternatives, modifications, variations or equivalents. The scope of the present invention is intended to be defined by the following claims and to cover the methods and structures within the scope of these claims and their equivalents.
Claims
1. A method, comprising: One or more processors extract information from a full - history dynamic network (FHDN) based on one or more parameters, where the FHDN includes a representation of a dynamic system over a period of time, where the representation includes multiple elements of the dynamic system over the period of time and connections between pairs of the multiple elements over the period of time, and where the FHDN includes time - series data associated with each of the multiple elements and the connections, where the time - series data includes data indicating changes in the states of the multiple elements over the period of time and data indicating changes in the states of the connections over the period of time; The one or more processors determine one or more operating states of the FHDN at one or more historical moments based on the information extracted from the FHDN, where the one or more historical moments are within the period of time; and The one or more processors determine the dynamic behavior of the FHDN based on the one or more operating states of the FHDN.
2. The method according to claim 1, wherein, The FHDN is a power grid, and the dynamic behavior includes changes in the electric current through power - grid assets.
3. The method according to claim 1, wherein, The FHDN is a communication network, and the dynamic behavior includes changes in the information flow through communication - network assets.
4. The method according to claim 1, wherein, The FHDN is a transportation network, and the dynamic behavior includes changes in the traffic patterns of the transportation network.
5. The method according to claim 4, wherein, The FHDN associates weights with the connections, and where the weights represent attributes associated with elements of the transportation network.
6. The method according to claim 5, wherein, The attributes include travel time, distance, or both.
7. The method according to claim 4, further comprising determining an optimized route through the transportation network based on the FHDN.
8. The method according to claim 1, wherein, The FHDN is a supply - chain network, and the dynamic behavior includes changes in the movement of goods through the supply - chain network.
9. The method according to claim 1, further comprising generating a prediction based on an analysis of the FHDN.
10. The method according to claim 9, wherein, The prediction is a failure of at least one element of the FHDN.
11. A system, comprising: A memory; and One or more processors, the one or more processors being communicatively coupled to the memory, and the one or more processors being configured to: Extract information from a full - history dynamic network (FHDN) based on one or more parameters, where the FHDN includes a representation of a dynamic system over a period of time, where the representation includes multiple elements of the dynamic system over the period of time and connections between pairs of the multiple elements over the period of time, and where the FHDN includes time - series data associated with each of the multiple elements and the connections, where the time - series data includes data indicating changes in the states of the multiple elements over the period of time and data indicating changes in the states of the connections over the period of time; Determine one or more operating states of the FHDN at one or more historical moments based on the information extracted from the FHDN, where the one or more historical moments are within the period of time; and Determine the dynamic behavior of the FHDN based on the one or more operating states of the FHDN.
12. The system according to claim 11, wherein, The FHDN is a power grid, and the dynamic behavior includes changes in the power flow through power - grid assets.
13. The system according to claim 11, wherein, The FHDN is a communication network, and the dynamic behavior includes changes in the information flow through communication - network assets.
14. The system according to claim 11, wherein, The FHDN is a transportation network, and the dynamic behavior includes a change in the traffic pattern of the transportation network, wherein the FHDN associates weights with connections, and wherein the weights represent attributes associated with elements of the transportation network.
15. The system according to claim 14, wherein, The attributes include travel time, distance, or both.
16. The system according to claim 14, wherein, The one or more processors are configured to determine an optimized route through the transportation network based on the FHDN.
17. The system according to claim 11, wherein, The FHDN is a supply chain network, and the dynamic behavior includes a change in the movement of goods through the supply chain network.
18. The system according to claim 11, wherein, The one or more processors are configured to generate a prediction based on an analysis of the FHDN.
19. The system according to claim 18, wherein, The prediction is a failure of at least one element of the FHDN.
20. A non-transitory computer-readable storage medium having instructions stored thereon that, when executed by one or more processors, cause the one or more processors to perform operations including the following: Extract information from a full history dynamic network FHDN based on one or more parameters, wherein the FHDN includes a representation of a dynamic system over a period of time, wherein the representation includes a plurality of elements of the dynamic system during the period and connections between element pairs of the plurality of elements during the period, and wherein the FHDN includes time series data associated with each of the plurality of elements and the connections, wherein, The time series data includes data indicating a change in the state of the plurality of elements during the time period and data indicating a change in the state of the connections during the time period; determining one or more operating states of the FHDN at one or more historical moments based on information extracted from the FHDN, wherein the one or more historical moments are within the time period; and determining the dynamic behavior of the FHDN based on the one or more operating states of the FHDN.
Citation Information
Patent Citations
Systems, methods, and devices for an enterprise ai and internet-of-things platform
US20180191867A1