Campionato di ottimizzazione degli algoritmi. - pagina 98

 
Andrey F. Zelinsky:
Ci sono moderatori nel forum?
Perché stai urlando come... Stai soffrendo o cosa? Vattene da qui.
 
Andrey Dik:
Naturalmente, è necessario. Se non ci sono suggerimenti di funzioni da parte vostra, posterò la versione finale dei codici, dopo di che procederemo alla seconda fase del campionato.
Potrei essere in grado di offrire alcuni dei miei suggerimenti di funzionalità dopo aver visto il tuo esempio. Se questo fosse considerato legittimo...)
 
Реter Konow:
Forse posso suggerire qualche variante della funzione per conto mio dopo aver visto il tuo esempio. Se questo fosse considerato legittimo...)

Sì, certo, nessun problema.

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 * (doppio) (int) pow((double) (1 - x3), (double) 2) * exp((double) (-x3 * x3 - (int) pow((double) (y3 + 1), (double) 2)) - 0.10e2 * (0.2e0 * (doppio) x3 - (doppio) (int) pow((doppio) x3, (doppio) 3) - (doppio) (int) pow((doppio) y3, (doppio) 5)) * exp((double) (-x3 * x3 - y3 * y3)) - exp((double) (-(int) pow((double) (x3 + 1), (double) 2) - y3 * y3)) / 0.3e1;

Ecco due esempi di funzioni come f(x1, x2).

 
Andrey Dik:

Sì, certo, nessun problema.

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 * (doppio) (int) pow((double) (1 - x3), (double) 2) * exp((double) (-x3 * x3 - (int) pow((double) (y3 + 1), (double) 2)) - 0.10e2 * (0.2e0 * (doppio) x3 - (doppio) (int) pow((doppio) x3, (doppio) 3) - (doppio) (int) pow((doppio) y3, (doppio) 5)) * exp((double) (-x3 * x3 - y3 * y3)) - exp((double) (-(int) pow((double) (x3 + 1), (double) 2) - y3 * y3)) / 0.3e1;

Ecco due esempi di funzioni della forma f(x1, x2).

Si può vedere una certa discontinuità nella scrittura delle funzioni...

Il formato corretto è: fy = (x1 + x2 + ...xn) fornisce le parti sinistra e destra dell'equazione. Il numero di parametri in questi scarti di formule è ovviamente piccolo. Pensavo che sarebbero stati 500 o più...

 
Реter Konow:
Potrei essere in grado di suggerire qualche variante della funzione per conto mio dopo aver visto il tuo esempio. Se questo fosse considerato legittimo...)

C'è solo un punto che vorrei discutere prima di pubblicare i sorgenti del testbench.

Il punto è che non conosco funzioni che sarebbero abbastanza interessanti in termini di complessità per l'algoritmo su tutta la gamma della sua definizione ai parametri [-DBL_MAX; DBL_MAX]. Per quanto ne sappiamo, i numeri doppi possono avere 17 cifre (16 cifre decimali) e se prendiamo l'intervallo [-DBL_MAX; DBL_MAX], le funzioni diventeranno insensibili ai cambiamenti dei parametri (perché dovremo scalare l'intervallo dei valori di input nell'intervallo di sensibilità delle funzioni) perché il passo non sarà continuo e uniforme.

Perciò propongo di usare l'intervallo [-2.0; 2.0] a passi di 0.0. Infatti, a causa delle limitazioni del numero doppio otteniamo il passo 0,0000000000000001, che è interessante in termini di complessità del problema, quindi possiamo utilizzare pienamente tutte le opportunità del numero doppio (il numero di passi di parametri otterrà 4E16, e se consideriamo che i parametri sono 500, è chiaro che ci sono molte varianti di valori FF, per dirla in modo blando).

 
Реter Konow:

Sembra esserci una certa discontinuità nella scrittura delle funzioni...

Il formato corretto è: fy = (x1 + x2 + ...xn) fornisce i lati sinistro e destro dell'equazione. Il numero di parametri in questi scarti di formule è ovviamente piccolo. Pensavo che sarebbero stati 500 e più...

Questo è un esempio di due funzioni della forma f(x1, x2). Il campionato FF consisterà di 255 funzioni di questo tipo, i parametri saranno mescolati tra loro, tutte queste funzioni individuali diventeranno dipendenti e si influenzeranno a vicenda (come esattamente - l'arbitro genererà una sequenza di chiamate a funzioni individuali e una sequenza di chiamate a parametri).

Se puoi, dammi un esempio di una tale funzione della forma f(x1, x2) e la includerò nella FF generale.

 
Andrey Dik:

C'è solo un punto che vorrei discutere prima di pubblicare i sorgenti del testbench.

Il punto è che non conosco funzioni che sarebbero abbastanza interessanti in termini di complessità per l'algoritmo su tutta la gamma della sua definizione ai parametri [-DBL_MAX; DBL_MAX]. Per quanto ne sappiamo, i numeri doppi possono avere 17 cifre (16 cifre decimali) e se prendiamo l'intervallo [-DBL_MAX; DBL_MAX], le funzioni diventeranno insensibili ai cambiamenti dei parametri perché il passo non sarà continuo.

Ecco perché suggerisco di usare l'intervallo [-2.0; 2.0] in incrementi di 0.0. Infatti, a causa delle limitazioni del numero doppio, otterremo un passo di 0,0000000000000001, che è interessante in termini di complessità del compito, quindi possiamo utilizzare pienamente tutte le possibilità del numero doppio.

Non capisco. Passo 0.0 significa nessun passo...

Bene, per utilizzare tutte le possibilità del numero doppio, l'intervallo dovrebbe essere [-DBL_MAX; DBL_MAX], con passo 0,0000000000000001.

Per quanto possiamo aver esagerato...

 
Реter Konow:

Non capisco. Passo 0.0 significa nessun passo...

Bene, per sfruttare al massimo il numero doppio, l'intervallo dovrebbe essere [-DBL_MAX; DBL_MAX], con un passo di 0,0000000000000001.

Per quanto possiamo aver esagerato...

Passo 0.0 e significa passo 0.00000000000000000001. Per quanto riguarda la gamma, ho descritto sopra. Non sono riuscito a trovare nessuna funzione che si adatti all'intervallo [-DBL_MAX; DBL_MAX] e che sia garantita per funzionare su questo intervallo (ci vorrebbe una ricerca per controllare, cosa per cui non ho tempo).

Pensateci fino a domani, è importante rendersene conto.

 
Andrey Dik:

Questo è un esempio di due funzioni della forma f(x1, x2). Il campionato FF sarà composto da 255 funzioni simili, i parametri saranno mescolati insieme, tutte queste funzioni individuali diventeranno dipendenti e si influenzeranno a vicenda (come esattamente - l'arbitro genererà una sequenza di chiamate a funzioni individuali e una sequenza di chiamate a parametri).

Se puoi, fornisci un esempio di una tale funzione della forma f(x1, x2) e la includerò nella FF generale.

Da quanto ho capito, combinerete 255 scarti simili di funzioni analitiche in un'unica equazione. Il problema è trovare il suo massimo nel numero minimo di chiamate al FF.

Tutto quello che dovete sapere è l'intervallo, il passo, il numero di parametri.

Non credo che il mio personale surrealismo matematico sia necessario qui) accetterò le vostre formule .

 
Andrey Dik:

Passo 0.0 e significa passo 0.00000000000000000001. Per quanto riguarda la gamma, ho descritto sopra. Non sono riuscito a trovare nessuna funzione che si adatti all'intervallo [-DBL_MAX; DBL_MAX] e che sia garantita per funzionare su questo intervallo (ci vorrebbe una ricerca per controllare, cosa per cui non ho tempo).

Pensateci fino a domani, è importante rendersene conto.

Ci penserò.
Motivazione: