@ Madcowlol - It's not strange at all that it gets different results from one try (mine) to the next (yours). The nature of the program is that it starts off with a random reforge set up and then tries to improve it in random ways until it can't be improved any more by making only one reforge change. Then it starts over (Run #2... I think I did 200,000 runs on you) with a new random reforge set up and tries improving that in random ways. Then it looks at which run gave the best results. Running it more times doesn't even guarantee a better result. You might run it today with only 1 run, and luck out and get a really good solution. Then you could try again tomorrow with 200,000 runs and because they start in different places you might not get a solution as good as the 1 you got yesterday in all 200,000 attempts of your attempts today.
@Beertholomew - A while ago I actually wrote out the names of all the gems, as soon as I realized all the strange sorts of gems you might use. By my count, there are 34 different gems a 1:1:1 RoRo agi reforging might want to use (Not counting metas, JC gems, cogwheels or sha touched). It's a handy thing to have in front of you so you can easily see the name of what you need to look for on the AH.
You have to realize that there are many, many different combinations of gems you could use to have an equivalent result. It would be easy for the program to tell you one way to do it, but the trouble is given the gems you have and the cost of gems on the AH, that way may not be the cheapest way.
For instance say you are using 1 exp/crit gem, 1 crit gem and 1 hit/crit gem, and you need "-2 crit +2 haste". Obviously you could change the exp/crit into exp/haste and the hit/crit into hit/haste (change 2 gems) or you could just change the crit gem into a haste gem (change 1 gem). Which is better? It depends on what is cheaper, the 2 gems, or the 1 gem.
This is further complicated that there are actually 2 different versions of every gem, because there is the rare version as well as the perfect uncommon version. For instance keen vermilion onyx and perfect keen tiger opal are the exact same.
I'm not going to improve the gem output any more at the moment, the onus of figuring out the cheapest way to regem rests on the user. You can have my gem cheatsheet though that I printed out and keep handy, it might be a bit helpful:
Code:
MoP Windwalker Gems
Red: Primordial Ruby, Pandarian Garnet
agility: delicate, expertise: precise
Yellow: Sun's Radiance, Smooth Sunstone
haste: quick, critical: smooth, mastery: fractured
Blue: River's Heart, Lapis Lazuli
hit: rigid
Green: Wild Jade, Alexandrite
haste: lightning, critical: piercing, mastery: sensei's
Purple: Imperial Amethyst, Roguestone
agility: glinting, expertise: accurate
Orange: Vermilion Onyx, Tiger Opal
haste critical mastery
agility deft deadly adept
exptertise wicked crafty keen
How to use:
After the color is the name of gems of that color. The first is the rare quality (blue) one, the second is the uncommon quality (green) one (which must be perfect).
Purple gems have hit, as well as one of agility/expertise.
Green gems have hit, as well as one of haste/critical/mastery.
Yellow gems have one of haste/critical/mastery.
Red gems have one of agility/expertise.
Orange gems have one of agility/expertise combined with one of haste/critical/mastery.
If you want say an orange expertise/mastery gem, go to the Orange entry.
The two orange gems are "(blank) vermilion onyx" and "perfect (blank) tiger opal".
In the table, look at the expertise row and the mastery column. It is a "keen" gem.
You want either a keen vermilion onyx, or a perfect keen tiger opal.
The newest version I posted earlier actually checks whether or not you have the meta, which is why it stopped asking.
-18 agi +18 crit means you need 18 less agi half gems and 18 more crit half gems. That could mean a number of things. Every red gem you change from pure agi to agi/crit would be -1 agi +1 crit, so you could do that 18 times (assuming you had 18 pure agi gems). Every orange gem (that you have in a yellow socket) that you have as agi/crit that you chage into pure crit would also be -1 agi +1 crit, so you could do that 18 times (assuming you had 18 agi/crit gems in yellow sockets). Or, you could combine the two ways, instead of all 18 one way you could do 10 one way and 8 the other. If you had a pure agi gem in a prismatic socket and changed it to pure crit, that would actually be -2 agi and +2 crit, so you could do that 9 times.
You might even be using pure agi gems in blue sockets. In that case, you could switch them to hit/crit green gems, which would be -2 agi +1 hit +1 crit.
Having to do -18agi +18 crit is a pretty extreme example. You must have been using a lot of pure agi gems and ignoring socket bonuses, and using pure agi gems in prismatic sockets (my optimizer doesn't like that).
Remember my program (atm) always follows socket bonuses. This is a bit lame, but it is the right thing to do almost always, unless you are using a 2handed weapon and are hopelessly over hit cap. I do know how to pull shenanigans and trick the program into not following the gems (basically you just go into the code and say if you want to ignore a blue gem you initialize the number of blue gems to -1 instead of 0 and yellow to 1 instead of 0, but this is something that you have to be able to edit the source code and recompile to do atm, I'll let the executable be able to do it later).