Class State

  • All Implemented Interfaces:
    java.io.Serializable

    
    public class State
     implements Serializable
                        

    Class modeling the state of Stateful nodes

    • Method Detail

      • afterEventHashedOrAdd

         static Ret.afterEventHashedOrAddResult afterEventHashedOrAdd(NetworkStruct sn, int ind, int inhash, EventType event, int jobclass)

        Combination of afterEventHashed with automatic state space extension Migrated from MATLAB afterEventHashedOrAdd.m

        Parameters:
        sn - Network structure
        ind - Node index
        inhash - Input hash ID
        event - Event type
        jobclass - Job class
        Returns:

        Ret.afterEventHashedOrAddResult containing output hash, rate, probability and updated network

      • handleEnableEvent

         static State.EventHandleResult handleEnableEvent(NetworkStruct sn, int ind, GlobalSync glevent, List<Matrix> glspace, List<Matrix> outglspace, Matrix inspace, Matrix spaceBuf, Matrix spaceSrv, Matrix spaceVar, Matrix fK, Matrix fKs, int mode, TransitionNodeParam transParam, int R)

        Handles ENABLE events for transitions in Stochastic Petri Net (SPN) event processing. This method processes the enabling phase of a transition firing, which checks if the transition can be enabled based on available tokens in input places and generates all possible state combinations when the transition becomes enabled. It implements the SPN semantics for transition enabling with support for multiple job classes and server allocation.

        Parameters:
        sn - Network structure containing the complete SPN model definition
        ind - Node index of the transition being processed
        glevent - Global synchronization event containing active and passive events
        glspace - Current global state space (list of states for each stateful node)
        outglspace - Output global state space to be updated
        inspace - Input state space matrix for the transition node
        spaceBuf - Buffer state space matrix (job queue states)
        spaceSrv - Server state space matrix (server allocation states)
        spaceVar - Variable state space matrix (phase variables)
        fK - Firing phases matrix for the transition
        fKs - Cumulative firing phases matrix
        mode - Current firing mode of the transition
        transParam - Transition node parameters containing enabling/firing rules
        R - Number of job classes in the network
      • handleFireEvent

         static State.EventHandleResult handleFireEvent(NetworkStruct sn, int ind, GlobalSync glevent, List<Matrix> glspace, List<Matrix> outglspace, Matrix inspace, Matrix spaceBuf, Matrix spaceSrv, Matrix spaceVar, Matrix fK, Matrix fKs, int mode, TransitionNodeParam transParam, int R)

        Handles FIRE events for transitions in Stochastic Petri Net (SPN) event processing. This method processes the firing phase of a transition after it has been enabled, implementing the complete SPN firing semantics including: - Calculating the enabling degree (maximum number of concurrent firings) - Processing PRE events (token consumption from input places) - Processing POST events (token production to output places) - Managing server state transitions and phase changes - Generating all possible outcome states with their associated rates and probabilities The method supports multiple job classes, multi-server environments, and complex firing patterns through multinomial probability distributions for server allocation.

        Parameters:
        sn - Network structure containing the complete SPN model definition
        ind - Node index of the transition being fired
        glevent - Global synchronization event containing active and passive events
        glspace - Current global state space (list of states for each stateful node)
        outglspace - Output global state space to be updated
        inspace - Input state space matrix for the transition node
        spaceBuf - Buffer state space matrix (job queue states)
        spaceSrv - Server state space matrix (server allocation states)
        spaceVar - Variable state space matrix (phase variables)
        fK - Firing phases matrix for the transition
        fKs - Cumulative firing phases matrix
        mode - Current firing mode of the transition
        transParam - Transition node parameters containing enabling/firing rules
        R - Number of job classes in the network
      • getHashOrAdd

         static Ret.getHashOrAddResult getHashOrAdd(NetworkStruct sn, int ind, Matrix inspace)

        Get hash ID for a state space, or add the state to the space if not found Migrated from MATLAB getHashOrAdd.m

        Parameters:
        sn - Network structure
        ind - Node index
        inspace - Input state space
        Returns:

        Ret.getHashOrAddResult containing hash IDs and updated network structure

      • spaceCachePublic

         static Matrix spaceCachePublic(int n, Matrix m)

        Make spaceCache method public Generates cache state space

        Parameters:
        n - Cache size
        m - Number of items
        Returns:

        Cache state space matrix

      • spaceClosedSinglePublic

         static Matrix spaceClosedSinglePublic(int M, int N)

        Make spaceClosedSingle method public Generates state space for single-class closed networks

        Parameters:
        M - Number of stations
        N - Number of jobs
        Returns:

        State space matrix

      • spaceGenerator

         static State.StateSpaceGeneratorResult spaceGenerator(NetworkStruct sn, Matrix cutoff, SolverOptions options)

        Generates the state space for a queueing network using a matrix cutoff. Each element of the cutoff matrix specifies the maximum population for the corresponding station-class combination.

        Parameters:
        sn - Network structure
        cutoff - Matrix of cutoff values with dimensions nstations × nclasses
        options - Solver options
        Returns:

        State space generation result

      • spaceLocalVarsPublic

         static Matrix spaceLocalVarsPublic(NetworkStruct sn, int ind)

        Make spaceLocalVars method public Generates local variable state spaces

        Parameters:
        sn - Network structure
        ind - Node index
        Returns:

        Local variable state space