-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
NAL3 Truth Function Inconsistent with Docs #62
Comments
max(and(f1, f2, c1, c2), and( and(1-f1, 1-f2), c1, c2 )) |
or maybe the c = and(c1,c2) is best but to handle the negation x negation case the frequency needs to involve max: |
err |
n/m that doesnt make sense either |
The NAL spec function is a previous version that tried to handle all the On Mon, Aug 1, 2016 at 5:58 AM, automenta [email protected] wrote:
|
ok, thanks |
https://github.com/opennars/opennars2/blob/2.0.0_postdev1/src/nal/deriver/truth.clj#L101
(t-and c1 c2)
https://github.com/opennars/opennars2/blob/2.0.0_postdev1/docs/NAL-spec/NAL-3.tex#L206
c &=& or(and(not(f_1), c_1), and(not(f_2), c_2)) + and(f_1, c_1, f_2, c_2)
the preceding paragraph in the NAL spec explains:
i had suspected a symmetric form of this function was missing for negated cases of certain truth functions. not only is the code missing the negated case, inconsistent for the positive case, but i see a possible mistake written for the unimplemented negated case. taking the intersection case as an example
c = or(and(not(f 1 ), c 1 ), and(not(f 2 ), c 2 )) + and(f 1 , c 1 , f 2 , c 2 )
the first component of this formula alone can produce confidence values higher than its conf inputs (ex: two 90% conf inputs producing a 98% conf output in one test case). no other truth functions compute a confidence combining freq and conf in an or( ) in this way.
my guess is that that '+' actually means max as the explanation seems to suggest, and that one of these variations will produce more reasonable confidence values for the various positive and negative combinations.
max(and(f1, f2, c1, c2), and( 1-f1, c1, 1-f2, c2 ))
max(and(f1, f2, c1, c2), and( or(1-f1, 1-f2), c1, c2 ))
otherwise please clarify the documentation and/or why the code seems inconsistent for these functions (including opennars 1.x)
The text was updated successfully, but these errors were encountered: