Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #3116

Re: Basic prisoner's dilemma?

From Lew <noone@lewscanon.com>
Newsgroups comp.lang.java.programmer
Subject Re: Basic prisoner's dilemma?
Date 2011-04-18 16:33 -0400
Organization albasani.net
Message-ID <ioi771$d8u$1@news.albasani.net> (permalink)
References <d97822e4-ee7c-458d-8818-07007fb714e8@k3g2000prl.googlegroups.com> <iohs19$f1g$1@dont-email.me> <iohsn8$hri$1@news.albasani.net> <ioi390$90n$1@dont-email.me>

Show all headers | View raw


Daniele Futtorovic wrote:
> 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<String> myHistory, ArrayList<String> 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).
[snip]

> Well spotted. Thanks, Lew.

HTH.

As a matter of good habit, I also suggest using interface-typed parameters to 
the method, but that is not germane to the point of your example.

Inevitably my mind starts spinning coder fantasies even on these toy examples:

- "Wouldn't an enum base type and return type be better than String?"
- "What if we keep a rolling buffer of choices of size N rather than recording 
all history?"
- "What if there were a third response possible (thus more reason to use an 
enum), say, 'PREVARICATE'?"
- "What would that even mean?"
- "What if the choices were more like Rock-Paper-Scissors?"
- "What is the reward / cost for each combination of choices?"
- "What if that reward / cost increased or decreased with k, the number of 
game rounds played so far?"
- "What is the terminating condition of the game?"

I'm firing these questions out without recently having reviewed the Prisoner's 
Dilemma, but the simple form you describe is only the launching point.

-- 
Lew
Honi soit qui mal y pense.
http://upload.wikimedia.org/wikipedia/commons/c/cf/Friz.jpg

Back to comp.lang.java.programmer | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Basic prisoner's dilemma? theglazeb <theglazeb@gmail.com> - 2011-04-17 19:51 -0700
  Re: Basic prisoner's dilemma? Lew <noone@lewscanon.com> - 2011-04-17 23:15 -0400
    Re: Basic prisoner's dilemma? Esmond Pitt <esmond.pitt@bigpond.com> - 2011-04-18 13:54 +1000
      Re: Basic prisoner's dilemma? theglazeb <theglazeb@gmail.com> - 2011-04-17 22:08 -0700
        Re: Basic prisoner's dilemma? Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> - 2011-04-17 23:47 -0700
        Re: Basic prisoner's dilemma? markspace <-@.> - 2011-04-18 00:14 -0700
  Re: Basic prisoner's dilemma? rossum <rossum48@coldmail.com> - 2011-04-18 13:01 +0100
  Re: Basic prisoner's dilemma? Bent C Dalager <bcd@pvv.ntnu.no> - 2011-04-18 13:38 +0000
  Re: Basic prisoner's dilemma? Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> - 2011-04-18 19:22 +0200
    Re: Basic prisoner's dilemma? Lew <noone@lewscanon.com> - 2011-04-18 13:34 -0400
      Re: Basic prisoner's dilemma? Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> - 2011-04-18 21:26 +0200
        Re: Basic prisoner's dilemma? Lew <noone@lewscanon.com> - 2011-04-18 16:33 -0400
          Re: Basic prisoner's dilemma? Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> - 2011-04-18 23:50 +0200
            Re: Basic prisoner's dilemma? Lew <noone@lewscanon.com> - 2011-04-18 18:37 -0400
              Re: Basic prisoner's dilemma? markspace <-@.> - 2011-04-18 15:51 -0700
    Re: Basic prisoner's dilemma? Michael Wojcik <mwojcik@newsguy.com> - 2011-04-19 16:14 -0400

csiph-web