DecisionMakingProblems.jl

A Julia interface to access decision models which appeared in Algorithms for Decision Making.

Problem Summary

The following table contains the information about each of the problems contained in this package.

Name$\mathcal{S}$$\mathcal{A}$$\mathcal{O}$$\gamma$Struct NameType
Hexworldvaries6-0.9HexWorld, StraightLineHexWorldMDP
2048$\infty$4-1TwentyFortyEightMDP
Cart-polesubset of $\mathbb{R}^4$2-1CartPoleMDP
Mountain Carsubset of $\mathbb{R}^2$3-1MountainCarMDP
Simple Regulatorsubset of $\mathbb{R}$subset of $\mathbb{R}$-1 or 0.9LQRMDP
Aircraft collision avoidancesubset of $\mathbb{R}^3$3-1CollisionAvoidanceMDP
Crying baby2320.9CryingBabyPOMDP
Machine Replacement3421MachineReplacementPOMDP
Catch41020.9CatchPOMDP
Prisoner's dilemma-2 per agent-1PrisonersDilemmaSimpleGame
Rock-paper-scissors-3 per agent-1RockPaperScissorsSimpleGame
Traveler's Dilemma-99 per agent-1TravelersSimpleGame
Predator-prey hex worldvaries6 per agent-0.9PredatorPreyHexWorld, CirclePredatorPreyHexWorldMG
Multiagent Crying Baby23 per agent2 per agent0.9MultiCaregiverCryingBabyPOMG
Collaborative predator-prey hex worldvaries6 per agent-0.9CollaborativePredatorPreyHexWorld, SimpleCollaborativePredatorPreyHexWorld, CircleCollaborativePredatorPreyHexWorldDecPOMDP |

The last column has the following key:

  • MDP: Markov Decision Process
  • POMDP: Partially Observable Markov Decision Process
  • SimpleGame: Simple Game
  • MG: Markov Game
  • POMG: Partially Observable Markov Game
  • DecPOMDP: Decentralized Partially Observable Markov Decision Process

Usage

If we look at a specific problem whose struct is named structName and whose type is type as shown in the problem summary table. Then we are able to set up an instance of the struct for that specific problem using the following:

m = structName()
decprob = type(m)   # type will be the name of one of the problem types in the last column

An example of this would be to create an instance of the Prisoner's Dilemma struct, we would use the following code:

m = PrisonersDilemma()
decprob = SimpleGame(m)

MDP Models

POMDP Models

Simple Games

POMG Models

Markov Games

Dec-POMDP