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

 
La primera llamada al FF debe consistir en una matriz formada por el RNG normal de la MT con una distribución uniforme? ¿No puede utilizar su propia RMS con una distribución normal? Que sea así, no insisto. Sobre los criterios de evaluación. Está sugiriendo que se cuente el tiempo de máquina de la ejecución del código. Pero, lo siento, eso es otra cosa. Una cosa es afinar el código para una búsqueda eficiente de los extremos y otra cosa es tener en cuenta el tiempo de máquina necesario para ejecutar los componentes del programa, que además depende del estado del hardware en ese momento. Sería más apropiado contar el número de llamadas al ftp. Pero aquí no insisto. No quiero volver a enfrascarme en cuestiones de procedimiento; además, no tendría importancia para mi algoritmo. Ahora tengo una pregunta. ¿Es relevante la regla de que el número de llamadas a la FF es fijo e igual para todos?
 

Yuri Evseenkov:
1. Первое обращение к фф должно состоять иэ массива сформированного штатным ГСЧ МТ с равномерным распределением? Свой ГСЧ с нормальным распределением использовать нельзя?

2. Sobre los criterios de evaluación. Usted propone contar el tiempo de máquina de la ejecución del código.

1. Sobre la primera inicialización no insisto, sólo recomiendo - para la FF desconocida (y es la FF desconocida la que estará en el campeonato) cualquier parámetro inicial es igualmente bueno, porque la FF es desconocida. Por eso es mejor utilizar cualquier RNG (el que sea, pero preferiblemente con el mayor número de variaciones de números posible). Sobre todo, porque los resultados estadísticamente fiables se harán al menos con 20 ejecuciones del algoritmo, y es simplemente poco práctico inicializar el algoritmo con los mismos números.

2. Ya decidido, hay 2 criterios de evaluación, la precisión y el número de ejecuciones FF. Pero en el enlace que puse un ejemplo de cálculo, fue hace mucho tiempo, allí en lugar del número de carreras está el tiempo. Por eso lo dejé claro en mi post: la precisión y el número de lanzamientos de FF son dos criterios de evaluación, siendo preferible una precisión 3 veces mayor.

Según este cálculo de puestos en la tabla, mi algoritmo ocuparía el primer lugar según los resultados de su tarea. Calculemos: la precisión es mayor, por lo que el criterio de exactitud es 3, y el número de ejecuciones de FF es mayor, por lo que 0. El total es 3+0=3, y tu algoritmo obtendrá 0+1=1, es decir, menos puntos. Pero esto no significa que gane su problema, porque no se cumplen varias condiciones. Y si se conoce de antemano el máximo de FF, la tabla se calcula un poco diferente, en el primer lugar "virtual" se pone el valor máximo, y nuestros lugares se calculan ya en base a esto (el número de puntos obtenidos será diferente).

 
Yuri Evseenkov:
¿La regla de que el número de aciertos es fijo e igual para todos es relevante?

No, nunca ha existido tal norma. Sólo hay un máximo permitido. Cuantos menos aciertos, mejor, que es el segundo criterio más importante después de la precisión.

Personalmente, no me voy a preocupar por esto, voy a utilizar todo el límite de accesos, es decir, apuesto por la precisión.

 
Alexander Laur:

En resumen, es una tontería, no un campeonato.

Los criterios para determinar el ganador se inventan sobre la marcha.

En 15 páginas tendremos que introducir un parámetro para estimar el ganador.

Es un apuro, no está bien pensado.

Y la realidad es más complicada que los sueños. :)

¿Es éste su pensamiento del día? ¿O el pensamiento del año?

Los criterios se aprobaron hace una docena de páginas, pero los principios de cálculo y las fórmulas son incluso anteriores. Hay muchos desbordamientos, lo que complica la comprensión del material por parte del público - ahora tienes el mérito de ello, enhorabuena.

Me han preguntado y he respondido. Si me preguntan mañana, les responderé de nuevo. Pero mañana, mañana, vendrá Vasya Vyazaperelezayko y volverá a comentar profundamente: "¡El Campeonato es una mierda, las reglas se inventan sobre la marcha!"..........

 
Alexander Laur:
Entonces responda a la pregunta: ¿Por qué la precisión es 3 veces más valiosa que el número de llamadas de FF?

Así lo decidí, el organizador porque. También hay otras razones.

