Campeonato de optimización de algoritmos. - página 100

 
Alexander Laur:
En mi opinión, las normas también deberían tener en cuenta el tiempo de prueba del algoritmo. Mientras sean dos, la prueba del algoritmo puede medirse en horas, días. ¿Y si quieren participar más participantes? Por favor, no haga perder el tiempo al árbitro de la competición.
Hay un límite en el número de carreras de FF. Algunos competidores han pedido que no se limite el tiempo de la prueba.
 

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

2. Al fin y al cabo, el resultado más importante es encontrar el extremo global real. ¿Y cómo comprobarlo?

1. La validez del resultado se comprueba simplemente sustituyendo los valores de los parámetros en el FF y comparando el resultado del concursante con el del FF.

2. El resultado global real puede obtenerse de tres maneras:

a) valor exacto: resolver analíticamente el problema (no es aceptable para nosotros)

(b) Valor exacto: enumeración total (no es factible para nosotros)

c) valor aproximado: utilizar un algoritmo de optimización - esto es lo que haremos, el resultado más alto será el mejor. El máximo real seguirá siendo desconocido para nosotros (no es posible encontrarlo), y el mejor será el más alto entre los participantes.

 
Andrey Dik:

1. usted pidió las mínimas restricciones y este es el mínimo paso posible.

2.Si puede haber problemas, es con el algoritmo del concursante, no con el FF. Esto significa que cualquier error crítico causado por el algoritmo descalificará al competidor.

1. No he pedido límites mínimos.

Yo estaba en contra de la toma de decisiones unilaterales sobre los parámetros de las condiciones del problema por parte del organizador, porque veía en ello una oportunidad (intencionada o no) de adaptar estas condiciones al algoritmo existente. Teniendo en cuenta que el principal contingente de participantes no tenía experiencia en la resolución de problemas de optimización, esa intención habría sido injusta para ellos.

Pedí cambiar el rango y el paso, para al menos igualar ligeramente las posibilidades de los recién llegados sin un algoritmo listo y los participantes que lo tienen desde hace tiempo.


2. Los errores críticos en una función desconocida con valores aleatorios de varios centenares de parámetros sustituidos sucesivamente pueden ocurrirle a cualquier participante independientemente de su algoritmo, simplemente por azar.

Supongamos que hay una entrada de este tipo dentro de la función - (2/(0,000000254345 - x1)); y el algoritmo pasa accidentalmente el valor 0,000000254345 al parámetro x1 en una de las llamadas.

En este caso, los paréntesis contendrán el cero, por lo que el doble será divisible.

Esto dará lugar a un error crítico. Sin embargo, ninguno de los participantes puede saber que el número generado aleatoriamente que se envía al FF junto con otros números de la matriz no es igual a alguna constante y no se le resta o divide por otra cosa...

 
Реter Konow:

1. No he pedido límites mínimos.

Yo estaba en contra de la toma de decisiones unilaterales por parte del organizador sobre los parámetros de las condiciones del problema, porque veía en ello una oportunidad (intencionada o no) de ajustar estas condiciones al algoritmo ya existente. Teniendo en cuenta que el principal contingente de participantes no tenía experiencia en la resolución de problemas de optimización, esa intención habría sido injusta para ellos.

Pedí que se cambiara el rango y el tono, para al menos nivelar un poco las posibilidades de los recién llegados sin un algoritmo preparado y los participantes que lo tienen desde hace tiempo.


2. Los errores críticos en una función desconocida con valores aleatorios de varios centenares de parámetros sustituidos sucesivamente pueden ocurrirle a cualquier participante independientemente de su algoritmo, simplemente por azar.

Supongamos que hay una entrada de este tipo dentro de la función - (2/(0,000000254345 - x1)); y el algoritmo pasa accidentalmente el valor 0,000000254345 al parámetro x1 en una de las llamadas.

En este caso, los paréntesis contendrán el cero, por lo que el doble será divisible.

Esto dará lugar a un error crítico. Sin embargo, ninguno de los participantes puede saber que el número generado aleatoriamente que se envía al FF junto con otros números de la matriz no es igual a alguna constante y no se le resta o divide por otra cosa...

1. Dígame francamente, ¿no está dispuesto a utilizar el paso 0,000000000001? ¿Es demasiado difícil para ti? Si está listo, su pregunta es eliminada.

2. Ya he dicho antes que no te preocupes por ninguna operación matemática dentro del FF, ahí no puede haber errores, aunque te esfuerces. Es mejor que te ocupes de la ausencia de errores en tu algoritmo, porque se verá claramente en los registros de la terminal dónde se producen exactamente los errores.

Además, cualquier exigencia de las propiedades de la FF por su parte no es legítima, porque se ha negado a proporcionar una función de muestra de la forma f(x1, x2) para su inclusión en la FF. Confórmate con lo que ya ha sido elaborado y preparado para ti por otros. En un par de horas podrá echar un último vistazo al interior de la FF, pero sólo para comprender que contemplar las entrañas de la FF no le aportará nada para aumentar sus posibilidades en el concurso. Caja negra, piense sólo en ella, el resto es poco práctico y poco realizable en primer lugar.

 
Andrey Dik:

1. Dígame francamente, ¿no está dispuesto a utilizar el paso de 0,000000000001? ¿Es demasiado complicado para usted? Si está preparado, entonces la pregunta está fuera de la mesa.

2. Ya he dicho antes que no te preocupes por ninguna operación matemática dentro del FF, ahí no puede haber errores, aunque te esfuerces. Es mejor que te ocupes de la ausencia de errores en tu algoritmo, porque se verá claramente en los registros de la terminal dónde se producen exactamente los errores.

Además, cualquier exigencia de las propiedades de la FF por su parte no es legítima, porque se ha negado a proporcionar una función de muestra de la forma f(x1, x2) para su inclusión en la FF. Confórmate con lo que ya ha sido elaborado y preparado para ti por otros. En un par de horas podrá echar un último vistazo al interior de la FF, pero sólo para comprender que contemplar las entrañas de la FF no le aportará nada para aumentar sus posibilidades en el concurso. Caja negra, piense sólo en ella, el resto es poco práctico y poco realizable en primer lugar.

No te acalores ni te molestes. Sólo estamos discutiendo y acordando según el punto 2 que escribiste aquí: https://www.mql5.com/ru/forum/87536/page92#comment_2652859

1. Estoy dispuesta a utilizar cualquier condición que usted también utilice, pero le sugiero que considere si las condiciones que propone conducirán a errores independientes del algoritmo del concursante.

2. Conocer partes de los bloques de una función analítica (es decir, sus constantes y acciones matemáticas con parámetros) puede ser mal utilizado por un participante.

Ejemplo: He compilado y entregado la función (2 / (2 - x1)) . Lo has incluido en el FF.

Entonces el árbitro, a sugerencia suya, simplemente barajó los bloques de funciones, dejando las constantes y las operaciones en esos bloques...

Además, al compilar el algoritmo, sabré que no puedo pasar el número 2 al parámetro x1, ya que esto dará lugar a un error crítico de división por cero. Sin embargo, es posible que el otro participante no lo sepa y, por lo tanto, puede pasar el valor de 2 a este parámetro.

Como resultado, su algoritmo será descalificado.

Sugiero que se tenga en cuenta este matiz.

Si las constantes están fuera del rango [2 , -2], ninguna operación resultará en cero dentro de las funciones.

P.D. Por supuesto, en este caso también puede obtener un cero, pero es menos probable. Se podría excluir la operación de división de FF, pero probablemente sea demasiado...))

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

No quiero ofenderme, es sólo mi opinión. :)

Y la opinión es que el punto "c" de tu respuesta es una adivinanza. Es un juego de adivinanzas porque no se conoce un resultado fiable. Si el resultado es desconocido, ¿cómo se puede determinar la OPTIMIDAD del algoritmo?

Si evaluamos la OPTIMIDAD de los algoritmos de búsqueda, debemos hacerlo sobre los Resultados Conocidos obtenidos mediante la búsqueda exhaustiva. Pero en las tareas del Campeonato, especifica que este resultado conocido debe obtenerse en una reducción de 100 pasos. Eso sería una competición en la que un resultado conocido y verdadero, se obtendría en un número SIGNIFICATIVO de pasos. Con este enfoque, nadie tendría dudas sobre el resultado de la victoria.

Estoy de acuerdo contigo.

Creo que el valor máximo de la función debe ser conocido de forma fiable por el árbitro.

De lo contrario, todo el concurso se convierte en una farsa.

Además, uno de los criterios más importantes para evaluar la eficacia del algoritmo de un concursante, junto con el número de llamadas FF, es la precisión, que es imposible de determinar sin tener un valor fiable de la función de máscara.

 
Реter Konow:

No te acalores ni te molestes. Simplemente estamos discutiendo y poniéndonos de acuerdo según el punto 2 que has detallado aquí: https://www.mql5.com/ru/forum/87536/page92#comment_2652859

1. Estoy dispuesta a utilizar cualquier condición que usted también utilice, pero le sugiero que considere si las condiciones que propone conducirán a errores independientes del algoritmo del concursante.

2. Conocer partes de los bloques de una función analítica (es decir, sus constantes y acciones matemáticas con parámetros) puede ser mal utilizado por un participante.

Ejemplo: He compilado y te he pasado la función (2 / (2 - x1)) . Lo has incluido en el FF.

Entonces el árbitro, a sugerencia suya, simplemente barajó los bloques de funciones, dejando las constantes y las operaciones en esos bloques...

Además, al compilar el algoritmo, sabré que no puedo pasar el número 2 al parámetro x1, ya que esto dará lugar a un error crítico de división por cero. Sin embargo, es posible que el otro participante no lo sepa y, por lo tanto, puede pasar el valor 2 a este parámetro.

