O registro agora está aberto.
Todos aqueles que desejam participar, por favor, inscrevam-se aqui. Em 20 de junho de 2016, serão apresentados os códigos de exemplos de scripts executáveis com interfaces para conexão de algoritmos. Em outras 3 semanas, em 11 de julho de 2016, o campeonato em si terá início.
O registro agora está aberto.
Todos aqueles que desejam participar, por favor, inscrevam-se aqui. Em 20 de junho de 2016, serão apresentados os códigos dos scripts executáveis de exemplo com interfaces para conexão de algoritmos. E em 3 semanas começará o campeonato em si.
Fórum sobre comércio, sistemas comerciais automatizados e estratégias comerciais de teste
Andrey Dik, 2016.06.10 17:24
E em geral, há idéias, ou tudo está em processo de reflexão. Se algo me permite compartilhar meus pensamentos.
É claro que há idéias.
Um artigo é muito bom. Em que direção você quer escrever o artigo?
É possível adiar o campeonato, se houver uma real necessidade dele. Mas ainda há muito tempo antes do seu início, o campeonato começa em 11 de julho de 2016.
É claro que sim.
Desembucha. Condenaremos.
O artigo é muito bom. Mas não se pode esperar mais. As pessoas têm uma memória curta como regra e rapidamente esquecem onde tudo começa....
class CFF{ public: virtual double fun(double & x[]){return(0);} virtual string type(){return("");} virtual double value(){return(0);} virtual string note(){return("");} }; class CFF1:public CFF{ public: double fun(double & x[]){ int c=ArraySize(x); double s=0; for(int i=0;i<c;i++){ s+=MathPow(x[i],2); } return(s); } virtual string type(){ return("min"); } virtual double value(){ return(0); } virtual string note(){ return(""); } }; class CFF2:public CFF{ public: double fun(double & x[]){ int c=ArraySize(x); double s=0; double p=0; for(int i=0;i<c;i++){ s+=MathAbs(x[i]); p*=MathAbs(x[i]); } return(s+p); } virtual string type(){ return("min"); } virtual double value(){ return(0); } virtual string note(){ return(""); } };
Aqui está uma construção para a seleção de uma função a ser investigada (ff). Uma classe base com métodos virtuais e classes infantis com diferentes funções.
Declaro-o assim:
CFF * ff=new CFF1();
Ou assim, dependendo de qual função é necessária:
CFF * ff=new CFF2();
Na função de otimização, temos um parâmetro do tipo CFF para passar um ponteiro para a classe com o ff selecionado.
***
Métodos da classe base:
virtual double fun(double & x[]){return(0);} virtual string type(){return("");}
divertido - função em si, os parâmetros são passados em uma matriz de tipo duplo.
tipo - tipo de função: mínimo ou máximo - o que procurar na função mínimo ou máximo.
O resto não é necessário, eu estava fazendo para mim mesmo... Para a memória: valor - valor no extremo, nota - alguma descrição. Eles não são necessários para o Campeonato, especialmente em termos de valor.
***
Agora eu não tenho uma função, mas uma classe e nela um método para definir o ff:
void SetFF(CFF * aff){ this.ff=aff; }Então eu uso isto.ff.fun(...) em todos os lugares;
A classe precisará ser colocada em uma biblioteca para o campeonato. Faça uma função na biblioteca, que será chamada de fora, esta função fará tudo: criar uma instância da classe, definir todos os parâmetros passados para a função, etc.
O nome da função é padrão para todos. Todos têm seus próprios nomes de arquivos de biblioteca.
O verificador tem um roteiro. O verificador muda o nome da biblioteca importada, a compila e a executa.
É isso aí:
CFF * ff=new CFF1();
No roteiro do verificador.
A classe precisará ser colocada em uma biblioteca para o campeonato. Faça uma função na biblioteca, que será chamada de fora, esta função fará tudo: criar uma instância da classe, definir todos os parâmetros passados para a função, etc.
O nome da função é padrão para todos. Todos têm seus próprios nomes de arquivos de biblioteca.
O verificador tem um roteiro. O Checker muda o nome da biblioteca importada, compila, executa.
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
O Campeonato de Otimização de Algoritmos é concebido como uma competição para pessoas que são buscadoras, inquisitivas, para quem ficar parado significa retroceder.
O Campeonato é uma grande oportunidade para testar seus algoritmos sob duras condições competitivas, que são mais difíceis e exigentes do que aqueles encontrados na vida cotidiana. É uma chance de garantir que seu algoritmo não possa melhorar, o que significa confiança para resolver os desafios da vida futura, ou para garantir que seu algoritmo precise ou possa ser ainda mais refinado e melhorado.
Regras:
1. Algoritmos de otimização baseados em quaisquer princípios e teorias de busca são admitidos ao campeonato, absolutamente quaisquer.
2. Cada participante poderia representar apenas um algoritmo em código fonte ou na forma compilada de *.ex5 biblioteca.
3. Ao final do campeonato, os participantes serão classificados de acordo com os seguintes critérios: velocidade do algoritmo, número de corridas da função de aptidão, precisão na busca de soluções.
Termos:
1. o organizador se reserva o direito de recusar a participação de qualquer pessoa sem explicar as razões.
2. O organizador tem o direito de participar do campeonato.
3. o organizador recusará os prêmios em favor dos participantes no caso de disponibilidade do fundo de prêmios de patrocinadores potenciais no momento do anúncio dos prêmios.
Organizador do Campeonato de Algoritmos de Otimização: Joo.
Seja corajoso, participe e ganhe. Pode muito bem acontecer que seu algoritmo seja usado no futuro no otimizador interno da MT, por que não?