Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
De alguna manera...
De alguna manera...
Gracias. ¡Se nota enseguida la mano del maestro! Lo probaré mañana a ver qué sale.
De alguna manera...
Empezó a probar el código, creó un ejemplo artificial - rellenó el array
Lo tengo:
Es decir, tenemos una variante, pero también esperamos otra.
¿Es posible enseñar al algoritmo a encontrarlo también?
Empezó a probar el código, creó un ejemplo artificial - rellenó el array
Lo tengo:
Es decir, tenemos una variante, pero estamos esperando otra variante también.
¿Puede el algoritmo aprender a encontrarlo también?
Y la variante "0-1 3-6 7-9" no es mejor que la variante "0 - 0-1 2-5 7-9" - ambas son de 0 a 1 y tienen 2 saltos de longitud 1 cada una.
En este caso aparecen dos opciones:
1 - hacer lo mismo, pero desde el final del conjunto de saltos.
2 - buscar de inmediato no el segmento más cercano, sino con una tolerancia. Pero en este caso habrá aún más si hay muchos datos y muchas secuencias de acoplamiento.
Sin embargo, después de la variante 1, querrás empezar a construir cadenas desde todas las posiciones iniciales posibles. Esto es correcto, pero la cantidad de trabajo para el algoritmo aumenta considerablemente.
Sí, es necesario comenzar la construcción de variantes desde cada uno de los segmentos del conjunto inicial y continuar la construcción hasta el principio y el final.
Y la opción "0-1 3-6 7-9" no es mejor que la opción "0 - 0-1 2-5 7-9" - ambas son de 0 a 1 y tienen 2 saltos de longitud 1 cada una.
En este caso son iguales, estoy de acuerdo, pero son diferentes y por los términos del problema tendremos que estimar la suma de sus puntuaciones, y hasta que no construyamos una línea no sabremos la puntuación combinada de todos los segmentos.
Sin embargo, después de la opción 1, habrá un deseo de empezar a construir cadenas desde todas las posiciones iniciales posibles. Esto es correcto, pero la cantidad de trabajo para el algoritmo aumenta considerablemente.
Sí, es necesario comenzar la construcción de variantes desde cada uno de los segmentos del conjunto inicial y continuar la construcción hasta el principio y el final.
También me parece que ésta es la estrategia más correcta. Sin embargo, creo que puede haber variantes duplicadas.
¿Puedes ayudar escribiendo algo de código?
Los duplicados no se han tamizado del array, sólo se han marcado. Como cada variante almacena ahora los segmentos en dos arrays, para que sea más cómodo, se pueden combinar en un solo array utilizando el métodoCombine().
No he tamizado los duplicados del array, sólo los he marcado. Como ahora cada variante almacena los segmentos en dos arrays, puedes combinarlos en un solo array usando el métodoCombine() para que sea más cómodo.
Dmitry, ¡gracias por el nuevo algoritmo!
Sí, efectivamente hay muchas copias.
Según tengo entendido, no se pueden contar. No he conseguido esperar la combinación de 1000 elementos - mi netbook empezó a quedarse sin memoria :(
¿Y es posible no utilizar todas las combinaciones al añadir un segmento, sino sólo un cierto número de posibles en el paso actual, digamos, las 10 mejores?
Dmitry, ¡gracias por el nuevo algoritmo!
Sí, efectivamente hay muchas copias.
Según tengo entendido, no se pueden contar. No pude esperar a la combinación de 1000 elementos - mi netbook empezó a quedarse sin memoria :(
¿Es posible no utilizar todas las combinaciones al añadir un segmento, sino sólo un determinado número de posibles en el paso actual, por ejemplo, las 10 mejores?
Para saber que son los mejores, hay que compararlos con otros, es decir, hay que conseguirlos todos primero. Otra cosa es optimizar de alguna manera el algoritmo, pero no tengo el objetivo de dedicar mi vida a este algoritmo).
Tal vez decida el criterio de suficiencia y obtenga primero todas las opciones, empezando por un solo segmento, elegido al azar, y así sucesivamente, hasta que aparezca una opción satisfactoria.
Y la segunda opción puede ser acelerada - para escalar la matriz con variantes no un elemento a la vez, pero varias decenas de elementos a la vez, y al final para recortarlo.
Para saber que son los mejores, hay que compararlos con otros, es decir, hay que conseguirlos todos primero. Otra cosa es optimizar el algoritmo de alguna manera, pero no tengo el objetivo de dedicar mi vida a este algoritmo).
Estoy hablando de un solo segmento, digamos que tiene un coeficiente para evaluar su calidad, entonces después de cada iteración nos ramificamos, por ejemplo, sólo en los 10 primeros de estos coeficientes.
Tal vez se decida un criterio de suficiencia y se obtengan primero todas las variantes, empezando por un solo segmento, elegido al azar y así sucesivamente, hasta que aparezca una variante satisfactoria.
Desgraciadamente, la "suficiencia" es difícil de estimar aquí - aquí es necesario conocer una norma, luego a partir de ella es posible definir una tolerancia, y yo no tengo una norma.
Y la segunda opción puede ser acelerado - para escalar matriz con opciones no un elemento a la vez, pero varias decenas de elementos, y al final para alinearlo.
No sé muy bien a qué te refieres con lo de paralelizar usando OpenCL.
1. Estoy hablando de un solo segmento, digamos que tiene un coeficiente para evaluar su calidad, entonces después de cada iteración nos ramificamos a, por ejemplo, sólo los 10 mejores de esos coeficientes.
2. Desgraciadamente, la "suficiencia" es difícil de estimar en este caso: hay que conocer el punto de referencia, y a partir de ahí se puede determinar la tolerancia, y yo no tengo un punto de referencia.
3. No sé muy bien a qué te refieres con lo de paralelizar usando OpenCL.
1. ¿Dónde está este coeficiente?
2. ¿qué pasa con el punto 1?
3. No, es más sencillo. Ok, trataré de acelerarlo mañana.