Algorithmus-Optimierung Meisterschaft. - Seite 98

 
Andrey F. Zelinsky:
Gibt es Moderatoren in diesem Forum?
Warum schreist du so... Hast du Schmerzen oder so? Verschwinden Sie von hier.
 
Andrey Dik:
Das müssen Sie natürlich. Wenn es keine Funktionsvorschläge von Ihnen gibt, werde ich die endgültige Version der Codes veröffentlichen und dann mit dem zweiten Schritt der Meisterschaft fortfahren.
Nachdem ich Ihr Beispiel gesehen habe, kann ich vielleicht einige meiner eigenen Funktionsvorschläge machen. Wenn das als legitim angesehen werden würde...)
 
Реter Konow:
Vielleicht kann ich eine eigene Variante der Funktion vorschlagen, nachdem ich Ihr Beispiel gesehen habe. Wenn das als legitim angesehen werden würde...)

Ja, sicher, kein Problem.

pow(cos(0.2e1 * 0.3141592654e1 * x2 * x2) + cos(0.1884955592e1 * y2) - 0.11e2, 0.2e1) + pow(cos(0.1256637062e1 * x2) + cos(0.2e1 * 0.3141592654e1 * y2 * y2) - 0.7e1, 0.2e1)

и

0,3e1 * (double) (int) pow((double) (1 - x3), (double) 2) * exp((double) (-x3 * x3 - (int) pow((double) (y3 + 1), (double) 2)) - 0,10e2 * (0,2e0 * (double) x3 - (double) (int) pow((double) x3, (double) 3) - (double) (int) pow((double) y3, (double) 5)) * exp((double) (-x3 * x3 - y3 * y3)) - exp((double) (-(int) pow((double) (x3 + 1), (double) 2) - y3 * y3)) / 0.3e1;

Hier sind zwei Beispiele für Funktionen wie f(x1, x2).

 
Andrey Dik:

Ja, sicher, kein Problem.

pow(cos(0.2e1 * 0.3141592654e1 * x2 * x2) + cos(0.1884955592e1 * y2) - 0.11e2, 0.2e1) + pow(cos(0.1256637062e1 * x2) + cos(0.2e1 * 0.3141592654e1 * y2 * y2) - 0.7e1, 0.2e1)

и

0,3e1 * (double) (int) pow((double) (1 - x3), (double) 2) * exp((double) (-x3 * x3 - (int) pow((double) (y3 + 1), (double) 2)) - 0,10e2 * (0,2e0 * (double) x3 - (double) (int) pow((double) x3, (double) 3) - (double) (int) pow((double) y3, (double) 5)) * exp((double) (-x3 * x3 - y3 * y3)) - exp((double) (-(int) pow((double) (x3 + 1), (double) 2) - y3 * y3)) / 0.3e1;

Hier sind zwei Beispiele für Funktionen der Form f(x1, x2).

Sie können eine gewisse Diskontinuität in der Schreibweise der Funktionen erkennen...

Das korrekte Format lautet: fy = (x1 + x2 + ...xn) und enthält den linken und rechten Teil der Gleichung. Die Anzahl der Parameter in diesen Formelfetzen ist offensichtlich gering. Ich dachte, es würden 500 oder mehr sein...

 
Реter Konow:
Vielleicht kann ich eine eigene Variante der Funktion vorschlagen, nachdem ich Ihr Beispiel gesehen habe. Wenn das als legitim angesehen werden würde...)

Es gibt nur einen Punkt, den ich vor der Veröffentlichung der Testbench-Quellen diskutieren möchte.

Der Punkt ist, dass ich keine Funktionen kenne, die in Bezug auf die Komplexität für den Algorithmus über den gesamten Bereich seiner Definition bei [-DBL_MAX; DBL_MAX] Parametern interessant genug wären. Soweit bekannt, können doppelte Zahlen 17 Stellen (16 Dezimalstellen) haben, und wenn wir den Bereich [-DBL_MAX; DBL_MAX] nehmen, werden die Funktionen unempfindlich gegenüber Änderungen der Parameter (weil wir den Bereich der Eingabewerte in den Empfindlichkeitsbereich der Funktionen skalieren müssen), weil der Schritt nicht kontinuierlich und einheitlich sein wird.

Daher schlage ich vor, den Bereich [-2,0; 2,0] in Schritten von 0,0 zu verwenden. In der Tat, aufgrund der Beschränkungen der Zahl double erhalten wir den Schritt 0,0000000000000001, die in Bezug auf die Komplexität des Problems interessant ist, so können wir in vollem Umfang nutzen alle Möglichkeiten der Zahl double (Anzahl der Parameter Schritte erhalten 4E16, und wenn wir bedenken, dass die Parameter 500 sind, ist es klar, dass es viele Varianten der FF-Werte, um es gelinde auszudrücken).

 
Реter Konow:

Es scheint eine Diskontinuität in der Funktionsnotation zu geben...

Das korrekte Format lautet: fy = (x1 + x2 + ...xn) und liefert die linke und rechte Seite der Gleichung. Die Anzahl der Parameter in diesen Formelfetzen ist offensichtlich gering. Ich dachte, es würden 500 und mehr sein...

Dies ist ein Beispiel für zwei Funktionen der Form f(x1, x2). Die Meisterschaft FF wird aus 255 solcher Funktionen bestehen, die Parameter werden miteinander vermischt sein, alle diese einzelnen Funktionen werden voneinander abhängig sein und sich gegenseitig beeinflussen (wie genau - der Schiedsrichter wird eine Folge von Aufrufen einzelner Funktionen und eine Folge von Aufrufen von Parametern erzeugen).

Wenn Sie können, geben Sie ein Beispiel für eine solche Funktion der Form f(x1, x2), und ich werde sie in die allgemeine FF aufnehmen.

 
Andrey Dik:

Es gibt nur einen Punkt, den ich vor der Veröffentlichung der Testbench-Quellen diskutieren möchte.

Der Punkt ist, dass ich keine Funktionen kenne, die in Bezug auf die Komplexität für den Algorithmus über den gesamten Bereich seiner Definition bei [-DBL_MAX; DBL_MAX] Parametern interessant genug wären. Wie wir alle wissen, können doppelte Zahlen 17 Ziffern (16 Dezimalstellen) haben, und wenn wir den Bereich [-DBL_MAX; DBL_MAX] nehmen, werden die Funktionen unempfindlich gegenüber Änderungen der Parameter, weil der Schritt nicht kontinuierlich sein wird.

Deshalb schlage ich vor, den Bereich [-2,0; 2,0] in Schritten von 0,0 zu verwenden. In der Tat, aufgrund der Beschränkungen der doppelten Zahl erhalten wir einen Schritt von 0,0000000000000001, der interessanter in Bezug auf die Komplexität der Aufgabe ist, so dass wir alle Möglichkeiten der doppelten Zahl voll nutzen können.

Das verstehe ich nicht. Stufe 0,0 bedeutet keine Stufe...

Um alle Möglichkeiten von Double Number zu nutzen, sollte der Bereich [-DBL_MAX; DBL_MAX] mit einem Schritt von 0,0000000000000001 sein.

Wie sehr wir es auch übertrieben haben mögen...

 
Реter Konow:

Das verstehe ich nicht. Stufe 0,0 bedeutet keine Stufe...

Um die Vorteile der Zahl double voll auszunutzen, sollte der Bereich [-DBL_MAX; DBL_MAX] mit einer Schrittweite von 0,0000000000000001 sein.

Wie sehr wir es auch übertrieben haben mögen...

Schritt 0,0 und bedeutet Schritt 0,00000000000000000001. Was die Reichweite betrifft, so habe ich sie oben beschrieben. Ich konnte keine Funktionen finden, die in den Bereich [-DBL_MAX; DBL_MAX] passen und garantiert in diesem Bereich funktionieren (dazu müsste man nachforschen, wofür ich keine Zeit habe).

Denken Sie bis morgen darüber nach, es ist wichtig, dass Sie das erkennen.

 
Andrey Dik:

Dies ist ein Beispiel für zwei Funktionen der Form f(x1, x2). Die Meisterschaft FF wird aus 255 ähnlichen Funktionen bestehen, die Parameter werden miteinander vermischt, alle diese einzelnen Funktionen werden voneinander abhängig sein und sich gegenseitig beeinflussen (wie genau - der Schiedsrichter wird eine Folge von Aufrufen einzelner Funktionen und eine Folge von Aufrufen von Parametern erzeugen).

Wenn Sie können, geben Sie ein Beispiel für eine solche Funktion der Form f(x1, x2), und ich werde sie in die allgemeine FF aufnehmen.

So wie ich es verstehe, werden Sie 255 ähnliche Fetzen analytischer Funktionen zu einer einzigen Gleichung zusammenfassen. Das Problem besteht darin, seine Maxima bei einer minimalen Anzahl von Anrufen beim FF zu finden.

Alles, was Sie wissen müssen, sind Bereich, Schritt und Anzahl der Parameter.

Ich glaube nicht, dass mein persönlicher mathematischer Surrealismus hier vonnöten ist), werde ich Ihre Formeln akzeptieren .

 
Andrey Dik:

Schritt 0,0 und bedeutet Schritt 0,00000000000000000001. Was die Reichweite betrifft, so habe ich sie oben beschrieben. Ich konnte keine Funktionen finden, die in den Bereich [-DBL_MAX; DBL_MAX] passen und garantiert in diesem Bereich funktionieren (dazu müsste man nachforschen, wofür ich keine Zeit habe).

Denken Sie bis morgen darüber nach, es ist wichtig, dass Sie das erkennen.

Ich werde darüber nachdenken.
Grund der Beschwerde: