Gsm v2 - #111
Conversation
…initial output for Moore
… children at any point.
…oreCalculation.__init__`. also some other score calc stuff and docstrings
| return list(score_iterable) | ||
| scores = list(score_iterable) | ||
| for special in (SpecialScores.ImmediateReject, SpecialScores.NoScore): | ||
| if any(score is special for score in scores): |
There was a problem hiding this comment.
I can understand why you want a conservative default. An issue I see with having a single NoScore result in NoScore is that it makes non-early scores meaningless if any of the score calculations returns NoScore, but they shouldn't do that anyways. This is probably just an indication that NoScore should be a proper sentinel and init_merge and early verdict computation should be split.
|
|
||
| # any other cached candidate that speculatively touched this node (e.g. while resolving an | ||
| # unknown output through it) is now unsound to reuse: applying it would silently overwrite | ||
| # the just-promoted (now real, independently-decided) state with a stale speculative copy. |
There was a problem hiding this comment.
if i'm not mistaken, no such overwriting can happen, since promoting does not change the node. there is an issue though that the promotion changes what should be counted as blue node after the partition is applied, but it should be possible to compute that
|
regarding 1: since having counts for non-prefix-closed deterministic data is not all that useful, i suggest simply raising an exception if unknown_output is encountered in the data handler. if somebody really needs it, they can implement it themselves. regarding 2: i think this behavior is perfectly fine. the classic RPNI version also does not raise on None outputs. a warning maybe. |
TODO
Ensure, also in tests / run exaustive that I have added, that DFA and Moore learning works also with non-prefix closed data