Como resultado, su algoritmo será descalificado.

Le sugiero que considere este matiz.

Si las constantes están fuera del rango [2 , -2], ninguna operación resultará en cero dentro de las funciones.

¿Para qué crees que se muestra la fuente FF, entre otras cosas? Comprobar que no se producen errores en el FF debido a operaciones matemáticas y otros errores. Si se producen errores en el FF, y teóricamente pueden surgir, al ver el código fuente del FF puedes utilizar las vulnerabilidades a tu favor, provocando un error crítico en el FF. Si esto sucede, es culpa del creador del FF, y como yo soy el único creador, la culpa será toda mía y yo seré el perdedor y tú el ganador. Tienes la posibilidad de convertirte en un ganador de esta manera, o mejor dicho - no hay ninguna posibilidad de convertirte en un ganador de esta manera.
 
Andrey Dik:
¿Para qué crees que se muestra el FF original, entre otras cosas? Ver que es imposible que se produzcan errores en el FF debido a operaciones matemáticas y otros errores. Si se producen errores en el FF, y teóricamente pueden surgir, al ver el código fuente del FF puedes utilizar las vulnerabilidades a tu favor, provocando un error crítico en el FF. Si esto sucede, es culpa del creador del FF, y como yo soy el único creador, la culpa será toda mía y yo seré el perdedor y tú el ganador. Tienes la posibilidad de ser un ganador de esta manera, o más bien - no hay ninguna posibilidad de ser un ganador de esta manera.

Después de ver el FF original, muchas cosas me quedarán mucho más claras que ahora...

No voy a utilizar en absoluto sus posibles errores de redacción de FF en mi beneficio, ya que invalida la base de mi motivación para participar, que no es en absoluto la de esforzarme por una victoria falsa.

La victoria debe ser inequívoca, creíble y justa. No necesito ninguna otra.

 
Alexander Laur:

No quiero ofenderme, es sólo mi opinión. :)

Y la opinión es que el punto "c" de tu respuesta es una adivinanza. Es un juego de adivinanzas porque no se conoce un resultado fiable. Si el resultado es desconocido, ¿cómo se puede determinar la OPTIMIDAD del algoritmo?

Si evaluamos la OPTIMIDAD de los algoritmos de búsqueda, debemos hacerlo sobre los Resultados Conocidos obtenidos mediante la búsqueda exhaustiva. Pero en las tareas del Campeonato, especifica que este resultado conocido debe obtenerse en una reducción de 100 pasos. Eso sería una competición en la que un resultado conocido y verdadero, se obtendría en un número SIGNIFICATIVO de pasos. Con este enfoque, nadie tendrá dudas sobre el resultado de la victoria.

Reg Konow:

Estoy de acuerdo contigo.

Creo que el valor máximo de la función debe ser conocido de forma fiable por el árbitro.

De lo contrario, todo el concurso se convierte en una farsa.

Además, uno de los criterios más importantes para evaluar la eficiencia del algoritmo de un concursante, junto con el número de llamadas FF, es la precisión, que es imposible de determinar sin tener un valor fiable de la función de máscara.

Ustedes dos son tan divertidos... ) Sin ánimo de ofender. ))))

Si el máximo global es conocido por todos sin excepción, entonces, piénsalo bien, piénsalo bien, ¿qué pasará? ¿Se puede celebrar un campeonato de algoritmos de optimización en un caso así? Por supuesto, no puede, porque cualquier competidor puede llamar a la FF a un 60-70 por ciento del máximo permitido y producir un resultado con un 100 por ciento de precisión. ¡Sólo podemos competir en FFs ILIMITADAS! El valor máximo de uno de los competidores es el mejor resultado.

Realmente me haces reír... )))

Pero si eres serio y realmente quieres saber la precisión de un algoritmo para encontrar el máximo, entonces fuera del concurso podemos alimentar los algoritmos con un máximo conocido, para alimentarlos después de que los algoritmos hayan sido publicados, nadie prohíbe hacer eso, los algoritmos de los participantes estarán disponibles libremente durante varios días y cada uno puede comprobar y probar los algoritmos tanto como quiera. Espero que para entonces ya tengas al menos algunas funciones con máximo conocido, para comprobar y averiguar por ti mismo las propiedades de los algoritmos de cualquiera de los participantes.

 
Реter Konow:

Después de ver el FF original, muchas cosas me quedarán mucho más claras que ahora...

No voy a utilizar en absoluto sus posibles errores de redacción de FF en mi beneficio, ya que invalida la base de mi motivación para participar, que no es en absoluto luchar por una victoria falsa.

Ganar debe ser inequívoco, creíble y honesto. No necesito ninguna otra.

¿Significa esto que el algoritmo aún no está listo? ¿Cuánto tiempo espera conseguir para entender y preparar el algoritmo para un FF conocido? ¿Qué más da lo que contenga el FF? El algoritmo debe ser capaz de trabajar con un FF desconocido, de lo contrario es una mierda y no un algoritmo.