Algorithmus-Optimierung Meisterschaft. - Seite 40

 
Andrey Dik:
Ich danke Ihnen.
Lassen Sie ihn anstelle von mir teilnehmen, denn ich scheine nicht in der Lage zu sein, damit fertig zu werden.
 
Реter Konow:
Lassen Sie ihn anstelle von mir teilnehmen, denn ich scheine nicht in der Lage zu sein, das zu tun.
Ich glaube nicht, dass er eine bessere Chance hat als Sie. Ich meine es ernst. Und je mehr Teilnehmer es gibt, desto mehr Perspektiven werden wir bekommen.
 
Andrey Dik:
Ich glaube nicht, dass er eine bessere Chance hat als Sie. Ich meine es ernst. Und je mehr Teilnehmer es gibt, desto mehr Perspektiven werden wir bekommen.
Wie Sie selbst vorhin sagten, habe ich eine schlimmere Skalarose als Sie. Und ich habe nicht genug Vorstellungskraft, um den Kern des Problems zu begreifen. Ich kriege es nicht in den Kopf... Ich fürchte, ich habe meine Kräfte überschätzt.
 
Andrey Dik:

Bestimmt - in beide Richtungenvom Elternteilaus. Und je länger es keine Verbesserung bei den Eltern gibt, desto schneller müssen sich die Nachkommen zerstreuen.

Im Falle einer Verbesserung - im Gegenteil - erscheinen die Nachkommen in der Nähe des Elternteils, d. h. in Richtungdes Elternteils.

Es gibt immer zwei Richtungen -von den Eltern undzu den Eltern. Je nach Dynamik der Veränderung der FF-Werte sollte die eine oder andere Richtung gewählt werden.

Aber für den Autor des Videos Arten immer "hängen" nicht weit von den Eltern, und die unerforschten Gebiete bleiben unerforscht.

Der Algorithmus konvergiert wahrscheinlich sehr schnell bei kontinuierlichen Funktionen und versagt bei komplexen diskreten Funktionen mit scharfen Spitzen. Und selbst bei Oberflächen ist es schwierig, nach einem Videoalgorithmus zu urteilen.

Wenn jemand über ausreichende Englischkenntnisse verfügt, um einen lockeren Smalltalk zu führen, bitte den Autor kontaktieren und ihn zum Champ einladen.

Kann mir übrigens jemand sagen, warum ich die Worte "von" und "nach" verwendet habe, anstatt eine bestimmte Richtung im Raum anzugeben?

Und was genau hat die Tatsache, dass der Suchraum schneller kompliziert wird, als die Anzahl der Parameter steigt, damit zu tun?

Wenn jemand diese Fragen richtig beantwortet, dann wird die Notwendigkeit, im mehrdimensionalen Raum zu operieren, deutlich, und welcher Teilbereich der Mathematik (ehrlich gesagt, in diesem Bereich schwimme ich, ich bin praktisch unwissend) bei der Untersuchung von Funktionen vieler Variablen sehr nützlich wäre. Ich muss gleich sagen, dass diese Chips in meinem persönlichen Algorithmus nicht vorkommen.

 

Ich habe mir einen Bildermacher gemacht:

Ziemlich schnell, um das Maximum zu finden, aber dann nur Mutationen nur für den Fall.

Bei einigen der Funktionen traten Probleme auf. Oder besser gesagt, sie waren es, aber es wurde klar, worauf sie bezogen waren. Sie kreuzen nur die Guten mit den Guten und degenerieren so zu dem besten Individuum, das es zu Beginn der Evolution gab. Die Bewegung in Richtung Maximum ist auch da, aber nicht genug. Nicht bei dieser Animation, die wird unten zu sehen sein.

 

Hier. Findet sich sehr schnell, aber mit einem Versatz, rutscht dann etwas näher zur Mitte, aber nicht ganz durch.

 
Dmitry Fedoseev:

Hier. Sehr schnell findet er ihn, aber mit einem Versatz, dann rutscht er etwas näher zur Mitte, aber nicht ganz nach unten.

Schön! Warum ist alles gelb? - Man kann die Landschaft nicht sehen.

Hier färben Sie bitte jedes Pixel entsprechend der Höhe der Landschaft ein.

//——————————————————————————————————————————————————————————————————————————————
// 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, großartig! Warum ist alles gelb? - Man kann die Landschaft nicht sehen.
Ich war faul. Höchstens ein paar Cent.
 
Dmitry Fedoseev:
Ich war zu faul. Das Maximum an Cents ist erreicht.

Ist es eine umgekehrte Parabel?

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

 
Andrey Dik:

Ist es eine umgekehrte Parabel?

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

Im ersten Fall. Was im zweiten Fall ist, weiß ich nicht mehr)
Grund der Beschwerde: