Anúncios para os participantes
do concurso de programação .
Procedimento final de teste
Inicialmente, procuramos realizar um torneio com o princípio de "cada um com cada um". No entanto, vários participantes anunciaram sua intenção de submeter ao concurso muitas decisões fracas, "spoilers", contra as quais a principal decisão do participante joga bem ou expressaram temores de que outros o façam. Tais ações são claramente proibidas pelas regras, mas mesmo que as regras sejam de alguma forma contornadas, isso é contrário ao espírito da competição. Esta competição é sobre quem é melhor para escrever um programa, e não quem irá mudar a “paisagem” por si mesmos, depois de baixar mais “spoilers”.
Embora possamos e usaremos vários métodos para identificar e desqualificar “spoilers”, sempre há a possibilidade de não revelarmos algo. Gostaríamos que os vencedores da competição fossem aqueles que melhor inventam e programam algoritmos, e não aqueles que são mais criativos para burlar as regras.
Portanto, decidimos realizar o teste final em duas etapas. No estágio de qualificação, para
N valores de sementes selecionados aleatoriamente, será realizado um torneio "cada com cada" e o par (A, B) é considerado diferente de (B, A). Assim, cada par (e em cada ordem) será lançado em cada valor inicial. O resultado da fase de qualificação será uma lista de participantes localizados em ordem decrescente da quantidade de pontos ganhos (a saber, a quantidade de pontos e não o número de "vitórias").
Os
K melhores participantes da lista irão para as finais, onde um torneio adicional será realizado entre eles em
M outros valores de sementes selecionados aleatoriamente. As posições finais entre esses
K participantes serão determinadas apenas pela soma dos pontos marcados por eles em sessões com valores de
N +
M entre si, sem levar em consideração as sessões que envolvam decisões que não chegaram à final.
Por um lado, isso permitirá testar mais minuciosamente uma gama restrita de decisões que afirmam ser os melhores lugares e, por outro, privará o apoio de “spoilers” para soluções que dependem dele.
Os valores específicos de
N ,
M e
K serão anunciados posteriormente, pois dependem do número de soluções que os participantes nos enviarão.
Arenas de negociação online
Criamos várias novas arenas:
standard_1s
é semelhante ao
standard
, mas monitora a conformidade com o limite de 1 segundo por jogada (essa arena corresponde exatamente às condições do teste final);
large
e
large_1s
- arenas com configurações "aumentadas" para o caso de alguém querer tentar.
Veja a
lista de arenas na página do projeto no GitHub.
Para cada arena, as estatísticas “ao vivo” agora estão disponíveis para cada decisão tomada (links na primeira coluna da tabela). As estatísticas são fornecidas no formato JSON legível por máquina, a partir do qual não será difícil para os concorrentes obterem a apresentação dos dados que lhes interessam. A chave para esses dados é o hash do identificador de cliente especificado com o parâmetro
--id
. Esse sistema de teste de hash mostra toda vez que você se conecta ao servidor. Para cada participante, são fornecidos o número total de sessões concluídas (
sessions
), o número de acordos alcançados (
agreements
) e a pontuação total (
score
) para todo o tempo (
all
) e para cada dia individual (UTC).
Atualizações do sistema de teste
Siga o
histórico de atualizações no GitHub: corrigimos regularmente as falhas encontradas pelos participantes no sistema de teste. O
git pull
regularmente!
Chat oficial
Para discutir o concurso, um canal foi criado no Telegram:
@hola_challenge_haggling .