module type export MCTSNode # ---------------------------------------------- 100 --------------------------------------------- # """ a node for MCTS search tree # Arguments - `state::T` a state of a game. Can be a Dict or something else. - `visits::Integer ` number of time the game visits this state - `stateValue::Float64` state value - `children::Dict{T, MCTSNode}` children node # Return - `nothing` # Example ```jldoctest julia> state = Dict( :info=> Dict(), # keyword info :thoughtHistory=> Dict( :question=> _, :thought_1=> _, :action_1=> _, :observation_1=> _, :thought_2=> _, ... ) ) ``` # TODO [] update docstring # Signature """ mutable struct MCTSNode{T1<:AbstractDict, T2<:AbstractString} nodekey::T2 state::T1 visits::Integer progressvalue::Number # estimate value by LLM's reasoning statevalue::Number # store discounted commulative reward (gather from its child node) reward::Number # this node's own reward isterminal::Bool parent::Union{MCTSNode, Nothing} children::Dict{String, MCTSNode} end end # module type