doxxx / ffxiv-craft-opt-web

Web frontend for FFXIV Crafting Optimizer service.
zlib License
224 stars 198 forks source link

Wasted Steady Hand II buff...? #150

Closed filliph closed 7 years ago

filliph commented 7 years ago

I'm simulating Dark Chestnut Lumber, as a lv56 CRP with 467 Craftsmanship, 442 Control and 297 CP.

Here's a screenshot of my crafter attributes for CRP: https://i.imgur.com/ziXfCwq.png

I am given the following output:


Monte Carlo Example
===================
 # Action                           DUR    CP      QUA      PRG    IQ  WWYW   CTL  QINC  BPRG  BQUA   WAC       Cond   S/F
 0                                   40   297        0        0     0     0   442     0     0     0     0     Normal     0
 1 Inner Quiet                       40   279        0        0     0     0   442     0     0     0     0       Good     1
 2 Steady Hand II                    40   254        0        0     0     0   442     0     0     0     0     Normal     1
 3 Hasty Touch                       30   254        0        0     0     0   442     0     0   188     0  Excellent     0
 4 Hasty Touch                       20   254      753        0     1     0   442   753     0   188     0       Poor     1
 5 Great Strides                     20   222      753        0     1     0   530     0     0     0     0     Normal     1
 6 Steady Hand II                    20   197      753        0     1     0   530     0     0     0     0     Normal     1
 7 Hasty Touch                       10   197     1194        0     2     0   530   441     0   441     0     Normal     1
 8 Manipulation                      10   109     1194        0     2     0   619     0     0     0     0     Normal     1
 9 Name of Earth                     20    94     1194        0     2     0   619     0     0     0     0     Normal     1
10 Innovative Touch                  20    86     1194        0     2     0   619     0     0   254     0       Good     0
11 Great Strides                     30    54     1194        0     2     0   840     0     0     0     0     Normal     1
12 Steady Hand II                    30    29     1194        0     2     0   840     0     0     0     0     Normal     1
13 Byregot's Brow                    20    11     2348        0     0     0   840  1154     0  1154     0     Normal     1
14 Brand of Earth                     0     5     2348      376     0     0   442     0   376     0     0     Normal     1
Progress Check: true, Durability Check: true, CP Check: true, Tricks Check: true, Reliability Check: true, Cross Class Skills: 5, Wasted Actions: 0

Monte Carlo Result of 500 runs
==============================
                          DUR    CP      QUA   PRG   HQ%
##     Expected Value:      0     5   2537.1 376.0  14.4
##       Median Value:      0     5   2375.0 376.0  11.0
##          Min Value:      0     5   1079.0 376.0   5.0

##       Success Rate:  100.0 %

Why is Step 6 another Steady Hand II?

I understand that it wants to apply SH to the HT on Step 7, but would it not make more sense to make the HT step 6, and the SH2 step 7?

I then edited the solver to this: https://i.imgur.com/6Ehx6gX.png and hit solve, which produced this:


Monte Carlo Example
===================
 # Action                           DUR    CP      QUA      PRG    IQ  WWYW   CTL  QINC  BPRG  BQUA   WAC       Cond   S/F
 0                                   40   297        0        0     0     0   442     0     0     0     0     Normal     0
 1 Comfort Zone                      40   231        0        0     0     0   442     0     0     0     0     Normal     1
 2 Inner Quiet                       40   221        0        0     0     0   442     0     0     0     0     Normal     1
 3 Steady Hand II                    40   204        0        0     0     0   442     0     0     0     0     Normal     1
 4 Innovative Touch                  30   204        0        0     0     0   442     0     0   188     0     Normal     0
 5 Great Strides                     30   180        0        0     0     0   663     0     0     0     0     Normal     1
 6 Basic Touch                       20   170      541        0     1     0   663   541     0   541     0     Normal     1
 7 Basic Touch                       10   160      845        0     2     0   751   304     0   304     0       Good     1
 8 Manipulation                      10    80      845        0     2     0   619     0     0     0     0     Normal     1
 9 Steady Hand II                    20    63      845        0     2     0   619     0     0     0     0       Good     1
10 Name of Earth                     30    56      845        0     2     0   619     0     0     0     0     Normal     1
11 Innovative Touch                  30    56      845        0     2     0   619     0     0   254     0     Normal     0
12 Great Strides                     30    24      845        0     2     0   840     0     0     0     0     Normal     1
13 Byregot's Brow                    20     6     1999        0     0     0   840  1154     0  1154     0       Good     1
14 Brand of Earth                     0     0     1999      376     0     0   663     0   376     0     0     Normal     1
Progress Check: true, Durability Check: true, CP Check: true, Tricks Check: true, Reliability Check: true, Cross Class Skills: 5, Wasted Actions: 0

Monte Carlo Result of 500 runs
==============================
                          DUR    CP      QUA   PRG   HQ%
##     Expected Value:      0     0   3026.3 376.0  16.2
##       Median Value:      0     0   2980.0 376.0  15.0
##          Min Value:      0     0   1728.0 376.0   8.0

##       Success Rate:  100.0 %

Am I doing something wrong for the initial solver to produce 500 less quality than it should with a slight amount of manual tinkering?

EDIT: The simulator is even more broken, by turning on specialist actions when that was never a part of the original configuration. I have no idea why it selected specialist actions when editing the solver, since I am not a CRP specialist and did not select it originally.

filliph commented 7 years ago

Resetting the solver completely produced this output:


