# Define the state and observation space
states = c("1","2","3","H")
observations <- c("fever", "ok")

# Define the start probabilities
startProbs <- c(1,0,0,0)

# Define the transition probabilities
transProbs <- matrix(data = c(0.6,0.3 ,0   ,0.1,
                              0  ,0.75,0.15,0.1,
                              0  ,0   ,0.9 ,0.1,
                              0  ,0   ,0   ,1),
                                  byrow = T,nrow = 4)

# Define the emission probabilities
emitProbs <- matrix(c(0.1, 0.9, 0.5, 0.5, 0.8, 0.2, 0, 1), byrow=T, nrow=4)

# Create the HMM
hmm <- initHMM(States=states, Symbols=observations, startProbs=startProbs, transProbs=transProbs, emissionProbs=emitProbs)

#simHMM(hmm,15)

# Print the HMM
print(hmm)
## $States
## [1] "1" "2" "3" "H"
## 
## $Symbols
## [1] "fever" "ok"   
## 
## $startProbs
## 1 2 3 H 
## 1 0 0 0 
## 
## $transProbs
##     to
## from   1    2    3   H
##    1 0.6 0.30 0.00 0.1
##    2 0.0 0.75 0.15 0.1
##    3 0.0 0.00 0.90 0.1
##    H 0.0 0.00 0.00 1.0
## 
## $emissionProbs
##       symbols
## states fever  ok
##      1   0.1 0.9
##      2   0.5 0.5
##      3   0.8 0.2
##      H   0.0 1.0

What is the most likely sequence of test results in the first three days in the hospital?

which.max(c(
sum(exp(forward(hmm,c("fever","fever","fever")))[,3]),
sum(exp(forward(hmm,c("fever","fever","ok")))[,3]),
sum(exp(forward(hmm,c("fever","ok","fever")))[,3]),
sum(exp(forward(hmm,c("ok","fever","fever")))[,3]),
sum(exp(forward(hmm,c("fever","ok","ok")))[,3]),
sum(exp(forward(hmm,c("ok","fever","ok")))[,3]),
sum(exp(forward(hmm,c("ok","ok","fever")))[,3]),
sum(exp(forward(hmm,c("ok","ok","ok")))[,3])))

#print(sum(exp(forward(hmm,c("ok","ok","ok")))[,3]))
#print(" -ok,ok,ok- most likely ")

What is the probability of three days with fever in a row (trace: fever, fever, fever) in the first three days in the hospital?

sum(exp(forward(hmm,c("fever","fever","fever")))[,3])

What is the probability of that trace (fever, fever, fever) after 5 days in the hospital?

sum(
sum(exp(forward(hmm,c("fever","fever","fever","fever","fever")))[,5]),
sum(exp(forward(hmm,c("fever","ok","fever","fever","fever")))[,5]),
sum(exp(forward(hmm,c("ok","fever","fever","fever","fever")))[,5]),
sum(exp(forward(hmm,c("ok","ok","fever","fever","fever")))[,5])
)

What is the most likely path that led to observing three days without fever in a row (trace: OK, OK, OK) in the first three days in the hospital?

viterbi(hmm,c("ok","ok","ok"))

What is the most likely path of that trace (OK, OK, OK) after 5 days in the hospital?

viterbi(hmm,c("fever","fever","ok","ok","ok"))
viterbi(hmm,c("fever","ok","ok","ok","ok"))
viterbi(hmm,c("ok","fever","ok","ok","ok"))
viterbi(hmm,c("ok","ok","ok","ok","ok"))

