If you had the best players in the world, and they knew everything about Hearts and had decades of experience playing it, then if they were to each play the same identical game, would they all play the game exactly the same? That in my eyes would prove that in Hearts, given a situation and taking into account everything, there is always an optimal way of proceeding, and that would prove that there is a finite limit on how good you can get at Hearts. Is this in fact the case?
I just want to say, as a mathematician who has studied Game Theory for several years, that you DO NOT need perfect information to have an optimal strategy. In fact, Game Theory has a very rich body of results about games of imperfect information.
It is a common misconception. Here's another one: an optimal strategy means you win every time. This is also not true. An optimal strategy is one that maximizes your expected payoff.
Now that that's out of the way, I want to commend the questioner on a great question. I was actually just googling this question myself, trying to see if any journal articles have been written about it (I was thinking about doing a game-theoretic analysis of Hearts for a thesis paper). I haven't found anything yet.
Like most nontrivial games, Hearts has a HUMONGOUS game tree. There are 52!/(13!^4) hands that could be dealt (each of the 4 players gets 13 cards). That's just how many nodes there are at the second level of the game tree. Each of those nodes has a huge number of branches (the number of branches at each of those nodes is the number of ways four players can choose three cards from 13). Then each of those have yet more branhces, and so on. Even a rough calculation shows that there are far more nodes in the game tree than there are atoms in the known universe.
So using Zermelo's algorithm to "solve" hearts (though theoretically possible) is - in practice - not possible. So much more sophisticated techniques must be used.
If you want to write a computer program to play near-optimal Hearts, I would suggest using random samples and Markov-type simulations to estimate optimal moves.
In short, yes, optimal play does exist. But it could be very hard to find without some pretty slick game-theoretical analysis and/or a lot of computational power.
I hope this helps. :)
No, because in hearts there is private knowledge
The answer to this question is a categorical no. Having a perfect memory of cards that have been played and in what order is insufficient to guarantee optimal play, and we can say this without even having to define optimal play.
On the first turn of the game, you have limited knowledge of how the cards have been distributed. You know about the cards in your hand and those you've passed (if applicable), and you can potentially infer something from the cards you've received. But that's only 16 cards out of 52 and you don't know how the remaining cards are distributed. This private knowledge means there is no deterministically optimal play; you don't have enough information to know what move is always best. Even given a stochastic play model (where you're looking for the play most likely to give you the best results) it is possible for two different distributions of the hidden cards to suggest different plays, which means the hypothesized algorithm must make a random selection.
I'll prove the point with an obvious example: the first play of the first round. Since the scores are tied at zero, a good definition of optimal play is to get the lowest score in the round.
If you had only three clubs in your hand, the Ace, a fairly high card and a low rank card, a typical play in the first round is to play the Ace and take the trick and then to lead the higher card to burn it before playing the low ranking card or switching suits. Given a fairly nominal distribution of clubs, the odds of someone being out of clubs on the second round (so they can sluff a heart or the Queen) AND someone else not playing a higher club are not insignificant but low and usually worth the risk. If you had perfect knowledge however the right play would be obvious, but without perfect knowledge the right play depends on knowledge you don't have.
So no, the fact that there is private knowledge in hearts means that even with a perfect memory you cannot always guarantee optimal play.
To the question whether Hearts is such a simple game, that it is possible after a while to completely master it (meaning that several players can reach this level where it is not possible to improve, and between them only luck will decide who wins), the answer is definitely no.
Some of the answers here are a bit inaccurate though. People argue that because you don't know the cards of the other players, it's impossible to always pick the best strategy for yourself and therefore it is impossible to master the game. This is missing the question as I read it. Obviously no one will ever master the game at a level where every play they make is the same as someone knowing all the cards would make, it doesn't even make any sense to discuss.
The question must be whether there is an optimal strategy for every situation, meaning that with the information a player has a in a certain situation, there is one option that gives him the best chances of achieving his goal in the game. The key here being "the information a player has". Playing human opponents, it's possible to pick up on little tells and signs about their cards or from their actions that forms part of the information you would use to determine the best option. If I've played for hours and hours against a certain player, I would know his style and tells better than someone who's never played him, and I would then have more information and better chances of making the right decision. Your friend who has "mastered the game" wouldn't play as well against the player I know as I would (unless he is better at something else in the game than me or he is lucky), and would therefore find it hard to beat my score. People who play poker will know this very well. If you only look at the maths and don't try to figure out what your opponents are doing, you are going to lose a lot, and reading your opponents is something that can never really be mastered, meaning it will always be possible to improve. And that's not even considering the game-improving potential of trying to manipulate your opponents into doing what you want them to, which is also something that I don't think anyone will ever master, as in having nowhere to go to improve. Curiously in theory it's possible to both read your opponents and manipulate them successfully in every single situation, but then again in theory it's also possible to randomly choose your actions and by luck having them turn in to be right every single time.
If you remove the part about reading your opponents and only look at your own game, it's possible in my opinion to always find a "best choice", and thus possible to master the game. Your friend has probably played the computer, and playing the computer there definitely is a "best way" to go if you've memorized all the cards etc. The thing being overlooked, though, is that you're actually reading the signs the computer players give, without noticing it. You develop a kind of intuition sensing danger develop etc. It gives you a great edge being able to read the computer players, especially since they're not able to read you or manipulate you. It's therefore easy to get the feeling that you've mastered the game and found the optimal strategy in every situation. The truth is you're probably just close to consistently finding the best options against one specific opponent (computer*3), and that opponent is severely handicapped by being completely predictable itself, and unable to read your play or adjust its own. Not really a big feat.
I think a better way of thinking about this question is "Is it possible to create a Hearts playing program that would get the best possible result 100% of the time"?
I think Hearts is similar to a simplified version of Bridge. There are LOTS of studies of Bridge hands, and in most situations there is a clear optimal play. But there are also times for intuition, reading your opponents, etc. So I don't think you could ever just generate an algorithm that would make the "optimal" play in every situation and have it do as well or better than a human would 100% of the time.
It is also worth pointing out that Hearts is a game in which the individual play that earns you the best result might not be the best for your overall results, and part of optimal play is convincing your opponents to play in ways that are optimal to you. Examples would be encouraging people to "save" hearts to throw at the leader, or to take the Queen of Spades themselves to prevent a potential Shoot the Moon by another player. The inventor of Diplomacy has even said that playing lots of Hearts influenced his design of a game that is all about stopping the leader. This also makes me confident that there is no such thing as an algorithm for optimal play.
Part of the thing about Hearts is that you pass cards between the players before the round starts. This means that you can try to improve your hand and hope your opponents don't mess that up.
However, at least in 4-player games, 1 of every 4 hands has no pass first.
Having said all that, the best hand involves taking every heart and the Queen of Spades, which usually depends a bit on luck based on what the other players play... but often you do need to keep track of which hearts were played when.