Documentation ¶
Index ¶
- func NewMarkSet() markSet
- func NewMarkStack() markStack
- type CSC
- type ConstantDist
- type DistributionInterface
- type ExpDist
- type ExpTrans
- type GenTrans
- type GenTransPolicy
- type GenVec
- type GenVecGenerator
- type GenVecGeneratorInterface
- type Group
- type GroupTrans
- type GroupType
- type ImmTrans
- type InArc
- type Link
- type Mark
- type MarkGenerator
- type MarkGeneratorInterface
- type MarkInt
- type MarkingGraph
- func (mg *MarkingGraph) GroupLabels() map[*Group]string
- func (mg *MarkingGraph) InitVector() map[*Group][]float64
- func (mg *MarkingGraph) RewardVector() map[string]map[*Group][]float64
- func (mg *MarkingGraph) StateLabels() map[*Group][]string
- func (mg *MarkingGraph) Summary()
- func (mg *MarkingGraph) ToGroupMarkDot(writer io.Writer)
- func (mg *MarkingGraph) ToMarkDot(writer io.Writer)
- func (mg *MarkingGraph) ToMarkDotWithLabel(writer io.Writer)
- func (mg *MarkingGraph) ToMarkDotWithLabelAndGroup(writer io.Writer)
- func (mg *MarkingGraph) TransLabels() map[GroupTrans]string
- func (mg *MarkingGraph) TransMatrix() (map[GroupTrans]*CSC, map[GroupTrans]*CSC, map[GroupTrans]*CSC)
- func (mg *MarkingGraph) WriteState(writer io.Writer)
- type Net
- func (net *Net) AddMarkGroupString(f func([]MarkInt) string)
- func (net *Net) Finalize()
- func (net *Net) GetPlace(label string) (*Place, bool)
- func (net *Net) GetTrans(label string) (*Trans, bool)
- func (net *Net) MakeMark(initmark map[string]MarkInt) []MarkInt
- func (net *Net) NewExpTrans(label string, priority int, vanishable bool, rate float64) *ExpTrans
- func (net *Net) NewGenTrans(label string, priority int, vanishable bool, dist DistributionInterface, ...) *GenTrans
- func (net *Net) NewImmTrans(label string, priority int, vanishable bool, weight float64) *ImmTrans
- func (net *Net) NewInArc(src placeInterface, dest transInterface, multiplicity MarkInt) *InArc
- func (net *Net) NewInhibitArc(src placeInterface, dest transInterface, multiplicity MarkInt) *InArc
- func (net *Net) NewOutArc(src transInterface, dest placeInterface, multiplicity MarkInt) *OutArc
- func (net *Net) NewPlace(label string, max MarkInt) *Place
- func (net *Net) SetGuard(tr transInterface, str string, guard func([]MarkInt) bool)
- func (net *Net) SetInArcMulti(arc *InArc, str string, multi func([]MarkInt) MarkInt)
- func (net *Net) SetOutArcMulti(arc *OutArc, str string, multi func([]MarkInt) MarkInt)
- func (net *Net) SetReward(str string, rwd func([]MarkInt) float64)
- func (net *Net) SetUpdate(tr transInterface, str string, update func([]MarkInt) []MarkInt)
- func (net *Net) SetWeightRate(tr transInterface, rate func([]MarkInt) float64)
- func (net *Net) ToPNDot(writer io.Writer)
- type OutArc
- type PNSimConfig
- type PNSimulation
- type Place
- type RandomNumberGenerator
- type Trans
- type TransStatus
- type TransType
- type UniformDist
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type ConstantDist ¶ added in v0.9.2
type ConstantDist struct {
// contains filtered or unexported fields
}
func (*ConstantDist) Float64 ¶ added in v0.9.2
func (d *ConstantDist) Float64(_ RandomNumberGenerator) float64
type DistributionInterface ¶ added in v0.9.2
type DistributionInterface interface {
Float64(RandomNumberGenerator) float64
}
func NewDistribution ¶
func NewDistribution(dist string, params ...float64) DistributionInterface
type ExpDist ¶ added in v0.9.2
type ExpDist struct {
// contains filtered or unexported fields
}
func (*ExpDist) Float64 ¶ added in v0.9.2
func (d *ExpDist) Float64(rng RandomNumberGenerator) float64
type ExpTrans ¶
type ExpTrans struct { *Trans // contains filtered or unexported fields }
type GenTrans ¶
type GenTrans struct { *Trans // contains filtered or unexported fields }
type GenTransPolicy ¶
type GenTransPolicy int
const ( GenTransPolicyPRD GenTransPolicy = iota + 1 // PRD: Premenptive different GenTransPolicyPRS // PRS: Premptive resume GenTransPolicyPRI // PRI: Preemptive repeat )
type GenVec ¶
type GenVec struct {
// contains filtered or unexported fields
}
func (*GenVec) IsAnyEnabled ¶
type GenVecGenerator ¶
type GenVecGenerator struct {
// contains filtered or unexported fields
}
func NewGenVecGenerator ¶
func NewGenVecGenerator(n int) *GenVecGenerator
type GenVecGeneratorInterface ¶
type GenVecGeneratorInterface interface {
// contains filtered or unexported methods
}
type Group ¶
type Group struct {
// contains filtered or unexported fields
}
The structure of group for marks, which consists of GroupType and status vector of GEN transitions.
type GroupTrans ¶
type GroupTrans struct {
// contains filtered or unexported fields
}
func (GroupTrans) GetDest ¶
func (g GroupTrans) GetDest() *Group
func (GroupTrans) GetSrc ¶
func (g GroupTrans) GetSrc() *Group
type ImmTrans ¶
type ImmTrans struct { *Trans // contains filtered or unexported fields }
type MarkGenerator ¶
type MarkGenerator struct {
// contains filtered or unexported fields
}
func NewMarkGenerator ¶
func NewMarkGenerator(n int) *MarkGenerator
type MarkGeneratorInterface ¶
type MarkGeneratorInterface interface {
// contains filtered or unexported methods
}
type MarkingGraph ¶
type MarkingGraph struct {
// contains filtered or unexported fields
}
The structure to store the result of analysis. The group represents the type of markings: IMM, GEN, ABS and the vector of status of GEN transitions (Enabled, Disabled and Premenpted).
func CreateMarkingGraph ¶
func CreateMarkingGraph(net *Net, imark []MarkInt, method makingGraphGenerator) *MarkingGraph
func CreateMarkingGraphWithDFS ¶
func CreateMarkingGraphWithDFS(net *Net, imark []MarkInt) *MarkingGraph
func CreateMarkingGraphWithDFSTangible ¶
func CreateMarkingGraphWithDFSTangible(net *Net, imark []MarkInt) *MarkingGraph
func (*MarkingGraph) GroupLabels ¶
func (mg *MarkingGraph) GroupLabels() map[*Group]string
func (*MarkingGraph) InitVector ¶
func (mg *MarkingGraph) InitVector() map[*Group][]float64
func (*MarkingGraph) RewardVector ¶
func (mg *MarkingGraph) RewardVector() map[string]map[*Group][]float64
func (*MarkingGraph) StateLabels ¶ added in v0.9.2
func (mg *MarkingGraph) StateLabels() map[*Group][]string
func (*MarkingGraph) Summary ¶ added in v0.9.2
func (mg *MarkingGraph) Summary()
func (*MarkingGraph) ToGroupMarkDot ¶
func (mg *MarkingGraph) ToGroupMarkDot(writer io.Writer)
func (*MarkingGraph) ToMarkDot ¶
func (mg *MarkingGraph) ToMarkDot(writer io.Writer)
func (*MarkingGraph) ToMarkDotWithLabel ¶
func (mg *MarkingGraph) ToMarkDotWithLabel(writer io.Writer)
func (*MarkingGraph) ToMarkDotWithLabelAndGroup ¶
func (mg *MarkingGraph) ToMarkDotWithLabelAndGroup(writer io.Writer)
func (*MarkingGraph) TransLabels ¶
func (mg *MarkingGraph) TransLabels() map[GroupTrans]string
func (*MarkingGraph) TransMatrix ¶
func (mg *MarkingGraph) TransMatrix() (map[GroupTrans]*CSC, map[GroupTrans]*CSC, map[GroupTrans]*CSC)
func (*MarkingGraph) WriteState ¶ added in v0.9.2
func (mg *MarkingGraph) WriteState(writer io.Writer)
type Net ¶
type Net struct {
// contains filtered or unexported fields
}
The structure for a petrinet.
func (*Net) AddMarkGroupString ¶ added in v0.10.0
func (*Net) NewExpTrans ¶
func (*Net) NewGenTrans ¶
func (net *Net) NewGenTrans(label string, priority int, vanishable bool, dist DistributionInterface, policy GenTransPolicy) *GenTrans
func (*Net) NewImmTrans ¶
func (*Net) NewInhibitArc ¶
func (*Net) SetInArcMulti ¶
func (*Net) SetOutArcMulti ¶
func (*Net) SetWeightRate ¶
type PNSimConfig ¶ added in v0.9.2
type PNSimConfig struct { EndingTime float64 `json:"time"` NumOfFiring int32 `json:"firings"` NumOfSimulation int `json:"simulations"` Rewards []string `json:"rewards"` }
func ReadConfigFromJson ¶ added in v0.9.2
func ReadConfigFromJson(b []byte) (PNSimConfig, error)
type PNSimulation ¶ added in v0.9.2
type PNSimulation struct { PNSimConfig // contains filtered or unexported fields }
func NewPNSimulation ¶ added in v0.9.2
func NewPNSimulation(net *Net, config PNSimConfig) *PNSimulation
func (*PNSimulation) RunSimulation ¶ added in v0.9.2
func (sim *PNSimulation) RunSimulation(init []MarkInt, rng RandomNumberGenerator) ([]event, float64, int32)
type RandomNumberGenerator ¶ added in v0.9.2
type RandomNumberGenerator interface {
Float64() float64 // return [0,1) uniform random number
}
type TransStatus ¶
type TransStatus int
const ( DISABLE TransStatus = iota + 1 ENABLE PREEMPTION )
func (TransStatus) String ¶
func (t TransStatus) String() string
type UniformDist ¶ added in v0.9.2
type UniformDist struct {
// contains filtered or unexported fields
}
func (*UniformDist) Float64 ¶ added in v0.9.2
func (d *UniformDist) Float64(rng RandomNumberGenerator) float64
Click to show internal directories.
Click to hide internal directories.