Monte Carlo Example
===================
 # Action                           DUR    CP      QUA      PRG    IQ  WWYW   CTL  QINC  BPRG  BQUA   WAC       Cond   S/F
 0                                   40   297        0        0     0     0   442     0     0     0     0     Normal     0
 1 Innovation                        40   279        0        0     0     0   442     0     0     0     0       Good     1
 2 Great Strides                     40   247        0        0     0     0   663     0     0     0     0     Normal     1
 3 Innovation                        40   229        0        0     0     0   663     0     0     0     0  Excellent     1
 4 Advanced Touch                    30   181     3251        0     0     0   663  3251     0   812     0       Poor     1
 5 Great Strides                     30   149     3251        0     0     0   663     0     0     0     0     Normal     1
 6 Advanced Touch                    20   101     4063        0     0     0   663   812     0   812     0       Good     1
 7 Careful Synthesis II              10   101     4063      150     0     0   442     0   150     0     0     Normal     1
 8 Master's Mend                     40     9     4063      150     0     0   442     0     0     0     0  Excellent     1
 9 Careful Synthesis II              30     9     4063      300     0     0   442     0   150     0     0       Poor     1
10 Careful Synthesis II               0     9     4063      450     0     0   442     0   150     0     0     Normal     1
Progress Check: true, Durability Check: true, CP Check: true, Tricks Check: true, Reliability Check: true, Cross Class Skills: 2, Wasted Actions: 0

Monte Carlo Result of 500 runs
==============================
                          DUR    CP      QUA   PRG   HQ%
##     Expected Value:      0     9   1684.5 450.0   9.0
##       Median Value:      0     9   1624.0 450.0   7.0
##          Min Value:      0     9      0.0 450.0   1.0

##       Success Rate:  100.0 %

It doesn't even do anything for the first Innovation buff before overwriting it!

What am I doing wrong?

doxxx commented 7 years ago

Somebody else filed a bug about it using specialist actions when it shouldn't and eventually could only resolve it by switching browsers, which is quite mystifying to to me.

With regards to the solver putting in a wasted Steady Hand, that's due to how the optimization algorithm works. Essentially, it tries many random combinations of a sequence and finds the ones that have the best quality, mutates them by randomly swapping or changing actions and seeing which ones have improved. Rinse, repeat. It's know as a genetic algorithm, meant to mimic evolution. It doesn't truly understand what the actions mean and doesn't have any heuristic rules about not wasting Steady Hand effects etc.

doxxx commented 7 years ago

You can try increasing the size of the population and the number of generations that the solver runs for in the options. You can also click the Continue button to let it run for another round of generations with the current settings to see if it can find something better with a later random mutation, but generally it will get stuck on a result that may be "good" but not necessarily the best (aka local minima).

filliph commented 7 years ago

I did find a better outcome after clicking the continue button a few times, thanks :)


Monte Carlo Example
===================
 # Action                           DUR    CP      QUA      PRG    IQ  WWYW   CTL  QINC  BPRG  BQUA   WAC       Cond   S/F
 0                                   40   297        0        0     0     0   442     0     0     0     0     Normal     0
 1 Comfort Zone                      40   231        0        0     0     0   442     0     0     0     0       Good     1
 2 Great Strides                     40   207        0        0     0     0   442     0     0     0     0     Normal     1
 3 Innovation                        40   197        0        0     0     0   442     0     0     0     0     Normal     1
 4 Advanced Touch                    30   157      812        0     0     0   663   812     0   812     0       Good     1
 5 Great Strides                     30   133      812        0     0     0   663     0     0     0     0     Normal     1
 6 Advanced Touch                    20    93     1624        0     0     0   663   812     0   812     0     Normal     1
 7 Hasty Touch                       10   101     1812        0     0     0   442   188     0   188     0       Good     1
 8 Master's Mend                     40    17     1812        0     0     0   442     0     0     0     0     Normal     1
 9 Careful Synthesis II              30    25     1812      150     0     0   442     0   150     0     0     Normal     1
10 Steady Hand II                    30     8     1812      150     0     0   442     0     0     0     0     Normal     1
11 Hasty Touch                       20    16     2000      150     0     0   442   188     0   188     0     Normal     1
12 Hasty Touch                       10    16     2188      150     0     0   442   188     0   188     0     Normal     1
13 Standard Synthesis                 0     1     2188      338     0     0   442     0   188     0     0     Normal     1
Progress Check: true, Durability Check: true, CP Check: true, Tricks Check: true, Reliability Check: true, Cross Class Skills: 5, Wasted Actions: 0

Monte Carlo Result of 500 runs
==============================
                          DUR    CP      QUA   PRG   HQ%
##     Expected Value:      0     1   2049.8 338.0   9.0
##       Median Value:      0     1   2094.0 338.0  10.0
##          Min Value:      0     1    188.0 338.0   2.0

##       Success Rate:  100.0 %

Is there a way of inputting our own sequences and having it be locked in place, so that it doesn't try to improve upon the sequence, instead just running simulations on that exact sequence? Maybe it would be worth it for me to try to come up with my own rotation and using the simulator to try to predict the outcome (quality rating), if possible.

doxxx commented 7 years ago

On the Simulayor page you can edit the sequence to put in exactly the actions you want and see the simulation results in the tabs below. You don't have to run the solver.

The solver is used to figure out a sequence from scratch or to try and improve on an existing sequence.

filliph commented 7 years ago

Yeah that works fine, thank you! Since it's not a valid bug report (other than the browser issue, but as you say it's been reported before) I'll close this.

Thanks!

doxxx commented 7 years ago

Could you comment on #133 with the circumstances under which you saw the solver using specialist actions when it shouldn't? Crafter stats, recipe and the solver seed from the log if possible.