doxxx / ffxiv-craft-opt-web

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

Satisfaction is being used without "Whistle while you work" #163

Open roswell67 opened 7 years ago

roswell67 commented 7 years ago

Satisfaction needs to consume Whistles, the Whistles are not available without Whistle while you work action.

look at the generated macro below:

Cross-class Macro: /aaction clear /aaction "Comfort Zone" on /aaction "Steady Hand II" on /aaction "Hasty Touch" on /aaction "Byregot's Blessing" on /echo Cross-class action setup complete

Macro #1: /ac "Comfort Zone" /ac "Inner Quiet" /ac "Steady Hand II" /ac "Patient Touch" /ac "Patient Touch" /ac "Hasty Touch" /ac "Hasty Touch" /ac "Hasty Touch" /ac "Hasty Touch" /ac "Satisfaction" /ac "Master's Mend II" /ac "Comfort Zone" /ac "Steady Hand II" /ac "Hasty Touch" /echo Macro #1 complete

Macro#2: /ac "Hasty Touch" /ac "Hasty Touch" /ac "Hasty Touch" /ac "Hasty Touch" /ac "Hasty Touch" /ac "Great Strides" /ac "Byregot's Blessing" /ac "Master's Mend II" /ac "Careful Synthesis II" /ac "Hasty Touch" /ac "Careful Synthesis II" /ac "Careful Synthesis II" /ac "Careful Synthesis II" /ac "Careful Synthesis II" /ac "Careful Synthesis III"

roswell67 commented 7 years ago

using the ffxiv-beta version

doxxx commented 7 years ago

When filing issues about Solver output, please include the contents of the Execution Log tab on the Solver page, otherwise it can be very hard to pinpoint the problem due to the semi-random nature of the Solver.

But I think I can reproduce the problem in the Simulator manually.

doxxx commented 7 years ago

Did you turn off Use Conditions in the Options?

doxxx commented 7 years ago

Yeah, turning off Use Conditions will make the solver think it can use Satisfaction with impunity because that bypasses the check for Whistles == 3.

If you want to keep Use Conditions off, I would recommend deselecting all actions that depend on Whistle stacks.

Naladdar commented 6 years ago

ok, i had that issue also. Made a wrong bugreport, closed it. Then tried to reproduce that error. I make it as complete as possible (Maybe to much information):

/aaction clear
/aaction "Komfortzone" on
/aaction "Ruhige Hand II" on
/aaction "Manipulation" on
/aaction "Hastige Veredelung" on
/aaction "Innovation" on
/aaction "Name der Erde" on
/aaction "Zeichen Der Erde" on
/echo Cross-class action setup complete <se.1>
/ac "Komfortzone" <wait.2>
/ac "Innere Ruhe" <wait.2>
/ac "Ruhige Hand II" <wait.2>
/ac "Hastige Veredelung II" <wait.3>
/ac "Hastige Veredelung II" <wait.3>
/ac "Hastige Veredelung II" <wait.3>
/ac "Manipulation" <wait.2>
/ac "Hastige Veredelung II" <wait.3>
/ac "Ruhige Hand II" <wait.2>
/ac "Hastige Veredelung" <wait.3>
/ac "Hastige Veredelung II" <wait.3>
/ac "Hastige Veredelung" <wait.3>
/ac "Hastige Veredelung" <wait.3>
/ac "Hastige Veredelung" <wait.3>
/echo Macro #1 complete <se.1>
/ac "Komfortzone" <wait.2>
/ac "Manipulation" <wait.2>
/ac "Hastige Veredelung II" <wait.3>
/ac "Hastige Veredelung II" <wait.3>
/ac "Hastige Veredelung II" <wait.3>
/ac "Zufriedenheit" <wait.3>
/ac "Zufriedenheit" <wait.3>
/ac "Große Schritte" <wait.2>
/ac "Ruhige Hand" <wait.2>
/ac "Innovation" <wait.2>
/ac "Byregots Benediktion" <wait.3>
/ac "Name der Erde" <wait.2>
/ac "Zeichen Der Erde" <wait.3>
/echo Macro #2 complete <se.14>
Seed: 75771

