420 karma · joined October 25, 2008
I'm not sure about the bundle creator, I never used that, but not being able to create a new file seems like some random little issue that's most likely fixable.
I have used Eclipse for many years with multiple languages, and none of this is quite true. There is a bit of a learning curve, where you have to learn not to do some things that break it. :) But that just takes a few hours, and a bit of patience - after that you have many months of happy coding, where it just works...
Though, may I add that Python (or any other modern programming language) can manipulate its own code as data - only not as gracefully as Lisp. In other words, a Lisp program is its own AST - but in other languages the AST is only a "parse" away (and Python specifically makes computing it very easy).
Similarly, not everyone with "blues" is clinically depressed, and not everyone with unexplained weight loss has cancer... the folk estimates of the prevalence of these conditions are way overblown.
Let X be the value in the envelope you have, and Y in the other one (X and Y are both random variables with well-known distributions). Then E[Y/X] = 1.25. That's what I wanted you to explain. You just keep saying that E[X] = E[Y], which I know.
Note that this paradox would not arise if X and Y were independent, since then E[Y/X] = E[Y] / E[X] = 1.
(Though, as you say, there could still be an O(n) algorithm - this is not known).
What I said is true even for linear programming (a P-complete problem) - it has polynomial and efficient algorithms - though the latter are actually not polynomial in the worst case. :)
Though I was just reading the synopsis, and the statistical physics part seems to be proven: "The 1RSB ansatz of statistical mechanics says that the space of solutions of random k-SAT shatters into exponentially many clusters of solutions when the clause density is sufficiently high. This phase is called 1dRSB (1- Step Dynamic Replica Symmetry Breaking) and was conjectured by physicists as part of the 1RSB ansatz. It has since been rigorously proved for high values of k. It demonstrates the properties of high correlation between large sets of variables that we will need."
I did not dig into the references yet, though.
Ad 2 - If you carry out the analysis you're trying to teach me, you'll find that the expected relative gain from switching is 1.25. Now explain that. (You'll also find that the expected absolute gain is 0 - that's not a paradox.)
In this case, the argument that by switching you get 125% on average still holds!
I'd claim that this is even more interesting and paradoxical than the scenario you're talking about, where your explanation is correct (the distribution of the bigger value is crucial for your decision, and you know nothing about it).
1. You are told that the two envelopes contain amounts A and 2A, but you aren't told what A is. After you pick one envelope, you are allowed to open it, and then you're given the choice to switch. Here the optimal move depends on the distribution of A, and if you don't know it, you can't do much other than pick randomly. After some googling, this is the more common formalization, and it is analyzed in several math papers and blogs.
2. (The version I was assuming.) You are told that the envelopes have, say, $100 and $200. You pick one and you aren't allowed to open it yet. Now you're given the option to switch one last time. There is no problem with undefined priors and weird conditional probabilities in this version. However, the freaking paradox still holds! The expected value you get by switching is $150, no question about that. But the expected relative gain you get by switching is 1.25, there's also no question about that! This is the real paradox to me. Taking an expectation of a relative quantity is intuitively wrong, but why exactly?
You have a pair of random variables (X, Y) that take values (100, 200) or (200, 100) with equal probability. Then E[X] = E[Y] = 150, there is no question about that. Also, E[X/Y] = 1.25, there is also no question. The only question is why E[X] is useful and E[X/Y] is not useful for our decision making - and I honestly don't know why.
There is no formal distinction between absolute and relative quantities, and no theorem that says that expected values can only be taken from absolute quantities. There are just random variables, and these have some distributions, and they can be independent or not. Nothing prevents you from taking an expectation of a random variable that is a ratio of two other random variables.
Another angle - I could say that our definition of expected value, based on weighted arithmetic average, is completely arbitrary, and instead define my own expected value G[X], based on the geometric average. Suddenly, the relative approach becomes correct: sqrt(2 * 0.5) = 1, so the expected relative improvement from switching is 1. What the hell is going on?
The reason CS researchers do not usually publish their code has nothing to do with dishonesty - nobody is trying to hide their code because it does not really work, or anything like that. It's not even that people are worried of scooping, though that sometimes happens.
The main problem is that any time spent on cleaning up the code, packaging examples, writing instructions, answering bug complaints, etc. is time not spent on things that matter in academia - doing research, presenting it, and teaching students.
It might help if some conferences required source code submissions - but people might just submit to different conferences instead. The only real solution would be if funding agencies like NSF required that any projects funded through them have to release source code. This makes sense from a taxpayer's point of view, and would make the extra work acceptable (since everyone would have to do it).