Journal Updates
As part of the Canadian Distributed Mentorship Program, here is where I will be posting my journal entries relating to the work done.
I - | II - | III - | IV - | V - | VI - | VII - | VIII - | IX- | X- | XI- | XII- | XIII- | XIV- | XV- | XVI- | XVII- | XVIII |
Week Fourteen: July 31 - August 4
As if my code producing offendigly wrong results wasn't enough, my laptop decided to pass on Monday morning. Specifically, by starting up with a blue screen to the tune of "boot volume not found". I, having faith in technology, back up all my files constantly. Incidentally, on the same drive, which was now awol. I panicked long enough for the sys support guy upstairs to walk by my office and decide to help out. An hour and a chkdsk later, Windows was up and running again. Whew. The thought of my last 3 months being lost in the bowels of failed operating systems was fairly alarming.
Windows, I give you a C+.
I found another bug, which was that I wasn't actually normalizing things correctly. We won't go into the embarassing details of normalizing probability distributions among *all* possible values, vs. *relevant* values. While that fixed some of the infinity problems, it didn't fix all of them. However, having now been through several days of debugging, I noticed that only very small values of mu caused hell. Thus, by setting mu to something slightly larger, say 0.1, my distributions would be decent and I could move on to actually having some results.Several consecutive runs of the code ran bug-free, and actions seemed to get chosen fairly decently and randomly. It was the middle of the week, so
I took this as sign to take a break, and read about automata.
An automaton is a finite state machine, or a system composed of states, actions and transitions between states. If the
automaton is deterministic, then the next state is uniquely determined by the current state and the input string.
Conversely, in a non-deterministic automaton, there is more than one possible initial state, and there could
be one or more than one next states. A string is a finite-length sequence of elements in the "input
alphabet" (roughly speaking, the input alphabet is the different actions one can take from a state).
As such, you can have accepted strings - if by starting in the start state, and performing all
the actions in the input string the final state is reached, then the string is accepted. A rejected
string is one that is not accepted. This is
a deterministic automaton, where s1 is the start state. S1 is both an accepting and start state; thus,
for an even number of 0s, the string is accepted. (for example, 010 is an accepted string, while 011 is not).