Need help?
<- Back

Comments (47)

  • huevosabio
    Love this!My general problem with Pokémon (at least the older versions, haven't played the latest) is that when playing against others it frequently just boils down to the same set of legendary and overpowered mons.You sort of addressed this running the milp without certain mons as options, which makes sense.But you already have the machinery for a better constraint: max total base stat. You could think of it as "weight classes" in box.So, for a given weight class, your team can only add up to Y in total base stat. You can squeeze one of the OP mons, but then the rest are slackers. Or you could balance them.It makes it a lot more interesting and invites for diversity. And you could run it for many different values of Y.
  • reddalo
    An interesting thing of this article is that the SVG image of the type matchup [1] has embedded automatic translation.The type labels will be displayed in the language your browser is set to. I didn't even know this was possible.[1] https://upload.wikimedia.org/wikipedia/commons/9/97/Pokemon_...
  • HelloUsername
    Right on time for 30th anniversary! https://xcancel.com/Pokemon_cojp/status/2006379822012911872Translated text:The 30th anniversary of Pokémon begins! It's been 30 years since the release of "Pokémon Red and Green." Pokémon will celebrate its 30th anniversary on Friday, February 27, 2026. This year is going to be the best year yet! Stay tuned! #Pokémon30thAnniversary
  • oceansky
    Base stat total alone is a bad metric, because stat distribution is equally as important.If the stats are distributed heavily both on attack and special attack, it's usually bad because you generally want specialist attackers and these stats could be better somewhere else like speed.
  • yunusabd
    If you find the base game too easy, I can recommend the IronMON challenge: You can only use one mon, permadeath, stats are randomized, all trainer levels are buffed by 1.5x and you can't level up on wilds. Along with numerous other rules to make it harder. There are variants that are borderline impossible to beat, like Super Kaizo IronMON. Out of hundreds of thousands of attempts, it has only been beaten once. Would make for an interesting optimization problem.https://github.com/PyroMikeGit/SuperKaizoIronMON
  • mgaunard
    Would have been nice to see with only first gen pokemon which were much better balanced IMHO.
  • TobiasJBeers
    This thread is a great example of how quickly “optimize X” turns into “define X” when modeling intuition meets player intuition.
  • faitswulff
    > I was always hunting for Pokémon with better abilities, better type coverage, analyzing synergy between moves… If you’ve ever played a mainline Pokémon game before, you must know how utterly unnecessary this is. Twenty years ago, I would have just powered through on Blastoise or Typhlosion alone.I definitely beat the first Pokemon games with a level 100 Charizard. I even defeated gyms that were strong against fire types, often KO'ing Pokemon in one hit. The text would say "It's not very effective..." and then the opponent's health bar would drop to zero. So yeah, these games are easy enough that a 10yo can get by with twinking out a single pokemon. Makes the blog post even funnier
  • s_trumpet
    Great article but I’d say you’re optimizing for the wrong metric here. For in game playthroughs, offense > defense and especially speedy offense beats anything else.I’d state it as, Given any type, we should be able to hit it for super-effective damage with at least 1 move. And instead of taking raw BST, I’d take Max(SPD+ATK, SPD+SPA) to favour speedy offense.Of course this does not take into question the thorny question of availability. Metagross is a top tier but only available post game in its debut. On the other hand Crobat and Gyarados are readily available in many of the games early on and evolve fairly quickly.Please look into the competitive Nuzlocke community, there are a lot of damage calculations and viability spreadsheets all around, you’ll find it interesting.
  • thiago_fm
    Meanwhile I like the optimization analysis, the initial assumptions are very wrong. I know the author mentioned that they are optimizing for stats + being resistant to other Pokémon types, but that analysis will lead to very bad results.There are Pokémon with certain abilities or tricks that makes it much better than legendary ones, with certain move sequences that could wipe the entire other team.There are also Pokémon with certain types that are actually good against what the 'data' would say otherwise.Maybe the analysis could be better done if you instead analyzed matches data.BTW, the way people pay Pokémon since many years is to also divide the Pokémon into tiers and in a competitive setting, you are only allowed to pick Pokémon from the same tier or lower. This adds another level of complexity.
  • tweakimp
    Why is y+2x optimal at (0,3) with a value of 3? Isnt it (3,0) with a value of 6?
  • mparnisari
    My uni course on optimization was so much fun but I forgot all of it. This was a nice reminder that I should probably revisit the basics :)
  • saagarjha
    I'm curious how it would rank existing teams–for example, are there trainers who pick better teams (of course, I am sure the bug catchers get soundly trounced). Surely Cynthia or Red have a strong team?
  • abhishekbasu
    this was a great read to start the new year! having worked extensively with mixed integer programs, it is always a bit disheartening to see them not used enough for everyday decision-making. one of my goals this year is to create a layer to make it easier to formulate mips and test them, via plain text input. this would hopefully increase adoption through a lower barrier to entry.
  • the-smug-one
    The SVG chart has internationalization built-in, with multiple languages available. I thought that was cool.
  • stevekemp
    Lots of people working in IT have tattoos, I like to see what theme/image overlap they have.Three people in my current workplace have a balloon tattoo (interestingly all of them are red balloons). Five people in my current workplace have a Pokémon tattoo that is easily visible.Edit: Including myself, on both counts, I should have said.
  • arealaccount
    Slaking can only attack every other turn making it a bad choice outside of niche teams.
  • HelloUsername
    I would've liked to see in conclusion a recommended starter team per generation! Very nice article!
  • TZubiri
    For games that are as complex as pokemon, it's usually necessary to restrict analysis to some subset. In this case team typing was used.I personally like restricting to generation 1, as it is very cannonical, very static, and one of the simplest.Furthermore I like the 1v1 format, which instead of a team, it's just 1 pokemon vs the other. Otherwise you have to resort to heuristics.But even with a 1v1 and generation 1 restriction it still isn't solved!Even a single matchup it's very complex to arrive to a theoretical mathematical problem, and still quite burdensome to write a montecarlo simulation.For example:Tauros vs gengar (Not an uncommon matchup in competitive gen 1)Hypnosis has a 60% accuracy, tauros can sleep for 1 to 6 turns with equal probability. Tauros can 2HKO with Earthquake, but can also crit. Gengar can 4HKO, with each crit counting as a double hit (both crits having roughly 20% chance).The question of who has the advantage is to my knowledge unsolved (also consider that in 1v1 the answer is different, as in teams you only have 1 sleep, so Gengar wastes it). It's also different from the problem of choosing the actual correct move, not only do you need to find the best first move, but in the game decision tree, you need a decision for each node. For example, if Tauros has 60% HP and Gengar has 100%HP, is it still better to go for hypnosis, or better to go for damage and hope for 1 out of 2 crits. This is all made more complex by the fact that both mons have a speed tie, so it's yet another probability event of who will attack first.https://www.smogon.com/forums/threads/gengar-vs-tauros-1v1-w...For a simple gen 1 with hidden teams, I think there's a bigger game tree than chess, and even Poker. The fact that it's non-stochastic with hidden information makes it very similar to poker analysis wise, I bet Counter Factual Regret Minimization approaches would work as well.
  • yjftsjthsd-h
    Small typo(?):> Mewtwo (#151)Should be 150
  • unpopularopp
    Now all we need is a quick vibe coded web GUI front end