Problems with Mathematica Code for Markov Models?

  • Context: Mathematica 
  • Thread starter Thread starter johalia
  • Start date Start date
  • Tags Tags
    Code Mathematica
Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
1 reply · 4K views
johalia
Messages
1
Reaction score
0
Hello!

I'm writing a paper where I'm going to use markov models to evalute a device. My base for this paper is the paper written by H. Timbley. I have never used Mathematica before and thought that I would start by trying the complete code that Timbley has written in the appendix of the paper. The code is:

DiscreteMath`Combinatorica`;
IndexOf[vector , e ] := Position[vector, e][[1, 1]];

device =
{{"Clock", "Clock", "Clock", "Clock", "Clock", "Clock"},
{"Quick Defrost", "Quick Defrost", "Quick Defrost",
"Quick Defrost", "Quick Defrost", "Quick Defrost"},
{"Timer1", "Timer1", "Timer2", "Timer1", "Timer2", "Timer1"},
{"Clock", "Clock", "Clock", "Clock", "Clock", "Clock"},
{"Clock", "Quick Defrost", "Power1",
"Power2", "Power1", "Power2"}
};

buttonNames = {"Clock", "Quick Defrost", "Time", "Clear", "Power"};
stateNames = {"Clock", "Quick Defrost", "Timer1", "Timer2", "Power1",
"Power2"};

numberOfStates = Length@stateNames;
numberOfButtons = Length@buttonNames;

start = IndexOf[stateNames, "Power1"];
goal = IndexOf[stateNames, "Power2"];


Until then the code work just fine, but when I type in the next section described in the appendix (see below), some error codes pop up.

Do[randomUser[[i, IndexOf[stateNames, device[[b, i]]]]] +=
1/numberOfButtons, {b, numberOfButtons}, {i, numberOfStates}];


Error codes:
Part::partw: Part 1 of {} does not exist. >>
Part::pspec: Part specification {}[[1,1]] is neither a machine-sized integer nor a list of machine-sized integers. >>
Part::partw: Part 1 of {} does not exist. >>
Set::pspec: Part specification {}[[1,1]] is neither a machine-sized integer nor a list of machine-sized integers. >>
Part::partw: Part 3 of {Quick Defrost,(Quick Defrost)^5} does not exist. >>
General::stop: Further output of Part::partw will be suppressed during this calculation. >>
Part::pspec: Part specification {}[[1,1]] is neither a machine-sized integer nor a list of machine-sized integers. >>
Set::pspec: Part specification {}[[1,1]] is neither a machine-sized integer nor a list of machine-sized integers. >>
Part::pspec: Part specification {}[[1,1]] is neither a machine-sized integer nor a list of machine-sized integers. >>
General::stop: Further output of Part::pspec will be suppressed during this calculation. >>
Set::pspec: Part specification {}[[1,1]] is neither a machine-sized integer nor a list of machine-sized integers. >>
General::stop: Further output of Set::pspec will be suppressed during this calculation. >>


Is there anybody that could tell me what's wrong with the code?
 
Last edited:
Physics news on Phys.org
What version of Mathematica are you using? Because I get different error messages.

The problem seems to be that randomUser is not defined.

Can you give a reference for the paper you mention?