Package jline.lang.nodes
Class Transition
java.lang.Object
jline.lang.Element
jline.lang.NetworkElement
jline.lang.nodes.Node
jline.lang.nodes.StatefulNode
jline.lang.nodes.ServiceNode
jline.lang.nodes.Transition
- All Implemented Interfaces:
Serializable,Cloneable,Copyable
Transition as in a stochastic Petri net model
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionFields inherited from class jline.lang.nodes.ServiceNode
schedPolicy, schedStrategy, schedStrategyPar, serviceProcessesFields inherited from class jline.lang.nodes.Node
dropStrategy, input, model, nodeIndex, output, sdrDeclarations, server, statefulIdx, stationIdx -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidgetFiringRateDependence(Mode mode) getFluidFlowDependence(Mode mode) getFluidGuards(Mode mode) getFluidImpulses(Mode mode) getFluidRateDependence(Mode mode) getFluidRates(Mode mode) getModes()intintbooleanvoidsetDistribution(Mode mode, Distribution distribution) voidsetEnablingConditions(Mode mode, JobClass jobclass, Place inputPlace, int enablingCondition) voidsetFiringOutcome(Mode mode, JobClass jobclass, Node node, int firingOutcome) voidsetFiringPriorities(Mode mode, int firingPriority) voidMarking-dependent firing-rate multiplier for a timed mode.voidsetFiringWeights(Mode mode, double firingWeight) voidsetFluidFlowDependence(Mode mode, Place place, SerializableFunction<Matrix, Double> phi) Marking-dependent fluid flow reading the input places of the mode; see the four-argument form.voidsetFluidFlowDependence(Mode mode, Place place, SerializableFunction<Matrix, Double> phi, List<Place> readPlaces) Marking-dependent fluid flow: the flow of the mode into or out of the fluid place becomes k*rate*phi(M), with k the running servers and rate the one set bysetFluidRate(jline.lang.Mode, jline.lang.nodes.Place, double).voidsetFluidGuard(Mode mode, Place place, String op, double threshold) Enables the mode only while the level of the fluid place satisfieslevel op threshold, with op ">=" or "<=".voidsetFluidImpulse(Mode mode, Place place, double delta) Every firing of the mode moves the level of the fluid place by delta at once (a deposit for delta > 0, a withdrawal for delta < 0).voidsetFluidRate(Mode mode, Place place, double rate) Fluid flow of a TIMED mode into (rate > 0) or out of (rate < 0) the fluid place, per running server: while the marking keeps k servers of the mode running, the level moves at k*rate.voidsetFluidRateDependence(Mode mode, Place place, SerializableFunction<Double, Double> h) Fluid-dependent firing rate of a TIMED, exponentially distributed mode: its rate is multiplied by h(level), a non-negative function of the level of the fluid place.voidsetInhibitingConditions(Mode mode, JobClass jobclass, Place inputPlace, int inhibitingCondition) voidsetModeNames(Mode mode, String modeName) voidsetNumberOfServers(Mode mode, Integer numberOfServers) voidsetTimingStrategy(Mode mode, TimingStrategy timingStrategy) Methods inherited from class jline.lang.nodes.ServiceNode
getSchedStrategy, getSchedStrategyPar, getServiceProcess, setService, setServiceMethods inherited from class jline.lang.nodes.StatefulNode
clearState, getNumberOfServers, getState, getStatefulIndex, getStatePrior, getStateSpace, resetStateSpace, setState, setState, setStatePrior, setStateSpaceMethods inherited from class jline.lang.nodes.Node
copy, copyElement, getAttribute, getCap, getClassCap, getDropStrategy, getInput, getModel, getNodeIndex, getOutput, getOutputStrategies, getRoutingStrategy, getSections, getServer, getStateDepRouting, getStatefulIdx, getStationIdx, hasClassSwitching, isReferenceStation, isStateful, isStation, link, printSummary, removeJobClass, reset, resetRouting, setModel, setNodeIdx, setProbRouting, setRouting, setRouting, setRouting, setSQRouting, setStateDepRouting, setStationIdx, summary
-
Field Details
-
enablingConditions
-
inhibitingConditions
-
firingOutcomes
-
timingStrategies
-
distributions
-
firingRateDependence
-
fluidRates
-
fluidGuards
-
fluidImpulses
-
fluidRateDependence
-
fluidFlowDependence
-
firingPriorities
-
firingWeights
-
-
Constructor Details
-
Transition
-
-
Method Details
-
addMode
-
addMode
-
getFiringDistribution
-
getModeNames
-
getModes
-
getNumberOfModeServers
-
getNumberOfModeServers
-
getNumberOfModes
public int getNumberOfModes() -
setDistribution
-
setFiringRateDependence
Marking-dependent firing-rate multiplier for a timed mode. g(m) takes the node-indexed input-place marking matrix and returns a positive scalar; the effective firing rate of an enabled binding becomes rate_base(mode)*g(m). Exact only for memoryless firing, so the mode must be TIMED and exponentially distributed (mirrors the PS/FCFS-only station dependence). -
getFiringRateDependence
-
setFluidRate
Fluid flow of a TIMED mode into (rate > 0) or out of (rate < 0) the fluid place, per running server: while the marking keeps k servers of the mode running, the level moves at k*rate. For a single-server mode this is the classical FSPN rule "fluid flows while the transition is enabled". A flow stops at the place's bounds: an empty place supplies no outflow beyond its inflow, a full place admits no inflow beyond its outflow. A rate of 0 removes the arc. -
setFluidGuard
Enables the mode only while the level of the fluid place satisfieslevel op threshold, with op ">=" or "<=". A mode carries at most one guard per fluid place and all of them must hold. A null or empty op removes the guard. -
setFluidImpulse
Every firing of the mode moves the level of the fluid place by delta at once (a deposit for delta > 0, a withdrawal for delta < 0). The jump is truncated at the place's bounds; the firing itself is never blocked. A delta of 0 removes the impulse. -
setFluidRateDependence
Fluid-dependent firing rate of a TIMED, exponentially distributed mode: its rate is multiplied by h(level), a non-negative function of the level of the fluid place. Several places multiply. A null h removes the dependence on the place. Memoryless firing is required for the same reason as insetFiringRateDependence(jline.lang.Mode, jline.util.SerializableFunction<jline.util.matrix.Matrix, java.lang.Double>). -
setFluidFlowDependence
public void setFluidFlowDependence(Mode mode, Place place, SerializableFunction<Matrix, Double> phi, List<Place> readPlaces) Marking-dependent fluid flow: the flow of the mode into or out of the fluid place becomes k*rate*phi(M), with k the running servers and rate the one set bysetFluidRate(jline.lang.Mode, jline.lang.nodes.Place, double). phi is a function of the (nnodes x nclasses) marking matrix M returning a non-negative scalar, as forsetFiringRateDependence(jline.lang.Mode, jline.util.SerializableFunction<jline.util.matrix.Matrix, java.lang.Double>). M carries the token places readPlaces and holds every other row at 0; with readPlaces null or empty it carries the input places of the mode, the marking setFiringRateDependence reads. A null phi removes the dependence. -
setFluidFlowDependence
Marking-dependent fluid flow reading the input places of the mode; see the four-argument form. -
getFluidFlowDependence
- Returns:
- the marking-dependent flow multipliers of the mode
-
getFluidRates
- Returns:
- the (F x 2) flow rows [place node index, rate] of the mode
-
getFluidGuards
- Returns:
- the (G x 3) guard rows [place node index, sgn, threshold] of the mode
-
getFluidImpulses
- Returns:
- the (F x 2) impulse rows [place node index, delta] of the mode
-
getFluidRateDependence
- Returns:
- the fluid rate dependences of the mode
-
hasFluidArcs
public boolean hasFluidArcs()- Returns:
- true when any mode declares a flow, guard, impulse, fluid rate or flow dependence
-
setEnablingConditions
-
setFiringOutcome
-
setFiringPriorities
-
setFiringWeights
-
setInhibitingConditions
-
setModeNames
-
setNumberOfServers
-
setTimingStrategy
-