API Reference
HSVIforOSPOSGs.HSVI
HSVIforOSPOSGs.OSPOSG
HSVIforOSPOSGs.OSPOSG
HSVIforOSPOSGs.Partition
HSVIforOSPOSGs.Recorder
HSVIforOSPOSGs.State
HSVIforOSPOSGs.LB_min
HSVIforOSPOSGs.LB_value
HSVIforOSPOSGs.UB_max
HSVIforOSPOSGs.UB_value
HSVIforOSPOSGs.check_neighborhood
HSVIforOSPOSGs.compute_LB
HSVIforOSPOSGs.compute_UB
HSVIforOSPOSGs.lipschitz_delta
HSVIforOSPOSGs.presolve_LB
HSVIforOSPOSGs.presolve_UB
HSVIforOSPOSGs.save
HSVIforOSPOSGs.solve
Types
HSVIforOSPOSGs.State
— TypeState
Type for a state of one-sided partially observable stochastic game.
Fields:
index::Int
- global index of the statepartition::Int
- partition index to which the state belongsbelief_index::Int
- in-partition index of the stateplayer2_actions::Vector{Int}
- indexes of player2 actions available in this statepolicy_index::Dict{Int,Int}
- mapping from player2 action index to in-policy index
HSVIforOSPOSGs.Partition
— TypePartition
Type for a partition of one-sided partially observable stochastic game.
Fields:
index::Int
- global index of the partitionstates::Vector{Int}
- indexes of states that belong to this partitionplayer1_actions::Vector{Int}
- indexes of player1 actions available in this partitionpolicy_index::Dict{Int,Int}
- mapping from player1 action index to in-policy indextarget::Dict{Tuple{Int,Int},Int}
- mapping from player1 action index and observation index pair to target partition indexobservations::Dict{Int,Vector{Int}}
- mapping from player1 action index to indexes of possible observationstransitions::Dict{Tuple{Int,Int,Int},Vector{Tuple{Int,Int,Float64}}}
- mapping from state index, player1 action index and player2 action index triple to possible observation index, next state index and probability triplesa1o_transitions::Dict{Tuple{Int,Int},Vector{Tuple{Int,Int,Int,Float64}}}
- mapping from player1 action index and observation index tuple to possible state index, player2 action index, next state index and probability quadruplesgamma::Vector{Vector{Float64}}
- vector of α-vectors representing the lower bound LBupsilon::Vector{Tuple{Vector{Float64},Float64}}
- vector of belief-value pairs representing the upper bound UB
Methods
HSVIforOSPOSGs.save
— Functionsave(path::AbstractString, osposg::OSPOSG)
save(io::IO, osposg::OSPOSG)
Writes game osposg
in the .osposg
format to path
or to IO 'io'.
HSVIforOSPOSGs.LB_min
— FunctionLB_min(osposg::OSPOSG)
Returns the minimal possible value of the game.
HSVIforOSPOSGs.UB_max
— FunctionUB_max(osposg::OSPOSG)
Returns the maximal possible value of the game.
HSVIforOSPOSGs.lipschitz_delta
— Functionlipschitz_delta(osposg::OSPOSG)
Computes the Lipschitz delta of the game.
HSVIforOSPOSGs.check_neighborhood
— Functioncheck_neighborhood(osposg::OSPOSG, hsvi::HSVI, epsilon::Float64)
Checks that the hsvi.neighborhood
parameter is within bounds for osposg
game and gap epsilon
.
HSVIforOSPOSGs.compute_LB
— Functioncompute_LB(osposg::OSPOSG, hsvi::HSVI, partition::Partition, belief::Vector{Float64})
Solve LB stage game using linear program primal formulation and return policies of both players along with values of individual states.
HSVIforOSPOSGs.compute_UB
— Functioncompute_UB(osposg::OSPOSG, hsvi::HSVI, partition::Partition, belief::Vector{Float64})
Solve UB stage game using linear program dual formulation and return policies of both players along with value of the game.
HSVIforOSPOSGs.presolve_UB
— Functionpresolve_UB(osposg::OSPOSG, hsvi::HSVI, recorder::Recorder)
Presolve UB by value iteration of the perfect information variant of the game, which can be solved by linear program.
HSVIforOSPOSGs.presolve_LB
— Functionpresolve_LB(osposg::OSPOSG, hsvi::HSVI, recorder::Recorder)
Presolve LB by computing value of the game for fixed uniform policies.
HSVIforOSPOSGs.UB_value
— FunctionUB_value(osposg::OSPOSG, hsvi::HSVI)
UB_value(::OSPOSG, ::HSVI, partition::Partition, belief::Vector{Float64})
Compute UB value in initial partition and belief of osposg
or in specified partition
and belief
using convex hull linear program.
HSVIforOSPOSGs.LB_value
— FunctionLB_value(osposg::OSPOSG, hsvi::HSVI)
LB_value(::OSPOSG, ::HSVI, partition::Partition, belief::Vector{Float64})
Compute LB value in initial partition and belief of osposg
or in specified partition
and belief
using dot products of α-vectors with given belief.