コード例 #1
0
ファイル: vi.go プロジェクト: skelterjohn/rlalg
func BackupStateAction(qt *discrete.QTable, mdp discrete.MDP, s discrete.State, a discrete.Action) (error float64) {
	var nq float64

	for n := range mdp.S64() {
		ev := mdp.T(s, a, n)
		ev *= qt.V(n)
		nq += ev
	}
	nq *= mdp.GetGamma()
	nq += mdp.R(s, a)

	error = math.Fabs(nq - qt.Q(s, a))

	qt.SetQ(s, a, nq)

	return
}