Campeonato de Otimização de Algoritmos. - página 117

 
A primeira chamada para o FF deve consistir de uma matriz formada pelo RNG normal da MT com uma distribuição uniforme? É impossível usar seu próprio RMS com uma distribuição normal? Que assim seja, eu não insisto. Sobre os critérios de avaliação. Você está sugerindo contar o tempo de execução do código da máquina. Mas, desculpe-me, isso é outra coisa. Uma coisa é afinar o código para a busca eficiente de extrema e outra é levar em conta o tempo de máquina necessário para executar os componentes do programa, que além do mais depende do estado do hardware no momento. Seria mais apropriado contar o número de chamadas para ftp. Mas aqui eu não insisto. Não quero me atolar novamente em questões processuais, uma vez que não importaria meu algoritmo. Tenho uma pergunta agora. A regra de que o número de chamadas para o FF é fixo e o mesmo para todos é relevante?
 

Yuri Evseenkov:
1. Первое обращение к фф должно состоять иэ массива сформированного штатным ГСЧ МТ с равномерным распределением? Свой ГСЧ с нормальным распределением использовать нельзя?

2. Sobre os critérios de avaliação. Você se propõe a contar o tempo de execução do código da máquina.

1. Sobre a primeira inicialização não insisto, apenas recomendo - para o FF desconhecido (e é o FF desconhecido que estará no campeonato) quaisquer parâmetros iniciais são igualmente bons, porque o FF é desconhecido. É por isso que é melhor usar qualquer RNG (seja o que for, mas de preferência com o maior número possível de variações). Ainda mais, para resultados estatisticamente confiáveis serão feitas pelo menos 20 execuções do algoritmo, e é simplesmente impraticável inicializar o algoritmo com os mesmos números.

2. Já decidido, existem 2 critérios de avaliação, precisão e número de execuções de FF. Mas o elo que dei como exemplo de cálculo, foi há muito tempo atrás, lá ao invés do número de corridas é o tempo. É por isso que deixei claro em meu posto: precisão e número de lançamentos de FF são dois critérios de avaliação, sendo a precisão 3 vezes preferível.

De acordo com este cálculo de lugares na tabela, meu algoritmo ocuparia o primeiro lugar de acordo com os resultados de sua tarefa. Vamos calcular: a precisão é maior, então o critério de precisão é 3, e o número de execuções FF é maior, então 0. O total é 3+0=3, e seu algoritmo receberá 0+1=1, ou seja, menos pontos. Mas isto não significa que eu ganhe seu problema, pois várias condições não são cumpridas. E se o FF máximo for conhecido antecipadamente, a tabela é calculada de forma um pouco diferente, o primeiro lugar "virtual" é colocado o valor máximo, e nossos lugares já são calculados com base nisso (o número de pontos obtidos será diferente).

 
Yuri Evseenkov:
A regra é que o número de acessos é fixo e o mesmo para todos?

Não, nunca existiu tal regra. Há apenas um máximo admissível. Quanto menos acertos, melhor, que é o segundo critério mais importante após a precisão.

Pessoalmente, não vou me preocupar com isso, vou usar todo o limite de acessos, em outras palavras - aposto na precisão.

 
Alexander Laur:

Em resumo, é um absurdo, não um campeonato.

Os critérios para a determinação do vencedor são inventados à medida que eles vão avançando.

Em 15 páginas, teremos que introduzir um parâmetro para estimar o vencedor.

É uma pressa, não é bem pensada.

Mas a realidade é mais complicada do que os sonhos. :)

É este o seu Pensamento de hoje? Ou Pensamento do Ano?

Os critérios foram aprovados há uma dúzia de páginas, mas os princípios e fórmulas de cálculo ainda antes. Há muitos floodbusters, o que complica a compreensão do material pelo público - agora você tem o crédito por isso, parabéns a você mesmo.

Fui perguntado e respondi. Se me perguntarem amanhã, eu lhes responderei novamente. Mas amanhã, amanhã, amanhã Vasya Vyazaperelezayko virá e mais uma vez comentará profundamente: "O Campeonato é uma merda, as regras estão sendo inventadas na mosca" ..........

 
Alexander Laur:
Então responda à pergunta: Por que a precisão é 3 vezes mais valiosa do que o número de chamadas FF!

Eu decidi assim, o organizador porque. Há outras razões, também.

