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
Game Theory: build capacity to use gambit to solve Normal Form Games. #16333
Comments
comment:1
(being curious) |
comment:2
Putting to no listed component because truly non fits. Also, author is really for actual author of any changes (which may well be vinceknight! but isn't yet). |
Changed author from Vince Knight to none |
comment:3
Thanks kcrisman: that all makes a lot more sense than what I had put down. I'll go check if you have changed the other related tickets and if not will change myself. |
comment:4
Here is a relevant paper: http://math.berkeley.edu/~datta/msprojectreport.pdf |
comment:5
Replying to @kcrisman: This is what I would think as best way to go (as stated in Gambit FAQ: lrs is more robust) but that paper (pointed out by kcrisman) which points at Gambit will be super useful to evaluate the best way to go. |
comment:6
Where is this FAQ? I couldn't find it easily. Thinking out loud below:
|
comment:7
Replying to @kcrisman:
Yeah all fair comments: I'll get in touch with the Gambit folk (they're a very short drive from where I am) and see what they think. It was my understanding that lrs 'kind of' exists within Sage already as some sort of 'extra library'? Is that something I've made up? I think I've seen it somewhere... With regards to matching games and cooperative games they basically involve very straightforward algorithms so I was just thinking of coding those in Sage itself. A combination of cython and python should do the trick and one of those would be a nice warm up exercise for my student. If we decide to go the Gambit way we can still have all these things side by side I suppose? |
comment:8
I've commented on your old sage-support thread on this. Also a very interesting sage-devel thread on this is out there.
Oh, of course. And it will be very useful to have a "one-stop shop" for this. Just trying to figure things out. |
comment:9
Replying to @kcrisman:
Thanks! I'll take a closer look.
Yeah it's really helpful (and appreciated) to talk this over with you :) |
comment:10
We've been in contact with the man from Gambit and he seems quite keen on potentially being included in Sage. He appears to be fairly familiar with Sage and understands that some things may need to be tidied up before it becomes a standard package. |
comment:11
Great - and in any case it would have to start as optional. But that isn't a total hurdle, as one could have wrapper classes or stand-alone, depending on what Gambit actually does. I'm most interested in compatibility - it would be nice for there to be a standard format for representing things, you know? |
comment:12
I like the idea of having wrapper classes that could make use of Sage's ability to show things in an aesthetically pleasing way, anything involving latex would be great for example.
I agree, gambit actually uses its own .efg and .nfg file formats for representing games with the aim of them being easily readable by humans. Given that there isn't much else out there they may become a standard themselves. |
comment:13
Originally posted on the wrong ticket... I really like the idea you had here:
Yes! Just like
This would be awesome, a built-in library one could explore of basic examples. |
This comment has been minimized.
This comment has been minimized.
comment:15
Replying to @kcrisman:
Yeah completely agree. Structure is something we're going to be carefully thinking about over the next week or two. I'm hoping we get to meet with Ted (Gambit) to talk about stuff. I don't suppose @kcrisman that you would have a spare 15 minutes for us to chat (via hangout or something) just to get your thoughts? Perhaps when we have an initial/draft architecture written down we could talk? We want to make sure we future proof things as much as possible and also that we're thinking of the right stuff... Completely understand that you are busy and really appreciate the time you're giving on here so no problem if that doesn't work :) (I replied to the email I got about this on my phone with this message about 2 hours ago hoping it would automagically appear here but that doesn't look like it happened) |
comment:16
Replying to @theref:
The LaTeX representation of things will be minor tweaks I imagine. It's all about making sure we get the general structure of Gambit games and 'our games' aligned so that we can talk to 'Gambit' in the right way... We won't rush this: important to get it right. |
comment:17
Actually, today for the next couple hours would be good.
No, I don't think you can reply to Trac tickets that way. (Can you? I mean, it's possible you could...) |
Dependencies: #16466, |
comment:19
There is some discussion on Github about how we should model our Normal Form Game class. The main question being should we inherit from Gambit with methods written for other representation and algorithms, or should we inherit from SageObject and have different representations as different attributes. The relevant issue can be found here. Please could people take a read through what has been said so far and any comments, all help is greatly appreciated! |
Commit: |
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:64
Replying to @kcrisman:
Correct on both accounts. Both fixed now (thanks!).
Thanks both and if this waits till after Christmas it's not the end of the world :) Happy holidays both :) |
comment:65
There were two of these, one still is there ;-)
I have something else to take care of first but hope to get to it before the end of today. |
comment:66
This would be a good place to refer to the gambit document or remind why there are all these
Maybe better now is "the various algorithms"? Finally, I think the parser is working fine but could use a little extra tlc if and when games with more than 2 players are implemented, as it is a very long series of things to parse for the reader (I mean the code like I don't see any other issues. Thanks for breaking all of these tickets apart! It really made it a lot easier to get figured out. |
comment:68
Replying to @kcrisman:
I've added a pointer to the gambit documentation. Let me know if you think I've said too much/little.
Yup: have put that in.
I agree, I'm hoping that future dev will further integrate all the gambit algorithms, as this happens the parser will be in turn expanded. The next thing I'll be working on is #17392 though :)
Thank you for all your help: I'm planning on finding time to try and review some tickets myself :) |
comment:69
A few more things, largely about the gambit docs document.
I think the syntax needs to put the underscore after the backtick.
Otherwise I think we are okay. |
Changed reviewer from Jeroen Demeyer to Jeroen Demeyer, Karl-Dieter Crisman |
comment:72
Sorry for the late reply to this: I've had a pretty nice internet fast :) Hope you all had a great holiday season and happy new year! Replying to @kcrisman:
Pretty sure I caught these now.
Yup: have fixed.
Looked for these and think there was just that one that I recognised. I did find various things in single back ticks but I think there done so correctly, I might well be confused by the syntax though: if you could point out one that is not right that should clarify what I'm misunderstanding and I'll go ahead and fix all the rest. (Apologies for not finding these, have built the docs and read through but think I'm just missing it). Thanks again :)
|
comment:73
A good idea! I also (nearly) did that.
This commit actually makes it worse; it changes one
I think you got 'em. |
comment:74
Just had to check the look of the docs again. In addition to getting the
has ExternalEnumPureSolver in single backticks, but this makes it look like a math variable instead of code. I recommend double backticks or nothing; similarly for
Not sure why I didn't mention those before, I did see them. |
comment:76
I think I caught everything although I made a slight mess with the rebase (Still learning... Will get it eventually) so apologies if the commits do not make the most sense. If it's confusing just let me know and I'll fix them. |
comment:77
You unfortunately reverted or something the fix for one of the lcp optional tests (should be gambit):
Sorry, I shouldn't have asked you for some wacky thing, just trying to save a commit... Otherwise all set! |
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:79
Replying to @kcrisman:
Not at all: I appreciate the opportunity to try and learn :) Haven't quite gotten it (this push is a single commit for example that seems to have grabbed more...) but I will!
Awesome! The next thing will be that list of games :) |
Changed branch from u/vinceknight/gambit_integration to |
Changed author from Vincent Knight, James Campbell to Vince Knight, James Campbell |
Changed commit from |
comment:82
Vince, I guess you are Vince from now on if we want to keep credit to the same individual :) |
Build on other tickets (#16954 and #16466) to allow for the use of Gambit as an option when calculating Nash Equilibria.
Depends on #16466
Component: game theory
Keywords: Normal Form Games
Author: Vince Knight, James Campbell
Branch:
07b0bab
Reviewer: Jeroen Demeyer, Karl-Dieter Crisman
Issue created by migration from https://trac.sagemath.org/ticket/16333
The text was updated successfully, but these errors were encountered: