Get ready for a wall of text, I'm in the right mood this evening!
I'm sorry, I cannot really understand what you mean, but I assure you I did extensive math (and psorek checked and validated it) to make sure my program does not "make thing backwards" and instead gives the best possible gems.
EDIT: I understood what Astro meant in the hour it took me to write this, I wrote about it in the last section, jump at the ** for it.
I could outline the math behind amped spec-combine, but it'll take a lot of time (I have half a notebook full of gem math) and would be of little to no help, because, although math is self-documenting, it's not very intuitive (source: my 8 math exams in the last 3 years).
So now I'll try to explain what the omnia programs do, and to try to outline the compromise between reasonable computation time, actual in-game time spent combining and the pre-existing method I built upon.
If you (generic you, not aimed at Astro) find a flaw in how the program reasons I would be happy to hear.
If instead you are like "...but doing this completely different thing would be better because anecdotal evidence" I'll not consider you till you can provide some results your method is actually better than mine and psorek's.
If you call kgomniaquery (over the right tables) this happens in sequence:
1) ./kgomniaquery NS NC
Why you need to tell the program the speccing and combine number?
Ofc using a spec that uses, say, e33 mana would yield a better gem, but would be impossible to perform and useless at e31 mana, so I went with the established practice of a recipe that mixes colors and another that keeps upgrading this gem.
Why you don't need to tell the program the amp speccing number?
Because it's not a degree of freedom, it's like imposing the ratio between yellow and black, you can't know that, the program will find out by itself.
2) The program then fetches the killgem speccing pool up to NS.
In this pool we have all the possible killgems (discarding the useless ones) that can be built with 1,2,3,....,NS-1,NS gems and all their combining history, so that I know how to make them in-game.
3) The program fetches the killgem combining pool of length NC.
In this pool we have all the possible combining killgems recipes (discarding the useless ones) that can be built with NC base killgems and all their combining history, so that I know how to make them in-game.
4) The program fetches the amplifier pool up to NA=max(2*NS, NC).
In this pool we have all the possible amplifiers recipes (discarding the useless ones) that can be built with 1,2,3,....,NA-1,NA gems.
Why NA is so strange?
Because we'll look in the amp pool both for and amp spec and an amp combine.
Note that for an amplifier a speccing recipe and a combining recipe come from the same pool but are NOT the same thing:
a speccing amplifier recipe is built from g1s and will be paired with the specced killgem, while the amp combine is a NC combine performed from already big amplifiers to upgrade them along with the killgem.
The spec and the combine are different in 99% of the cases!
5) The program gives itself a huge amount of gems
(and I mean huge, I used numbers like e25 gems at the beginning)
After receiving this free mana the program is simply told:
you have this number of gems, you know all the recipes I put in your memory before, build me the best killgem you can.
How is this accomplished? This way:
a For every NS gem spec you have
b Pair it with every amp you have of every value in 1,2,...,2*NS
(this 2*NS is to be sure I don't overlook high amps, but the program chooses itself lower ones)
c Compute how many NC combines you can do with the remaining gems
(the bigger the amps, the less combines you can perform and vice versa)
d Use on the killgem and on the amps every respective NC combine the number of times we computed above
This gives us a huge amount of killgem setups that have value e25, the program computes the total kill power of every of those, and chooses the better one.
Then it tell you the values and the 4 recipes:
- killgem speccing of length NS, to be used at the beginning
- amp speccing of the optimal length, to be used at the beginning
- killgem combine of length NC
- killgem combine of length NC
There is no way to do better, this the best setup you can have at a given cost and yes, I tested for different total costs: results are the same from 10k gems to e80 gems, so if you can gather over a million mana that is the best killgem you can make.
Now, if you use longer specces and longer combines the results improves, but they are difficult to perform and compute, it's up to the user what to use.
Now, I understand people don't like learning 8 different recipes, so there are some shortcuts you can take to pay a liiittle efficiency but cut in learning:
* use the same combine for both the gem and the amps:
if you do this the combine used must be the one made for the killgem, NOT the amps
** use the amp combine (that could possibly be also the killgem one) as amp spec:
this is what Astro was talking about with his 16k spec killgem, to do this I should build a program that exchanges steps a and b and build the killgem around the amp.
The problem of this approach is that you are forcing a particular recipe to be both the amp combine and the amp spec, and this is NOT guaranteed to give the best result: I built my programs to find the mathematically best gems, and Astro's approach cannot do that (it will get close, ofc).
Building a program that does things the other way will also have a huge computational problem:
The best killgems I can make are 128spec, the best managems are 600spec,
using the rule of thumb that killamps should be 16 times less costly than the killgem (8 times for managem) we get that for an estimated 8 value amps I could provide the companion killgem,
but I could NOT go higher than 8, so that you will be stuck with 8 value combines till psorek finishes university and builds a better algorithm (probably not).
Even hacking together pieces from managems I could provide only up to the 32 combine:
gemcrafting techniques will roll back to this summer's level with no chance of improvement just to get a little convenience.
So, what (else) can I say?
Our approach is not "backwards", more like "make it computationally feasible and mathematically perfect at the exchange of some convenience"
Did you really read all this? Congratulations, don't forget to to post some thoughts below, I like talking about gemcrafting when I have some free time, but it seems I was some months late to the party, since there are like 10 people that seems to still read this things.
As a last note I wonder how a company like AG can have a forum so ****ty, to compose this huge thing I had to use the editor of another forum then paste the result here.
Happy gemcrafting
12345ieee