update
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
# Simple MCTS Example
|
||||
|
||||
This example demonstrates basic MCTS usage with a simple state transition function.
|
||||
|
||||
```julia
|
||||
using LLMMCTS
|
||||
|
||||
# Define a simple state transition function
|
||||
function simple_transition(state::Dict, args::NamedTuple)
|
||||
# In a real scenario, this would call an LLM
|
||||
# For this example, we'll just generate deterministic next states
|
||||
|
||||
current_step = get(state, :step, 0)
|
||||
new_step = current_step + 1
|
||||
|
||||
# Create new state
|
||||
newstate = Dict(
|
||||
:step => new_step,
|
||||
:reward => new_step * 2, # Simple reward function
|
||||
:isterminal => new_step >= args.max_steps
|
||||
)
|
||||
|
||||
# LLM would provide progressvalue estimate
|
||||
progressvalue = (new_step / args.max_steps) * 10
|
||||
|
||||
return Dict(
|
||||
:newNodeKey => "step_$(new_step)",
|
||||
:newstate => newstate,
|
||||
:progressvalue => progressvalue
|
||||
)
|
||||
end
|
||||
|
||||
# Initial state
|
||||
initialstate = Dict(
|
||||
:step => 0,
|
||||
:reward => 0,
|
||||
:isterminal => false
|
||||
)
|
||||
|
||||
# Transition arguments
|
||||
transitionargs = (max_steps = 5,)
|
||||
|
||||
# Run MCTS
|
||||
result = runMCTS(
|
||||
initialstate,
|
||||
simple_transition,
|
||||
transitionargs;
|
||||
maxiterations = 10,
|
||||
explorationweight = 1.0,
|
||||
maxSimulationDepth = 3,
|
||||
horizontalSampleExpansionPhase = 3
|
||||
)
|
||||
|
||||
# Access results
|
||||
println("Root node visits: ", result.root.visits)
|
||||
println("Best next state: ", result.bestNextState)
|
||||
println("Best terminal state: ", result.bestTerminalState)
|
||||
println("High value states: ", result.highValueStateList)
|
||||
```
|
||||
Reference in New Issue
Block a user