Path: csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!aioe.org!eternal-september.org!feeder.eternal-september.org!.POSTED!not-for-mail From: Daniele Futtorovic Newsgroups: comp.lang.java.programmer Subject: Re: Basic prisoner's dilemma? Date: Mon, 18 Apr 2011 21:26:29 +0200 Organization: A noiseless patient Spider Lines: 30 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Mon, 18 Apr 2011 19:26:24 +0000 (UTC) Injection-Info: mx02.eternal-september.org; posting-host="TdHps3CX+e9UB6Yx/BzU0w"; logging-data="9239"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18wyZR2onCVChJB06/janMp" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.2.15) Gecko/20110303 Thunderbird/3.1.9 In-Reply-To: Cancel-Lock: sha1:tL1Fgte8mTiPzi3N0L6plbxIxCY= Xref: x330-a1.tempe.blueboxinc.net comp.lang.java.programmer:3113 On 18/04/2011 19:34, Lew allegedly wrote: > Daniele Futtorovic wrote: >> Basic tit-for-tat is as follows: >> - if it's the first time you encounter that opponent (this implies you >> keep a 'memory' of previous encounters), cooperate. >> - otherwise, replicate that opponent's last move. >> >> In code (assuming oppHistory contains only the history with "this"): >> >> public String chooseAction( >> ArrayList myHistory, ArrayList oppHistory) >> { >> return oppHistory.isEmpty() ? "COOPERATE" >> : oppHistory.get( oppHistory.size() > - 1 >> ); >> } >> (or oppHistory.get(0), depending on whether it's used as a FIFO or a >> LIFO). >> >> >> You can add various tricks, but don't expect to get far with them, >> because tit-for-tat is the evolutionary stable strategy. >> >> If you're interested in the topic apart from the programming aspect, I >> *very* strongly suggest you read Dawkins' "Selfish Gene" and "Blind >> Watchmaker". Even if you're not, by the way -- those are IMHO must-reads. > Well spotted. Thanks, Lew.