-
Notifications
You must be signed in to change notification settings - Fork 268
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
Changing strategy lists #665
Conversation
How do you feel about the name Also we could simply measure the runtime of all of these strategies. The meta strategies are obviously at least an order of magnitude more expensive by construction, and the deterministic strategies are typically the fastest. Perhaps there is some natural clustering. |
Yeah I don't think Checking the run times of individual strategies would be cool :) I'm assuming you're not meaning to include that as an automatic classification. Perhaps a nice notebook to include? Or script to run and have travis report it? It could print out a rank of the strategies by run time (against some pre defined set of strategies) along with the run time itself. We could then use that to (if need be) add another strategy to the |
I'll see what I can do, I have some code laying around that basically does this already without the timing part (for the Axelrod Examples plots), but it may take a while to run. |
So that might exclude travis... We could just run that as and when we feel it's needed... But yeah, sounds good, want to open it as a separate issue and stick with the meta strategies in there for now? (Subject to finding the right name for the list...) |
FWIW my vote would (currently) go to: |
Have gone for `long_run_time_strategies`. Happy to use whatever though.
This means we can include `...` as in output for doctests. Particularly useful if we want to just make sure a particular command runs (the output may change over time).
Have just pushed 3 more commits:
EDIT: In the use case here it (the |
I'm computing the run times now, if we want to wait a bit. I suspect that MetaHunter is not too intense and could go in the standard list (plus it's a good strategy). We could also look at the big-O complexities in terms of e.g. turns for various strategies. |
Happy to wait :) 👍 |
Runtimes: Each strategy plays each other strategy for 100 turns, 20 repetitions, and the mean and std dev is computed for each strategy (over all opponents). All times are in seconds. As I suspected the Here's the notebook code:
|
Neat. We should pop that code in the notebook repo :) Have pushed again, removing |
Closes #664.
This renames
strategies
toall_strategies
, andordinary_strategies
tostrategies
. I've keptordinary_strategies
in there tough just to not break anyones code. It it worth not doing that and just 'ripping off' the bandaid?Also, @marcharper mentioned having the meta strategies in a separate list. Here I've got them still in the one unique list (
strategies
) but have also created another listrecursive_strategies
. We could call thatexpensive_strategies
to be more generic perhaps?Have included a tutorial also, just listing these. I ended up putting that in further capabilities.