tests/testthat/files/two_level_hmdp.R

# A small HMDP with two levels
w<-binaryMDPWriter("2lev_", getLog = FALSE)
w$setWeights(c("Duration","Net reward","Items"))
w$process()
	w$stage()
		w$state(label="M0")
			w$action(label="A0",weights=c(0,0,0),prob=c(2,0,1))
				w$process()
					w$stage()
						w$state(label="D")
							w$action(label="A0",weights=c(0,0,1),prob=c(1,0,0.5,1,1,0.5))
							w$endAction()
						w$endState()
					w$endStage()
					w$stage()
						w$state(label="C0")
							w$action(label="A0",weights=c(0,0,0),prob=c(1,0,1))
							w$endAction()
							w$action(label="A1",weights=c(1,2,1),prob=c(1,0,0.5,1,1,0.5))
							w$endAction()
						w$endState()
						w$state(label="C1")
							w$action(label="A0",weights=c(0,0,0),prob=c(1,0,1))
							w$endAction()
							w$action(label="A1",weights=c(1,2,1),prob=c(1,0,0.5,1,1,0.5))
							w$endAction()
						w$endState()
					w$endStage()
					w$stage()
						w$state(label="C0")
							w$action(label="A0",weights=c(1,4,0),prob=c(0,0,1))
							w$endAction()
						w$endState()
						w$state(label="C1")
							w$action(label="A0",weights=c(1,4,0),prob=c(0,0,1))
							w$endAction()
						w$endState()
					w$endStage()
				w$endProcess()
			w$endAction()
			w$action(label="A1",weights=c(0,0,0),prob=c(2,0,1))
				w$process()
					w$stage()
						w$state(label="D")
							w$action(label="A0",weights=c(0,0,1),prob=c(1,0,1))
							w$endAction()
						w$endState()
					w$endStage()
					w$stage()
						w$state(label="C0")
							w$action(label="A0",weights=c(0,0,0),prob=c(1,0,1))
							w$endAction()
							w$action(label="A1",weights=c(1,2,1),prob=c(1,0,0.5,1,1,0.5))
							w$endAction()
						w$endState()
					w$endStage()
					w$stage()
						w$state(label="C0")
							w$action(label="A0",weights=c(1,4,0),prob=c(0,0,1))
							w$endAction()
						w$endState()
						w$state(label="C1")
							w$action(label="A0",weights=c(1,4,0),prob=c(0,0,1))
							w$endAction()
							w$action(label="A1",weights=c(0,10,5),prob=c(0,0,0.5,0,1,0.5))
							w$endAction()
						w$endState()
					w$endStage()
				w$endProcess()
			w$endAction()
		w$endState()
		w$state(label="M1")
			w$action(label="A0",weights=c(0,0,0),prob=c(2,0,1))
				w$process()
					w$stage()
						w$state(label="D")
							w$action(label="A0",weights=c(0,0,1),prob=c(1,0,0.5,1,1,0.5))
							w$endAction()
						w$endState()
					w$endStage()
					w$stage()
						w$state(label="C0")
							w$action(label="A0",weights=c(0,0,0),prob=c(1,0,1))
							w$endAction()
						w$endState()
						w$state(label="C1")
							w$action(label="A0",weights=c(0,0,0),prob=c(1,0,1))
							w$endAction()
						w$endState()
					w$endStage()
					w$stage()
						w$state(label="C0")
							w$action(label="A0",weights=c(1,4,0),prob=c(0,0,1))
							w$endAction()
						w$endState()
						w$state(label="C1")
							w$action(label="A0",weights=c(1,4,0),prob=c(0,0,1))
							w$endAction()
						w$endState()
					w$endStage()
				w$endProcess()
			w$endAction()
		w$endState()
	w$endStage()
w$endProcess()
w$closeWriter()

Try the MDP2 package in your browser

Any scripts or data that you put into this service are public.

MDP2 documentation built on June 13, 2026, 1:08 a.m.