rl

package
v0.3.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 24, 2023 License: MIT Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrInvalidEpsilon = errors.New("invalid epsilon value")

Functions

This section is empty.

Types

type Action added in v0.3.2

type Action struct {
	Type ActionType
	// contains filtered or unexported fields
}

func DeliverMessageAction added in v0.3.2

func DeliverMessageAction(message *types.Message) *Action

func TimeoutReplicaAction added in v0.3.2

func TimeoutReplicaAction(replica types.ReplicaID) *Action

func (*Action) Name added in v0.3.2

func (a *Action) Name() string

type ActionType added in v0.3.2

type ActionType string
var (
	DeliverMessage ActionType = "DeliverMessage"
	TimeoutReplica ActionType = "TimeoutReplica"
)

type Interpreter

type Interpreter interface {
	Update(*types.Event, *strategies.Context)
	CurState() State
	Reset()
}

type Metrics added in v0.3.2

type Metrics struct {
	Trace *Trace
	// contains filtered or unexported fields
}

func NewMetrics added in v0.3.2

func NewMetrics(path string) (*Metrics, error)

func (*Metrics) Finalize added in v0.3.2

func (m *Metrics) Finalize(ctx *strategies.Context)

func (*Metrics) NextIteration added in v0.3.2

func (m *Metrics) NextIteration()

func (*Metrics) Update added in v0.3.2

func (m *Metrics) Update(step int, state *wrappedState, action *Action)

type NegativeRewardPolicy added in v0.3.1

type NegativeRewardPolicy struct {
	Alpha float64
	Gamma float64
	// contains filtered or unexported fields
}

func NewNegativeRewardPolicy added in v0.3.1

func NewNegativeRewardPolicy(alpha, gamma float64) *NegativeRewardPolicy

func (*NegativeRewardPolicy) NextAction added in v0.3.1

func (n *NegativeRewardPolicy) NextAction(step int, state State, actions []*Action) (*Action, bool)

func (*NegativeRewardPolicy) NextIteration added in v0.3.1

func (n *NegativeRewardPolicy) NextIteration(iteration int, trace *Trace)

func (*NegativeRewardPolicy) Update added in v0.3.1

func (n *NegativeRewardPolicy) Update(_ int, _ State, _ *Action, _ State)

type Policy

type Policy interface {
	NextAction(int, State, []*Action) (*Action, bool)
	Update(int, State, *Action, State)
	NextIteration(int, *Trace)
}

type RLStrategy

type RLStrategy struct {
	*types.BaseService
	// contains filtered or unexported fields
}

func NewRLStrategy

func NewRLStrategy(config *RLStrategyConfig) (*RLStrategy, error)

func (*RLStrategy) ActionsCh

func (r *RLStrategy) ActionsCh() *types.Channel[*strategies.Action]

func (*RLStrategy) EndCurIteration

func (r *RLStrategy) EndCurIteration(ctx *strategies.Context)

func (*RLStrategy) Finalize

func (r *RLStrategy) Finalize(ctx *strategies.Context)

func (*RLStrategy) NextIteration

func (r *RLStrategy) NextIteration(ctx *strategies.Context)

func (*RLStrategy) Start

func (r *RLStrategy) Start() error

func (*RLStrategy) Step

func (r *RLStrategy) Step(e *types.Event, ctx *strategies.Context)

func (*RLStrategy) Stop

func (r *RLStrategy) Stop() error

type RLStrategyConfig

type RLStrategyConfig struct {
	Interpreter       Interpreter
	Policy            Policy
	AgentTickDuration time.Duration
	MetricsPath       string
	AllowTimeouts     bool
}

type RandomPolicy added in v0.3.3

type RandomPolicy struct {
	// contains filtered or unexported fields
}

func NewRandomPolicy added in v0.3.3

func NewRandomPolicy() *RandomPolicy

func (*RandomPolicy) NextAction added in v0.3.3

func (r *RandomPolicy) NextAction(step int, state State, actions []*Action) (*Action, bool)

func (*RandomPolicy) NextIteration added in v0.3.3

func (r *RandomPolicy) NextIteration(_ int, _ *Trace)

func (*RandomPolicy) Update added in v0.3.3

func (r *RandomPolicy) Update(_ int, _ State, _ *Action, _ State)

type State

type State interface {
	Hash() string
}

type Trace added in v0.3.1

type Trace struct {
	// contains filtered or unexported fields
}

func NewTrace added in v0.3.1

func NewTrace() *Trace

func (*Trace) Add added in v0.3.1

func (t *Trace) Add(state *wrappedState, action *Action)

func (*Trace) Get added in v0.3.1

func (t *Trace) Get(i int) (State, *Action, bool)

func (*Trace) Hash added in v0.3.2

func (t *Trace) Hash() string

func (*Trace) Length added in v0.3.1

func (t *Trace) Length() int

func (*Trace) Reset added in v0.3.1

func (t *Trace) Reset()

func (*Trace) Strings added in v0.3.4

func (t *Trace) Strings() []string

type UCBZeroEGreedyPolicy added in v0.3.1

type UCBZeroEGreedyPolicy struct {
	*UCBZeroPolicy
	Epsilon float64
	// contains filtered or unexported fields
}

func NewUCBZeroEGreedyPolicy added in v0.3.1

func NewUCBZeroEGreedyPolicy(config *UCBZeroEGreedyPolicyConfig) (*UCBZeroEGreedyPolicy, error)

func (*UCBZeroEGreedyPolicy) NextAction added in v0.3.1

func (u *UCBZeroEGreedyPolicy) NextAction(step int, state State, actions []*Action) (*Action, bool)

type UCBZeroEGreedyPolicyConfig added in v0.3.1

type UCBZeroEGreedyPolicyConfig struct {
	*UCBZeroPolicyConfig
	Epsilon float64
}

type UCBZeroPolicy added in v0.3.1

type UCBZeroPolicy struct {
	// contains filtered or unexported fields
}

func NewUCBZeroPolicy added in v0.3.1

func NewUCBZeroPolicy(config *UCBZeroPolicyConfig) *UCBZeroPolicy

func (*UCBZeroPolicy) NextAction added in v0.3.1

func (e *UCBZeroPolicy) NextAction(step int, state State, actions []*Action) (*Action, bool)

func (*UCBZeroPolicy) NextIteration added in v0.3.1

func (e *UCBZeroPolicy) NextIteration(iteration int, trace *Trace)

func (*UCBZeroPolicy) Update added in v0.3.1

func (e *UCBZeroPolicy) Update(step int, state State, action *Action, nextState State)

type UCBZeroPolicyConfig added in v0.3.1

type UCBZeroPolicyConfig struct {
	Horizon     int
	StateSpace  int
	Iterations  int
	ActionSpace int
	Probability float64
	C           float64
}

type UCBZeroState added in v0.3.1

type UCBZeroState struct {
	// contains filtered or unexported fields
}

func NewUCBZeroState added in v0.3.1

func NewUCBZeroState(config *UCBZeroPolicyConfig) *UCBZeroState

func (*UCBZeroState) NextAction added in v0.3.1

func (e *UCBZeroState) NextAction(step int, state State, actions []*Action) *Action

func (*UCBZeroState) Update added in v0.3.1

func (e *UCBZeroState) Update(step int, curState State, nextAction *Action, nextState State) bool

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL