No para los desarrolladores de MT. ¿Por qué sustituir INIT_PARAMETERS_INCORRECT? - página 7

 
Сергей Таболин:

Parece que eres tú el que no ha entendido nada. Así que tu "consejo" demasiado confiado se va al diablo.

No se irá por el desagüe))

Tu pregunta de aficionado tiene respuesta, así como mi consejo de exceso de confianza.

No eres moderador ni administrador, así que no te corresponde decidir a quién se le jode.

 
TheXpert:

Ni siquiera es necesario entender las bases de los algoritmos genéticos para pulsar el botón de optimización. basta con pulsar el botón.

No, hasta ahí llega el secado de gatos en el microondas.

No es necesario fomentar esa actitud consumista de "he pulsado el botón, ¿por qué no funciona?".

ps: mi post no tiene nada que ver con el uso de la genética.

 
Сергей Таболин:

Está fundamentalmente equivocado.

Una vez más, como usuario veo: Optimización lenta/rápida.

Eso es todo, no me interesa. Ni como conocimiento profundo, ni a la luz de las cosas fundamentales.

Me temo que un enfoque tan amateur de las cosas le traerá muchos problemas. Especialmente en cuestiones financieras. Si no quieres entender, serás forraje para los que sí lo hacen.

Si dice "rápido" y "lento", el primer pensamiento que se le debería ocurrir a una persona razonable es: ¿Por qué hay un "lento", si se pueden obtener los mismos resultados rápidamente?

Pero a cada uno lo suyo.

 
Сергей Таболин:

Así es.

Sólo que me inclino a pensar que las limitaciones deben ser abordadas, en la medida de lo posible, por los desarrolladores. Lo mismo ocurre con las debilidades.

Intento no utilizar la optimización genética en absoluto. Pero cuando tengo que hacerlo, no quiero meterme en medio de estos algoritmos. Bueno, no es para un usuario.

Por ejemplo, yo me siento frente a mi ordenador, me limito a pulsar las teclas y no me importa en absoluto lo que ocurre desde que pulso la tecla hasta que el personaje aparece en la pantalla. No me interesa en absoluto cómo el procesador, la tarjeta gráfica, los tornillos, los refrigeradores, cómo interactúan. Tampoco es para el usuario medio.

Pues exactamente por eso: hay que entender que pulsar un botón de símbolo está diseñado para producir un solo símbolo. Y hay límites para, por ejemplo, la velocidad de los clics. Y tú intentas pulsar el botón 50 veces por segundo, y te molesta que no muestre 50 caracteres.

Pregunta: la capacidad de percibir 50 caracteres por segundo, ¿debería eliminarse esta restricción? ¿No le parecería peor a la mayoría de los usuarios, con un traqueteo de los contactos que se perciben como caracteres?

 
TheXpert:

Ni siquiera hay que entender las bases de los algoritmos genéticos para pulsar el botón de optimización. basta con pulsar el botón.

¿Por qué habría de hacerlo?

Si no lo entiende, no debe preguntar "por qué tengo esta basura". Si funcionó, entonces "simplemente funcionó". Fue diseñado así.

Cualquier herramienta requiere un cierto nivel de comprensión. Esto no excluye el uso de cajas negras, pero incluso cuando se utilizan cajas negras, hay que entender claramente los patrones básicos por los que funciona la caja negra.

 

¡Caballeros, camaradas!

Estamos entrando en una discusión sobre quién entiende qué y si debe o no entenderlo. Y la cuestión de fondo ha quedado relegada a un segundo plano.

No conozco los mecanismos de la genética, así que haz un esfuerzo por entender lo que quiero decir.

Hay 117649 variantes (pasajes). De ellos, sólo 1953 están permitidos. Básicamente, ¡¡¡los realmente inaceptables son 1 (000000)!!! Y 115695 son repeticiones. Diferentes variaciones de esas 1953 "permisibles". Para ahorrar tiempo y recursos, los excluyo por INIT_PARAMETERS_INCORRECT.

Siguiente. La genética recoge la primera población de 512 individuos. ¿Verdad?

Y esta población incluye inmediatamente 502 individuos "inaceptables". 10 personas trabajando no es suficiente. Estoy de acuerdo.

Pero 512 es sólo 1/4 de 1953 (aproximadamente).

Sin entrar a profundizar en la genética, no me queda claro por qué la primera población no puede reunirse sólo con los parámetros "permitidos".

Y, de hecho, ¿qué impide que las poblaciones posteriores se recojan sólo a partir de parámetros válidos?
 
Andrey Khatimlianskii:

No, eso es lo mismo que secar gatos en el microondas.

No es necesario fomentar esta actitud consumista de "he pulsado el botón, ¿por qué no funciona?

Sólo hablo de este botón, ya expliqué mi posición más arriba. Te diré más, conozco los algoritmos genéticos, no me ayuda a optimizar de ninguna manera
 

Entre otras cosas, yo personalmente sólo utilizo INIT_PARAMETERS_INCORRECT en el modo de optimización para cribar los parámetros que no son, literalmente, inválidos, sino simplemente pases innecesarios.

Como ejemplo:

input   bool   использовать_параметр   = true;
input   int    парам_1                 = 5;
input   int    парам_2                 = 12;
input   int    парам_3                 = 100;
input   int    парам_4                 = 1;

........

Por lo tanto, si durante la prueba y durante el trabajo del Asesor Experto cuandousing_parameter = false sus parámetros no tienen absolutamente ninguna importancia, entonces durante la optimización la búsqueda de estos parámetros es simplemente innecesaria, por lo queINIT_PARAMETERS_INCORRECT se emite aexcepción de una sola pasada con los valores iniciales. Esto ahorra mucho tiempo. Al fin y al cabo, hay un montón de pases inútiles para un solo pase válido. Y la genética trata de tamizar los pases inútiles como un error grosero.

Los desarrolladores, en lugar de solucionar de alguna manera este problema, te mandan a estudiar esta misma genética con prohibiciones aplicadas. Para que tuvieran tiempo de estudiarlo, supongo.

Lo repito una vez más: ¡el usuario no necesita saber cómo funciona la genética! Corresponde a los desarrolladores encontrar una solución a este problema.

 
Сергей Таболин:

Entre otras cosas, yo personalmente sólo utilizo INIT_PARAMETERS_INCORRECT en el modo de optimización para cribar los parámetros que no son, literalmente, inválidos, sino simplemente pases innecesarios.

Como ejemplo:

Por lo tanto, si durante la prueba y durante el trabajo del Asesor Experto cuandousing_parameter = false sus parámetros no tienen absolutamente ninguna importancia, entonces durante la optimización la búsqueda de estos parámetros es simplemente innecesaria, por lo queINIT_PARAMETERS_INCORRECT se emite aexcepción de una sola pasada con los valores iniciales. Esto ahorra mucho tiempo. Después de todo, hay un montón de pases inútiles para un solo pase válido. Y la genética trata de tamizar los pases inútiles como un error grosero.

Los desarrolladores, en lugar de solucionar de alguna manera este problema, te mandan a estudiar esta misma genética con prohibiciones aplicadas. Para que tuvieran tiempo de estudiarlo, supongo.

Lo repito una vez más: ¡el usuario no necesita saber cómo funciona la genética! Pero encontrar una solución a este problema es una tarea para los desarrolladores.

Usted tiene 4 parámetros, por lo que necesita para organizar el funcionamiento de estos 4 parámetros sólo con los valores correctos, entonces la genética puede ser de utilidad.

 
Сергей Таболин:


Hay 117649 opciones (pases). De ellos, sólo 1953 son válidos. ¡¡¡En principio, los realmente inaceptables son 1 (000000)!!! Y 115695 son repeticiones. Diferentes variaciones de esas 1953 "permisibles". Para ahorrar tiempo y recursos los excluyo por INIT_PARAMETERS_INCORRECT.

Personalmente, la mayoría de las veces utilizo INIT_PARAMETERS_INCORRECT sólo en elmodo de optimización, precisamente para cribar parámetros que no son inadmisibles, literalmente, sino simplemente pasesinnecesarios.

Este es exactamente su error: no hay pases "innecesarios" en la genética. Lo pone todo en la estantería, tamizando lo innecesario, a costa de lo que se ahorra en tiempo y recursos. Y sólo lo distrae.

De hecho, te contradices. Primero dices que quieres que todo funcione por sí mismo pulsando un botón mágico, sin ningún esfuerzo adicional por tu parte. Pero al mismo tiempo creas chamanes en el código, supuestamente ayudando al algoritmo de optimización.

En resumen, ahora todo está claro:

Sergei Tabolin:

¿Qué te parece esto?

121

entonces el resultado será como 21. Y una cadena de 21 repetiría ese resultado. Duplicación, tiempo extra para, en principio, carreras inútiles...

No tienes que eliminar nada por INIT_PARAMETERS_INCORRECT. Calcula 121 de acuerdo con la lógica de tu programa, y la genética hará su trabajo, y el resultado se obtendrá en menos de 1953 pasadas (espero).

Si optimiza utilizando la búsqueda completa lenta, entonces por supuesto no se necesitan pases extra. Puede introducir un parámetro adicional en su Asesor Experto que establezca el tipo de optimización. Si es una búsqueda completa, los pases extra son rechazados, mientras que si es genética, no lo son. Es una pena que MQL no ofrezca la posibilidad de conocer el tipo de optimización. Los desarrolladores deberían pedir que se añada dicha función.

Razón de la queja: