In my quest to improve the initial solution search algorithm I wrote for the bounded revised simplex, I had spent almost a whole day trying to understand what the heck I was trying to do there when I first wrote this code! I wrote that code originally in Python almost a year ago, ported straight to C++, and the code had been there ever since.
Anyway, long story short, I finally gave up and decided to rewrite the algorithm, which only took a few hours to complete! (not entirely done, but the core part is done.) Well, duh! Lesson learned: sometimes it’s quicker to rewrite it if the code looks hopelessly convoluted, and your hunch tell you that the code should be much, much, simpler for what it’s designed to do. You never know. Sometimes you are right.
By the way, what a great artist! His songs just keep playing in my head.
First off, my coding activity on solver is progressing very slow these days. Mostly because, besides my day job as a software engineer, I’ve been taking a class at a nearby college since January, and its class work (homework and programming assignments etc.) is taking up the bulk of my free time. This class finishes in May, so hopefully I will have more time to spend for the solver project once this is all done.
Also, for those who haven’t noticed, there is now a Windows binary available thanks to Kami’s contribution, so to those of you who have been waiting for a Windows version, now is your chance. :-) It’s available at the usual place.
Ok, so…, here is the update on my solver. I’m pretty much done with my revised simplex code, and now I’m shifting my focus to improving the (upper-and-lower) bounded revised simplex code. After a couple of test runs I’ve realized that the bounded simplex’s initial solution search is still pretty weak, so, that code needs to be improved first before anything else.
As an aside, here is an interesting page on Calc’s performance optimization bits by Michael and his gang.