Journal98 jan
From Simreal
January 1998
Mon, 5 Jan 98
Ah, the new year. Greetings. I see my page-hits have increased over the weekend to the pre-holiday levels.
Over the quiet time, I added a few more controls to the toy network simulator... played with it some more, and decided that I don't want to work with neural nets right now. They require more time than I have to devote this month. I'll put up a new version of the code eventually, in case anyone cares.
Over this last weekend, I assembled the better part of a simple fuzzy test package (in the same lines as the network one). I adjusted my expression evaluator to manage fuzzy membership, and have only to write the de-fuzzifier to complete it. It uses triangular membership input functions, and will defuzzify using the singleton system. Based on initial experiments, I may or may not make both ends fancier. I will, however, create a fast version of the system using a compiled system or something.... since this technology has practical value in another project I am working on.
In fact, this other project is what is taking much of my time right now. Fortunately, the software work I am doing for this other project will relate directly to the needs of Boris. Also, these folks are promising to fund me if things go well, so I will be withdrawing the Boris Products area soon. Though, once the War gets closer, I'll probably put T-Shirts up. I have to think a bit, but I may need to limit the Build-Along-With-Boris section, since I will be writing software for commercial use that I also drop into Boris -- I need to explore the ethics of giving that all away.
Anyway, I am trudging along in software, which is why nothing much exciting is showing up on these pages. Mostly research-phase stuff. Next week, there will be BAWB updates... the net simulator update, an addition to my Simulated Intelligence working document (giving my fuzzy references), and the fuzzy simulator.
Oh, I got the Robot Wars '96 video for Christmas from my Dad. Wow! I also discovered that the weight-limit for the 1998 walkers will be 350 pounds... 50 more than I thought, so I can add some armour to Boris after all! I am also thinking about increasing the diameter of his cylinders... to add strength. Though it will lose some speed. Once I get back to hardware, there are a bunch of questions I need to ask.
Mon, 19 Jan 1998
I must apologize for the long delay for this update... I've been as busy as a one-legged man at a butt-kicking contest... a long-tailed cat in a room full of rocking chairs... you know, busy.
My regular work has been active, and a new and exciting opportunity has come up. I have found a commercial use for the software I am writing for the Boris Brains... as brains in another product! Yow! There are two benefits I will receive:
1. I am motivated to really write some solid code, and really make it work. Quickly. I've been dragging a bit from the Holidays, and this is the motivation I needed to get into working really hard again.
2. If this commercial venture starts making money... they will be providing full funding for Boris.
3. This isn't a benefit. As commercial software... I won't be posting it like I have been. The trade-off in being commercially sponsored is that it strengthens the Boris effort, while at the same time making part of the Boris effort private to the sponsor.
I finally updated the Build-Along page with some new software... the old stuff, before I got serious. The NetSim project has a few minor changes that made it easier for me to experiment -- some new values to set for the neurons, like threshold, and weight initialization. Needless to say, it makes all the old files obsolete with the new format.
The new package I added is FuzzSim, which is an extension on the expression evaluator I used in the previous simulations to allow fuzzy membership rules. Actually, there is a lot more than just that, but this is the essence.
You will notice that all of these applications come with minimal examples and no documentation... sorry, but that is the way it will be. These are examples for the avid digger of treasure, for the adventurer, for the programmer or person desiring to learn. I hope the code is all fairly clear, and I used bare-bones generic MFC code to manage all the UI aspects, so there are no surprises there. It should be simple enough to follow the interface down into the workings of the code, to figure it out. None of it is terribly complex.
I remember when I was learning computers, way back in the late '70s <wavy way-back lines>.... it was amazing. Few books, less magazines. Our languages were as raw and unrefined as the computers we ran them on. One of the few joys of existence, one of the few opportunities for learning, was to take an existing program and learn how it worked... then change it. In my own demented way, I am offering that up here in my small and obscure sample programs. Though most people don't have time to experiment and dabble anymore. I swear, there must have been more time in the world when I was 13.
The Fuzzy Network Simulation you can download is rough... yet it contains every element of the commercial system I finished last week. The "good" version has a few changes.... I altered the expression evaluator, making it work in two passes: a compiler that takes text and creates an RPN byte-code, and the interpreter that runs those codes at high speed. Then, the overall rule structure was improved and modified, but I don't much feel like explaining that now. In short, I suppose I owe a brief glance.... each rule in the new system has a condition expression that returns a value from 0 to 1 that describes how much that rule applies... then each result expression within it is evaluated at that condition level. Any result expression can, in turn, be another full rule... on down as deep as necessary. Once all of the rules in a block are evaluated, the resulting values are defuzzified, and the next block can run.
Now the hard part... writing the behavior rules themselves. The application I am going to apply the brains to is not that different from the ToyBot project I had started earlier, so once that is working, I can quickly complete ToyBot. And then, back to Hardware! That should be more fun to write about, since I actually find it a lot easier to bring it to life for the Journal and Pictures than the software side.
I keep feeling that I am missing something on this update... oh well. I can always write again next week.
A few structural changes on the Journal to mention now. Not all that many of you read this stuff, according to statistics, but I know enough of you read and comment to make it all worth while. But I will simplify things a bit. I will only be writing notes on the day of the update, which will usually be Sunday or Monday (not Friday, like I used to aim for). Hmmm... that's about it! If things get too exciting, I can always change the rules again. It is, after all, my game.
Wed, 29 Jan 98
I was suddenly called away last week for a whirlwind tour of our fine country... customer site in Detroit, some work in Birmingham, Alabama, back home. Got back yesterday. Time-zone shock hasn't worn off yet.
Needless to say, there is very little to report on Boris.
I will be doing a lot of Brain work before the next update, though -- won't have much to post, but as least I can brag on whatever progress I've made.
