Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

3 strategies that are implemented in axelrod do not agree #31

Closed
drvinceknight opened this issue Jul 26, 2017 · 16 comments
Closed

3 strategies that are implemented in axelrod do not agree #31

drvinceknight opened this issue Jul 26, 2017 · 16 comments

Comments

@drvinceknight
Copy link
Member

In #30 I have written a test that checks implemented deterministic strategies.

3 are not agreeing:

Grofman is perhaps a simple case to investigate: it is described and implemented in the Axelrod library as a stochastic strategy but it's classified as deterministic in axelrod_fortan...

@meatballs
Copy link
Member

Well, isn't this getting interesting?!!

@drvinceknight
Copy link
Member Author

Indeed :)

@meatballs
Copy link
Member

Grofman is indeed stochastic in the Axelrod library. It returns a random choice in its last line.

But, having looked through its code, K86R is defintely deterministic.

@drvinceknight
Copy link
Member Author

It's implemented based on the definition in Axelrod's first paper (which is now in the docstring). There's a chance that the strategy Grofman wrote for the second was intended to be different perhaps.

@meatballs
Copy link
Member

They start in a similar fashion, but these are not the same strategy

@drvinceknight
Copy link
Member Author

In which case I'd suggest that we modify http://axelrod.readthedocs.io/en/stable/reference/overview_of_strategies.html#id15 to indicate that it's implemented in axelrod? But let's make sure hey? I've just read through the paper again and I don't see anything that indicates that it is intended to be the same strategy, just the same author.

@meatballs
Copy link
Member

I assume there is a missing 'not' in there, in which case, I agree.

I think he replaced the random choice used in the first tournament with some deterministic code for the second

@drvinceknight
Copy link
Member Author

I assume there is a missing 'not' in there, in which case, I agree.

Yup. "not implemented"

I think he replaced the random choice used in the first tournament with some deterministic code for the second

Could be the case with the other two also: they modified their strategies...

@meatballs
Copy link
Member

Comment in line 3 of K59R:

C TYPED BY AX, 3/27/79 (SAME AS ROUND ONE REV.DOWNING)

@meatballs
Copy link
Member

and in K57R:

C TYPED BY AX, 3/27/79 (SAME AS ROUND ONE NYDEGR)

@meatballs
Copy link
Member

meatballs commented Jul 26, 2017

K57R versus Nydegger: Just going by the comments in the code, I think the values it uses for defection are different - same logic but using different values.

However, following the archaic conditionals through will take some effort to be certain.

@marcharper
Copy link
Member

Apparently there are two Grofman's (Mark and Bernard). Are the known differences all deterministic? If not it could be simply a difference in randomizations.

Otherwise I'm not surprised that a few are different -- there were definitely cases where we had to make choices knowing that the text descriptions were incomplete.

@drvinceknight
Copy link
Member Author

drvinceknight commented Jul 27, 2017

Apparently there are two Grofman's (Mark and Bernard). Are the known differences all deterministic? If not it could be simply a difference in randomizations.

  • Grofman's strategy in Axelrod's first tournament was stochastic. It was not in his second.

Otherwise I'm not surprised that a few are different -- there were definitely cases where we had to make choices knowing that the text descriptions were incomplete.

I think this is just highlighting that we've made a bit of a jump/assumption with http://axelrod.readthedocs.io/en/stable/reference/overview_of_strategies.html#axelrod-s-second-tournament

The strategies from Axelrod's first tournament are all implemented based on the text description provided in https://www.jstor.org/stable/173932

We then assumed that if a strategy was submitted to the second tournament by the same author that it was the same strategy. That is not made expicit in Axelrod's second paper https://www.jstor.org/stable/173638. There is sadly no text description of the strategies in that second paper so the Fortran code is the description of the strategy.

So I think it's more of an exception than a rule when the strategy is the same. I'm going to open PRs both here and for the tournament docs to mark most of these as "not" implemented (the ones that pass the test and Random I think are safe to assume are the same). If and when there are implemented (or we know that they are implemented) we should change that.

I'd also suggest that when we implement them we don't call them by their author name but by the name of the Fortran file (including author name in the title etc), or we call them MoreGroffman (or something like that... More because that's the extra word in the paper about Axelrod's second tournament).

drvinceknight added a commit that referenced this issue Jul 27, 2017
We don't know if these strategies are implemented are not.

See discussion on #31
drvinceknight added a commit to Axelrod-Python/Axelrod that referenced this issue Jul 27, 2017
See
Axelrod-Python/axelrod-fortran#31 (comment)

Not I removed the "Work in progress" also because, similarly, that is
being implemented based on the text description in Axelrod's first
paper.
@drvinceknight
Copy link
Member Author

On Axelrod: Axelrod-Python/Axelrod#1090
Here: #33

@drvinceknight
Copy link
Member Author

Some quotes from Axelrod's second paper which I think back up that there's no reason to assume that the same author submitted the same strategy:

The game theorists who participated in the first round of the tournament were also invited to try again.

So not automatic.

The entrants also drew their own lessons from the experience of the first round.

So strategies did change?

marcharper pushed a commit to Axelrod-Python/Axelrod that referenced this issue Jul 28, 2017
See
Axelrod-Python/axelrod-fortran#31 (comment)

Not I removed the "Work in progress" also because, similarly, that is
being implemented based on the text description in Axelrod's first
paper.
@drvinceknight
Copy link
Member Author

I think we can close this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants