Campionato di ottimizzazione degli algoritmi. - pagina 100

 
Alexander Laur:
Secondo me, le regole dovrebbero tenere conto anche del tempo di prova dell'algoritmo. Finché siete in due, il test dell'algoritmo può essere misurato in ore, giorni. E se più partecipanti vogliono partecipare? Si prega di non far perdere tempo all'arbitro della competizione.
C'è un limite al numero di corse di FF. Alcuni concorrenti hanno chiesto di non limitare il tempo di prova.
 

Alexander Laur:
1. Еще один момент: Как Вы собираетесь проверять ПРАВДИВОСТЬ полученного результата 

2. Dopo tutto, il risultato più importante è trovare il vero estremo globale. E come controllarlo?

1. La validità del risultato viene controllata semplicemente sostituendo i valori dei parametri nel FF e confrontando il risultato del concorrente con quello del FF.

2. Il risultato globale reale può essere ottenuto in tre modi:

a) valore esatto: risolvere analiticamente il problema (non accettabile per noi)

(b) Valore esatto: enumerazione totale (non fattibile per noi)

c) valore approssimativo: utilizzare un algoritmo di ottimizzazione - questo è quello che faremo, il risultato più alto sarà il migliore. Il vero massimo rimarrà per noi sconosciuto (non è possibile trovarlo), e il migliore sarà il più alto tra i partecipanti.

 
Andrey Dik:

1. avete chiesto vincoli minimi e questo è il minimo passo possibile.

2.Se ci possono essere problemi, è con l'algoritmo del concorrente, non con la FF. Questo significa che qualsiasi errore critico causato dall'algoritmo squalificherà il concorrente.

1. Non ho chiesto limiti minimi.

Ero contrario alla decisione unilaterale sui parametri delle condizioni del problema da parte dell'organizzatore, perché vi vedevo un'opportunità (intenzionalmente o no) di adattare queste condizioni all'algoritmo esistente. Tenendo conto che il contingente principale dei partecipanti non aveva esperienza nella risoluzione di problemi di ottimizzazione, una tale intenzione sarebbe stata ingiusta nei loro confronti.

Ho chiesto di cambiare la gamma e il passo, al fine di equiparare almeno leggermente le possibilità dei nuovi arrivati senza un algoritmo pronto e i partecipanti che lo hanno da molto tempo.


2. Errori critici in una funzione sconosciuta con valori casuali di diverse centinaia di parametri sostituiti in successione possono verificarsi a qualsiasi partecipante indipendentemente dal suo algoritmo, solo per caso.

Supponiamo che ci sia una tale voce all'interno della funzione - (2/(0.000000254345 - x1)); e l'algoritmo passa accidentalmente il valore 0.000000254345 al parametro x1 in una delle chiamate.

In questo caso, le parentesi conterranno lo zero, per cui il doppio sarà divisibile.

Questo risulterà in un errore critico. Tuttavia, nessuno dei partecipanti può sapere che il numero generato casualmente inviato al FF insieme ad altri numeri nella matrice non è uguale a qualche costante e non è sottratto da esso o diviso per qualcos'altro...

 
Реter Konow:

1. Non ho chiesto limiti minimi.

Ero contrario alla decisione unilaterale dell'organizzatore sui parametri delle condizioni del problema, perché vi vedevo l'opportunità (intenzionalmente o no) di adattare queste condizioni ad un algoritmo già esistente. Tenendo conto che il contingente principale dei partecipanti non aveva esperienza nella risoluzione di problemi di ottimizzazione, una tale intenzione sarebbe stata ingiusta nei loro confronti.

Ho chiesto di cambiare la gamma e il passo, in modo da livellare almeno leggermente le possibilità dei nuovi arrivati senza un algoritmo pronto e i partecipanti che ce l'hanno da molto tempo.


2. Errori critici in una funzione sconosciuta con valori casuali di diverse centinaia di parametri sostituiti in successione possono verificarsi a qualsiasi partecipante indipendentemente dal suo algoritmo, solo per caso.

Supponiamo che ci sia una tale voce all'interno della funzione - (2/(0.000000254345 - x1)); e l'algoritmo passa accidentalmente il valore 0.000000254345 al parametro x1 in una delle chiamate.

In questo caso, le parentesi conterranno zero, che sarà divisibile per due.

Questo risulterà in un errore critico. Tuttavia, nessuno dei partecipanti può sapere che il numero generato casualmente passato al FF insieme ad altri numeri nell'array non è uguale a qualche costante e non è sottratto da esso o diviso per qualcos'altro...

1. Ditemi francamente, non siete pronti a usare il passo 0,0000000000000001 ? È troppo difficile per voi? Se sei pronto, la tua domanda viene rimossa.

2. Ho detto prima, non preoccupatevi delle operazioni matematiche all'interno del FF, lì non possono verificarsi errori, anche se vi sforzate molto. È meglio che vi occupiate dell'assenza di errori nel vostro algoritmo, perché si vedrà chiaramente nei log del terminale dove si verificano esattamente gli errori.

Inoltre, qualsiasi richiesta di proprietà del FF da parte vostra non è legittima, perché avete rifiutato di fornire una funzione campione della forma f(x1, x2) per la sua inclusione nel FF. Accontentatevi di ciò che è già stato elaborato e preparato per voi da altri. Tra un paio d'ore potrai dare un ultimo sguardo all'interno della FF, ma solo per capire che contemplare l'interno della FF non ti darà nulla in termini di aumento delle tue possibilità nel concorso. Scatola nera, pensa solo a questo, il resto è impraticabile e poco pratico per raggiungere il primo posto.

 
Andrey Dik:

1. Ditemi francamente, non siete disposti a usare il passo 0,0000000000000001 ? È troppo complicato per voi? Se siete pronti, allora la domanda è fuori discussione.

2. Ho detto prima, non preoccupatevi delle operazioni matematiche all'interno del FF, lì non possono verificarsi errori, anche se vi sforzate molto. È meglio che vi occupiate dell'assenza di errori nel vostro algoritmo, perché si vedrà chiaramente nei log del terminale dove si verificano esattamente gli errori.

Inoltre, qualsiasi richiesta di proprietà del FF da parte vostra non è legittima, perché avete rifiutato di fornire una funzione campione della forma f(x1, x2) per la sua inclusione nel FF. Accontentatevi di ciò che è già stato elaborato e preparato per voi da altri. Tra un paio d'ore potrai dare un ultimo sguardo all'interno della FF, ma solo per capire che contemplare l'interno della FF non ti darà nulla in termini di aumento delle tue possibilità nel concorso. Scatola nera, pensa solo a questo, il resto è impraticabile e poco pratico per raggiungere il primo posto.

Non si scaldi e non si preoccupi. Stiamo solo discutendo e concordando secondo il punto 2 che hai scritto qui: https://www.mql5.com/ru/forum/87536/page92#comment_2652859

1. Sono pronto ad usare qualsiasi condizione che anche voi userete, ma vi suggerisco di considerare se le condizioni che proponete porteranno ad errori indipendenti dall'algoritmo del concorrente.

2. Conoscere parti dei blocchi di una funzione analitica (vale a dire le sue costanti e le azioni matematiche con parametri) può essere usato impropriamente da un partecipante.

Esempio: ho compilato e vi ho consegnato la funzione (2 / (2 - x1)) . L'hai incluso nel FF.

Poi l'arbitro, su tuo suggerimento, ha semplicemente mischiato i blocchi di funzioni, lasciando le costanti e le operazioni in quei blocchi...

Inoltre, durante la compilazione dell'algoritmo, saprò che non posso passare il numero 2 nel parametro x1, poiché questo risulterà in un errore critico di divisione per zero. Tuttavia, l'altro partecipante potrebbe non saperlo, e quindi potrebbe passare il valore 2 a questo parametro.

Di conseguenza, il suo algoritmo sarà squalificato.

Suggerisco di prendere in considerazione questa sfumatura.

Se le costanti sono al di fuori dell'intervallo [2 , -2], nessuna operazione darà come risultato zero all'interno delle funzioni.

P.S. Naturalmente, si può ottenere zero anche in questo caso, ma è meno probabile. Si potrebbe escludere l'operazione di divisione da FF, ma probabilmente è troppo...))

Чемпионат Алгоритмов Оптимизации.
Чемпионат Алгоритмов Оптимизации.
  • www.mql5.com
Чемпионат алгоритмов оптимизации задуман как соревнование для людей ищущих, любознательных, для которых стоять на месте означает движение назад...
 
Alexander Laur:

Non voglio offendermi, è solo la mia opinione. :)

E l'opinione è che il punto "c" della tua risposta è un gioco di indovinelli. È un gioco di ipotesi perché non si conosce un risultato affidabile. Se il risultato è sconosciuto, come si può determinare l'OTTIMALITÀ dell'algoritmo?

Se valutiamo l'OTTIMALITÀ degli algoritmi di ricerca, dovremmo farlo su risultati noti ottenuti attraverso la ricerca esaustiva. Ma nei compiti del campionato, specificate che questo risultato noto deve essere ottenuto in una riduzione di 100 volte dei passi. Sarebbe una gara in cui un risultato VERO conosciuto, sarebbe ottenuto in un SIGNIFICATIVO MINORE numero di passi! Con questo approccio, nessuno avrebbe dubbi sull'esito della vittoria.

Sono d'accordo con te.

Credo che il valore massimo della funzione debba essere conosciuto in modo affidabile dall'arbitro.

Altrimenti l'intero concorso diventa una farsa.

Inoltre, uno dei criteri più importanti per valutare l'efficacia dell'algoritmo di un concorrente, insieme al numero di chiamate FF, è la precisione, che è impossibile da determinare senza avere un valore affidabile della funzione maschera.

 
Реter Konow:

Non si scaldi e non si preoccupi. Stiamo semplicemente discutendo e siamo d'accordo secondo il punto 2 che hai scritto qui: https://www.mql5.com/ru/forum/87536/page92#comment_2652859

1. Sono pronto ad usare qualsiasi condizione che anche voi userete, ma vi propongo di considerare se le condizioni che proponete porteranno ad errori indipendenti dall'algoritmo del concorrente.

2. Conoscere parti dei blocchi di una funzione analitica (vale a dire le sue costanti e le azioni matematiche con parametri) può essere usato impropriamente da un partecipante.

Esempio: ho compilato e passato la funzione (2 / (2 - x1)). L'hai incluso nel FF.

Poi l'arbitro, su tuo suggerimento, ha semplicemente mischiato i blocchi di funzioni, lasciando le costanti e le operazioni in quei blocchi...

Inoltre, durante la compilazione dell'algoritmo, saprò che non posso passare il numero 2 nel parametro x1, poiché questo risulterà in un errore critico di divisione per zero. Tuttavia, l'altro partecipante potrebbe non saperlo, e quindi potrebbe passare il valore 2 a questo parametro.

Di conseguenza, il suo algoritmo sarà squalificato.

Vi suggerisco di considerare questa sfumatura.

Se le costanti sono al di fuori dell'intervallo [2 , -2], nessuna operazione darà come risultato zero all'interno delle funzioni.

Per cosa pensi che la fonte FF sia mostrata, tra le altre cose? Vedere che non ci siano errori nei FF dovuti a operazioni matematiche e altri errori. Se si verificano errori nel FF, e teoricamente possono verificarsi, visualizzando il codice sorgente del FF è possibile utilizzare le vulnerabilità a proprio vantaggio, causando un errore critico nel FF. Se questo succede, è colpa del creatore della FF, e siccome io sono l'unico creatore, la colpa sarà interamente mia e io sarò il perdente e voi il vincitore. Hai la possibilità di diventare un vincitore in questo modo, o meglio - non c'è nessuna possibilità di diventare un vincitore in questo modo.
 
