DETALHES DAS VERSÕES: >>> V1: - Utiliza como base o código que o senhor enviou no dia 2021-02-19. - As principais mudanças são: + Alteração dos plots para que os blocos possuam cores diferentes. + Adição de função para plotar resultados parciais. + Leitura dos arquivos das peças. + Alteração da função de candidatos. >>> V2: - Utiliza V1 como base e substiui os arquivos antigos pelos novos enviados pelo senhor no dia 2021-03-28. - As principais mudanças são: + Adaptação do código para o funcionamento com as novas funções. >>> V3: - Utiliza a V2 como base e adiciona algumas das funções enviadas no dia 2021-03-31. - As principais mudanças são: + Retirada de asserts em funções que são chamadas durante a recurssão. + Retirada da impressão que informava que chamada que era e alguns detalhes. + Adiciona de um novo atributo para os contatos que indica quais os blocos que estão envolvidos. + Adiciona uma nova função para os contatos que retorna os blocos que estão envolvidos. + Alteração da função "exclude_contact" para se basear nos estados "used" dos bloco envolvidos nos contatos. + Alteração da função de candidatos. VISÃO GERAL DA FUNÇÃO DOS CANDIDATOS (V3): - Gera uma lista {BOC} que contém apenas as opções (que ao serem adicionadas à solução atual não possuam um tempo de resfriamento máximo maior que delta) dos blocos que ainda não foram adicionados à solução atual e possuem um contato aberto. + Caso algum dos blocos com contatos abertos não possua nenhuma opção válida, desiste dessa solução. - Caso a lista {BCC} esteja vazia, cria uma lista com todas as opções dos blocos restantes. - Em ambos os casos as listas são ordenadas com base na distância do ponto inicial da opção e o ponto final da solução parcial. TESTES | RESULTADOS V1 vs V3: >>> LIMITE DE LINHAS POR BLOCO: 25 | DELTA: 65 - TEMPO: a média das diferenças dos tempos entre as duas versões (user) não foi muito grande (aproximandamente 1,4), já que os tempos de execução em si não são muito altos. - RESULTADOS: apenas dois dos 14 casos obtiveram soluções diferentes (é possível observar pelo max_tcool e extime). Mas, isso pode ser explicado pela mudança da função dos candidatos e o limite de uma linha acaba permitindo uma maior flexibilidade nas soluções. >>> LIMITE DE LINHAS POR BLOCO: 1 | DELTA: 17 - TEMPO: aqui que a diferença nos tempos (user) que foi bem marcante, tendo uma média das diferenças de aproximadamente 309,151. - RESULTADOS: apenas quatro dos 14 casos precisaram de duas chamadas a mais para encontrar a mesma solução.