Is it possible to have the maximizer operate on a speculated state instead of my current one?
For example, if I simulate a state using whatif, is there a flag I can pass to the maximizer that maximizes that state instead of my current one?
I tried using the simulate parameter but that seems to just overwrite the speculative values rather than build on top of them.
Some background of what I'm trying to accomplish:
In response to my conjecture on the autoBasement thread, I'm trying to identify the cheapest combination of maximizer options that satisfies a given condition (value >= threshold).
My first approach was to try a dynamic programming type of solution that essentially built up every possible combination of effect using precomputed tables but this got unwieldy very quickly.
Pseudoalgorithm:
Initialize level 0 of the table with every maximizer option
To build level 1, iterate level 0 and add one of each option
To build level 2, iterate level 1 and add one of each option
etc.
For each solution that satisfied the goal, add it to a list of valid solutions but don't add it to that level (prevents adding extra items to already working solutions). I intended to find the cheapest cost from this list.
There's some logic to ensure duplicates don't get added; however, this still died around level 3 of iteration. Also, the worse case size of this table is 2^n with n being values in the 100's which is rather daunting.
My second approach was to try a greedy algorithm by sorting the maximizer results by cost/score then picking the most efficient one and calling the maximizer again (since the result may have changed based on the effects gained). However, when using speculation the results aren't really changing so the maximizer keeps suggesting the same thing each time.
To compensate, I currently iterate the maximizer results looking for an effect I haven't already flagged to acquire, simulate that effect with whatif and compare it to my goal.
This approach has the problem of not being able to accurately factor in the effects of things like the stabilizing oils (until they're whatif'd) and also doesn't really produce the 'cheapest' solution as the most efficient item could end up overbuffing by a margin that could have been satisfied by an overall cheaper item.
Does anyone have any thoughts on how best to approach this?
On the other hand, my solution may be good enough in that it only overbuffs by one item each time and I've likely spent more on this timewise, than the meat I would save with a truly optimal algorithm. Nonetheless, it served as an interesting exercise to try to optimize and solve so was hard for me to just let go.
For example, if I simulate a state using whatif, is there a flag I can pass to the maximizer that maximizes that state instead of my current one?
I tried using the simulate parameter but that seems to just overwrite the speculative values rather than build on top of them.
Some background of what I'm trying to accomplish:
In response to my conjecture on the autoBasement thread, I'm trying to identify the cheapest combination of maximizer options that satisfies a given condition (value >= threshold).
My first approach was to try a dynamic programming type of solution that essentially built up every possible combination of effect using precomputed tables but this got unwieldy very quickly.
Pseudoalgorithm:
Initialize level 0 of the table with every maximizer option
To build level 1, iterate level 0 and add one of each option
To build level 2, iterate level 1 and add one of each option
etc.
For each solution that satisfied the goal, add it to a list of valid solutions but don't add it to that level (prevents adding extra items to already working solutions). I intended to find the cheapest cost from this list.
There's some logic to ensure duplicates don't get added; however, this still died around level 3 of iteration. Also, the worse case size of this table is 2^n with n being values in the 100's which is rather daunting.
My second approach was to try a greedy algorithm by sorting the maximizer results by cost/score then picking the most efficient one and calling the maximizer again (since the result may have changed based on the effects gained). However, when using speculation the results aren't really changing so the maximizer keeps suggesting the same thing each time.
To compensate, I currently iterate the maximizer results looking for an effect I haven't already flagged to acquire, simulate that effect with whatif and compare it to my goal.
This approach has the problem of not being able to accurately factor in the effects of things like the stabilizing oils (until they're whatif'd) and also doesn't really produce the 'cheapest' solution as the most efficient item could end up overbuffing by a margin that could have been satisfied by an overall cheaper item.
Does anyone have any thoughts on how best to approach this?
On the other hand, my solution may be good enough in that it only overbuffs by one item each time and I've likely spent more on this timewise, than the meat I would save with a truly optimal algorithm. Nonetheless, it served as an interesting exercise to try to optimize and solve so was hard for me to just let go.