Você já escreveu seu próprio algoritmo de otimização? Você consegue imaginar como é encontrar o 1 certo entre 2E16 e usar apenas 50 tentativas? É mais difícil do que encontrar uma agulha entre bilhões de palheiros. E isto só se houver apenas um parâmetro, e se houver 500? 1000? 1000000?

 
Alexander Laur:
São as "outras" razões que são de interesse, ou seja, argumentos a favor do número 3 em vez do número 10, por exemplo.
A relação empírica. Estou disposto a esperar 3 minutos e obter 3 vezes mais resultados precisos, do que em um minuto e resultados muito piores. Outras proporções não são práticas.
 
Alexander Laur:
E você o considera como um argumento digno de se determinar um vencedor?

E você acha que eu não? - Você não deveria pensar assim.

Responda minha pergunta:

Andrey Dik:

Você já escreveu seu próprio algoritmo de otimização? Você pode imaginar, por exemplo, o que significa encontrar o correto entre 2E16 valores e usar apenas 50 tentativas? É mais difícil do que encontrar uma agulha entre bilhões de palheiros. E isto só se houver apenas um parâmetro, e se houver 500? 1000? 1000000?

 
Alexander Laur:
Eu não estou contando nada, estou perguntando e esperando por uma resposta. Por que devo especular quando posso perguntar e obter uma resposta da fonte?

Essa é a resposta. Uma relação empírica. Você não encontrará uma resposta cientificamente fundamentada em nenhum lugar.

Tentei encontrar a dependência da precisão da solução no número de acertos com uma determinada probabilidade de acerto junto com Matemat, não tivemos sucesso. Talvez tenha algo a ver com a regra dos 3 sigma, mas não necessariamente.

 
Alexander Laur:

...uma pergunta simples: um algoritmo que não consegue encontrar um extremo com um determinado erro, embora não exatamente, deveria ser permitido participar do Campeonato?

Então eu me sento e reflito... Responder diretamente ou não. Eu decidi - eu tenho que responder!)

Por que você perguntou sobre o significado do critério "precisão" excedendo "manuseio" por um fator de 3? Se houver um critério de "exatidão", é preciso assumir que os participantes não terão 100% de exatidão... É para isso que serve o critério de "exatidão", para classificar por exatidão. Portanto, concluímos - pode!, mas não deve (não deve), porque por que alguém iria competir se seu algoritmo sempre dá uma resposta 100% precisa, e isso significa simultaneamente que para um número aceitável de chamadas FF, desde que a resposta do algoritmo uma vez recebida. Portanto, sem ambigüidade, não deve ser assim! - Além disso, tal algoritmo deve ser escondido e não mostrado a ninguém.

E sim... Há um ponto muito importante. Se o algoritmo não "sabe" onde está o máximo absoluto - e não o sabe, caso contrário, por que o procuraria? Somos nós "de fora" que só podemos julgar o grau de precisão do algoritmo realizando experimentos sobre ele, mas não podemos definir o parâmetro "pesquisar com esta precisão", por razões que espero que já estejam claras.

 
Alexander Laur:

A resposta é simples:

1. Se um algoritmo CANNOT encontra um extremo com uma determinada precisão, ele não tem lugar no Campeonato;

2. Considerando o ponto 1, somente algoritmos que PESQUISAM um extremo com uma determinada precisão participarão na determinação do vencedor;

3. Nenhuma classificação em termos de precisão. A exatidão é dada por uma gama;

4. Determinar um vencedor de acordo com o número de vezes que o FF é invocado.

Partirei neste momento, são 2h da manhã.

Entendido.

Mas não se pode fazer isso dessa maneira.

Primeiro de tudo: não há razão objetiva para definir a precisão. para alguém, um desvio de 1% não vai gostar, e para alguém, 20% ficará feliz. depende em grande parte do tipo de tarefa e do tipo de algoritmo. Estabelecer uma "precisão de passe" em um campeonato significaria selecionar diferentes soluções algorítmicas interessantes.

Segundo: a precisão depende dos acessos FF e não-linearmente. Para diferentes tipos de algoritmos, esta dependência será diferente e você não pode simplesmente dizer "este algoritmo é bom, e este é ruim" - é por isso que usamos dois critérios para avaliar os algoritmos da maneira mais objetiva possível. Havia um terceiro critério - tempo de execução do algoritmo (não FF) - mas ele é muito subjetivo, porque os algoritmos OCL que o utilizam voam em alguns computadores e diminuem a velocidade em outros. Portanto, restam apenas dois critérios: precisão e referências ao FF.