Maxim Dmitrievsky #: Parece não haver nada complicado para o lbfgs.
Você não forneceu nem os códigos-fonte do banco de testes nem o lbfgs, portanto, não há nada sobre o que conversar. Ninguém vai usar o python e seus módulos aqui. Todos os códigos-fonte MQL5 são fornecidos nesse artigo (e agora nos comentários do artigo) para reproduzir os resultados.
Você não forneceu nem os códigos-fonte do banco de testes nem os lbfgs, portanto, não há nada sobre o que conversar. Ninguém vai descobrir o interior do python e seus módulos aqui. Todos os códigos-fonte MQL5 são fornecidos neste artigo (e agora nos comentários do artigo) para reproduzir os resultados.
Não sou eu quem está escrevendo os artigos, portanto, não vou quebrar nada de propósito. São usadas bibliotecas reconhecidas e confiáveis, em especial a SciPy.
Optimization and root finding ()# SciPy provides functions for minimizing (or maximizing) objective functions, possibly subject to constraints. It includes solvers for nonlinear problems (with support for both local and global optimization algorithms), linear programming, constrained and nonlinear least-squares, root finding, and curve fitting...
Aqui está um novo núcleo de classe de função de teste (o artigo o tem no arquivo):
Basta lançar uma matriz multidimensional (quero dizer, em uma dimensão da matriz há muitas células, espaço multidimensional) de qualquer dimensionalidade em args, e o método espalhará os argumentos da matriz para funções bidimensionais. É claro que, se você lançar uma matriz com dimensionalidade ímpar, uma célula será descartada e não participará dos cálculos. Ou seja, essa é uma função de teste multidimensional com um número par de dimensões.
Mais tarde, eu a lançarei com base em funções unidimensionais, será mais prático e será possível criar gráficos com mais clareza.
O código comentado é a capacidade de girar a função em algum ângulo. Isso é um problema para muitos AOs. Ele ainda não é usado em lugar algum.
Não há vontade de pensar nisso por muito tempo. Você precisa de alguma função como a do artigo para reproduzir os resultados.
Não vejo nenhum problema. Apenas a complexidade computacional do problema aumentará.
Os limites são tomados incorretamente no Megacity. Um Megacity correto deve ter a seguinte aparência: a imagem foi criada em MQL5 (na qual os algoritmos da tabela foram testados):
Além disso, os resultados em uma função bidimensional não são um indicador. Além disso, é preciso contar as médias (mesmo que você use a simulação de população, é preciso observar o valor médio entre todas as populações - testes separados). O número de execuções de FF também não é limitado em seus testes.
Observe o código acima, pois há um esquema correto de teste de métodos de gradiente.
Os limites são tomados incorretamente no Megacity. Um Megacity correto deve ter a seguinte aparência: a imagem é construída em MQL5 (na qual os algoritmos da tabela são testados):
Além disso, os resultados em uma função bidimensional não são um indicador. Além disso, é necessário contar as médias (mesmo que você use a simulação de população, é necessário observar o valor médio entre todas as populações - testes separados). O número de execuções de FF também não é limitado em seus testes.
Observe o código acima, pois há um esquema correto de teste de métodos de gradiente.
Nos artigos, o gráfico de exatamente o ph-i que otimizei é desenhado. Não vejo sentido em mudar de uma coisa para outra. Este parece ainda mais simples. Por que eles falam de uma f-iie de 1000 dimensões, mas sempre otimizam uma tridimensional?
Maxim Dmitrievsky #: Nos artigos, é desenhado o gráfico exatamente da função que otimizei. Não vejo sentido em mudar de uma coisa para outra. Este parece ainda mais fácil. Por que se fala de uma f-iie de 1000 dimensões, mas é sempre uma tridimensional que é otimizada?
Este aqui:
não corresponde a isso de forma alguma:
Sobre a "f-i de 1000 dimensões", consulte a postagem anterior desta discussão.
Como uma função 2D é repetidamente duplicada, você pode plotar o resultado 3D de uma função 2D (o espaço de 1000 dimensões não pode ser visualizado) e plotar pontos do espaço multidimensional no espaço 3D correspondente.
Повышение размерности можно достичь путем дублирования одномерных бенчмарков или двумерных полученная сумма делится на количество тестовых функций. таком образом всегда известны мин и макс тестовой функции независимо от размерности
Sobre o "f-i de 1000 dimensões", consulte a postagem anterior nesta discussão.
Como uma função 2D é repetidamente duplicada, você pode plotar o resultado 3D de uma função 2D (o espaço de 1000 dimensões não pode ser visualizado) e plotar pontos do espaço multidimensional no espaço 3D correspondente.
Dei uma olhada nas funções de teste aqui. Por imagens, elas coincidem.
Ainda não entendi o truque com as multidimensionais, preciso descobrir isso.
Вводная статья об алгоритмах оптимизации (АО). Классификация. В статье предпринята попытка создать тестовый стенд (набор функций), который послужит в дальнейшем для сравнения АО между собой, и, даже, возможно, выявления самого универсального алгоритма из всех широко известных.
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
Não parece haver nada complicado para lbfgs nele.
Ainda não experimentei o adam e o rmsprop, que são considerados mais avançados. Mas, como este faz isso, eles definitivamente podem fazer.
Megacidade
Parece não haver nada complicado para o lbfgs.
Você não forneceu nem os códigos-fonte do banco de testes nem o lbfgs, portanto, não há nada sobre o que conversar. Ninguém vai usar o python e seus módulos aqui. Todos os códigos-fonte MQL5 são fornecidos nesse artigo (e agora nos comentários do artigo) para reproduzir os resultados.
Você não forneceu nem os códigos-fonte do banco de testes nem os lbfgs, portanto, não há nada sobre o que conversar. Ninguém vai descobrir o interior do python e seus módulos aqui. Todos os códigos-fonte MQL5 são fornecidos neste artigo (e agora nos comentários do artigo) para reproduzir os resultados.
https://colab.research.google.com/drive/1bF0rFG94phR-au51wpAhi_0WLUUfgNIy?usp=sharing
pressione o botão "play" várias vezes
Não sou eu quem está escrevendo os artigos, portanto, não vou quebrar nada de propósito. São usadas bibliotecas reconhecidas e confiáveis, em especial a SciPy.
O Adam em Megacity passou a residir no último andar.
Adicionei o código ao bloco de notas. Adicionarei mais alguns solucionadores de gradiente posteriormente, se desejar.
Aqui está um novo núcleo de classe de função de teste (o artigo o tem no arquivo):
Basta lançar uma matriz multidimensional (quero dizer, em uma dimensão da matriz há muitas células, espaço multidimensional) de qualquer dimensionalidade em args, e o método espalhará os argumentos da matriz para funções bidimensionais. É claro que, se você lançar uma matriz com dimensionalidade ímpar, uma célula será descartada e não participará dos cálculos. Ou seja, essa é uma função de teste multidimensional com um número par de dimensões.
Mais tarde, eu a lançarei com base em funções unidimensionais, será mais prático e será possível criar gráficos com mais clareza.
O código comentado é a capacidade de girar a função em algum ângulo. Isso é um problema para muitos AOs. Ele ainda não é usado em lugar algum.
Não há vontade de pensar nisso por muito tempo. Você precisa de alguma função como a do artigo para reproduzir os resultados.
Não vejo nenhum problema. Apenas a complexidade computacional do problema aumentará.Os limites são tomados incorretamente no Megacity. Um Megacity correto deve ter a seguinte aparência: a imagem foi criada em MQL5 (na qual os algoritmos da tabela foram testados):
Além disso, os resultados em uma função bidimensional não são um indicador. Além disso, é preciso contar as médias (mesmo que você use a simulação de população, é preciso observar o valor médio entre todas as populações - testes separados). O número de execuções de FF também não é limitado em seus testes.
Observe o código acima, pois há um esquema correto de teste de métodos de gradiente.
Os limites são tomados incorretamente no Megacity. Um Megacity correto deve ter a seguinte aparência: a imagem é construída em MQL5 (na qual os algoritmos da tabela são testados):
Além disso, os resultados em uma função bidimensional não são um indicador. Além disso, é necessário contar as médias (mesmo que você use a simulação de população, é necessário observar o valor médio entre todas as populações - testes separados). O número de execuções de FF também não é limitado em seus testes.
Observe o código acima, pois há um esquema correto de teste de métodos de gradiente.
Nos artigos, é desenhado o gráfico exatamente da função que otimizei. Não vejo sentido em mudar de uma coisa para outra. Este parece ainda mais fácil. Por que se fala de uma f-iie de 1000 dimensões, mas é sempre uma tridimensional que é otimizada?
Este aqui:
não corresponde a isso de forma alguma:
Sobre a "f-i de 1000 dimensões", consulte a postagem anterior desta discussão.
Como uma função 2D é repetidamente duplicada, você pode plotar o resultado 3D de uma função 2D (o espaço de 1000 dimensões não pode ser visualizado) e plotar pontos do espaço multidimensional no espaço 3D correspondente.
Este aqui:
Não corresponde a este de forma alguma:
Sobre o "f-i de 1000 dimensões", consulte a postagem anterior nesta discussão.
Como uma função 2D é repetidamente duplicada, você pode plotar o resultado 3D de uma função 2D (o espaço de 1000 dimensões não pode ser visualizado) e plotar pontos do espaço multidimensional no espaço 3D correspondente.
Dei uma olhada nas funções de teste aqui. Por imagens, elas coincidem.
Ainda não entendi o truque com as multidimensionais, preciso descobrir isso.