@MathWizard's banner p

MathWizard

formerly hh26

0 followers   follows 0 users  
joined 2022 September 04 21:33:01 UTC

				

User ID: 164

MathWizard

formerly hh26

0 followers   follows 0 users   joined 2022 September 04 21:33:01 UTC

					

No bio...


					

User ID: 164

Seems like this depends entirely on what aesthetic the game is aiming for. Would The Matrix have been a better film if it were in the style of a Miyazaki film? Or as an animated version of a Leonardo da Vinci painting? From a certain perspective you might consider the Mona Lisa to be "better art" than The Matrix, but being real people with some minor CGI added worked for what it was going for and made a fantastic film.

We're not there yet, but if we can reach the point where hyper-realistic faces in games can actually be mistaken for real actors, there's a huge range of applications where it would actually be useful and better than a stylized game character because it fits the aesthetic the game intends, even if such situations are the minority.

Small-scale shower thought, since I don't want to wait until Sunday

You do realize that you're allowed to post in the existing thread, right? It still exists, it doesn't expire on Monday, it expires next Sunday when the next thread comes out.

I've been doing it like that, where they're all together and reference each other, it's just that then when Agent has 15 methods because some of them are experimental variations on each other or niche things I wanted to do to see what would happen, then I make another class for graphing scatter plots, and I've got a bunch of methods for (Make a world, then modifier the parameters according to X, then execute Y, then graph the results, then repeat that N times) that would be nice to stick in their own class somewhere, and then I've got a bunch of useful static methods that do stuff like load and save data to CSVs that would be nice to have in their own class for organization purposes. And if I just lay them out linearly (which I mostly have, with a few rare exceptions that definitely have 0 recursive dependencies and I actually have moved them to their own .py file) then I have literally 2000 lines of code I have to scroll up and down just to find the right class whenever I want to check to see what the name of the method I want to call is or something, and then scroll back down to find the spot I'm working on.

Do you know if there's a way to.... I'm not even sure what the right language is here.... put different classes in different .py files, or at least different tabs, without running into recursive dependency issues.

Like, in Java, I can make a World class that contains a population from the Agent class, and models an epidemic going through them, and the Agents have a bunch of methods internally regarding how they function as they get infected and recover and stuff. And if I pass a copy of the main World to each Agent when it's created, then when they do stuff in their methods they can call back up to the World, usually for counting purposes, they say "hey I got infected, increment the total infection counter" or "hey someone was going to infect me but I'm already infected, increment the redundant infection counter".

As far as I can tell, in Python I can't do that nicely. If the World class imports Agent, then the Agent class can't import World. I can resolve this by defining both classes in the same .py file, but then all my code is arranged 1-dimensionally and I have to scroll through tons of stuff to find what I'm looking for (or use ctlr F). Whereas in Java each class has its own tab, I can open or close or switch to, so well-behaved ones that I'm not working on don't take up space or get in my way. I'm not sure if this is a Python issue or just a Eclipse issue. Is there a way to split a .py file into multiple tabs so I can organize better?

Partly a response, partly hijacking this to ask a question of my own to everyone else: what are you using as a editor/compiler?

I programmed exclusively in Java for years, but my new boss wanted programs in Python so I've been doing that this past year. Using Eclipse, which is wonderful as an editor, since it lets me organize everything and highlights typos that I make and stuff.

Aside a whole lot of friction involving different conventions and abilities, I was annoyed that all of the Python editors people recommended seemed way less functional until I discovered that I can program Python in Eclipse if I do the right stuff. So I've been doing that.

I'm not sure what the general consensus is, because I'm mostly self-taught and program on my own, making mathematical models for research purposes that nobody else has to use or collaborate with, so I've probably got all sorts of weird habits that would make more sophisticated programmers cringe. So I can't tell how much of this is objective and how much is just me being used to Eclipse for so many years and having little experience with anything else. But I tentatively recommend looking into PyDev for Eclipse, because in my opinion it's nice.

In the original construction, you win if you choose the absolute best partner, you lose if you do not, so the 75th percentile is a guaranteed loss, no different from the bottom 1 percentile. You only want to maximize the probability of getting the actual best, so it has to be better than anything you've seen so far or there's no chance and no point settling.

However, you are right that in this modified version trying to maximize utility this no longer applies, and a proper optimal strategy should probably be a function f(n,d) describing what percentile you're willing to settle on as a function of what time step it is (n) and what your estimate of the distribution is (d), depending on what you've seen so far and your meta knowledge.

It seems to me like the best way to model this would be to have some multiplicative scaling factor on utility that diminishes over time, since 50 years of your life with the second best suitor is (probably) going to be better than spending 20 years of your life with the best suitor. Perhaps a linear decay to simulate amount of lifespan remaining, so the utility of choosing the nth suitor is their actual quality multiplied by (1-0.01n). Or maybe weight it more towards the beginning to account for youth and childbearing years, like (0.99)^n or something.