Sintesi della teoria di nb - parte I

countering ed evoluzione metagame

« Older   Newer »
 
  Share  
.
  1.     +9   Top   Dislike
     
    .
    Avatar

    Heisenberg mi fa un baffo.

    Group
    Member
    Posts
    2,437
    e-penis
    +594

    Status
    Offline
    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!
     
    Top
    .
  2.     Top   Dislike
     
    .
    Avatar

    Affezionato

    Group
    Member
    Posts
    1,495
    e-penis
    +627

    Status
    Offline
    è tutto molto chiaro e ben fatto gj :)

    anche se queste notazioni matematiche non riesco neanche a guardarle
     
    Top
    .
  3.     Top   Dislike
     
    .
    Avatar

    Gotta Knock A Little Harder

    Group
    Supporter
    Posts
    21,303
    e-penis
    +9,897
    Location
    glade of dreams

    Status
    Anonymous
    spiegazione fatta benissimo
     
    Top
    .
  4. Sgt Pepper
        Top   Dislike
     
    .

    User deleted


    ho capito :)

    complimenti btw, aspetto le prossime parti ^^
     
    Top
    .
  5. adirato
        Top   Dislike
     
    .

    User deleted


    Chiarissimo, complimenti!
     
    Top
    .
  6. Phetto
        -14   Top   Dislike
     
    .

    User deleted


    get a life.
     
    Top
    .
  7. -neuro-
        -1   Top   Dislike
     
    .

    User deleted


    mentre leggevo la parte riguardante il countering mi sono venute in mente 2 parole
    critical hit
     
    Top
    .
  8. Prof. Elm
        Top   Dislike
     
    .

    User deleted


    bravissimo sey
     
    Top
    .
  9.     Top   Dislike
     
    .
    Avatar

    esticazzi

    Group
    NBF User
    Posts
    3,547
    e-penis
    +1,338
    Location
    Novara

    Status
    Offline
    veramente ben fatto....peccato che odio la matematica
     
    Top
    .
  10. EnzoMaster1996
        Top   Dislike
     
    .

    User deleted


    oddeo,btw bel lavoro
     
    Top
    .
  11.     Top   Dislike
     
    .
    Avatar

    Heisenberg mi fa un baffo.

    Group
    Member
    Posts
    2,437
    e-penis
    +594

    Status
    Offline
    m-ma.. qui c'è poca matematica quanto niente :palm:

    ps: neuro, hai ragionissima sui ch ed in generale sull'hacks, c'è una sezione a parte per quella roba lì ^_^
     
    Top
    .
  12. Dino.
        +2   Top   Dislike
     
    .

    User deleted


    è interessante il numero di thumbdown che phetto puntualmente riesce a raccogliere con solo tre parole
     
    Top
    .
  13.     +3   Top   Dislike
     
    .
    Avatar

    Heisenberg mi fa un baffo.

    Group
    Member
    Posts
    2,437
    e-penis
    +594

    Status
    Offline
    è interessante come tu riesca a spammare anche qui
     
    Top
    .
  14. Dino.
        -1   Top   Dislike
     
    .

    User deleted


    :\ non sto spammando
     
    Top
    .
  15.     +1   Top   Dislike
     
    .
    Avatar

    Heisenberg mi fa un baffo.

    Group
    Member
    Posts
    2,437
    e-penis
    +594

    Status
    Offline
    belli i commenti costruttivi
     
    Top
    .
14 replies since 11/5/2011, 22:48   385 views
  Share  
.