print(" most likely path is -H,H,H- ")
LS0tDQp0aXRsZTogIkFETSBBc3NpZ25tZW50IDUiDQphdXRob3I6ICJEb21pbmlrIERpZWRyaWNoIg0KZGF0ZTogImByIFN5cy5EYXRlKClgIg0Kb3V0cHV0Og0KICBodG1sX2RvY3VtZW50Og0KICAgIGNvZGVfZG93bmxvYWQ6IHllcw0KICAgIGNvZGVfZm9sZGluZzogaGlkZSANCiAgcGRmX2RvY3VtZW50OiBkZWZhdWx0DQotLS0NCg0KYGBge3IgaW5jbHVkZT1GQUxTRX0NCmxpYnJhcnkoSE1NKQ0KYGBgDQoNCmBgYHtyfQ0KDQojIERlZmluZSB0aGUgc3RhdGUgYW5kIG9ic2VydmF0aW9uIHNwYWNlDQpzdGF0ZXMgPSBjKCIxIiwiMiIsIjMiLCJIIikNCm9ic2VydmF0aW9ucyA8LSBjKCJmZXZlciIsICJvayIpDQoNCiMgRGVmaW5lIHRoZSBzdGFydCBwcm9iYWJpbGl0aWVzDQpzdGFydFByb2JzIDwtIGMoMSwwLDAsMCkNCg0KIyBEZWZpbmUgdGhlIHRyYW5zaXRpb24gcHJvYmFiaWxpdGllcw0KdHJhbnNQcm9icyA8LSBtYXRyaXgoZGF0YSA9IGMoMC42LDAuMyAsMCAgICwwLjEsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwICAsMC43NSwwLjE1LDAuMSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAgICwwICAgLDAuOSAsMC4xLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCAgLDAgICAsMCAgICwxKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBieXJvdyA9IFQsbnJvdyA9IDQpDQoNCiMgRGVmaW5lIHRoZSBlbWlzc2lvbiBwcm9iYWJpbGl0aWVzDQplbWl0UHJvYnMgPC0gbWF0cml4KGMoMC4xLCAwLjksIDAuNSwgMC41LCAwLjgsIDAuMiwgMCwgMSksIGJ5cm93PVQsIG5yb3c9NCkNCg0KIyBDcmVhdGUgdGhlIEhNTQ0KaG1tIDwtIGluaXRITU0oU3RhdGVzPXN0YXRlcywgU3ltYm9scz1vYnNlcnZhdGlvbnMsIHN0YXJ0UHJvYnM9c3RhcnRQcm9icywgdHJhbnNQcm9icz10cmFuc1Byb2JzLCBlbWlzc2lvblByb2JzPWVtaXRQcm9icykNCg0KI3NpbUhNTShobW0sMTUpDQoNCiMgUHJpbnQgdGhlIEhNTQ0KcHJpbnQoaG1tKQ0KYGBgDQoNCg0KIyMgV2hhdCBpcyB0aGUgbW9zdCBsaWtlbHkgc2VxdWVuY2Ugb2YgdGVzdCByZXN1bHRzIGluIHRoZSBmaXJzdCB0aHJlZSBkYXlzIGluIHRoZSBob3NwaXRhbD8NCg0KYGBge3IgZXZhbD1GQUxTRX0NCndoaWNoLm1heChjKA0Kc3VtKGV4cChmb3J3YXJkKGhtbSxjKCJmZXZlciIsImZldmVyIiwiZmV2ZXIiKSkpWywzXSksDQpzdW0oZXhwKGZvcndhcmQoaG1tLGMoImZldmVyIiwiZmV2ZXIiLCJvayIpKSlbLDNdKSwNCnN1bShleHAoZm9yd2FyZChobW0sYygiZmV2ZXIiLCJvayIsImZldmVyIikpKVssM10pLA0Kc3VtKGV4cChmb3J3YXJkKGhtbSxjKCJvayIsImZldmVyIiwiZmV2ZXIiKSkpWywzXSksDQpzdW0oZXhwKGZvcndhcmQoaG1tLGMoImZldmVyIiwib2siLCJvayIpKSlbLDNdKSwNCnN1bShleHAoZm9yd2FyZChobW0sYygib2siLCJmZXZlciIsIm9rIikpKVssM10pLA0Kc3VtKGV4cChmb3J3YXJkKGhtbSxjKCJvayIsIm9rIiwiZmV2ZXIiKSkpWywzXSksDQpzdW0oZXhwKGZvcndhcmQoaG1tLGMoIm9rIiwib2siLCJvayIpKSlbLDNdKSkpDQoNCiNwcmludChzdW0oZXhwKGZvcndhcmQoaG1tLGMoIm9rIiwib2siLCJvayIpKSlbLDNdKSkNCiNwcmludCgiIC1vayxvayxvay0gbW9zdCBsaWtlbHkgIikNCmBgYA0KDQoqIG1vc3QgbGlrZWx5IHNlcXVlbmNlOiAiLW9rLG9rLG9rLSIgd2l0aCBQcm9iID0gYHIgc3VtKGV4cChmb3J3YXJkKGhtbSxjKCJvayIsIm9rIiwib2siKSkpWywzXSkgKiAxMDBgICUNCg0KIyMgV2hhdCBpcyB0aGUgcHJvYmFiaWxpdHkgb2YgdGhyZWUgZGF5cyB3aXRoIGZldmVyIGluIGEgcm93ICh0cmFjZTogZmV2ZXIsIGZldmVyLCBmZXZlcikgaW4gdGhlIGZpcnN0IHRocmVlIGRheXMgaW4gdGhlIGhvc3BpdGFsPyANCg0KYGBge3IgZXZhbD1GQUxTRX0NCnN1bShleHAoZm9yd2FyZChobW0sYygiZmV2ZXIiLCJmZXZlciIsImZldmVyIikpKVssM10pDQoNCmBgYA0KKiBQcm9iID0gYHIgc3VtKGV4cChmb3J3YXJkKGhtbSxjKCJmZXZlciIsImZldmVyIiwiZmV2ZXIiKSkpWywzXSkgKiAxMDBgICUNCg0KDQoNCiMjIFdoYXQgaXMgdGhlIHByb2JhYmlsaXR5IG9mIHRoYXQgdHJhY2UgKGZldmVyLCBmZXZlciwgZmV2ZXIpIGFmdGVyIDUgZGF5cyBpbiB0aGUgaG9zcGl0YWw/IA0KDQpgYGB7ciBldmFsPUZBTFNFfQ0Kc3VtKA0Kc3VtKGV4cChmb3J3YXJkKGhtbSxjKCJmZXZlciIsImZldmVyIiwiZmV2ZXIiLCJmZXZlciIsImZldmVyIikpKVssNV0pLA0Kc3VtKGV4cChmb3J3YXJkKGhtbSxjKCJmZXZlciIsIm9rIiwiZmV2ZXIiLCJmZXZlciIsImZldmVyIikpKVssNV0pLA0Kc3VtKGV4cChmb3J3YXJkKGhtbSxjKCJvayIsImZldmVyIiwiZmV2ZXIiLCJmZXZlciIsImZldmVyIikpKVssNV0pLA0Kc3VtKGV4cChmb3J3YXJkKGhtbSxjKCJvayIsIm9rIiwiZmV2ZXIiLCJmZXZlciIsImZldmVyIikpKVssNV0pDQopDQpgYGANCiogUHJvYiA9IGByIHN1bShzdW0oZXhwKGZvcndhcmQoaG1tLGMoImZldmVyIiwiZmV2ZXIiLCJmZXZlciIsImZldmVyIiwiZmV2ZXIiKSkpWyw1XSksc3VtKGV4cChmb3J3YXJkKGhtbSxjKCJmZXZlciIsIm9rIiwiZmV2ZXIiLCJmZXZlciIsImZldmVyIikpKVssNV0pLHN1bShleHAoZm9yd2FyZChobW0sYygib2siLCJmZXZlciIsImZldmVyIiwiZmV2ZXIiLCJmZXZlciIpKSlbLDVdKSxzdW0oZXhwKGZvcndhcmQoaG1tLGMoIm9rIiwib2siLCJmZXZlciIsImZldmVyIiwiZmV2ZXIiKSkpWyw1XSkpICoxMDBgICUNCg0KDQoNCiMjIFdoYXQgaXMgdGhlIG1vc3QgbGlrZWx5IHBhdGggdGhhdCBsZWQgdG8gb2JzZXJ2aW5nIHRocmVlIGRheXMgd2l0aG91dCBmZXZlciBpbiBhIHJvdyAodHJhY2U6IE9LLCBPSywgT0spIGluIHRoZSBmaXJzdCB0aHJlZSBkYXlzIGluIHRoZSBob3NwaXRhbD8gDQoNCmBgYHtyIGV2YWw9RkFMU0V9DQp2aXRlcmJpKGhtbSxjKCJvayIsIm9rIiwib2siKSkNCmBgYA0KDQoqIG1vc3QgbGlrZWx5IHBhdGg6IGByIHZpdGVyYmkoaG1tLGMoIm9rIiwib2siLCJvayIpKWANCg0KDQojIyBXaGF0IGlzIHRoZSBtb3N0IGxpa2VseSBwYXRoIG9mIHRoYXQgdHJhY2UgKE9LLCBPSywgT0spIGFmdGVyIDUgZGF5cyBpbiB0aGUgaG9zcGl0YWw/IA0KDQpgYGB7ciBldmFsPUZBTFNFfQ0Kdml0ZXJiaShobW0sYygiZmV2ZXIiLCJmZXZlciIsIm9rIiwib2siLCJvayIpKQ0Kdml0ZXJiaShobW0sYygiZmV2ZXIiLCJvayIsIm9rIiwib2siLCJvayIpKQ0Kdml0ZXJiaShobW0sYygib2siLCJmZXZlciIsIm9rIiwib2siLCJvayIpKQ0Kdml0ZXJiaShobW0sYygib2siLCJvayIsIm9rIiwib2siLCJvayIpKQ0KDQpwcmludCgiIG1vc3QgbGlrZWx5IHBhdGggaXMgLUgsSCxILSAiKQ0KDQpgYGANCg0KKiBtb3N0IGxpa2VseSBwYXRoOiAoWCxYLClgciB2aXRlcmJpKGhtbSxjKCJmZXZlciIsImZldmVyIiwib2siLCJvayIsIm9rIikpWzM6NV1g