-
.
Bene ragazzi, benvenuti alla prima parte di quella che gf chiama 'guida per i comuni mortali'! In questa sintesi verranno illustrati i procedimenti che portano allo sviluppo della teoria, le motivazioni dietro di essa ed i risultati raggiunti in ogni ambito e nel modo meno formale e 'matematico' possibile. Questa in particolare parlerà del countering e dell'evoluzione del metagame.
IL COUNTERING
Lo scopo principale dietro tutta la teoria di nb era quello di comprendere e definire in modo accurato concetti importanti quali quelli di countering, metagame, descrivere in modo adeguato l'evoluzione di quest'ultimo, strategie e quant'altro; i fini principali oltre alla comprensione sono l'eliminazione di ambiguità e l'applicazione ad eventuali software di ottimizzazione per building e battling.
La prima domanda che ci si pone è dunque: cos'è il countering?
Beh, il countering è un fenomeno a cui tutti noi siamo abituati, è la naturale tendenza di un pkmn ad entrare in campo e porre un'immediata minaccia contro l'avversario. Qui ho parlato di tendenza, questo perchè sappiamo bene che, per DDTar, Quagsire non è un ottimo counter; Swampert lo è.
L'idea è quindi quella di trovare un modo di misurare quanto bene un pkmn ne countera un altro. La via più naturale a cui abbiamo pensato è dunque questa:
Quanto X countera Y = (Num. di turni di vita di X contro Y) / (Num. di turni di vita di Y contro X)
dove, ad esempio, il numero di turni di vita di X contro Y si misurano supponendo che Y sia immortale. Cosa voglio dire con questo? Si supponga la situazione Starmie 100% hp vs Salamence danzato una volta. Salamence non sopravvive ad un attacco di Starmie, ma può attaccarla una volta per primo. Starmie, d'altro canto, se Salamence fosse immortale sopravviverebbe solo a due attacchi. Considerando Suicune al posto di Starmie, notiamo che questa sopravvivenza aumenta a 3-4 colpi. Dunque Suicune countera Salamence meglio di Starmie, nonostante entrambi i pkmn possano ohkoare DDMence con Ice Beam.
Ottimo allora, questa è una definizione molto naturale, ma come possiamo misurare queste 'sopravvivenze' in modo preciso e, soprattutto, farle misurare ad un calcolatore? La risposta, purtroppo, non è immediata e richiede la costruzione di una struttura matematica di sostegno.
Questo perchè bisogna rendere un calcolatore in grado di simulare un'intera partita. Bisogna dunque rendere più chiari possibile i concetti di Pokémon, mossa, status e quant'altro. Definiamo allora un pkmn generico con
x = ( |s,T,ι,σ> , Mα, A )
e chiamo P l'insieme dei pkmn. Ma cosa vogliono dire quei simboli? Senza scendere troppo nei dettagli, la prima parte, racchiusa tra i delimitatori | e >, contiene vari parametri sul pkmn:
- s è il vettore statistiche: un elenco di 6 numeri contenente le statistiche finali.
- T è il vettore typing: 2 numeri che dicono il doppiotipo. Qui c'è una sottigliezza: l'informazione sul tipo viene data da un numero naturale, tra 0 e 17, che viene associato ad un tipo (0 è nessun tipo). Quest'associazione si fa banalmente guardando la tabella debolezze/resistenze.
- ι , σ sono rispettivamente l'item e gli status. Non sono oggetti matematici complicati o chissà cosa, sono solo due 'etichette' che dicono, appunto, l'oggetto tenuto e lo status del pkmn.
La parte successiva è composta da una serie di mosse Mα, e dal trait A. α va chiaramente da 1 a 4 e dice qual è la mossa che stiamo considerando. Le mosse ed il trait sono da considerare insieme per via della loro natura matematica affine: si tratta di oggetti chiamati operatori.
Cos'è un operatore? E' un qualcosa che, come dal nome, 'opera' su un elemento di un certo insieme (più precisamente, in questo caso, di uno spazio vettoriale) per sputarne fuori un altro.
Prendiamo come esempio i numeri reali: consideriamo un numero reale a. Definiamo un operatore O tramite l'azione su un a generico con una determinata regola. Esempio: 'prendi a e raddoppialo'. Questa regola di azione si scrive stringatamente con
Oa = 2a
ma l'azione può essere anche del tipo 'prendi a e aggiungici 4':
Oa = a + 4
ho cercato di rendere chiaro il concetto di operatore usando esempi semplici, perchè è molto importante, generale e potente. Infatti l'esito di una mossa effettuata causa una modifica alle statistiche (caso banale: danno diretto, oppure riduzione dell'attacco, ecc.), sul typing (conversion 1/2), sull'item (thief, knock off ecc.), e sullo status (toxic ecc.). Inoltre ogni mossa agisce contemporaneamente su entrambi i contendenti; che lasci i parametri di uno invariati è solo un caso particolare. Si pensi a double-edge che danneggia entrambi, ad esempio.
Allo stesso modo si può notare come i trait agiscano in modo analogo, ma sono soggetti a determinate condizioni di attivazione. Intimidate, ad esempio, agisce solo nello switch-in del suo possessore. Queste condizioni si possono introdurre con delle 'funzioni di attivazione', ma credo non sia il caso di scendere oltre nei dettagli in questo ambito.
Costruita la struttura 1 vs 1, c'è da chiedersi come si può impostare un criterio di scelta per le mosse da effettuare. La risposta è che la formulazione di un criterio efficace è veramente difficile per il semplice fatto che involve la prediction; tuttavia nel caso 1 vs 1 è sufficiente utilizzare la mossa più efficace, unita a mosse di recovery qualora ne fosse necessario l'uso e ne si abbia nel moveset. L'algoritmo si può rappresentare graficamente con un diagramma di flusso classico, del tipo:
Sei più veloce dell'avversario?
Sì No
| |
v v
... ...
eccetera.
A questo punto, parliamo del seguire alla lettera l'algoritmo come muovere a layer zero. Molti di voi avranno sicuramente sentito usare i termini di 'yomi layer'; ebbene questi non sono altro che diversi criteri di mosse. Il layer 1 sarà infatti definito dalla miglior risposta al layer zero, e così via. Per capire cosa sia questa 'miglior risposta', bisogna leggere a riguardo nel capitolo sulle strategie, quindi stay tuned!
A questo punto siamo pronti a definire la sopravvivenza di x contro y. La indichiamo con u(x,y) e la calcoliamo come il minimo numero di turni che x sopravvive contro y, supponendo y immortale:
u(x,y) = min{t | ht(x)=0}
dove ht(x) sono gli hp di x al turno t; per il loro calcolo ci si riferisca alla sezione dell'articolo che concerne l'algoritmo, bisogna semplicemente applicare ad x la serie di operatori mossa definiti dal criterio
di layer zero, e prenderne la statistica hp risultante.
Questa 'serie di operatori mossa' è molto importante e ne riparleremo in seguito quando tratteremo di strategie.
Dunque definiamo il coefficiente di countering di x verso y, e lo indichiamo con x%y:
x%y = u(x,y)/u(y,x)
si evince dalla definizione che x%y = 1/x%y, ovvero che se ad esempio x countera molto bene y, segue che y countera molto male x, propriocome vorremmo che fosse. La ragione per cui abbiamo usato il rapporto di sopravvivenze e non la differenza dipende da varie proprietà che il rapporto possiede riguardo all'insieme P, di cui non è il caso di parlare qui ma che potete come sempre trovare nell'articolo.
Altra cosa che si potrebbe aggiungere su richiesta è la generalizzazione della teoria 1 vs 1 ad un arbitrario n vs m con l'introduzione dello switch.
EVOLUZIONE DEL METAGAME
L'iniziale osservazione che gf fece sul metagame in un topic relativamente vecchio fu illuminante per la continuazione della teoria. Infatti scrisse del metagame in analogia ad un sistema di pianeti che si attraggono con una certa massa che dipende dalla loro usage. In verità il metagame si comporta più come un sistema di cariche, perchè è ammessa anche la repulsione; tuttavia entrambi i quadri sono molto utili per la comprensione. Purtroppo per questa guida l'evoluzione del metagame è stata qui basata su una branca di teoria fisiche chiamata QFT (quantum field theory), che nonostante l'eleganza, la bellezza e l'estrema potenza risulta piuttosto ostica da spiegare verbalmente. Cercherò di spiegare in modo semplice. L'idea è quella di considerare la probabilità di usage; cosa intendo con questo e come si fa?
Pensiamo all'insieme P definito prima. L'idea di base è quella di utilizzare una quantità che ad ogni punto associ una probabilità di venire usato. Questo si può scrivere tramite una funzione
ψ(x) = probabilità che x venga usato
che ad ogni punto di P (ovvero un pkmn) associa un numero che rappresenta la probabilità che tale pkmn venga usato. Questo è l'oggetto principale della teoria, e si vede che i suoi valori cambiano con il tempo; questo cambiamento è causato dalla naturale evoluzione del metagame: counter per pkmn utilizzati vengono a loro volta utilizzati, i pkmn inizialmente usati vengono usati di meno, ed il ciclo continua. Il primo scopo da raggiungere nella teoria è dunque descrivere l'evoluzione dei valori di ψ tramite un'equazione. La tecnica più efficace per fare questo consiste nell'utilizzare un principio fisico, ma senza scendere nei dettagli scrivo qui che si tratta di un insieme di regole che permette di ricavare l'equazione sapendo l' 'energia potenziale' del sistema. Quest'energia potenziale è appunto quella che causa l'attrazione/repulsione tra i pkmn, allo stesso modo in cui l'energia potenziale elastica è la causa per cui le molle continuano ad oscillare, o l'energia potenziale gravitazionale è quella che consente ai pianeti di orbitare nel cosmo. Come trovare dunque tale energia potenziale nel nostro caso?
Bisogna pensare a come ogni pkmn sia attirato o allontanato da ogni altro pkmn contemporaneamente.
x è attirato verso un altro pkmn a in modo proporzionale, evidentemente, al coefficiente x%a, ma in modo anche proporzionale alle usage di a: non ha senso che x debba venire usato per counterare a quando quest'ultimo non è usato. Allo stesso modo un pianeta è attirato molto più violentemente da un pianeta molto massoso rispetto ad uno con poca massa. Se abbiamo un metagame formato da x, ed n pokémon a1,...,an, possiamo calcolare l'energia potenziale a cui è soggetto x come proporzionale a
V = Σk x%ak ψ(ak)
non lasciate che la notazione vi spaventi; significa soltanto che presi i singoli contributi di ogni a del metagame all'energia di x, si sommano tutti per ottenere la nuova energia. L'insieme P e ψ sono in realtà definiti in modo leggermente diverso e l'espressione di V ha una forma più generale, ma il concetto è lo stesso; per questo vi rimando nuovamente alla lettura dell'articolo.
Notiamo che, sempre utilizzando l'analogia ai pianeti, pkmn molto forti possono causare una forte centralizzazione del metagame che, nonostante non sia una cosa negativa di per se, necessita di grande lavoro per essere controbilanciata: in presenza di un pkmn molto forte il metagame viene visibilmente modificato. A questo proposito sono dunque nati i ban, i divieti all'utilizzo di determinati pkmn (che in questa teoria significa anche determinati moveset) che causano un'eccessiva centralizzazione.
Da questo punto, una procedura ben precisa consente di arrivare immediatamente all'equazione che descrive l'evoluzione del metagame, che presenta caratteristiche interessanti per quanto concerne sviluppi successivi.
Infatti questa teoria non basta a descrivere l'andamento di qualcosa di talmente incerto e soggetto a variazioni improvvise: è qui che la Q di QFT entra in gioco. Ma questo lo vedremo (o forse no!) nella prossima puntata!. -
.
è tutto molto chiaro e ben fatto gj
anche se queste notazioni matematiche non riesco neanche a guardarle. -
.
spiegazione fatta benissimo . -
Sgt Pepper.
User deleted
ho capito
complimenti btw, aspetto le prossime parti ^^. -
adirato.
User deleted
Chiarissimo, complimenti! . -
Phetto.
User deleted
get a life. . -
-neuro-.
User deleted
mentre leggevo la parte riguardante il countering mi sono venute in mente 2 parole
critical hit. -
Prof. Elm.
User deleted
bravissimo sey . -
.
veramente ben fatto....peccato che odio la matematica . -
EnzoMaster1996.
User deleted
oddeo,btw bel lavoro . -
.
m-ma.. qui c'è poca matematica quanto niente
ps: neuro, hai ragionissima sui ch ed in generale sull'hacks, c'è una sezione a parte per quella roba lì. -
Dino..
User deleted
è interessante il numero di thumbdown che phetto puntualmente riesce a raccogliere con solo tre parole . -
.
è interessante come tu riesca a spammare anche qui . -
Dino..
User deleted
:\ non sto spammando . -
.
belli i commenti costruttivi .