Campionato di ottimizzazione degli algoritmi. - pagina 40

 
Andrey Dik:
Grazie.
Lasciate che sia lui a partecipare al posto mio, perché sembra che io non sia in grado di farcela.
 
Реter Konow:
Lasciate che sia lui a partecipare al posto mio, perché sembra che io non sia in grado di farlo.
Non credo che abbia più possibilità di te. Dico sul serio. Inoltre, più partecipanti ci sono, più prospettive avremo.
 
Andrey Dik:
Non credo che abbia più possibilità di te. Dico sul serio. Inoltre, più partecipanti ci sono, più prospettive avremo.
Come hai detto tu stesso prima, ho una scalerosi peggiore della tua. E non ho abbastanza immaginazione per cogliere l'essenza del problema. Non riesco a metterlo insieme nella mia testa... Temo di aver sopravvalutato i miei poteri.
 
Andrey Dik:

Determinato - in entrambe le direzionidal genitore. E più a lungo non c'è miglioramento nel genitore, più velocemente la prole deve disperdersi ai lati.

Se si verifica un miglioramento - al contrario, la prole appare vicina al genitore, cioè la direzione -verso il genitore.

Ci sono sempre due direzioni -dal genitore everso il genitore. A seconda della dinamica di cambiamento dei valori di FF si dovrebbe scegliere una o un'altra direzione.

Ma per l'autore del video le specie "bazzicano" sempre non lontano dal genitore, e le zone inesplorate rimangono inesplorate.

È probabile che l'algoritmo converga molto rapidamente su funzioni continue e fallisca su funzioni discrete complesse con picchi bruschi. E anche le superfici, giudicare dall'algoritmo video è difficile.

Se qualcuno conosce l'inglese a un livello decente per una chiacchierata casuale, per favore contatti l'autore, lo inviti al campione.

A proposito, qualcuno può dirmi perché ho usato le parole "da" e "a" invece di usare una direzione specifica nello spazio?

E cosa c'entra esattamente il fatto che lo spazio di ricerca diventa più complicato più velocemente che aumentando il numero di parametri?

Se qualcuno risponde correttamente a queste domande, allora diventerà chiara la necessità di operare nello spazio multidimensionale, e quale particolare sezione della matematica (onestamente, in questa sezione sto nuotando, sono praticamente ignorante) tornerebbe molto utile nello studio di funzioni di molte variabili. Devo dire subito - nel mio algoritmo personale questi chip non si applicano.

 

Mi sono fatto un creatore di immagini:

Abbastanza veloce per trovare il massimo, ma poi solo mutazioni nel caso.

Per alcune delle funzioni, sono stati rivelati dei problemi. O meglio, lo erano, ma è diventato chiaro a cosa erano legati. Incrociando solo quelli buoni con quelli buoni, degenerando così all'individuo migliore che era all'inizio dell'evoluzione. Anche il movimento verso il massimo c'è, ma non abbastanza. Non su questa animazione, sarà sotto.

 

Qui. Trova molto rapidamente, ma con un offset, poi scivola un po' più vicino al centro, ma non fino in fondo.

 
Dmitry Fedoseev:

Qui. Molto rapidamente lo trova, ma con un offset, poi scivola un po' più vicino al centro, ma non fino in fondo.

Bello! Perché è tutto giallo? - Non si può vedere il paesaggio.

Qui, colorate ogni pixel secondo l'altezza del paesaggio.

//——————————————————————————————————————————————————————————————————————————————
// The translation of numerical value from range in color value of range of RGB
string GetCLRfromDouble (double in,       // input value
                         double min,      // minimum of input value
                         double max,      // maximum of input value
                         int    startCLR, // minimum of a color scale 0... 100
                         int    endCLR)   // maximum of a color scale 0... 100
{ 
  int sCLR = 0; 
  int eCLR = 0; 
  
  if(startCLR > endCLR) 
  {
    sCLR = endCLR; 
    eCLR = startCLR;
  }
  else 
  {
    sCLR = startCLR; 
    eCLR = endCLR;
  }
  
  if(sCLR < 0) 
    sCLR = 0; 
  
  if(eCLR > 100) 
    eCLR = 0; 
  
  if(in < min) 
    in = min; 
  if(in > max) 
    in = max; 
  
  string clr = ""; 
  double tempCLR = Scale (in, min, max, sCLR, eCLR, false); 
  
  //255,0,0 -> 255,255,0
  if(0.0 <= tempCLR && tempCLR <= 20.0) 
  {
    clr = (string)255 + ","; 
    clr += string ((int)Scale (tempCLR, 0.0, 20.0, 0.0, 255, false)) + ","; 
    clr += string (0); 
    return (clr);
  }
  
  //255,255,0 -> 0,255,0
  if(20.0 < tempCLR && tempCLR <= 40.0) 
  {
    clr = string ((int)Scale (tempCLR, 20.0, 40.0, 0.0, 255, true)) + ","; 
    clr += string (255) + ","; 
    clr += string (0); 
    return (clr);
  }
  
  //0,255,0 -> 0,255,255
  if(40.0 < tempCLR && tempCLR <= 60.0) 
  {
    clr = string (0) + ","; 
    clr += string (255) + ","; 
    clr += string ((int)Scale (tempCLR, 40.0, 60.0, 0.0, 255, false)); 
    return (clr);
  }
  
  //0,255,255 -> 0,0,255
  if(60.0 < tempCLR && tempCLR <= 80.0) 
  {
    clr = string (0) + ","; 
    clr += string ((int)Scale (tempCLR, 60.0, 80.0, 0.0, 255, true)) + ","; 
    clr += string (255); 
    return (clr);
  }
  
  //0,0,255 -> 255,0,255
  if(80.0 < tempCLR && tempCLR <= 100.0) 
  {
    clr = string ((int)Scale (tempCLR, 80.0, 100.0, 0.0, 255, false)) + ","; 
    clr += string (0) + ","; 
    clr += string (255); 
    return (clr);
  }
  
  return ("0,0,0");
}
//——————————————————————————————————————————————————————————————————————————————

//——————————————————————————————————————————————————————————————————————————————
double Scale (double In, double InMIN, double InMAX, double OutMIN, double OutMAX, bool Revers = false) 
{ 
  if(OutMIN == OutMAX) 
    return (OutMIN); 
  if(InMIN == InMAX) 
    return ((OutMIN + OutMAX) / 2.0); 
  else 
  {
    if(Revers) 
    {
      if(In < InMIN) 
        return (OutMAX); 
      if(In > InMAX) 
        return (OutMIN); 
      return (((InMAX - In) * (OutMAX - OutMIN) / (InMAX - InMIN)) + OutMIN);
    }
    else 
    {
      if(In < InMIN) 
        return (OutMIN); 
      if(In > InMAX) 
        return (OutMAX); 
      return (((In - InMIN) * (OutMAX - OutMIN) / (InMAX - InMIN)) + OutMIN);
    }
  }
}
//——————————————————————————————————————————————————————————————————————————————
 
Andrey Dik:
Oh, fantastico! Perché è tutto giallo? - Non si può vedere il paesaggio.
Ero pigro. Centesimi al massimo.
 
Dmitry Fedoseev:
Ero troppo pigro. Al massimo dei centesimi.

È una parabola rovesciata?

z=-(x^2+y^2)

 
Andrey Dik:

È una parabola rovesciata?

z=-(x^2+y^2)

Nel primo caso. Cosa c'è nel secondo caso non lo ricordo)
Motivazione: