MagnetoHydroDynamics comments on An Intuitive Explanation of Solomonoff Induction - Less Wrong

53 Post author: Alex_Altair 11 July 2012 08:05AM

You are viewing a comment permalink. View the original post to see all comments and the full post content.

Comments (210)

You are viewing a single comment's thread.

Comment author: [deleted] 09 July 2012 01:14:02PM *  2 points [-]

A good and useful abstraction that is entirely equivalent to Turing machines, and to humans much more useful, is Lambda calculus and Combinator calculi. Many of these systems are known to be Turing complete.

Lambda calculus and other Combinator calculi are rule-sets that rewrite a string of symbols expressed in a formal grammar. Fortunately the symbol-sets in all such grammars are finite and can therefore be expressed in binary. Furthermore, all the Turing complete ones of these calculi have a system of both linked lists and boolean values, so equivalent with the Turing machine model expressed in this article, one can write a programme in a binary combinator calculus and feed it a linked list of boolean values expressed in the combinator calculus itself and then have it reduce itself (return) a linked list of boolean values.

Personally I prefer combinator calculi to Turing machines mainly because they are vastly easier to program.

Related:

Comment author: Alex_Altair 09 July 2012 04:47:06PM 0 points [-]

I love lambda calculus! I considered formulating Solomonoff induction in lambda calculus instead, but I'm more familiar with Turing machines and that's what the literature uses so far. (Also Zvonkin and Levin 1970 use partial recursive functions.) It wasn't obvious to me how to alter lambda calculus to have a monotonic input and output, like with the three-tape Turing machine above.

Comment author: [deleted] 09 July 2012 07:00:30PM 0 points [-]

You do that by having a term that takes a linked list of boolean values and returns a linked list of boolean values.

Comment author: olalonde 09 July 2012 03:25:38PM 0 points [-]

To expand on what parent said, pretty much all modern computer languages are equivalent to Turing machines (Turing complete). This includes Javascript, Java, Ruby, PHP, C, etc. If I understand Solomonoff induction properly, testing all possible hypothesis implies generating all possible programs in say Javascript and testing them to see which program's output match our observations. If multiple programs match the output, we should chose the smallest one.

Comment author: [deleted] 16 July 2012 09:01:16AM 0 points [-]

Correct. It is just harder to exhaustively generate JS, and again harder to judge simplicity.