Sunday, April 3, 2011

Best Combo for Facebook, Twitter, and Chat

As cool as TweetDeck is, have you ever looked at its privacy policy? yeck. many other similiar applications have similiar disclaimers in their privacy policies or ads all over the place. For windows users, there is a solution.

For chat: Pidgin. Being open source, their's no ads and you're not selling your soul to use it. It works well, and with virtually any protocol (facebook, google, AIM, ...)

For Twitter/Facebook/Digg/RSS/Etc. feeds: MahTweets. It is open source, using Microsoft's new Open Source license. Its interface is clean, it is customizable, and it is a CLIENT. it is not something you need to open your browser to use.

I've been looking for a pair of applications like this for a while. I hope others find this useful.

Fuzzy Logic III: Proof Construction

For those burning with questions on how to actually write a fuzzy logic proof. Even though the law of contradiction doesn't generally hold falor fuzzy logic, the normal rules of fuzzy logic do, with some extended functionality to deal with uncertainty.

I will write about some of the basic rules of natural deduction here. from there, It should be readily seen how the rest of the rules follow.

Before I move forward, it should be noted that last time, we worked with two different systems of logic: minimization (a & b = min(a,b)) and additive (a & b = max(0, x + y - 1) ) with negation being the operation (1-a) and with DeMorgan's Law adopted as an axiom.

Since the things I am about to write about apply to all fuzzy logics, I shall refer to the function which evaluates the certainty of a disjunction based on the certainties of the disjuncts as d(x,y). Therefore, for minimization logic, d(x,y) = max(x,y) (see previous post for more details). The same goes for the function which evaluates the certainty of a conjunct of, say, x and y based on the certainties of x and y themselves. Such a function (which evaluates the certainty of a conjunct) is here written as c(x,y).


Writing Convention

In this document, I will format my proofs as follows:
#   assertion     certainty     justification

So therefore, with fuzzy logic proofs we deal with three columns.

As an example:

1. P     50%     Premise
2. Q     80%     Premise
3. R     30%     Premise


Conjunction  (Combination)

In Fuzzy Logic, Conjunction (P , Q |= P & Q) works quite the same as conventional logic, with the extension that the attached conjunct is simply the same as c(x,y) for the logic with which we are dealing.

Example (taken from the example under "Writing Convention":)

1. P     50%     Premise
2. Q     70%     Premise
3. P&Q   50%     1,2, Conjunction (using minimization logic)
===
3. p&Q   20%     1,2, Conjunction (using additive logic)

Disjunction (Addition)

The same goes for dysjunction as for conjunction, namely, given p and q, p | q can be attached with the certainty given by d(p,q). P|Q above would therefore take on the values 70% and 100%, respectively. 
When adding any old proposition, say p, one which we are not given the certainty value of, we write , if the proposition to which one attaches p has a certainty of 30%, for example.

Modus Ponens

As I said in my last post, we are not guarunteed the law of contradiction. In conventional logi c, it is sufficient to use Contradiction along with Conditional Exchange () and Conjunction to derive Modus Ponens. This is not the case in fuzzy logic; however, we can use the definition of d(x,y) and c(x,y) to make some significant inferences. In this example I will use additive logic, but it should easily be seen how to generalise this approach to any fuzzy logic.

We have:

1. P         43%     Premise
2. P -> Q    83%     Premise


And so we want to derive Q. we plug P's certainty value in for the formula we use for computing the certainty of disjunction:

d((1-p),q) = .83
d((1-.43),q) = .83

We now substitute the particulars of d(x,y). In our case, this is min(1,x+y):

min(1,1-.43+q) = .83
min(1,.57+q) = .83


It should be clear now that since .83 is less than 1, we know that min(1,.57+q) = .57+q. And so

.57+q = .83
 q    = .26 .
We can now attach Q to our proof above with certainty 26% under additive logic. 

What if P -> Q's value is 1 in this case? We find Q's certainty to be the least certainty that would give 1, adding 'greater than or equal to' next to it:

1. P       83%    Premise
2. P -> Q  100%   Premise
3. Q       83%    min(1,.27+q) = 1 :. smallest q = .83 .

That's how it works: we use the formulas for d(x,y) and what we know about the certainty of the conditional and the antecedent, we can derive the certainty of the consequent.  

Conditional Proof

How do we create conditionals? Easy. Simply assume p to some certainty, derive q to some certainty, and then infer p -> q and assign a certainty value of d(1-p,q).

For example, under minimisation logic:

 1. P  37%      Assumption
   .
   .
   .
17. Q  75%     
19. P -> Q      75%

Contradiction 

Although the law of contradiction does not apply in general, it applies at the "end points". In other words, if one can derive p with 100% certainty, and also ~q to 100% certainty, its conjuction will (by definition) have 100% certainty, and one can obtain 0% certainty (100% certainty of the negation) and use this and conditional proof to prove something via reductio ad absurdum.

Conclusion

This work was not intended as a comprehensive treatise on fuzzy logic inference rules, but hopefully I have provided in it a good feel for how it works. Enjoy!