Crafter:
  Class: Carpenter
  Level: 61
  Craftsmanship: 672
  Control: 685
  CP: 374
  Specialist: true

Recipe:
  Level: 125
  Difficulty: 503
  Durability: 80
  Start Quality: 0
  Max Quality: 5172
  Aspect: none

Settings:
  Max Tricks Uses: 0
  Reliability: 100%
  Use Conditions: true
  Algorithm: eaComplex
  Population: 2500
  Generations: 1000
  Penalty Weight: 10000
Seed: 105744, Use Conditions: true

Monte Carlo Example
===================
 # Action                           DUR    CP      QUA      PRG    IQ  WWYW   CTL  QINC  BPRG  BQUA   WAC       Cond   S/F
 0                                   80   374        0        0     0     0   685     0     0     0     0     Normal     0
 1 Comfort Zone                      80   308        0        0     0     0   685     0     0     0     0       Good     1
 2 Inner Quiet                       80   298        0        0     0     0   685     0     0     0     0     Normal     1
 3 Steady Hand II                    80   281        0        0     0     0   685     0     0     0     0     Normal     1
 4 Hasty Touch II                    70   284      280        0     1     0   685   280     0   280     0       Good     1
 5 Hasty Touch II                    60   287      780        0     2     0   822   500     0   333     0     Normal     1
 6 Hasty Touch II                    50   290     1167        0     3     0   959   387     0   387     0       Good     1
 7 Manipulation                      50   210     1167        0     3     0  1096     0     0     0     0     Normal     1
 8 Hasty Touch II                    50   213     1167        0     3     0  1096     0     0   443     0     Normal     0
 9 Steady Hand II                    60   196     1167        0     3     0  1096     0     0     0     0     Normal     1
10 Hasty Touch                       60   204     1610        0     4     0  1096   443     0   443     0     Normal     1
11 Hasty Touch II                    50   207     2110        0     5     0  1233   500     0   500     0     Normal     1
12 Hasty Touch                       40   207     2668        0     6     0  1370   558     0   558     0     Normal     1
13 Hasty Touch                       30   207     3286        0     7     0  1507   618     0   618     0     Normal     1
14 Hasty Touch                       20   207     3964        0     8     0  1644   678     0   678     0     Normal     1
15 Comfort Zone                      20   141     3964        0     8     0  1781     0     0     0     0     Normal     1
16 Manipulation                      20    61     3964        0     8     0  1781     0     0     0     0     Normal     1
17 Hasty Touch II                    20    64     4704        0     9     0  1781   740     0   740     0     Normal     1
18 Hasty Touch II                    20    67     4704        0     9     0  1918     0     0   804     0     Normal     0
19 Hasty Touch II                    20    70     5508        0    10     0  1918   804     0   804     0       Good     1
20 Satisfaction                      20    78     5508        0    10     0  2055     0     0     0     1     Normal     1
21 Satisfaction                      20    86     5508        0    10     0  2055     0     0     0     2     Normal     1
22 Great Strides                     20    62     5508        0    10     0  2055     0     0     0     2     Normal     1
23 Steady Hand                       20    48     5508        0    10     0  2055     0     0     0     2       Good     1
24 Innovation                        20    38     5508        0    10     0  2055     0     0     0     2     Normal     1
25 Byregot's Blessing                10    22    11720        0     0     0  2398  6212     0  6212     2     Normal     1
26 Name of Earth                     10     7    11720        0     0     0  1028     0     0     0     2     Normal     1
27 Brand of Earth                     0     1    11720      648     0     0  1028     0   648     0     2     Normal     1
Progress Check: true, Durability Check: true, CP Check: true, Tricks Check: true, Reliability Check: true, Cross Class Skills: 7, Wasted Actions: 2
Monte Carlo Result of 10000 runs
================================
                          DUR    CP      QUA   PRG   HQ%
##     Expected Value:      0     1  11741.5 648.0 100.0
##       Median Value:      0     1  11915.0 648.0 100.0
##          Min Value:      0     1   3777.0 648.0  34.0

##       Success Rate:  100.0 %

Use Conditions: true

Probabilistic Result
====================
 # Action                           DUR    CP     EQUA     EPRG    IQ  WWYW
 0                                   80   374      0.0      0.0   0.0   0.0
 1 Comfort Zone                      80   308      0.0      0.0   0.0   0.0
 2 Inner Quiet                       80   298      0.0      0.0   0.0   0.0
 3 Steady Hand II                    80   281      0.0      0.0   0.0   0.0
 4 Hasty Touch II                    70   284    279.9      0.0   0.9   0.0
 5 Hasty Touch II                    60   287    607.5      0.0   1.8   0.0
 6 Hasty Touch II                    50   290    984.6      0.0   2.7   0.0
 7 Manipulation                      50   210    984.6      0.0   2.7   0.0
 8 Hasty Touch II                    50   213   1411.2      0.0   3.6   0.0
 9 Steady Hand II                    60   196   1411.2      0.0   3.6   0.0
10 Hasty Touch                       60   204   1836.0      0.0   4.4   0.0
11 Hasty Touch II                    50   207   2359.8      0.0   5.3   0.0
12 Hasty Touch                       40   207   2872.6      0.0   6.1   0.0
13 Hasty Touch                       30   207   3427.8      0.0   6.9   0.0
14 Hasty Touch                       20   207   4026.2      0.0   7.7   0.0
15 Comfort Zone                      20   141   4026.2      0.0   7.7   0.0
16 Manipulation                      20    61   4026.2      0.0   7.7   0.0
17 Hasty Touch II                    20    64   4508.0      0.0   8.3   0.0
18 Hasty Touch II                    20    67   5014.4      0.0   8.9   0.0
19 Hasty Touch II                    20    70   5546.6      0.0   9.5   0.0
20 Satisfaction                      20    78   5546.6      0.0   9.5   0.0
21 Satisfaction                      20    86   5546.6      0.0   9.5   0.0
22 Great Strides                     20    62   5546.6      0.0   9.5   0.0
23 Steady Hand                       20    48   5546.6      0.0   9.5   0.0
24 Innovation                        20    38   5546.6      0.0   9.5   0.0
25 Byregot's Blessing                10    22  12005.6      0.0   0.0   0.0
26 Name of Earth                     10     7  12005.6      0.0   0.0   0.0
27 Brand of Earth                     0     1  12005.6    648.0   0.0   0.0
Progress Check: true, Durability Check: true, CP Check: true, Tricks Check: true, Reliability Check: true, Cross Class Skills: 7, Wasted Actions: 2

simulator options-debugging options-macro options-simulator options-solver crafter-attributes solver

doxxx commented 6 years ago

Thank you for the detailed bug report! With Use Conditions on, the bug originally described here won't affect you.

Instead what I believe has happened is that performing two "nothing" actions at that point in the sequence, while Comfort Zone was active, allowed it to regain enough CP to complete the rest of the sequence. Since wasted actions are penalized only slightly when evaluating how good a sequence is, this sequence scored higher than the rest that the Solver came up with.

Something to bear in mind is that the Solver operates randomly. It generates sequences of random actions, evaluates each sequence to see how good it is according to a set of constraints and a model of how actions work, and then mutates the sequences randomly to see if that improves any of them. It doesn't truly understand the process of crafting like you or I would. :)

However, I believe the bug here is that the Solver believes that Satisfaction is usable but does nothing at that point (like Observe), when it sounds like it is actually not usable and doesn't result in the expected CP gains from Comfort Zone.

We don't have a good way to model random effects like Whistle While You Work, Tricks of the Trade, etc. simply because they're random. If the Solver puts them in the sequence, you should consider it as a hint that you're probably going to need to use these actions somewhere in the sequence in order to get the desired result, not necessarily exactly where the Solver placed them.

If you just want to generate macros that are 100% reliable, you should disable the actions that rely on random effects like this.

Naladdar commented 6 years ago

Thanks for that detailed answer :-). I think most people do use the solver, like i do most of the time if doing some random recipe: Enter item, hit solve, copy makros and build that item without thinking any further. I think the solver should just not use an skill which is independent on some other skill, OR should atleast use that other skill at the start.

What makes me wonder at that sequence above : Satisfaction regenerate 15 HP and is used twice, but the sequence ended with 31 hp left.