Andrey Dik:
Per cosa pensate che il FF originale sia mostrato, tra le altre cose? Vedere che è impossibile che si verifichino errori nei FF a causa di operazioni matematiche e altri errori. Se si verificano errori nel FF, e teoricamente possono verificarsi, visualizzando il codice sorgente del FF è possibile utilizzare le vulnerabilità a proprio vantaggio, causando un errore critico nel FF. Se questo succede, è colpa del creatore della FF, e siccome io sono l'unico creatore, la colpa sarà interamente mia e io sarò il perdente e voi il vincitore. Hai la possibilità di essere un vincitore in questo modo, o piuttosto - non c'è la possibilità di essere un vincitore in questo modo.

Dopo aver visto il FF originale, molte cose mi saranno molto più chiare di adesso...

Non ho affatto intenzione di usare i vostri possibili errori di drafting di FF a mio vantaggio, in quanto invalida la base della mia motivazione a partecipare, che non è affatto quella di lottare per una finta vittoria.

La vittoria deve essere inequivocabile, credibile ed equa. Non ho bisogno di altro.

 
Alexander Laur:

Non voglio offendermi, è solo la mia opinione. :)

E l'opinione è che il punto "c" della tua risposta è un gioco di indovinelli. È un gioco di ipotesi perché non si conosce un risultato affidabile. Se il risultato è sconosciuto, come si può determinare l'OTTIMALITÀ dell'algoritmo?

Se valutiamo l'OTTIMALITÀ degli algoritmi di ricerca, dovremmo farlo su risultati noti ottenuti attraverso la ricerca esaustiva. Ma nei compiti del campionato, specificate che questo risultato noto deve essere ottenuto in una riduzione di 100 volte dei passi. Sarebbe una gara in cui un risultato VERO conosciuto, sarebbe ottenuto in un SIGNIFICATIVO MINORE numero di passi! Con questo approccio, nessuno avrà dubbi sull'esito della vittoria.

Reg Konow:

Sono d'accordo con te.

Penso che il valore massimo della funzione debba essere conosciuto in modo affidabile dall'arbitro.

Altrimenti l'intero concorso diventa una farsa.

Inoltre, uno dei criteri più importanti per valutare l'efficienza dell'algoritmo di un concorrente, insieme al numero di chiamate FF, è la precisione, che è impossibile da determinare senza avere un valore affidabile della funzione maschera.

Voi due siete così divertenti... ) Senza offesa. ))))

Se il massimo globale è noto a tutti senza eccezione, allora, ripensateci, pensateci bene, cosa succederà? Si può tenere un campionato di algoritmi di ottimizzazione in un caso del genere? Ovviamente non può, perché qualsiasi concorrente può chiamare oziosamente il FF al 60-70 per cento del massimo consentito e produrre un risultato con una precisione del 100 per cento! Possiamo competere solo su FF illimitati! Il valore massimo di uno dei concorrenti è il risultato migliore.

Mi fai davvero ridere... )))

Ma se siete seri e volete davvero sapere quanto accuratamente un algoritmo può trovare il massimo, allora fuori dalla competizione possiamo alimentare gli algoritmi con un massimo conosciuto, per alimentarli dopo che gli algoritmi sono stati pubblicati, nessuno vieta di farlo, gli algoritmi dei partecipanti saranno liberamente disponibili per diversi giorni e ognuno può controllare e testare gli algoritmi quanto vuole. Spero che per allora avrete già almeno qualche funzione con massimo conosciuto, per controllare e scoprire da soli le proprietà degli algoritmi di uno qualsiasi dei partecipanti.

 
Реter Konow:

Dopo aver visto il FF originale, molte cose mi saranno molto più chiare di adesso...

Non ho affatto intenzione di usare i tuoi possibili errori di drafting di FF a mio vantaggio, poiché invalida la base della mia motivazione a partecipare, che non è affatto quella di lottare per una finta vittoria.

La vittoria deve essere inequivocabile, credibile e onesta. Non ho bisogno di altro.

Questo significa che l'algoritmo non è ancora pronto? Quanto tempo vi aspettate di ottenere per capire e preparare l'algoritmo per una FF conosciuta? Che differenza fa ciò che è contenuto nella FF? L'algoritmo deve essere in grado di lavorare con una FF sconosciuta, altrimenti è una stronzata e non un algoritmo.