Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
De alguma forma...
De alguma forma...
Obrigado! Você pode ver a mão do mestre imediatamente! Amanhã estarei experimentando para ver o que vai sair.
De alguma forma...
Começou a experimentar o código, criou um exemplo artificial - preenchido na matriz
Entendi:
Ou seja, temos uma variante, mas também esperamos outra variante.
É possível ensinar o algoritmo para encontrá-lo também?
Começou a experimentar o código, criou um exemplo artificial - preenchido na matriz
Entendi:
Ou seja, temos uma variante, mas também esperamos outra variante.
O algoritmo pode aprender a encontrá-lo também?
E a variante "0-1 3-6 7-9" não é melhor do que a variante "0 - 0-1 2-5 7-9" - ambas são de 0 a 1 e têm 2 saltos de comprimento 1 cada.
Duas opções aparecem neste caso:
1 - fazer a mesma coisa, mas a partir do final do conjunto de saltos.
2 - olhar imediatamente não para o segmento mais próximo, mas com uma tolerância. Mas neste caso haverá ainda mais se houver muitos dados e muitas seqüências de ancoragem.
Entretanto, após a variante 1, você vai querer começar a construir cadeias a partir de todas as posições iniciais possíveis. Isto é correto, mas a quantidade de trabalho para o algoritmo aumenta consideravelmente.
Sim! É necessário iniciar a construção de variantes de cada um dos segmentos do conjunto inicial e continuar a construção até o início e o fim.
E a opção "0-1 3-6 7-9" não é melhor que a opção "0 - 0-1 2-5 7-9" - ambas são de 0 a 1 e têm 2 pulos de comprimento 1 cada.
Neste caso, eles são iguais, concordo, mas são diferentes e pelos termos do problema precisaremos estimar a soma de suas pontuações, e até construirmos uma linha não saberemos a pontuação combinada de todos os segmentos.
Entretanto, após a opção 1, haverá o desejo de começar a construir cordas a partir de todas as posições iniciais possíveis. Isto é correto, mas a quantidade de trabalho para o algoritmo aumenta consideravelmente.
Sim! É necessário iniciar a construção de variantes de cada um dos segmentos do conjunto inicial e continuar a construção até o início e o fim.
Esta também me parece ser a estratégia mais correta! No entanto, acho que pode haver variantes duplicadas.
Você pode ajudar escrevendo algum código?
As duplicatas não foram peneiradas da matriz, apenas marcadas. Como cada variante agora armazena os segmentos em duas matrizes, para torná-la mais conveniente, elas podem ser combinadas em uma matriz usando o métodoCombine().
Como agora cada variante armazena os segmentos em duas matrizes, você pode combiná-los em uma matriz usando o métodoCombine() para torná-lo mais conveniente.
Dmitry, obrigado pelo novo algoritmo!
Sim, de fato, há muitas cópias.
Pelo que entendi, não podem ser contados. Eu não tinha conseguido esperar pela combinação de 1000 elementos - meu netbook começou a ficar sem memória :(
E é possível não usar todas as combinações ao adicionar um segmento, mas apenas um certo número de possíveis na etapa atual, digamos, os melhores 10?
Dmitry, obrigado pelo novo algoritmo!
Sim, de fato, há muitas cópias.
Pelo que entendi, você não pode contá-los. Eu mal podia esperar pela combinação de 1000 elementos - meu netbook começou a ficar sem memória :(
É possível não usar todas as combinações ao adicionar um segmento, mas apenas um certo número de possíveis na etapa atual, digamos, os melhores 10?
Para saber que eles são os melhores, você tem que compará-los com outros, ou seja, você tem que obtê-los todos primeiro. Outra coisa é otimizar de alguma forma o algoritmo, mas não tenho um objetivo de dedicar minha vida a este algoritmo).
Talvez decidir sobre o critério de suficiência e primeiro obter todas as opções, a partir de apenas um segmento, escolhido aleatoriamente, e assim por diante, até que uma opção satisfatória apareça.
E a segunda opção pode ser acelerada - para dimensionar a matriz com variantes não um elemento de cada vez, mas várias dezenas de elementos ao mesmo tempo, e no final para apará-la.
Para saber que eles são os melhores, você tem que compará-los com outros, ou seja, você tem que obtê-los todos primeiro. Outra coisa é otimizar o algoritmo de alguma forma, mas eu não tenho o objetivo de dedicar minha vida a este algoritmo).
Estou falando de um único segmento, digamos que ele tem um coeficiente para avaliar sua qualidade, então, após cada iteração, ramificamos, por exemplo, apenas nos 10 primeiros desses coeficientes.
Talvez decidir sobre o critério de suficiência e primeiro obter todas as variantes, a partir de apenas um segmento, escolhido aleatoriamente e assim por diante, até aparecer uma variante satisfatória.
Infelizmente, "suficiência" é difícil de estimar aqui - aqui é necessário conhecer um padrão, então a partir dele é possível definir uma tolerância, e eu não tenho um padrão.
E a segunda opção pode ser acelerada - para escalar a matriz com opções não um elemento de cada vez, mas várias dezenas de elementos, e ao final dela para alinhar.
Não sei bem o que você quer dizer com paralelismo usando OpenCL?
1. Estou falando de um único segmento, digamos que ele tem um coeficiente para avaliar sua qualidade, então após cada iteração ramificamos, por exemplo, apenas para os 10 primeiros desses coeficientes.
2. Infelizmente, "suficiência" é difícil de estimar aqui - você precisa conhecer a referência, então você pode determinar a tolerância a partir dela, e eu não tenho uma referência.
3. não tenho bem a certeza do que você quer dizer com paralelismo usando OpenCL?
1. onde está esse coeficiente?
2. E o ponto 1?
3. não, é mais simples. Ok, vou tentar acelerar amanhã.