¿Ha escrito alguna vez su propio algoritmo de optimización? ¿Te imaginas lo que es encontrar el 1 correcto entre 2E16 y utilizar sólo 50 intentos? Es más difícil que encontrar una aguja entre miles de millones de pajares. Y esto sólo si hay un solo parámetro, ¿y si hay 500? 1000? 1000000?

 
Alexander Laur:
Son las "otras" razones las que interesan, es decir, los argumentos a favor del número 3 en lugar del número 10, por ejemplo.
La relación empírica. Estoy dispuesto a esperar 3 minutos y obtener un resultado 3 veces más preciso, que en un minuto y como resultado mucho peor. Otras proporciones no son prácticas.
 
Alexander Laur:
¿Y lo consideras como un argumento digno de determinar un ganador?

¿Y crees que yo no? - No deberías pensar así.

Responde a mi pregunta:

Andrey Dik:

¿Ha escrito alguna vez su propio algoritmo de optimización? ¿Te imaginas, por ejemplo, lo que supone encontrar el correcto entre 2E16 valores y utilizar sólo 50 intentos? Es más difícil que encontrar una aguja entre miles de millones de pajares. Y esto sólo si hay un solo parámetro, ¿y si hay 500? 1000? 1000000?

 
Alexander Laur:
No estoy contando nada, estoy preguntando y esperando una respuesta. Por qué debo especular cuando puedo preguntar y obtener una respuesta de la fuente.

Esa es la respuesta. Una relación empírica. No encontrará una respuesta con base científica en ningún sitio.

Intenté encontrar la dependencia de la precisión de la solución en el número de aciertos con una probabilidad de acierto dada junto con Matemat, pero no lo conseguimos. Quizás tenga algo que ver con la regla de las 3 sigmas, pero no necesariamente.

 
Alexander Laur:

...una pregunta directa: ¿se debe permitir que un algoritmo que no puede encontrar un extremo con un error determinado, aunque no sea exacto, participe en el Campeonato?

Así que me siento y reflexiono... Responde directamente o no. Me he decidido: ¡tengo que responder!)

¿Por qué ha preguntado por la importancia de que el criterio de "precisión" supere al de "manejo" por un factor de 3? Si hay un criterio de "precisión", hay que asumir que los participantes no tendrán una precisión del 100%... Para eso está el criterio de "precisión", para clasificar por precisión. Por lo tanto, concluimos - ¡puede!, pero no debe (debería), porque por qué alguien competiría si su algoritmo siempre da una respuesta 100% exacta, y simultáneamente significa que para un número aceptable de llamadas FF, ya que la respuesta del algoritmo una vez recibido. Por lo tanto, inequívocamente, ¡no debería! - Además, dicho algoritmo debe estar oculto y no mostrarse a nadie.

Y sí... Hay un punto muy importante. Si el algoritmo no "sabe" dónde se encuentra el máximo absoluto -y no lo sabe, si no, ¿por qué lo buscaría? Nosotros, "los de fuera", sólo podemos juzgar el grado de precisión del algoritmo realizando experimentos con él, pero no podemos establecer el parámetro "buscar con esta precisión", por razones que espero que ya estén claras.

 
Alexander Laur:

La respuesta es sencilla:

1. Si un algoritmo NO PUEDE encontrar un extremo con una precisión determinada, no tiene cabida en el Campeonato;

2. Teniendo en cuenta el punto 1, sólo los algoritmos que BUSQUEN un extremo con una precisión determinada participarán en la determinación del ganador;

3. no hay clasificación en términos de precisión. La precisión viene dada por un rango;

4. determinar un ganador según el número de veces que se invoque el FF.

Me iré en este momento, son las 2 de la mañana.

Entendido.

Pero no se puede hacer así.

En primer lugar: no hay ninguna razón objetiva para fijar la precisión. Para alguien, una desviación del 1% no le gustará, y para alguien, el 20% será feliz. depende en gran medida del tipo de tarea y del tipo de algoritmo. Establecer una "precisión de paso" en un campeonato supondría descartar diferentes soluciones algorítmicas interesantes.

En segundo lugar: la precisión depende de los accesos FF y de forma no lineal. Para diferentes tipos de algoritmos esta dependencia será diferente y no se puede decir simplemente "este algoritmo es bueno, y este es malo" - por eso utilizamos dos criterios para evaluar los algoritmos de la manera más objetiva posible. Había un tercer criterio -el tiempo de ejecución del algoritmo (no FF)- pero es muy subjetivo, porque los algoritmos OCL que lo utilizan volarán en algunos ordenadores y se ralentizarán en otros. Por lo tanto, sólo quedan dos criterios: la precisión y las referencias a los FF.

Razón de la queja: