27 May 2004 cTaylor   » (Journeyer)

Being Stateside

Checked out Shrek 2 this week - it always amazes me how far CG in the theater has come along. S2 was a great example of how a simple story concept (sort of a "rap-remix" from fairy tales) can become a major success. The first 20 minutes were really mushy (I didn't even catch some of the movie references they were making) but when Puss-In-Boots showed up on the set, it really started to get interesting. I guess the Shrek series is what I really consider quality, family-oriented cinema.

Werkink

I sat down the last night at B&N and a light went off in my head. I figured out how to implement Scout's phrase creation system. It's pretty cool b/c I'm going to be making use of Markov Chains. I did some reading up on that stuff in my College Probability book and in my NLP/Speech Book (in that text they're referred to as Markov Chains and N-Grams).

In any case, a couple conversations I've had with Veruss (my reference to all things AI) helped me to realize that thinking of the problem as a simple matter of graph theory and probability was really the key. Veruss and my references are telling me Markov Chains are a "type" of Neural Net/State machine. Which seems like a pretty good point of view. In any case, the culminating moment of this entire thought process occurred right after some Splinter Cell and during a Kids in the Hall sketch.

In the sketch, some guys are jumping out of an airplane. Each one falls to his death. The first guy is really nice and then thinks he'll die b/c he's the nice guy. So he gives his buddies the finger and jumps out of the plane to his doom. The next couple of guys are twins and they jump out of the plane to their dooms. The last guy pickes up a paper and finds out he's won the lottery. He then askes the pilot for the probability of dying on his first jump given the probability of two twins jumping together and dying, and then the probability of him winning the lotto. The pilot gives him an outrageous number (5 kazillion or something to 1) so, he askes what his odds are if he jumped without a parachute - the pilot says 2:1 - so he opts to jump out with out the chute. He goes splat.

Long story short, that got me thinking about the problem I wanted Scout to solve. Then I started thinking about Markov Chains again, and came up with a good data structure model for handling Markov Chains (2 graphs, one for words and one above that word graph for phrases).

Sounds sexy and I implemented both graphs and the basic ui today.

I'm using Microsoft's C# SDK. No, this isn't some trendy, fanboy, fashion-minded decision. It's a matter of practicality. I'm without computers at home right now (both are still broken) and the machines at work are Win2K with .NET installed on them. It only made sense to go the path of least resistance. Heck, when I'm done with this app, I'll probably end up testing it on Mono (I'm getting a hand-me-down x86 machine this weekend to hold me over) - I may even move it to gcc.

Current Scout beverage count: 1 cup of tea, 2 cokes, and 2 cups of coffee. I started the count last night when I began writing out data structures on paper.

In any event, it felt good to finally have a chance to solve a problem like this with probability. It sort of validated my taking that course last fall (we actually a little Markov Chaining in there). I've even noticed that I could translate this Markov Chaining stuff into a Linear System of Equations to solve. I'm 1/2 tempted to try that technique also but, for now, I'll just stick to my K-ary trees/graphs.

Surphaze, expect a call tonight.

Weekend Plans

Turns out my parents are headed down this weekend. I've managed to clean up the vast majority of my flat but, it still needs a little more love. I also have some uniforms to get drycleaned/starched. Yay. :(

I'll have to hitch another ride back to the office tonight to pull some photos off my digital camera for a friend and then I'll probably make my way north to the mall for a bit. I really need to get out and do something. Being back in the states has been a little depressing of late.

I still can't believe that no less than a week ago I was in the Paris International Airport in the same terminal that collapsed. Had it been a couple days later and I probably would have been a victim of gravity.

back to the Grind.

ct out.

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!