This disclosure relates generally to complex systems and methods to model such systems, and more particularly, to the extension and simplification of Stochastic Petri Nets (SPNs) and Colored Petri Nets (CPNs).
The disclosure also relates to methods and systems for creating a model of a complex system using Abridged Petri Nets (APN).
The disclosure also relates to methods and systems for managing the behavior of a complex system having multiple entities.
The disclosure also relates to methods and systems for transforming a complex system using APNs.
The disclosure also relates to methods and systems for displaying a graphical representation of a complex system.
Markov chains. State-space diagrams provide a convenient graphical way of depicting the behavior of non-deterministic systems. Markov chains are the simplest and most popular kind of state-space diagrams, with applications ranging from their original use by Andrey Markov (for modeling relative frequencies of vowels and consonants in Alexander Pushkin's novel “Eugene Onegin”) to evaluating web page ranks (in the PageRank algorithm invented by Google's founders). Despite their deserved popularity, Markov chains are prone to the “state-space explosion” they scale poorly as the number of components that comprise the system increases.
A simple example that illustrates this issue, is a household consisting of two family members (later referred to as customers) m1 and m2, and a car c1. Each customer can be in one of three states: not needing a car (N), driving a car (D), or waiting for a car (W); one may assume that being a passenger in the car qualifies as state N. First, consider a situation where the car can be in one of two states: idle (I) or used (U).
This “system” consists of three entities (two customers and a car), so there are 3×3×2=18 possible permutations of the components' states that can define the state the entire system. However, not all of those permutations constitute feasible system states, so a Markov model would have only five rather than 18 states.
If m>l then m−l members of the family are waiting for a car (i.e., in state W), so the corresponding number of states will be
The total number of states will be given by the following formula:
For a family of four with two cars, the number of possible states is 111 and for a family of five with three cars, that number is 589. If one considers a fleet of 10 cars with 20 customers, the number of states is 451,417,560,951, or over 451 billion.
This rapidly growing state-space size can be avoided using symmetry considerations, if the customers or the cars are not distinguished among themselves. Indeed, for two customers and one car the number of states reduces to three and six for
Petri nets. The example above represents a general problem with customers generating service demand and cars representing entities (servers) that service (satisfy) the demand. The meaning of both customers and servers is domain-dependent. A partial, but not exhaustive, listing of those pairs includes:
Packets of information (customers) and computer servers or routers (servers) in computer applications
Tasks (customers) and resources (servers) in business processes
Callers (customers) and teller (servers) at the call centers
Passengers or freight (customers) and transportation and storage resources (servers) in logistics
As a result, matching demand and supply problems are at the core of modeling needs with Petri nets.
Since alphabetical notations based on the states of the components were used for identifying a system state, it is natural to employ some sort of graphical equivalent of an alphabet in graphical description of a system. Petri nets effectively implement this idea by modeling the states of individual components rather than the entire system. As shown in
The SPN in
The model has eight states (places 110), but clearly the complexity of the model is determined not only by the number of places 110 but also by the number of transitions 115 (eight), connecting arcs 120 (20), and tokens 105 (3). In fact, this model does not take into account the possibility that the car can break while driving (so each trip is completed). To include this possibility, one needs to include two extra transitions as shown in
Such SPN models scale better than Markov chains (which explains the fact that they were originally used as a pre-processor for creating Markov chain models). Indeed, there would be three places required for each customer and two places for each car, so the number of places in the model with 20 customers and 10 cars would be only 80, which is certainly an improvement over 451 billion states. However, the web of connecting arcs will be so convoluted that the resulting model is still too complex to be of practical use for conveying the system behavior visually (referring back to
Noting that subnets for each customer are similar; it is tempting to use only one of the subnets and represent each customer by a different token within the same net. At least two modifications are needed to enable such modeling:
The resulting network is shown in
However, the merging and splitting of tokens at transitions create bookkeeping difficulties in terms of tracking individual tokens' identities identified in
Petri Nets and their concepts have been applied in a variety of areas, including Office automation, work-flows, flexible manufacturing, programming languages, protocols and networks, hardware structures, real-time systems, performance evaluation, operations research, embedded systems, defense systems, telecommunications, Internet, e-commerce and trading, railway networks, biological systems.
The disclosure provides a solution to the problem of the state-space size in the modeling of complex systems.
In accordance with one exemplary non-limiting embodiment, the invention relates to a method for modeling nondeterministic time-dependent behavior of a complex system that are comprised of multiple entities, the method implemented by a computer comprises defining at least two states of the complex system. The method includes producing a graphical representation of the at least two states of the complex system depicted by at least one graph using the computer. The step of producing a graphical representation includes defining at least two places; generating a graphical representation of the at least two places that describe possible states of the multiple entities that comprise the complex system; depicting a token that is located inside of one of the at least two places thereby denoting a current realization of one of the at least two places for an entity represented by the token; and depicting a first directed arc that directly connects two of the at least two places and facilitate possible movements of tokens in a direction of the first directed arc. The method also includes performing a performance analysis of the model and system.
In another embodiment, a system for modeling nondeterministic time-dependent behavior of a complex system that is comprised of multiple entities. The system includes a computer. The system also includes a graphical representation subsystem that produces, by the computer, a graphical representation of at least two states of the system depicted by at least one graph. The graphical representation subsystem includes an APN subsystem that: describes at least two places representing possible states of the multiple entities that comprise the complex system; locates a first token inside of one of the at least two places thereby denoting a current realization of one of the possible states for one of the multiple entities represented by the first token; and directly connects at least one directed arc to two of the at least two places and facilitate possible movements of the first token in a direction of the said arc. The system also includes a subsystem that performs a performance analysis of the model and the complex system.
In another embodiment, a non-transitory computer readable medium is provided. The computer readable medium is encoded with a program, when executed by a processor, performing a method for processing content information in an online environment. The method includes producing a graphical representation of at least two states of a system depicted by at least one graph using the processor. The step of producing a graphical representation comprises: generating a graphical representation of at least two places that describes possible states of multiple entities that comprise the system; depicting a token that is located inside of one of the at least two places thereby denoting a current realization of one of the at least two states for an entity represented by the token. and the method further includes depicting a first directed arc that directly connects two of the at least two places and facilitates possible movements of tokens in a direction of the first directed arc. The method implemented by the computer readable medium also includes performing a performance analysis of the model and the complex system.
In accordance with one exemplary non-limiting embodiment, the invention relates to a method for determining the performance of a nondeterministic time-dependent behavior of a complex system that are comprised of multiple entities, the method implemented by a computer comprises defining at least two states of the complex system. The method includes producing a graphical representation of the at least two states of the complex system depicted by at least one graph using the computer. The step of producing a graphical representation includes defining at least two places; generating a graphical representation of the at least two places that describe possible states of the multiple entities that comprise the complex system; depicting a token that is located inside of one of the at least two places thereby denoting a current realization of one of the at least two places for an entity represented by the token; and depicting a first directed arc that directly connects two of the at least two places and facilitate possible movements of tokens in a direction of the first directed arc. The method also includes performing a performance analysis of the model and system.
In another embodiment, a system for determining the performance of a nondeterministic time-dependent behavior of a complex system that is comprised of multiple entities is presented. The system includes a computer. The system also includes a graphical representation subsystem that produces, by the computer, a graphical representation of at least two states of the system depicted by at least one graph. The graphical representation subsystem includes an APN subsystem that: describes at least two places representing possible states of the multiple entities that comprise the complex system; locates a first token inside of one of the at least two places thereby denoting a current realization of one of the possible states for one of the multiple entities represented by the first token; and directly connects at least one directed arc to two of the at least two places and facilitate possible movements of the first token in a direction of the said arc. The system also includes a subsystem that performs a performance analysis of the model and the complex system.
In accordance with one exemplary non-limiting embodiment, the invention relates to a method for using a digital computer to transform a complex system having a plurality of entities. The method includes the steps of creating a model of the complex system by defining at least two states of the complex system. The method also includes the step of producing a graphical representation of the at least two states of the complex system depicted by at least one graph. The step of producing a graphical representation of the at least two states includes the steps of defining at least two places; generating a graphical representation of the at least two places that describes possible states of the plurality of entities that comprise the complex system, and depicting a token that is located inside of one of the at least two places thereby denoting a current realization of one of the at least two places for an entity represented by the token. The method further includes depicting a first directed arc that connect two of the at least two places and facilitate possible movements of tokens in a direction of the first directed arc. The method further includes the step of performing a performance analysis of the model of the complex system. The method further includes the steps of directing a change in the complex system based on the performance analysis.
In accordance with one exemplary non-limiting embodiment, the invention relates to a system for transforming a complex system having a plurality of entities. The system includes a computer and a subsystem that creates a model of the complex system by defining at least two states of the complex system. The system also includes a subsystem that produces a graphical representation of the at least two states of the complex system depicted by at least one graph. The subsystem that produces a graphical representation of the at least two states includes subsystems that perform the steps of defining at least two places; generating a graphical representation of the at least two places that describes possible states of the plurality of entities that comprise the complex system; and depicting a token that is located inside of one of the at least two places thereby denoting a current realization of one of the at least two places for an entity represented by the token. The subsystem that produces a graphical representation further performs the step of depicting a first directed arc that directly connects two of the at least two places and facilitate possible movements of tokens in a direction of the first directed arc. The system further includes a subsystem that performs a performance analysis of the model of the complex system, and a subsystem that; directs a change in the complex system based on the performance analysis of the model of the complex system.
In accordance with one exemplary non-limiting embodiment, the invention relates to non-transitory computer readable media that when executed transforms a complex system having a plurality of entities. The computer readable media includes instructions to create a model of the complex system by defining at least two states of the complex system. The computer readable media also includes a instructions to produce a graphical representation of the at least two states of the complex system depicted by at least one graph. The instructions to produce a graphical representation of the at least two states includes instructions to define at least two places and generate a graphical representation of the at least two places that describes possible states of the plurality of entities that comprise the complex system; depict a token that is located inside of one of the at least two places thereby denoting a current realization of one of the at least two places for an entity represented by the token. The instructions further include instructions to depict a first directed arc that directly connects two of the at least two places and facilitates possible movements of tokens in a direction of the first directed arc. The computer readable media further includes instructions to perform a performance analysis of the model of the system; and instructions to direct a change in the complex system based the performance analysis of the model.
In accordance with one exemplary non-limiting embodiment, the invention relates to a method for managing a nondeterministic time-dependent behavior of a complex system having multiple entities. The method includes the steps of creating a model of the complex system by defining at least two states of the complex system and producing a graphical representation of the at least two states of the complex system depicted by at least one graph using a computer. The step of producing a graphical representation includes the steps of defining at least two places; generating a graphical representation of the at least two places that describes possible states of the multiple entities that comprise the complex system; and depicting a token that is located inside of one of the at least two places thereby denoting a current realization of one of the at least two places for an entity represented by the token. The step of producing a graphical representation further includes depicting a first directed arc that directly connects two of the at least two places and facilitates possible movements of tokens in a direction of the first directed arc. The method for managing the nondeterministic time-dependent behavior of a complex system also includes the steps of performing a performance analysis of the model of the complex system. The method for managing the nondeterministic time-dependent behavior of a complex system also includes the steps of transforming the complex system based on the performance analysis of the model of complex system.
In accordance with one exemplary non-limiting embodiment, the invention relates to a system for managing a nondeterministic time-dependent behavior of a complex system having multiple entities. The system includes a computer and a subsystem that creates a model of the complex system includes a subsystem that defines at least two states of the complex system and produces a graphical representation of the at least two states of the complex system depicted by at least one graph using the computer. The subsystem that produces a graphical representation includes a subsystem that defines at least two places; generates a graphical representation of the at least two places that describes possible states of the multiple entities that comprise the complex system; depicts a token that is located inside of one of the at least two places thereby denoting a current realization of one of the at least two places for an entity represented by the token; and depicts a first directed arc that directly connects two of the at least two places and facilitates possible movements of tokens in a direction of the first directed arc. The system for managing the nondeterministic time-dependent behavior of a complex system also includes a subsystem that performs a performance analysis of the model of the complex system; and generates software source code that simulates the model of the complex system. The system for managing the nondeterministic time-dependent behavior of a complex system also includes a subsystem that transforms the complex system based on the performance analysis of the complex system.
In accordance with one exemplary non-limiting embodiment, the invention relates to non-transitory computer readable medium for managing a nondeterministic time-dependent behavior of a complex system having multiple entities. The computer readable medium includes instructions to create a model of the complex system comprising instructions to define at least two states of the complex system and produce a graphical representation of the at least two states of the complex system depicted by at least one graph using the computer. The instructions to produce a graphical representation includes a instructions to define at least two places; generate a graphical representation of the at least two places that describes possible states of the multiple entities that comprise the complex system; depict a token that is located inside of one of the at least two places thereby denoting a current realization of one of the at least two places for an entity represented by the token; and depict a first directed arc that directly connects two of the at least two places and facilitates possible movements of tokens in a direction of the first directed arc. The computer readable medium also includes instructions to perform a performance analysis of the model of the complex system. The computer readable medium also includes instructions to transform the complex system based on the performance analysis of the complex system.
In accordance with one exemplary non-limiting embodiment, the invention relates to a method for displaying a graphical representation of a complex system. The method includes the steps of defining at least two states of the complex system. The method further includes producing a graphical representation of the at least two states of the complex system depicted by at least one graph using the computer. The step of producing a graphical representation includes defining at least two places, and generating a graphical representation of the at least two places that describes possible states of the multiple entities that comprise the complex system. The step of producing a graphical representation further includes depicting a token that is located inside of one of the at least two places thereby denoting a current realization of one of the at least two places for an entity represented by the token. The step of producing a graphical representation further includes depicting a first directed arc that directly connects two of the at least two places and facilitates possible movements of tokens in a direction of the first directed arc. The method may further include the step of performing a performance analysis of the complex system and displaying the graphical representation of the complex system on a computer screen.
In accordance with one exemplary non-limiting embodiment, the invention relates to a system for displaying a graphical representation of a complex system. The system includes a computer and a subsystem that defines at least two states of the complex system. The system further includes a subsystem that produces a graphical representation of the at least two states of the complex system depicted by at least one graph using the computer. The subsystem that produces a graphical representation includes a subsystem that defines at least two places, and generates a graphical representation of the at least two places that describes possible states of the multiple entities that comprise the complex system. The subsystem that produces a graphical representation further includes a subsystem that depicts a token that is located inside of one of the at least two places thereby denoting a current realization of one of the at least two places for an entity represented by the token. The subsystem that produces a graphical representation further includes a subsystem that depicts a first directed arc that directly connects two of the at least two places and facilitates possible movements of tokens in a direction of the first directed arc. The system may further include a subsystem that performs a performance analysis of the complex system and displays the graphical representation of the complex system on a computer screen.
In accordance with one exemplary non-limiting embodiment, the invention relates to a non-transitory computer readable medium encoded with a program, when executed by a processor, performing a method for modeling a complex system. The method includes the steps of defining at least two states of the complex system. The method further includes producing a graphical representation of the at least two states of the complex system depicted by at least one graph using the computer. The step of producing a graphical representation includes defining at least two places, and generating a graphical representation of the at least two places that describes possible states of the multiple entities that comprise the complex system. The step of producing a graphical representation further includes depicting a token that is located inside of one of the at least two places thereby denoting a current realization of one of the at least two places for an entity represented by the token. The step of producing a graphical representation further includes depicting a first directed arc that directly connects two of the at least two places and facilitates possible movements of tokens in a direction of the first directed arc. The method may further include the step of performing a performance analysis of the complex system and displaying the graphical representation of the complex system on a computer screen.
Other features and advantages of the present invention will be apparent from the following more detailed description of the preferred embodiment, taken in conjunction with the accompanying drawings which illustrate, by way of example, the principles of certain aspects of the invention.
Glossary
“Assign” means to allocate, designate, name, or specify.
“Changing” means to make the form, nature, content, future course, or position, of (something) different from what it is or from what it would be if left alone.
“Color” means an integer data value attached to a token.
“Complex System” is a system consisting of many diverse and autonomous but interrelated and interdependent components or parts linked through many (dense) interconnections. Complex systems cannot be described by a single rule and their characteristics are not reducible to one level of description. They exhibit properties that emerge from the interaction of their parts and which cannot be predicted from the properties of the parts unless the interactions among the parts are properly accounted for. Examples of complex systems include an Electrical Power grid that consists of the means of power generation, transmission, and distribution, or a national airspace system that is comprised of air traffic controllers, airlines, etc.
“Continuous Label” means a real data value attached to a token.
“Depict” means to represent by displaying such as on a computer screen.
“Directed Arc” is an arc that connects two graphical objects of a graph in a defined order that indicates the direction of the changes with time. For a prior art Petri nets a directed arc connects a place with a transition or a transition with a place. For the abridged Petri nets a directed arc directly connects two places of the graph.
“Directing” means to give instructions, command, or order.
“Directly” means in a way that involves only the two things mentioned, with nothing else coming in between, i.e. without an intervening transition.
“Discrete Label” is the same as Color (see above)
“Entity” is a part of the modeled system that has a real existence; can undergo changes that are relevant to the system behavior; and are represented as the lowest atomic (non-divisible) unit of modeling called tokens. Examples of entities include physical objects, such as cars, trains, people, organisms, proteins, molecules, as well as conditions such as day or night, rain, humidity, temperature, etc. The choice of the entities depends on the modeling objectives, for example, for some models a car can be considered a single entity, while for detailed modeling of interactions within a single car, individual entities can correspond to an air-bag, an ignition system, etc.
“Facilitate” means to make it possible or easier for something to happen.
“Firing” represents an occurrence of the event or an action taken corresponding to a discrete change of a state of an entity, for example, when entity “car” changes from “operational” to “broken”, which is modeled by moving the token representing the car from the “operational” place to the “broken” place.
“Fused places” are places that are shown graphically as distinct to facilitate the visual clarity of the model but are treated as a single place for the analysis purposes.
“Layer” is an individual element of the stack arrangement, for example in modeling a supply chain with multiple front shops and a single depot; a front shop can represent a layer.
“Non-Deterministic” means an algorithm, model, procedure, process, etc., whose resulting behavior is not entirely determined by its initial state and inputs, and which may be random or stochastic. Processes or projects having only one outcome are said to be deterministic and their outcome is ‘pre-determined.’ A deterministic algorithm, for example, if given the same input information will always produce the same output information. For example, a non-deterministic algorithm is an algorithm that can exhibit different behaviors on different runs (like flipping a coin).
“Performance analysis” represents a qualitative or quantitative analysis of the model representing a system that provides insights into the system behavior. Performance analysis can be conducted by means of discrete-event simulations, differential equations, or other appropriate mathematical means that describe the system. For example, when modeling operation of a doctor's office one can evaluate the expected waiting time for a patient or the number of patients served.
“Place” represents a possible state of an entity, for example for an entity representing a species there could be the following places: Vulnerable, Endangered, and Extinct. Positioning a token representing the entity inside the place at a certain time indicates that for that particular entity at that particular time that particular state holds true (Snow Leopard token is in Endangered Place at the current time).
“Realization” means that out of a given set of possible states for an entity a particular one is held true in a particular instance. This is represented by positioning a corresponding token inside the appropriate place that corresponds to the realized state for this entity represented by the token.
“State” means the condition of an entity with respect to circumstances or attributes that is relevant to the overall system behavior, for example . . . a train can be moving or stopped.
“Subnet” means a part of the total graph (net) treated as a whole and represented separately, for example shown or hidden from the view.
“System” means an assemblage or combination of things or parts forming a complex or unitary whole, for example a car consists of an engine, transmission, wheels, etc. combined to provide a means of personal transportation. The state of the system at any given time is fully described by the states of the contributing parts.
“Page” represents a distinct view of the total net that might have some subnets shown and some hidden.
Sensor is an attribute of a place that specify whether and which statistics is collected about the tokens that are located in this place.
“Stack” is a particular arrangement of subnets that explores the third dimension (depth) of the net. Individual subnets (usually representing similar but distinct subnets) are arranged from the top to bottom, so that only the top subnet (layer) can be viewed and accessed.
“Token” is a variable (dynamic) element of a Petri net; indicated by dots or other appropriate symbols (e.g., car, airplane, etc.) that represent a modeled atomic entity. Each token has a set of places where it can potentially be located (token must be in one of those places and it cannot be in two places at the same time).
“Transition” is an event or action which causes a change of state, for example biochemical reactions, dissociation/association, state shifts, actions, molecular changes, transport/diffusion and the like. This change is represented in the net by a directed arc that originates in the incoming place and terminates in the outgoing place. When the event or action occurs the transition “fires” (moves) a token from the incoming to the outgoing place.
“Transform” means to change in form, appearance, structure, condition or position.
“Trigger” is a means to represent an interaction (dependence) among the entities that comprise the system. In particular, triggers provide a mechanism for inhibiting or enabling the possibility of state transitions of some entities based on particular states of some other entities. Trigger is an arc that originates at a place and terminates at a transition. If the tokens located at the originating place satisfy the condition specified as the trigger attribute then transition gets either disabled or enabled (depending on whether the token is inhibitor or enabler, respectively). For example, presence of token in a place indicating that a certain drug is administered might trigger the change of state of the targeted entity (e.g., the disease process is slowed down).
Embodiments of the invention provide a different approach that avoids the above mentioned difficulties of tracking individual tokens through transitions. If tokens are unique, then in order to simplify the tracking of tokens through transitions one allows only a single input and single output through a transition. As a result, the need for separate nodes that constitute junctures for routing nodes among places is eliminated, and places can be directly connected by arcs. Interaction among different entities in the system is modeled using so-called triggers that include a well-known construct called inhibitors, and their opposites, enablers.
Inhibitors provide a “zero test” capability and are known to increase the modeling power of Petri nets to that of a Turing machine. They are depicted as arcs originating at a place and terminating at a transition with a hollow circle. An inhibitor of multiplicity k disables a transition at which it terminates if the number of tokens in its input place is at least k. An enabler (depicted as an arc originating at a place and terminating at a transition with a filled circle) is defined in the opposite way: a transition is disabled unless an enabler of multiplicity k has at least k tokens in its input place. It can be shown that the combination of enablers and inhibitors with direct transitions between places allows the modeling of any system that can be modeled using Petri nets with multiple inputs and outputs to a transition (in other words, the modeling power is not reduced).
SPNs that use transitions as hubs for routing tokens as the main mechanism for modeling component interdependence, and SPNs that use triggers (mainly inhibitors) as a supplementary tool for modeling the interdependence are known. However, the disclosed network is the first one that relies solely on the triggers, and as a result can dispose of the hubs and connect places directly.
As a result, a framework that looks like a hybrid between traditional Markov chain-state charts and Petri nets is introduced: transitions connect places directly (like in Markov chains) but tokens are present that have discrete labels (colors) as well as continuous labels (age). As shown below, when combined with hierarchical construction capabilities, the resulting framework provides compact and visual representation of complex interactions in large-scale systems. The resulting framework is referred to as “Abridged Petri Nets (APNs)”.
1. As illustrated in
2. Each transition 210 has no more than a single input and single output place (a transition can have no input place, providing a source of new tokens 215 every time it fires, and can have no output place, providing a sink for tokens 215: upon firing of such a transition, a token 215 is removed from the net).
3. Each token 215 can have a discrete label (color) (shown as a number in
4. A transition 210 is enabled or disabled based on the combined marking of the input places of the associated triggers (inhibitors 220 and enablers 225) Inhibitors 220 are depicted as arcs originating at a place and terminating at a transition with a hollow circle. An inhibitor of multiplicity k disables a transition that it terminates at if the number of tokens in its input place is at least k. An enabler 225 (depicted as an arc originating at a place and terminating at a transition with a filled circle) is opposite to an inhibitor 220: a transition is disabled unless an enabler 225 of multiplicity k has at least k tokens in its input place. Triggers can be color-specific (and therefore enable only tokens in a place of a certain color, or act only if there are a specified number of tokens of a given color in their respective input places, or both).
5. Transitions 210 have color- and age-dependent policies that specify the delay between the moment when the token 215 is enabled and it is “fired.” If a token-transition pair is enabled, a firing delay is specified based on the combination of the properties of token 215 and transition 210. If token 215 stays enabled throughout the delay, after this delay expires the token 215 is “fired.” If there are multiple enabled tokens 215 in the same place, they all can participate in the firing “race” in parallel. Similarly, the same token 215 can be involved in a race with several transitions 210. If a token-transition pair is disabled, the firing is preempted (however, the aging label of the token can change as a result).
6. The delays can be deterministic (including zero delay) or follow any specified random distributions.
7. The performance of the system is based on the statistical properties of the marking and can be evaluated using discrete-event simulation or differential equations (including but not limited to finite-difference solutions).
8. Hierarchical constructions for combining multiple subnets are used to model large-scale systems. In particular, automatic generation of layers of multiple pages that contain similar but possible distinct subnets is facilitated.
9. In particular, an automatic “color shift” is used to differentiate between the tokens 215 from a given layer and ensure that the tokens enter the desired layer when needed.
An alternative model 300 of the same process is shown in
One can use the same model for as many customers as needed. If there is more than one car, the model (after adjusting the appropriate trigger multiplicities, as shown below) can also work correctly if customers have predetermined priorities, so that a customer with the higher priority can swap a broken car for a working one, and a customer with the lowest priority will end up waiting for an available car regardless of which car breaks. The priorities are implemented by specifying small-fixed time delays for the transition 345 from the “Busy” place 315 to the “Waiting” place 310 ordered in such a way that a customer with lower priority has a smaller delay, and so the token of the corresponding color will be fired first.
For example, consider a situation illustrated if
While this model is compact and relatively simple, it does not provide the resolution for tracking a specific pairing between the customers and the cars. This might be desirable if swapping of the cars in the middle of the trip is not allowed, and one wants to track which customers' trips got interrupted. In order to implement this aspect of behavior of the modeled system, one needs to introduce a special place for each pairing. Since the number of such places should be at least equal to the number of cars, the resulting net can look too complex, unless hierarchical models are implemented, as described below.
There are two redundant components with failures that are only revealed by periodic tests; failures remain undetected until the next periodic test occurs. The periodic test interval is z, and both components are tested at the same time. Once the failure of a component is detected by a periodic test, the component is repaired, provided that repair crew is available. There is only one repair crew, so both components cannot be repaired at the same time. If both components need repairs, one of them is placed in a queue where it needs to wait until the repair of the other component is completed. In this example, one of the components is assigned a higher priority, so it is selected for repair first if both components need repair at the same time; however, there is no preemption of the repair process—if the repair of the lower priority component has started, it is completed regardless of the status of the other component. Alternative queuing policies can be easily implemented as well (see the next example).
The particular run shown in
Using Monte-Carlo simulation, one can obtain the performance measures of interest. For example, based on one million runs of the system for 200 time units, one can observe that at least one unit is operating about 98.1% of the time, while both units will be operating about 73.9% percent of the time; the repair crew will be engaged about 12.7% of the time, with the expected number of started repairs being 2.12 for the simulated time; at least one unit having failure undetected 13.9% of the time; and a component waiting for repair less than one percent of the time. Here and below, the time percentage of a particular state is evaluated by taking an average over the second half of the system operation (between Times 100 and 200). If higher performance is desired, the effectiveness of various improvements can be evaluated: for example, adding a repair crew (which is implemented by changing the multiplicity of the inhibitor 465 to 2 (or, given the fact that there are only two components, simply removing the inhibitor 465 altogether), will result only in marginal improvement, by raising the chances of both units operating to 74.6% (this is expected given the low chances of a component waiting for repair). On the other hand, keeping one repair crew while making the inspection intervals twice as frequent would increase the chances of both units operating to 78.9%.
The ability to model queues is fundamentally important for a system's performance evaluation, to the point that special queuing constructs were suggested to enhance the modeling capabilities of SPNs. One of the most commonly used priority schemes, First-In-First-Out (FIFO), can be implemented using APNs (see
The next example pertains to modeling air traffic control procedures. A portion of the East Feeder Sector for LAX airport is modeled, where only the air traffic fluxes going through the feeder points “GRAMM” and “LAADY” are taken into consideration. Each airplane is assumed to fly an Optimized Profile Descent (OPD) that minimizes the use of the aircraft's throttle and follows continuous descent profile instead of using a traditional step-wise descent. This approach is attractive from the fuel-saving and noise-profile perspectives, but it introduces uncertainty in terms of the effective ground speed of the aircraft due to wind variability. An underlying assumption for the feeder sector is that the feeder points and the merging point for the various traffic streams are positioned in such a way that airplanes flying from their respective feeder points will arrive at the merging point at the same time if moving with the same ground speed profile. Therefore, in nominal conditions, no conflict should arise if the aircraft are properly spaced within each traffic stream and the streams are properly synchronized, even though that is often not the case due to the differences in the environmental conditions and the kinematics of each aircraft.
This synchronization between the streams is implemented by ATC that checks for conflicts for every vehicle arriving at a feeder point; at that time any aircraft trailing behind, either on the same traffic stream or on another one, is issued a −20 kts or −40 kts velocity-change if its horizontal distance from its feeder point is within 5 nm or 2.5 nm, respectively. This model captures only a portion of the actual procedures that ensure the proper spacing upon merging. A simple conflict resolution logic consisting of one single maneuver being issued per conflict was investigated, with only two maneuvers able to be executed.
The corresponding schematics of the APN model are shown in
When a token is in the GRAMM place (that is, an aircraft that has just reached the feeder point GRAMM, as depicted in
The reciprocal policies are implemented for the aircraft that need to be slowed down within the GRAMM flux based on their position when another aircraft passes the LAADY feeder point. The delay associated with the “spacing” transition determines the degree of spacing violation: statistics are collected of the frequency of any two tokens located in the “Merging” place at the same time, so the longer delay of “spacing” transition corresponds to the larger spacing. Effectively, here the spacing is evaluated in the time domain, which is obtained from the space domain based on the speed profile of the vehicles. In the considered run (
Next, consider APN model for processing of complaints.
In order to match pairs of supply and demand in a compact fashion, it is convenient to expand the model into the third dimension (or “depth”) by considering subnets stacked in layers, as depicted in
In a software implementation, these layers can be created automatically, and one can switch the views among layers (by bringing the layer of interest to the top of the stack) as desired. The six triggers of each subnet (see the right, shaded part of
At the same time, the transition for the customer to move from the “Waiting” place to the “Car Used” gets enabled and fires a token with Color 2 (Frame D,
When the trip ended for the second pair (the customer's token with Color 1 moves to the “Not needed” place, Frame I), then the car's token with Color 4 moves back to the “Available” place (Frame J,
In the previous example, all subnets were essentially equal—they simply provided a means of accounting for each pair of tokens separately. However, one can further refine the model and allow for the possibility of differentiating among the subnets. In the considered example, a particular combination of colors may be assigned to a specific subnet that might have distinct properties (for example, if a teenager drives a car, the chances of the car's breaking might increase). A general mechanism that facilitates the modeling of this and similar situations may then be described.
Consider a situation with multiple but distinct subnets, so that tokens that leave a subnet should be returned to that specific subnet and not to any other subnet. A repair process is one example of this situation, and so is the processing of documents: when a car is sent to the shop, one hopes to receive the same car fixed (and not somebody else's fixed car). Using an automated color shift allows this situation to be modeled automatically. The range of colors utilized in the subnet that is used as a template for multiple subnets (see
Applications include but are not limited to system reliability and maintenance and modeling, logistics, business processes and workflows, and system biology.
In another example, consider a model of a medical office operation shown in
The upper portion of the net shown in
Sensors 835 (see
RESULTS OF SIMULATIONS. Illustrated in
There are three transitions in the model, numbered as shown in
In a case where the duration of simulation is T=12 hours, and where each family member does not need the car for two hours, and then would like to take a two-hour trip. Transitions 1 and 3 can be assigned fixed duration of two hours, and make transition 2 immediate (in the simplest implementation a small fixed value e may be assigned to this transition; in the considered example e=1×10−6 hours). The result is a fully deterministic model (if no distinction is made between the family members and therefore there is no need to know which of the family members gets the car first). Family members will be driving the car in turns, never waiting for the car (except during the first two hours) and ensuring that the car is effectively driven all the time (the car's utilization is 100%).
If randomness is introduced into the model and both transitions 1 and 3 are assigned exponential delays that on average result in two hour delay, then the cumulative distribution function (CDF) has the following form
F(t)=1−e−λt,
where λ=0.5 per hour. The resulting APN model is equivalent to a simple Markov chain, with a steady-state solution indicating that utilization of the car is 80%, and a family member would have to wait for a car 40% of the time (or 20% per family member.
In a “mixed” situation when demand delay (transition 1 in
However, if the choice of distributions is reversed and an exponential distribution is used for the demand (transition 1 in
The results show that the expected values are oscillating with the amplitudes decaying relatively slowly. Second, the converged values appear to be different from those observed in the previous two cases. Running the simulation for a longer period of time, as shown in
In another example, the same problem of a family car, but this time there is allowance for the possibility that there are times when the car can periodically break. While breaks in reality occur relatively rarely (and it takes days to fix), for illustrative purposes one can consider a situation where there are more frequent breaks that are also fixed relatively fast. If a trip is interrupted by a break, the family member has to wait until the car is fixed, and then attempt the interrupted trip again (from the beginning).
To model this situation a car token is introduced, as well as the possibility of the car breaking. Instead of creating two separate places for the two possible states of the car (broken or not), token colors (i.e., integer labels) are employed to create a more compact model as depicted in
Assume a case where the car breaks in accordance with an exponential distribution with the rate 0.2 per hour, and it is restored after fixed delay of 0.2 hours. This implies that the car is available 96.15% of the time. The results of this scenario are shown in
The effects of pooling the resources can also be considered. The model is set up for easy scalability: there is a need to add more tokens and adjust the trigger multiplicity. A fleet of k=10 cars with 20 customers. The model is shown in FIG. 29—where the multiplicity of the enabler now is k+1=11 and the multiplicity of the inhibitor is k=10. At the time of the snapshot there are two cars broken, eight cars driven, 11 customers not needing a car and one customer waiting for a car. In this model if a car breaks, but there is another car available the customer simply hops to another available car.
The benefits of pooling the resources can be easily observed by running Monte Carlo simulation and evaluating the amount of time the customers waiting for a car (FIG. 30)—for fixed trip duration the percentage of time waiting for is almost halved (from 22.2% to 12.2% per customer). Increasing the number of customers decreases the damping in the system and a noticeable oscillations are observed for some time. Furthermore, comparing exponential and fixed trip durations lead to a reverse trend as compared to what we observed for a single car problem: using exponential durations for trips instead of fixed ones leads to a decrease in waiting to 9.3% per customer.
In another example, a visit to clinic is modeled. One may consider a simple problem of finding whether the number of rooms is sufficient to accommodate the customers. One may start with the conservative assumption that all customers arrive at 9 am, and try to figure out the chances that all customers will be served by noon. The model is shown in
The “fat tail” effect is clearly observed. In fact, if an exponential distribution is used, the chances of completing the task is 98.6%, in contrast if a log-normal distribution (with matching first two moments) is used the chances are only 77.1%.
Illustrated in
In step 605, the method 600 defines at least two states of the complex system.
In step 610, the method 600 defines at least two places.
In step 615, the method 600 generates a graphical representation of the at least two places that describe possible states of the multiple entities that comprise the complex system.
In step 620, the method 600 depicts a token that is located inside of one of the at least two places thereby denoting a current realization of one of the at least two places for an entity represented by the token.
In step 625, the method 600 depicts a first directed arc that directly connects two of the at least two places and facilitates possible movements of tokens in a direction of the first directed arc.
In step 630, the method 600 assigns a plurality of tokens that are located inside of one of the two places.
In step 635, the method 600 depicts the first directed arc from one of the two places to a transition that models interactions among different entities by either enabling or disabling the transition that the first directed arc terminates at depending on a number of the plurality of tokens in one of the two places from which the first directed arc originates.
In step 640, the method 600 delays the movement of a specific token to evaluate the specific token based on an individual current attribute of the specific token and a matching firing policy of the transition, for each transition that is enabled and each of the tokens in an input place.
In step 645, the method 600 produces a graphical representation of the at least two states of the complex system depicted by at least one graph using the computer. The method may be implemented in a computer and used to generate an instruction to perform a physical act such as for example initiation of repairs, the staggering of flights, the servicing of a customer in a queue. The method may include the performance of that physical act.
In step 650, the method 600 instructs an analysis of the system performance.
In step 655, the method 600 performs an analysis of the system performance.
In step 660, the method 600 communicates the results of the analysis of the system performance.
The method may also include the steps of depicting the first directed arc from one of the at least two places to a transition that provides a mechanism for modeling interactions among different entities by either enabling or disabling the transition that the first directed arc terminates at depending on a number of the plurality of tokens in one of the at least two places the first directed arc originates from.
The step of producing a graphical representation may include for each transition that is enabled and each of the plurality of tokens in an input place, delaying movement of a specific token to evaluate the specific token based on an individual current attribute of the specific token and a matching firing policy of the transition.
The step of delaying movement may be deterministic and may be evaluated independently of a presence or absence of tokens other than the specific token in one of the at least two places.
In the method, the token may have attributes that include discrete labels and continuous labels.
In the method a collection of subnets containing at least one selected from among a group consisting of places, tokens, transitions, and triggers that is arranged in layers in an order that is predetermined may be included. The layers may be multiplied, with consequent specific changes applied to each one of the layers if needed. The order may be changed in a computer implementation. A color shift may separate valid color ranges into disjoint sets for each of the layers. The tokens that leave one of the layers and move to another location on a net can return to a specified location of the layers.
The method 600 may be implemented as a step in a method for managing the behavior of a complex system having multiple entities. The method for managing the behavior of a complex system having multiple entities may include performing a performance analysis of the model and generating software source code that simulates the model. A compiled file may be obtained by compiling the software source code, and thereafter transforming at least one of the multiple entities of the complex system responsive to execution of the compiled file.
The method 600 may be implemented as a step in a method for managing a complex system where the complex system is changed based on the performance analysis of the complex system. The method 600 may be used in a method for displaying a graphical representation of a complex system by displaying the graphical representation generated on a computer screen.
The method 600 may be implemented as a step in a method for determining the performance of a nondeterministic, time-dependent behavior of a complex system is comprised of multiple entities.
The computer 1020 may further include a hard disk drive 1027 for reading from and writing to a hard disk (not shown), a magnetic disk drive 1028 for reading from or writing to a removable magnetic disk 1029, and an optical disk drive 1030 for reading from or writing to a removable optical disk 1031 such as a CD-ROM or other optical media. The hard disk drive 1027, magnetic disk drive 1028, and optical disk drive 1030 are connected to the system bus 1023 by a hard disk drive interface 1032, a magnetic disk drive interface 1033, and an optical drive interface 1034, respectively. The drives and their associated computer-readable media provide non-volatile storage of computer readable instructions, data structures, program modules and other data for the computer 1020. As described herein, computer-readable media is an article of manufacture and thus not a transient signal.
Although the exemplary environment described herein employs a hard disk, a removable magnetic disk 1029, and a removable optical disk 1031, it should be appreciated that other types of computer readable media which can store data that is accessible by a computer may also be used in the exemplary operating environment. Such other types of media include, but are not limited to, a magnetic cassette, a flash memory card, a digital video or versatile disk, a Bernoulli cartridge, a random access memory (RAM), a read-only memory (ROM), and the like.
A number of program modules may be stored on the hard disk, removable magnetic disk 1029, removable optical disk 1031, ROM 1024 or RAM 1025, including an operating system 1035, one or more application programs 1036, other program modules 1037 and program data 1038. A user may enter commands and information into the computer 1020 through input devices such as a keyboard 1040 and pointing device 1042. Other input devices (not shown) may include a microphone, joystick, game pad, satellite disk, scanner, or the like. These and other input devices are often connected to the processing unit 1021 through a serial port interface 1046 that is coupled to the system bus 1023, but may be connected by other interfaces, such as a parallel port, game port, or universal serial bus (USB). A monitor 1047 or other type of display device is also connected to the system bus 1023 via an interface, such as a video adapter 1048. In addition to the monitor 1047, a computer may include other peripheral output devices (not shown), such as speakers and printers. The exemplary system of
The computer 1020 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 1049. The remote computer 1049 may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and may include many or all of the elements described above relative to the computer 1020, although only a memory storage device 1050 has been illustrated in
When used in a LAN networking environment, the computer 1020 is connected to the LAN 1051 through a network interface or adapter 1053. When used in a WAN networking environment, the computer 1020 may include a modem 1054 or other means for establishing communication over the wide area network 1052, such as the Internet. The modem 1054, which may be internal or external, is connected to the system bus 1023 via the serial port interface 1046. In a networked environment, program modules depicted relative to the computer 1020, or portions thereof, may be stored in the remote memory storage device. It will be appreciated that the network connections shown are exemplary and other means of establishing a communication link between the computers may be used.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. Where the definition of terms departs from the commonly used meaning of the term, applicant intends to utilize the definitions provided herein, unless specifically indicated. The singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be understood that, although the terms first, second, etc. may be used to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. The term “and/or” includes any, and all, combinations of one or more of the associated listed items. The phrases “coupled to” and “coupled with” contemplates direct or indirect coupling.
This written description uses examples to disclose the invention, including the best mode, and also to enable any person skilled in the art to practice the invention, including making and using any devices or systems and performing any incorporated methods. The patentable scope of the invention is defined by the claims, and may include other examples that occur to those skilled in the art. Such other examples are intended to be within the scope of the claims if they have structural elements that do not differ from the literal language of the claims, or if they include equivalent structural elements.
Number | Date | Country | |
---|---|---|---|
61861539 | Aug 2013 | US |