Very interesting how Mamoswine is on every single team even with an A- viability ranking and being 30th in actual usage (33rd mid ladder, 31st high). Is there any way for you to determine the ideal sets, or is it just using every possible move?I attached the most recent update to my script. Here are the top few results it generated:
Team: ('Aegislash', 'Talonflame', 'Venusaur', 'Heatran', 'Conkeldurr', 'Mamoswine') ; Relative Prob: 1.0
Team: ('Talonflame', 'Venusaur', 'Heatran', 'Conkeldurr', 'Bisharp', 'Mamoswine') ; Relative Prob: 0.983756510516
Team: ('Aegislash', 'Talonflame', 'Venusaur', 'Heatran', 'Breloom', 'Mamoswine') ; Relative Prob: 0.966421036151
Team: ('Aegislash', 'Venusaur', 'Heatran', 'Conkeldurr', 'Latios', 'Mamoswine') ; Relative Prob: 0.956584751979
Team: ('Aegislash', 'Dragonite', 'Venusaur', 'Heatran', 'Conkeldurr', 'Mamoswine') ; Relative Prob: 0.955332494453
Team: ('Talonflame', 'Venusaur', 'Heatran', 'Breloom', 'Bisharp', 'Mamoswine') ; Relative Prob: 0.949232968402
Team: ('Talonflame', 'Venusaur', 'Heatran', 'Conkeldurr', 'Sylveon', 'Mamoswine') ; Relative Prob: 0.94527844914
Team: ('Talonflame', 'Excadrill', 'Venusaur', 'Heatran', 'Conkeldurr', 'Mamoswine') ; Relative Prob: 0.940396927782
Team: ('Aegislash', 'Venusaur', 'Heatran', 'Conkeldurr', 'Thundurus', 'Mamoswine') ; Relative Prob: 0.936177628366
Team: ('Aegislash', 'Talonflame', 'Heatran', 'Breloom', 'Conkeldurr', 'Mamoswine') ; Relative Prob: 0.935832019792
Team: ('Aegislash', 'Talonflame', 'Heatran', 'Breloom', 'Sylveon', 'Mamoswine') ; Relative Prob: 0.935421186685
Team: ('Greninja', 'Talonflame', 'Venusaur', 'Heatran', 'Conkeldurr', 'Mamoswine') ; Relative Prob: 0.933568583059
Team: ('Talonflame', 'Venusaur', 'Heatran', 'Conkeldurr', 'Thundurus', 'Mamoswine') ; Relative Prob: 0.926194616035
Team: ('Aegislash', 'Talonflame', 'Gliscor', 'Venusaur', 'Heatran', 'Mamoswine') ; Relative Prob: 0.925466288184
Team: ('Talonflame', 'Dragonite', 'Venusaur', 'Heatran', 'Conkeldurr', 'Mamoswine') ; Relative Prob: 0.921427082901
Team: ('Talonflame', 'Gliscor', 'Venusaur', 'Heatran', 'Conkeldurr', 'Mamoswine') ; Relative Prob: 0.920732565763
Team: ('Aegislash', 'Venusaur', 'Heatran', 'Breloom', 'Latios', 'Mamoswine') ; Relative Prob: 0.920452416057
Team: ('Aegislash', 'Talonflame', 'Heatran', 'Breloom', 'Gyarados', 'Mamoswine') ; Relative Prob: 0.919947410468
Team: ('Aegislash', 'Dragonite', 'Venusaur', 'Heatran', 'Breloom', 'Mamoswine') ; Relative Prob: 0.919696042633
Team: ('Talonflame', 'Venusaur', 'Heatran', 'Breloom', 'Conkeldurr', 'Mamoswine') ; Relative Prob: 0.916807857623
Team: ('Aegislash', 'Talonflame', 'Azumarill', 'Venusaur', 'Heatran', 'Mamoswine') ; Relative Prob: 0.916292115793
Team: ('Talonflame', 'Heatran', 'Breloom', 'Conkeldurr', 'Mawile', 'Mamoswine') ; Relative Prob: 0.915735603015
Team: ('Talonflame', 'Venusaur', 'Heatran', 'Breloom', 'Sylveon', 'Mamoswine') ; Relative Prob: 0.915730367723
Team: ('Venusaur', 'Heatran', 'Conkeldurr', 'Bisharp', 'Latios', 'Mamoswine') ; Relative Prob: 0.913421932261
Team: ('Talonflame', 'Azumarill', 'Venusaur', 'Heatran', 'Conkeldurr', 'Mamoswine') ; Relative Prob: 0.912294518987
Team: ('Talonflame', 'Venusaur', 'Heatran', 'Conkeldurr', 'Latios', 'Mamoswine') ; Relative Prob: 0.91217057109
Team: ('Aegislash', 'Talonflame', 'Azumarill', 'Heatran', 'Breloom', 'Mamoswine') ; Relative Prob: 0.909314541675
Team: ('Aegislash', 'Talonflame', 'Heatran', 'Breloom', 'Gardevoir', 'Mamoswine') ; Relative Prob: 0.909300729789
Talonflame (F) @ Sky Plate
Ability: Gale Wings
EVs: 252 HP / 252 Atk / 4 Spe
Adamant Nature
- Brave Bird
- Flare Blitz
- U-turn
- Roost
Venusaur (F) @ Venusaurite
Ability: Chlorophyll
EVs: 252 HP / 4 Def / 252 SpA
Modest Nature
- Giga Drain
- Hidden Power [Fire]
- Sludge Bomb
- Synthesis
Heatran (F) @ Leftovers
Ability: Flash Fire
EVs: 252 HP / 4 SpA / 252 SpD
Calm Nature
- Protect
- Toxic
- Lava Plume
- Roar
Aegislash (F) @ Leftovers
Ability: Stance Change
EVs: 252 HP / 4 Atk / 252 SpD
Careful Nature
- King's Shield
- Sacred Sword
- Shadow Sneak
- Toxic
Mamoswine (F) @ Choice Scarf
Ability: Thick Fat
EVs: 4 HP / 252 Atk / 252 Spe
Jolly Nature
- Icicle Spear
- Earthquake
- Ice Shard
- Superpower
Breloom (F) @ Focus Sash
Ability: Technician
Shiny: Yes
EVs: 4 HP / 252 Atk / 252 Spe
Jolly Nature
- Bullet Seed
- Mach Punch
- Rock Slide
- Spore
It is possible, but would be very difficult. Obviously Gamefreak has written some fairly simple AI around a computer playing. But actual competitive-level playing hasn't been done, as far as I know, and likely will not be.Really cool concept. To me, this creates a possibility of a computer playing Pokemon like a human. Out of curiosity, how impossible would that be?
I wish I knew how to code so I could do stuff like this.
I don't think that ideal movesets would be possible using the current set of data. Of course elrod could give a more definitive answer, but I think the script is using the check/counter data that antar posted to calculate the likelihood that your Pokemon would be checked/countered, or could check/counter the opponent. But that data doesn't discern between sets, so we can't guess the likelihood that, say, Knock Off Landorus-I would be countered vs the likelihood that Calm Mind Landorus-I would.Very interesting how Mamoswine is on every single team even with an A- viability ranking and being 30th in actual usage (33rd mid ladder, 31st high). Is there any way for you to determine the ideal sets, or is it just using every possible move?
It also looks like most of these teams are primarily offensive (A lot of TFlame, Mamo, Loom, Conk, Lati, Bisharp) with a couple bulky defensive mons (Tran, Venusaur, and Sylveon) and solid core typings. Is there any way for this program to take into account more information that would allow it to make less offensive teams with more utility mons? It looks like Sylveon is the closest it gets to using anything like Skarm, Blissey, Quag, or other primarily defensive and support mons.
Very cool idea.
EDIT: A couple replays from one of the teams I liked (Mamo, Loom, Tran, Venu, TFlame, Aegi). Lower ladder, nothing special, just showing that its reasonably strong and has good switch ins to a lot of things.
1 | 2 | 3 | 4
The team for anyone who cares. Absolutely no effort went into the EVs.
The main thing the in-game AI lacks is a knowledge of when to switch out. Currently, it only switches if it's about to be KOed by Perish Song, or if it can do exactly zero damage to your current Pokemon in any way at all. Other than that, it's pretty advanced. When I was fighting the battle maison, I was abusing Aegislash's King's Shield, and after a while the AI started predicting my constant KSing. It was pretty interesting to see.It is possible, but would be very difficult. Obviously Gamefreak has written some fairly simple AI around a computer playing. But actual competitive-level playing hasn't been done, as far as I know, and likely will not be.
I would imagine that if computers can beat professional chess players, it would be possible to program a computer that could compete with us. Of course, in chess everyone has the same "team" and since chess is far more popular, far more effort is put towards programming computer players.Really cool concept. To me, this creates a possibility of a computer playing Pokemon like a human. Out of curiosity, how impossible would that be?
I wish I knew how to code so I could do stuff like this.
Yeah, there's a concept called "perfect play" where (in general) the computer calculates the best possible move each turn. Figuring out how to calculate what the best move is is the tricky part. However, some games even humans can have perfect play in, the best example being Tic Tac Toe. Everyone (should) be able to tie with their opponent 100% of the time. Perfect play for Pokemon is probably not possible (for now, anyway) because of all the variables. Getting a computer to play decently is probably realistic if people with the appropriate skill level (both in programming and pokemon knowledge) worked on it.I would imagine that if computers can beat professional chess players, it would be possible to program a computer that could compete with us. Of course, in chess everyone has the same "team" and since chess is far more popular, far more effort is put towards programming computer players.
Right. A really good computer player would still have a tough time because sometimes team matchups are totally against you. Also, I don't know how a computer could handle situations where you are in against a set up sweeper and have to choose between switching out and risking a set up and staying in and probably sacking your mon. My guess would be the computer would choose to stay in, as it wouldn't be able to risk a sweep. There are probably a lot of scenarios like that which could be exploited by someone who knows how the computer operates. Still, I'm sure answers would eventually be found if a ton of resources were poured into it.Yeah, there's a concept called "perfect play" where (in general) the computer calculates the best possible move each turn. Figuring out how to calculate what the best move is is the tricky part. However, some games even humans can have perfect play in, the best example being Tic Tac Toe. Everyone (should) be able to tie with their opponent 100% of the time. Perfect play for Pokemon is probably not possible (for now, anyway) because of all the variables. Getting a computer to play decently is probably realistic if people with the appropriate skill level (both in programming and pokemon knowledge) worked on it.
SR might have been good, Im not sure why I didnt give it to anything on the team. On Mamoswine I felt like I needed the fighting coverage, but I think running Rocks on Heatran over Protect could have helped.Xerneas, no stealth rock on that team?
Is stealth rock no longer as important as it used to be (thanks to defog's buff)?
The script favors having at least one pokemon with a moveset typically have stealth rock at the moment.
I made two changes to how the script works:
1) It now considers the top 40 most used pokemon for your team.
2) It now uses the 1825+ pokemon usage percents, instead of the total.
I also modified it to allow us to query for teams containing sets of pokemon.
Give me a team, and I can let you know how the script thinks it compares with its favorites.
Give me a set of pokemon, and I can let you know what the script thinks the best teams containing that set would be.
30 best teams (according to the script):
Team: ('Aegislash', 'Heatran', 'Venusaur', 'Breloom', 'Mamoswine', 'Terrakion') ; Relative Prob: 1.0
Team: ('Aegislash', 'Heatran', 'Venusaur', 'Talonflame', 'Breloom', 'Mamoswine') ; Relative Prob: 0.987144625398
Team: ('Aegislash', 'Heatran', 'Landorus', 'Venusaur', 'Breloom', 'Mamoswine') ; Relative Prob: 0.985969251539
Team: ('Aegislash', 'Keldeo', 'Heatran', 'Venusaur', 'Talonflame', 'Mamoswine') ; Relative Prob: 0.981975826264
Team: ('Keldeo', 'Heatran', 'Bisharp', 'Venusaur', 'Talonflame', 'Mamoswine') ; Relative Prob: 0.981014994598
Team: ('Heatran', 'Bisharp', 'Venusaur', 'Talonflame', 'Breloom', 'Mamoswine') ; Relative Prob: 0.980367271528
Team: ('Aegislash', 'Heatran', 'Talonflame', 'Breloom', 'Mamoswine', 'Terrakion') ; Relative Prob: 0.963837137624
Team: ('Aegislash', 'Heatran', 'Venusaur', 'Gliscor', 'Mamoswine', 'Terrakion') ; Relative Prob: 0.960586458537
Team: ('Heatran', 'Bisharp', 'Venusaur', 'Breloom', 'Mamoswine', 'Terrakion') ; Relative Prob: 0.958575376095
Team: ('Aegislash', 'Keldeo', 'Heatran', 'Talonflame', 'Breloom', 'Mamoswine') ; Relative Prob: 0.958207607934
Team: ('Aegislash', 'Keldeo', 'Heatran', 'Venusaur', 'Mamoswine', 'Terrakion') ; Relative Prob: 0.956617143221
Team: ('Aegislash', 'Heatran', 'Landorus', 'Talonflame', 'Breloom', 'Mamoswine') ; Relative Prob: 0.95567742217
Team: ('Aegislash', 'Heatran', 'Landorus', 'Venusaur', 'Mamoswine', 'Terrakion') ; Relative Prob: 0.9545454645
Team: ('Heatran', 'Bisharp', 'Landorus', 'Venusaur', 'Breloom', 'Mamoswine') ; Relative Prob: 0.952856029934
Team: ('Heatran', 'Mawile', 'Landorus', 'Talonflame', 'Breloom', 'Mamoswine') ; Relative Prob: 0.952444046505
Team: ('Aegislash', 'Heatran', 'Talonflame', 'Ferrothorn', 'Breloom', 'Mamoswine') ; Relative Prob: 0.951826907204
Team: ('Aegislash', 'Heatran', 'Talonflame', 'Gyarados', 'Breloom', 'Mamoswine') ; Relative Prob: 0.949819389784
Team: ('Aegislash', 'Heatran', 'Chansey', 'Talonflame', 'Breloom', 'Mamoswine') ; Relative Prob: 0.949038748712
Team: ('Heatran', 'Mawile', 'Talonflame', 'Breloom', 'Mamoswine', 'Terrakion') ; Relative Prob: 0.948893435165
Team: ('Aegislash', 'Heatran', 'Latios', 'Venusaur', 'Breloom', 'Mamoswine') ; Relative Prob: 0.948548365107
Team: ('Aegislash', 'Heatran', 'Talonflame', 'Breloom', 'Mamoswine', 'Deoxys-Defense') ; Relative Prob: 0.946696516406
Team: ('Aegislash', 'Thundurus', 'Heatran', 'Venusaur', 'Breloom', 'Mamoswine') ; Relative Prob: 0.946618998023
Team: ('Keldeo', 'Heatran', 'Bisharp', 'Venusaur', 'Mamoswine', 'Terrakion') ; Relative Prob: 0.946570963003
Team: ('Aegislash', 'Keldeo', 'Heatran', 'Venusaur', 'Breloom', 'Mamoswine') ; Relative Prob: 0.945235824758
Team: ('Aegislash', 'Heatran', 'Azumarill', 'Venusaur', 'Mamoswine', 'Terrakion') ; Relative Prob: 0.945059841429
Team: ('Keldeo', 'Heatran', 'Mawile', 'Talonflame', 'Breloom', 'Mamoswine') ; Relative Prob: 0.944856357661
Team: ('Heatran', 'Bisharp', 'Talonflame', 'Breloom', 'Mamoswine', 'Terrakion') ; Relative Prob: 0.943191917651
Team: ('Aegislash', 'Heatran', 'Venusaur', 'Talonflame', 'Gliscor', 'Mamoswine') ; Relative Prob: 0.941876797924
Team: ('Aegislash', 'Heatran', 'Garchomp', 'Talonflame', 'Breloom', 'Mamoswine') ; Relative Prob: 0.940398976448
Team: ('Aegislash', 'Thundurus', 'Heatran', 'Landorus', 'Breloom', 'Mamoswine') ; Relative Prob: 0.940296460016
Give me lists of pokemon, and I can tell you how the script thinks teams with them compare (if those pokemon are among the 40 most used)!
You have to have it make all of the teams and find the ones without those pokemon, you cant just remove them as options for the team (or at least filter out the results including those pokemon)? I dont know the details of your system of course so maybe thats a stupid question, but it seems like you shouldnt necessarily need to sort through the teams manually.Hmm.
I'll have it simply save the entire output onto a spreadsheet that I can upload. Given that it'll be a list I'll I'll share with everyone, I decided to increase the team-candidates to the top 50 pokemon.
For opponents, it is looking at the 70 most used pokemon.
EDIT:
Given that a spreadsheet listing 15,890,700 teams is probably unwieldy, I'll truncate it to only listing the 5,000 teams it considers strongest.
It may be done by tomorrow afternoon (unfortunately, the last time I tried this many, it crashed eight hours in due to running out of memory).
Hopefully some of those 5,000 won't include the Venausaur/Heatran/Mamoswine core!
Is there another strong core that I could query, to see if it'll come up with results that don't include it?
you mean something like this: http://www.smogon.com/forums/threads/technical-machine-a-pokemon-bot.3455783/ ?Really cool concept. To me, this creates a possibility of a computer playing Pokemon like a human. Out of curiosity, how impossible would that be?
I wish I knew how to code so I could do stuff like this.