Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #3116
| 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> |
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 | Next — Previous in thread | Next in thread | Find similar
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