sig
module type Bandit =
sig
type bandit
val initialBandit : Obandit.Bandit.bandit
val step :
Obandit.Bandit.bandit -> float -> int * Obandit.Bandit.bandit
end
type banditEstimates = {
t : int;
a : int;
nVisits : int list;
u : float list;
}
module type AlphaPhiUCBParam =
sig val k : int val alpha : float val invLFPhi : float -> float end
module MakeAlphaPhiUCB :
functor (P : AlphaPhiUCBParam) ->
sig
type bandit = banditEstimates
val initialBandit : bandit
val step : bandit -> float -> int * bandit
end
module type AlphaUCBParam = sig val k : int val alpha : float end
module MakeAlphaUCB :
functor (P : AlphaUCBParam) ->
sig
type bandit = banditEstimates
val initialBandit : bandit
val step : bandit -> float -> int * bandit
end
module type KBanditParam = sig val k : int end
module MakeUCB1 :
functor (P : KBanditParam) ->
sig
type bandit = banditEstimates
val initialBandit : bandit
val step : bandit -> float -> int * bandit
end
module type RateBanditParam = sig val k : int val rate : int -> float end
module MakeParametrizableEpsilonGreedy :
functor (P : RateBanditParam) ->
sig
type bandit = banditEstimates
val initialBandit : bandit
val step : bandit -> float -> int * bandit
end
module type DecayingEpsilonGreedyParam =
sig val k : int val c : float val d : float end
module MakeDecayingEpsilonGreedy :
functor (P : DecayingEpsilonGreedyParam) ->
sig
type bandit = banditEstimates
val initialBandit : bandit
val step : bandit -> float -> int * bandit
end
module type EpsilonGreedyParam = sig val k : int val epsilon : float end
module MakeEpsilonGreedy :
functor (P : EpsilonGreedyParam) ->
sig
type bandit = banditEstimates
val initialBandit : bandit
val step : bandit -> float -> int * bandit
end
type banditPolicy = { t : int; a : int; w : float list; }
module MakeExp3 :
functor (P : RateBanditParam) ->
sig
type bandit = banditPolicy
val initialBandit : bandit
val step : bandit -> float -> int * bandit
end
module MakeDecayingExp3 :
functor (P : KBanditParam) ->
sig
type bandit = banditPolicy
val initialBandit : bandit
val step : bandit -> float -> int * bandit
end
module type FixedExp3Param = sig val k : int val eta : float end
module MakeFixedExp3 :
functor (P : FixedExp3Param) ->
sig
type bandit = banditPolicy
val initialBandit : bandit
val step : bandit -> float -> int * bandit
end
module type HorizonExp3Param = sig val k : int val n : int end
module MakeHorizonExp3 :
functor (P : HorizonExp3Param) ->
sig
type bandit = banditPolicy
val initialBandit : bandit
val step : bandit -> float -> int * bandit
end
module type RangeParam = sig val upper : float val lower : float end
type rangedAction = Reset of int | Action of int
type 'b rangedBandit = { bandit : 'b; u : float; l : float; }
module type RangedBandit =
sig
type bandit
val initialBandit : Obandit.RangedBandit.bandit Obandit.rangedBandit
val step :
Obandit.RangedBandit.bandit Obandit.rangedBandit ->
float ->
Obandit.rangedAction *
Obandit.RangedBandit.bandit Obandit.rangedBandit
end
module WrapRange :
functor (R : RangeParam) (B : Bandit) ->
sig
type bandit = B.bandit
val initialBandit : bandit rangedBandit
val step :
bandit rangedBandit -> float -> rangedAction * bandit rangedBandit
end
module WrapRange01 :
functor (B : Bandit) ->
sig
type bandit = B.bandit
val initialBandit : bandit rangedBandit
val step :
bandit rangedBandit -> float -> rangedAction * bandit rangedBandit
end
end