All of tetronian2's Comments + Replies

Is it currently legal to run a for-money prediction market in Canada? I assume the answer is "no," but I was surprisingly unable to find a clear ruling anywhere on the Internet. All I can find is this article which suggests that binary options (which probably includes prediction markets) exist in a legally nebulous state right now.

I think you are misreading the article. I think that it is saying that betting on financial markets is heavily regulated. The whole reason those sites exist is avoid claiming to give access to financial markets. At one point the SEC(?) negotiated a deal with Intrade that it could have American customers in return for not offering financial bets. Sports betting websites are much less lightly regulated and I'm pretty sure political prediction markets are legal. Why do you ask? What does it matter where a market is located? As that article shows, the Canadian government, unlike USG, doesn't try hard to block Canadians from using off-shore services that would not be legal in Canada. Prediction markets are definitely legal in Ireland. What more do you need? It might be dangerous to live in Canada and run a sketchy betting site nominally located in the Caribbean, but Ireland? If you follow Irish law, no problem. Again, I put odds at 90% that it is legal in Canada. The problem with prediction markets is lack of demand and lack of access to Americans. Added: this [] says that sports betting is a gray area and even these sites are not based in Canada. Also, I checked the example I had in mind and it was not registered in Canada. So probably I was wrong about Canada, but, again, Ireland is all you need.

Yep. I don't think I was ever aware of the name; someone threw this puzzle at me in a job interview a while ago, so I figured I'd post it here for fun.

I guess I didn't formulate the rules clearly enough--if the coin lands on tails, you exit with the stake. For example, if you play and the sequence is HEADS -> HEADS -> TAILS, you exit with $4. The game only ends when tails is flipped.

Also notice that as formulated ("You are given an initial stake of $1") you don't have any of your own money at risk, so... And if the game only ends when TAILS is flipped, there is no way to lose, is there? If the first $1 comes from you, you are basically asking about the "double till you win" strategy. You might be interested in reading about the St.Petersburg paradox [].

Suppose someone offers you the chance to play the following game:

You are given an initial stake of $1. A fair coin is flipped. If the result is TAILS, you keep the current stake. If the result is HEADS, the stake doubles and the coin is flipped again, repeating the process.

How much money should you be willing to pay to play this game?


1 flip  --- $1  probability 1/2
2 flips -- $2  probability 1/4
3 flips -- $4  probability 1/8
4 flips -- $8  probability 1/16

The expected value doesn't converge but it grows extremely slowly, where almost all the benefit comes from an extremely tiny chance of extremely large gain. The obvious question is counterparty risk: how much do you trust the person offering the game to actually be able to follow through with what they offered?

If we think of this as a sum over coin flips, each flip you think is possible gives another $0.50 in expected... (read more)

I was thinking that you should take into account the fact that if you got several trillion dollars, that only entitled you to half of America's resources, and if you got infinite dollars it would only give you 100% of America's resources. It turns out that similar notions have already been studied and the expected value calculated for them on Wikipedia (well, they just assumed that the bankroll was US GDP and didn't look at a quantity theory of money solution specifically, but same diff).
As formulated, zero -- under the rules you posted you never win anything. Is there an unstated assumption that you can stop the game at any time and exit with your stake?

It appears they are going with some kind of modal logic, which also does not appear to deal with incomplete information. I also suspect "moral" will be conflated with "utilitarian" or "utilitarian plus a diff". But then there is this bit in the press release:

Bringsjord’s first step in designing ethically logical robots is translating moral theory into the language of logic and mathematics. A robot, or any machine, can only do tasks that can be expressed mathematically. With help from Rensselaer professor Mei Si, an expert in

... (read more)
Unfortunately, in the future we will be allowed to have only the emotions Mei Si was an expert of :/

Possibly of local interest: Research on moral reasoning in intelligent agents by the Renssalear AI and Reasoning Lab.

(I come from a machine learning background, and so I am predisposed to look down on the intelligent agents/cognitive modelling folks, but the project description in this press release just seems laughable. And if the goal of the research is to formalize moral reasoning, why the link to robotic/military systems, besides just to snatch up US military grants?)

I did not find the project so laughable. It's hopelessly outdated in the sense that logical calculus does not deal with incomplete information, and I suspect that they simply conflate "moral" with "utilitarian" or even just "decision theoretic".

So, to follow up on this, I'm going to announce the 2015 tournament in early August. Everything will be the same except for the following:

  • Random-length rounds rather than fixed length
  • Single elimination instead of round-robin elimination
  • More tooling (QuickCheck-based test suite to make it easier to test bots, and some other things)

Edit: I am also debating whether to make the number of available simulations per round fixed rather than relying on a timer.

I also played around with a version in which bots could view each other's abstract syntax tree (rep... (read more)

Wow, I was not aware of that. I saw that the last one got some minor attention on Hacker News and Reddit, but I didn't think about the outreach angle. This actually gives me a lot of motivation to work on this year's tournament.

Oops! I misremembered. So8res' second post was for that tournament, but his first was two weeks earlier []. Shouldn't have put words in his mouth, sorry!

Is anyone interested in another iterated prisoner's dilemma tournament? It has been nearly a year since the last one. Suggestions are also welcome.

So, to follow up on this, I'm going to announce the 2015 tournament in early August. Everything will be the same except for the following: * Random-length rounds rather than fixed length * Single elimination instead of round-robin elimination * More tooling (QuickCheck-based test suite to make it easier to test bots, and some other things) Edit: I am also debating whether to make the number of available simulations per round fixed rather than relying on a timer. I also played around with a version in which bots could view each other's abstract syntax tree (represented as a GADT []), but I figured that writing bots in Haskell was already enough of a trivial inconvenience for people without involving a special DSL, so I dropped that line of experimentation.
In addition to current posters, these tournaments generate external interest. I, and more importantly So8res, signed up for an account at LessWrong for one of these contests [].

Wow, I had no idea that people missed out on the tournament because I posted it to discussion. I'll keep this in mind for next year. Apologies to Sniffnoy and BloodyShrimp and anyone else who missed the opportunity.

Good question--after running some matches:

AnderBot Cooperates until one of the copies randomly triggers a Defect, then both copies defect for the rest of the match.

CheeseBot, DMRB, SHTFT, SimpleTFTSeer, Switch, TatForTit, TwoFacedTit, and VOFB always cooperate with themselves.

Pip always defects against itself.

For a next version of the tournament, perhaps it would make sense to force each bot to play a match against itself. This ensures that everybody playing DefectBot is no longer a tournament equilibrium (not that this is probably going to happen, anyway).
Self-cooperation was one of my core test cases, so I guess this probably indicates that many other people also designed for and/or tested self-cooperation.

Thanks; fixed. And thanks for this analysis! I've added it to the OP.

Congratulations! If you do work it out, please do post it here--I'm still not 100% sure how TatForTit managed to exploit CheeseBot and DMRB.

Thank you, I was a bit confused, and that did help me understand what you were going for. I'm actually very curious to see how the correct version performs; all of the bots will be open-sourced soon, so you're welcome to experiment. I will probably run some tests as well.

There are 11 entries; I am very impressed by the amount of effort everyone put into their bots.

I'm glad! It depends on how long it takes me to write up all of the results, but probably within 1 week.

1Scott Garrabrant8y
I noticed my bot has a typo. (I do not expect you to change it or anything, just letting you know for your write up if you are confused by my code.) The two times it says "(fst y,Cooperate)" should have said "(Cooperate, fst y)" I wanted to simulate them next round assuming my previous prediction of their move was correct and I cooperate, not assuming they cooperate and I repeat my last move. Should have taken you up on the offer to code it for me :( oh well.
1Scott Garrabrant9y
How many entries were there?
This is very exciting
Great! I can't wait to see how thoroughly I was trounced by everyone!

Has anyone else seen the television show Brain Games? It is essentially intro-to-cognitive-biases aimed at the level of the average TV watcher; I was pleasantly surprised by how well it explains some basic biases with simple examples (though I have only seen an assortment of episodes from the 3rd and 4th season). However, most of the material given is not very actionable and is designed more for entertainment rather than self-improvement. Nevertheless, those interested in raising the sanity waterline and/or sparking interest in LW subjects among more avera... (read more)

Yes it's a great show.

The correct deadline is Sept. 15th--I extended it by 15 days because of an error in the tournament code that went unfixed for two weeks, which delayed some people from writing their bots. I've updated the post to reflect this, thanks for catching it. Anyone who already submitted a bot is welcome to re-submit if they want to make changes to their bot before the 15th.


Yes, I did find that section grating. I'm describing my emotions post-hoc here (which is not generally reliable), but what I found irritating about the first few chapters was the fact that Harry acts in an extremely arrogant way, nearly to the point of coercing the adult characters, and the story-universe appears to back him up at every turn. This is the "Atlas Shrugged" effect described downthread by CellBioGuy. Harry is probably right in most of those arguments, but he is only so effortlessly correct and competent because the story-universe is ... (read more)

While this is true, there can be a distinction between a character with flaws and a character who is extremely irritating to read about. And this is one of those judgement calls where The Audience is Always Right; it seems very reasonable to stop reading a story if the protagonist noticeably irritates you.

In general, commentary to the effect of "you should like this thing" is not very useful, especially if you are trying to figure out why someone reacted negatively.

(These discussions in which one group has an overwhelmingly strong "squick&... (read more)

I suppose if you really can't stand the main character, there's not much point in reading the thing. I was somewhat aggravated by the first few chapters, in particular the conversation between Harry and McGonagall about the medical kit. Was that one where you had your aggravated reaction? I found myself sympathizing with both sides, and wishing Harry would just shut up--and then catching myself and thinking "but he's completely right. And how can he back down on this when lives are potentially at stake, just to make her feel better?"

Thank you very much for catching this and for explaining it in detail here and on the github page; I'm going to play around with your proposed solution today and brainstorm any other ways of dealing with this.

Whoops, fixed. And thanks, I'm curious to see what happens with this ruleset.

Thank you for submitting! Yes, I am accepting one bot per person.

Good points. Simulations do give much less information than visible source code--this was a deliberate design choice on my part, but you are probably right that this kind of setup is not really "program equilibrium." I admit, I don't have a very good understanding of where the limits of the PD game really are, and I hadn't considered the problem of the all-players tie (fortunately I don't think it is going to happen in practice). Mutual cooperation and cliques are still viable strategies here, but they may not be the Nash equilibrium anymore. Regardless, I agree that this tournament is horribly misnamed.

Unlike last year's tournament, you can't, and this is part of the challenge. Simulations are a precious resource, and you have to make an educated guess about your opponent based on the limited simulations you have.

I figured that this game is sufficiently different from the classical PD that the same Nash equilibrium/style of thinking isn't going to apply, and I was interested to see what participants can do with the fixed-size rounds. So it's just an arbitrary experimental parameter that I'm curious about.

I agree. I chose Haskell because I was intrigued by how easy it was to restrict what bots are able to do, using only Haskell's type system. I would actually love it if a large number of non-Haskellers participated--I enjoy coding Haskell, and I don't mind putting aside some time to help if the result is a larger, more interesting tournament.

Excellent questions. Here are the rules pertaining to the tournament structure (from the readme):

One submission per person.

The tournament will be round-robin elimination: Each bot will play one match against all other bots, where a match consists of 100 rounds of the prisoner's dilemma. At the end of the round-robin round, the lower-scoring half of the tournament pool will be eliminated. This process will be repeated until only one bot remains, or there is a tie. The whole tournament will be run 1000 times, and the bot that places first most frequently w

... (read more)
To clarify: your score in each round-robin round is the sum of your scores from each of the matches; and this score doesn't carry over to the next round-robin round?

Thank you, that is an excellent explanation and you have changed my mind; I will implement an elimination tournament as you described.

Can you explain the rationale behind the elimination setup a little more? An elimination tournament seems less fair than pure round-robin. Moreover, I ran some tests with various combinations of the example bots from the tutorial, and what generally happens is the bots with strategies along the lines of "I'll cooperate if you do" (i.e. tit-for-tat, justiceBot, mirrorBot) rise to the top and then just cooperate with each other, resulting in a multi-way tie. If the actual pool of submissions contain enough bots with that kind of strategy, a large t... (read more)

The elimination tournament better simulates evolution and capitalism. With a round robin you can have a successful strategy of taking resources from stupid people. But in nature and the marketplace stupid people won't consistently get resources and so a strategy of taking from them will not be a long-term effective one.

Thank you! These changes both make sense; I will adjust the tournament structure as you described and enter your bot when the tournament is open.

This is a followup to a post I made in the open thread last week; apologies if this comes off as spammy. I will be running a program equilibrium iterated prisoner's dilemma tournament (inspired by the one last year). There are a few key differences from last year's tournament: First, the tournament is in Haskell rather than Scheme. Second, the penalty for bots that do not finish their computation within the pre-set time limit has been reduced. Third, bots have the ability to run/simulate each other but cannot directly view each other's source code.

Here are... (read more)

This biases the tournament towards cooperation and makes it no longer a PD. This biases the tournament away from the defect every single round strategy. Consider creating an elimination tournament where you run the game, eliminate the bottom half of the players, then run again, then iterate until only one player remains. If you decide to do this and are willing to go to the effort of programming my entry (since I don't know Haskell) please enter me with a bot that always defects.

Thanks for the feedback. I agree on both points; I will probably change the wording to what you suggested.

Sometime in the near future, I will be running an iterated prisoner's dilemma tournament in which bots can access their opponents' source code, similar to the IPD tournament that was held last year. This tournament will be open to the Internet at large (i.e. not just LW) and will probably include some Hacker News folks and some folks from my real-life social network, who are primarily programmers and people in the finance world. Once everything is officially announced, there will be a large window (a month?) in which users can submit entries before the tou... (read more)

IIRC last time the winners were programs that had some random element in their code and "got lucky" (in the sense that if the tournament had been run multiple times and the results averaged, they would not have won). So maybe you should guard against this by performing sufficiently many copies of the tournament.
The code in the github repo doesn't actually give bots access to each other's source, just the ability to run each other. It's also lacking handling for bots that run forever.